Hi Dinusha,

Thanks for looking into the issue mentioned. As I mentioned offline during
the demo, there seems to be an issue of cleaning up resources copied by the
features and also the p2-profile generation fails for multiple profiles if
a feature removes any resources using touch points.

Please let me know if this is something that can be addressed via the
carbon-feature-plugin itself. Will raise a JIRA for it if needed if it can
be handled from the plugin.

Thanks,
Lasantha

On 8 October 2015 at 11:59, Dinusha Boteju <dinus...@wso2.com> wrote:

> Hi Lasantha,
>
> Thank you very much for the given feedback. The plugin wraps the equinox
> p2 director application internally to install features. However, I am not
> sure what you have mentioned here is handled by the plugin. So lets have a
> demo and check that out.
>
> On a separate note there are few limitations in the plugin at the moment.
> We are in the process of rectifying those.
>
> Thanks,
> Dinusha
>
> On Thu, Oct 8, 2015 at 1:39 AM, Lasantha Fernando <lasan...@wso2.com>
> wrote:
>
>> 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 <dinus...@wso2.com> 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: dinus...@wso2.com <ruw...@wso2.com>
>>> phone:(+94) 776640275 <%28%2B94%29%20777739736>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> *Lasantha Fernando*
>> Senior Software Engineer - Data Technologies Team
>> WSO2 Inc. http://wso2.com
>>
>> email: lasan...@wso2.com
>> mobile: (+94) 71 5247551
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> *Dinusha Boteju*
> *Associate Tech Lead,*
> *WSO2, Inc. http://wso2.com <http://wso2.com/> *
> *lean.enterprise.middleware.*
>
> email: dinus...@wso2.com <ruw...@wso2.com>
> phone:(+94) 776640275 <%28%2B94%29%20777739736>
>



-- 
*Lasantha Fernando*
Senior Software Engineer - Data Technologies Team
WSO2 Inc. http://wso2.com

email: lasan...@wso2.com
mobile: (+94) 71 5247551
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to