mirror of https://github.com/x64dbg/deps
				
				
				
			
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Groovy
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Groovy
		
	
	
	
| import org.eclipse.ceylon.model.loader.OsgiVersion
 | |
| import org.gradle.api.tasks.bundling.AbstractArchiveTask
 | |
| 
 | |
| /** This extension will be added to each Archive task if
 | |
|  * the {@code makeOsgiArchive()} extensions ies executed within the archive
 | |
|  * configuration (the latter depends on it being added by the {@code CeylonOsgi}
 | |
|  * plugin).
 | |
|  */
 | |
| class CeylonOsgiArchiveTaskExtension extends AbstractCeylonOsgiArchiveTaskExtension {
 | |
| 
 | |
|     CeylonOsgiArchiveTaskExtension( AbstractArchiveTask task ) {
 | |
|         super(task)
 | |
|     }
 | |
| 
 | |
|     CeylonOsgiArchiveTaskExtension call( Closure cfg ) {
 | |
|         def config = cfg.clone()
 | |
|         config.delegate = this
 | |
|         config()
 | |
|         this
 | |
|     }
 | |
| 
 | |
|     /** Set the symbolic name for this bundle.
 | |
|      * Affects {@code Bundle-SymbolicName}
 | |
|      */
 | |
|     String bundleSymbolicName
 | |
| 
 | |
|     /** Sets the bundle version.
 | |
|      * Affects {@code Bundle-Version} and {@code Export-Package}
 | |
|      */
 | |
|     String bundleVersion
 | |
| 
 | |
|     /** Add packages that needs to be dynamically imported.
 | |
|      *
 | |
|      * @param importMappings A map in the form of {@code PackagePattern : BundleVersion }
 | |
|      */
 | |
|     void dynamicImports( Map<String,String> importMappings ) {
 | |
|         this.dynamicImports+= importMappings
 | |
|     }
 | |
| 
 | |
|     /** Get the list of OSGI manifest instructions as a map
 | |
|      *
 | |
|      * @return
 | |
|      */
 | |
|     Map<String,String> getManifestInstructions() {
 | |
|         getManifestInstructions(
 | |
|             bundleVersion,
 | |
|             bundleSymbolicName,
 | |
|             bundleVersion,
 | |
|             dynamicImports
 | |
|         )
 | |
|     }
 | |
| 
 | |
|     @Override
 | |
|     void configureManifestForTask() {
 | |
|         archiveTask.manifest.name = bundleSymbolicName
 | |
|         archiveTask.manifest {
 | |
|             manifestInstructions.each { k,v ->
 | |
|                 instructionReplace k,v
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private Map<String,String> dynamicImports = [:]
 | |
| 
 | |
| }
 |