Hi Dinusha, The new configuration seems more intuitive and easier to use. +1 for the proposed changes.
A minor issue that I have encountered when using the previous plugin is that resources that are copied via the p2.inf for a feature get left in the repository/components/features directory of the pack. If considerably large files are copied by the feature, we have to manually add instructions in dist.xml of the product build to clean up these files, as in [1,2]. I guess one option to clean up these files would be to make use of the eclipse touch points to clean up these resources after installation. However, this approach fails if the product uses multiple profiles. i.e. the feature gets installed in one profile generation and the resource files get cleaned up. Then when it comes to installing features for the second profile, the resource files are not available and will throw an error. Can this issue also be addressed with the changes that we are going to incorporate to the p2-plugin? IMHO, this will make for a much cleaner installation process for the features. Also, currently, if the features are installed via management console, there is no way to perform a cleanup operation similar to [1,2]. [1] https://github.com/wso2/product-as/blob/master/modules/distribution/src/assembly/dist.xml#L35 [2] https://github.com/wso2/product-cep/blob/master/modules/distribution/src/assembly/dist.xml Thanks, Lasantha On 7 October 2015 at 15:26, Dinusha Boteju <[email protected]> wrote: > > Hi all, > > We are hoping to introduce a revamp version of carbon-feature-plugin 2.0.0 > (previously known as carbon-p2-plugin) along with Carbon 4.5.0 and Carbon > 5. Following were taken into consideration when revamping the > carbon-feature-plugin. > > - Optimizing the existing plugin (architecture and technology > migration) > - Introduce a new packaging type for carbon features > - Make the configuration consistent throughout the set of goals > exposed through the plugin > - Introduce unininstall feature. > > The new plugin is composed of 6 maven goals; > > 1. generate (previously known as p2-feature-gen) > 2. install (previously known as p2-profile-gen) > 3. uninstall > 4. generate-repo (previously known as p2-repo-gen) > 5. generate-profile (previously known as materialize-product) > 6. publish-product > > To give a heads up, I am elaborating sample configuration of few maven > goals of carbon-feature-plugin; > > - generate > > This goal generates carbon features, which you can install from feature > manager console and/or add it to a p2 repo. In order to generate a carbon > feature from the generate goal, you need to set the packaging type to > *carbon-feature.* A sample plugin configuration; > <project> > .... > * <packaging>carbon-feature</packaging>* > ... > <build> > <plugins> > <plugin> > <groupId>org.wso2.carbon</groupId> > * <artifactId>carbon-feature-plugin</**artifactId>* > <version>2.0.0</version> > <extensions>true</extensions> > <executions> > <execution> > <goals> > * <goal>generate</goal>* > </goals> > <phase>package</phase> > > *<configuration>* > > * > <propertyFile>file:/home/carbon-kernel/feature.properties</propertyFile>* > > * <adviceFileContent>* > > > > * <advice> > <name>org.eclipse.equinox.p2.type.group</name> > <value>false</false> </advice>* > > * </adviceFileContent>* > > * <bundles>* > * <bundles>* > > * > <symbolicName>org.wso2.carbon.registry.contentsearch.feature</symbolicName>* > > * <version>4.2.0</version>* > > * </bundles>** > </bundles>* > * </configuration>* > </execution> > </executions> > </plugin> > </plugins> > </build> > <project> > > Note: If you are familiar with the previous versions of this goal, you > will notice there are considerable changes in configuring adviceFile, > bundles, etc. > > > - install > > install goal, previously known as p2-profile-gen is used to install a > given set of features to a carbon product. In the new version some of the > redundant configuration parameters have been removed and feeding features > to be installed is made consistent with *generate* and *generate-repo* > maven goal. Sample configuration; > <plugin> > <groupId>org.wso2.carbon</groupId> > * <artifactId>carbon-feature-plugin</**artifactId>* > <version>2.0.0</version> > <executions> > <execution> > <goals> > * <goal>install</goal>* > </goals> > <phase>package</phase> > > *<configuration>* > * <profile>default</* > *profile>* > * <repositoryURL>* > *file:/home/p2-repo</repositoryURL>* > * <destination>* > */home/Apps/wso2carbon-4.4.0/repository/components</destination>* > * <features>* > * <feature>* > * > <id>org.wso2.carbon.student.mgt.feature</id>* > * <version>4.2.0</version>* > * </**feature>* > * </**features>* > * </configuration>* > </execution> > </executions> > </plugin> > > > - uninstall > > Configuring *uninstall* maven goal is pretty similar to install goal but > with fewer parameters than *install* goal. The user need to specify > features to be uninstalled exactly the same way the way you specify > features to be installed in install goal. Since the configuration is so > obvious, I have not introduce an example for this. > > - generate-repo > > Previously known as p2-repo-gen, this goal creates a p2 repository out of > a given set of carbon features. Sample configuration; > <plugin> > <groupId>org.wso2.carbon</groupId> > * <artifactId>carbon-feature-plugin</**artifactId>* > <version>2.0.0</version> > <extensions>true</extensions> > <executions> > <execution> > <goals> > * <goal>generate-repo</goal>* > </goals> > <phase>package</phase> > > *<configuration>* > * > <targetRepository>file:${basedir}/target/p2-repo</* > *targetRepository>* > > * <features>* > > > * <feature> > <id>org.wso2.carbon.student.mgt.feature</name> > <version>4.2.0</* > *version> </feature>* > > * </features> * > * </configuration>* > </execution> > </executions> > </plugin> > > I hope you all will find easy to use the new plugin. I will share a proper > documentation in the near future. > Thanks & Best regards, > -- > > *Dinusha Boteju* > *WSO2, Inc. http://wso2.com <http://wso2.com/> * > *lean.enterprise.middleware.* > > email: [email protected] <[email protected]> > phone:(+94) 776640275 <%28%2B94%29%20777739736> > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- *Lasantha Fernando* Senior Software Engineer - Data Technologies Team WSO2 Inc. http://wso2.com email: [email protected] mobile: (+94) 71 5247551
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
