This is the Base Plugin which does not adds any extension or task
to the project, but allows User to use all the Custom tasks and create their
own Gradle tasks thereby imposing no opinions on users.
This Plugin Checks if the aQute.bnd.gradle.BndBuilderPlugin is applied to the project and if it is applied then adds a new
extension named bundle to jar task.
This method just calls `wrap` method from the extension of type {@Link WrapperExtension}, this method is reponsible for acctuall
conversion of non OSGi Bundles to OSGi Bundles.
This function simply calls two functions
1) writeFile() :- to write the `feature.xml` file itself
2) writeManifestFile :- this method from {@Link FeatureRequirePropertyExtension} is used to write manifest file inside the
archives
This inner Class is used just to create objects inside `includes` method inorder to resolve the passed closure and extract the
required information.This class is o=not used anywhere else.
The constructor does few things
1) Initializes all the String member used for property setting to ""
2) Creates all the required instance of {@Link FeaturePropertyExtension}
3) Initializes Both the lists user for storing information
4) Creates the Document object and Root elemnt for the XML file to be created
5) Add another extension named `require` to the task object
6)Creates `build`, `build/libs` and `build/features` directory (creating directory was necessary or else it
was giving error in some case) and `build/features/feature.xml`.
This class is used for create extension for tasks which apply extensions of type {@Link FeatureExtension}
and are used to store properties about dependencies of features and write manifest files
This methods takes three parameter namely id,version and a Closure which is used to create a object of Class
FeaturePluginProperty and the created object is then added to list named plugins.
WriteEquinoxConfiguration Task extends WriteOsgiConfiguration and adds some function which are used to set properties
inside configuration file only related to Equinox Application.
WriteOsgiConfiguration Class extends org.gradle.api.tasks.WriteProperties and is used to set properties related to Osgi application inside
Configuration files of Application.