Hi Kasun,

On Thu, Aug 17, 2017 at 10:04 AM, Kasun Siyambalapitiya <[email protected]>
wrote:

> Hi Niranjan,
>
> The build fails before successful generation of the p2-repo by giving the
> following error
>
> [ERROR] Failed to execute goal org.wso2.carbon.maven:carbon-f
>> eature-plugin:3.1.1:generate-repo (p2-repo-generation) on project
>> wso2carbon-kernel: Feature org.wso2.carbon.pax.exam.feature_5.2.0.1 not
>> found -> [Help 1]
>
>
>
> Since in the new C5 model the p2-repo containing all the features required
> for all the runtimes of the product, is generated at a single specified
> directory(by default the target directory) multiple version of the same
> feature cannot be generated as maven build will pick only one version of
> the dependency due to the use of "nearest in the dependency tree" strategy
> as shown in above mail. As a result although we can have multiple versions
> at the p2-repo per feature due to the above nature of maven, runtimes with
> different feature versions cannot be created in C5. This problem was not
> there in the previous C4 model as the profiles(runtime in C5 wording) were
> generated at separate locations and their respective p2-repos were created
> at their own locations(where the profile is created) [1]
>
> IMO this issue can be avoided by always using the newest feature version
> available when creating runtimes in C5 products. WDYT?
>
The profiles that were used in C4 were used to install features, but only
one p2-repo is created. In the case of EI, they have created separate
modules (folders for each profile) and then they are handling it. In the
case of AS 5.3.0, we had a single pom to create a distribution with
multiple profiles. Wilkes p2-repo is generated using the
carbon-feature-repository [1], here in the pom, the p2-repo is generated
with different versions of the same feature. Similarly for C5, it should
follow the same. We need to look into the carbon-maven-plugins version
1.5.x [2] and 3.x [3].


>
> [1] https://github.com/wso2/product-ei/tree/v6.2.0-m2/p2-profile
>
> On Wed, Aug 16, 2017 at 3:51 PM, Niranjan Karunanandham <[email protected]
> > wrote:
>
>> Hi Kasun,
>>
>> On Wed, Aug 16, 2017 at 3:30 PM, Kasun Siyambalapitiya <[email protected]>
>> wrote:
>>
>>> Hi all,
>>>
>>> When I was creating a custom product using carbon-kernel version
>>> 5.2.0-alpha[1] the following issue aroused.
>>> In a scenario where a product is build with 2 runtimes called runtimeA
>>> and runtimeB.
>>>
>>> runtimeA contains the below feature among it's other features
>>>
>>> pax.exam.feature v5.2.0.0
>>> sample-bundle2 v5.2.0.0
>>> log-bundle v1.5.0
>>>
>>>
>>> while runtmeB contains the below feature among it's other features
>>>
>>> sample.feature v5.2.0.1
>>> sample-bundle1 v5.2.0.0
>>> monitor-bundle v1.5.0
>>> pax.exam.feature v5.2.0.1
>>>
>>>
>>>
>>> As shown above since there is a dependency to the
>>> `pax.exam.feature,v5.2.0.1` from the `sample.feature,v5.2.0.1`, to have
>>> both versions of `pax.exam.feature` to be installed into the separate
>>> runtimes of the product, it is required to define dependency information of
>>> each `pax.exam.feature` versions (v5.2.0.0 and v5.2.0.1) under the
>>> <dependencies> tag in the pom.xml file.
>>>
>>> But during the build process, maven will only pick one version of that
>>> dependency and omit the other versions to avoid any conflicts using the 
>>> *"nearest
>>> in the dependency tree"* strategy (already asked in stackoverflow [1]).
>>> This will results in a build failure as if the build process resolves
>>> dependency of `pax.exam.feature` v5.2.0.0`, the version v5.2.0.1 will not
>>> be available during build and vice versa.
>>>
>>> Is this a legitimate case that we should address?
>>> IMO it will be a best practise to use the newest versions of the
>>> features available when creating runtimes than using the older versions
>>> which in turn will resolve this issue.
>>>
>>> Your comments are highly appreciated.
>>>
>>
>> As per the offline discussion, this issue is for generating the p2-repo.
>> You will need to check whether both versions of the feature are there in
>> the p2-repo that is being generated. If it does not exist then we would
>> need to fix it there.
>>
>>
>>>
>>> [1] https://github.com/wso2/carbon-kernel/tree/v5.2.0-alpha
>>> [2] https://stackoverflow.com/questions/24962607/multiple-ve
>>> rsions-of-the-same-dependency-in-maven
>>>
>>> Thanks
>>>
>>> --
>>> *Regards,*
>>>
>>> *Kasun Siyambalapitiya*
>>> *Software Engineer*
>>> WSO2 Inc. - http://wso2.com/
>>> lean . enterprise . middleware
>>> Tel : 0715523466
>>> E mail : [email protected]
>>> Blog: https://medium.com/@kasunsiyambalapitiya
>>> <https://wso2.com/signature>
>>>
>>
>> Regards,
>> Nira
>>
>> --
>>
>>
>> *Niranjan Karunanandham*
>> Associate Technical Lead - WSO2 Inc.
>> WSO2 Inc.: http://www.wso2.com
>>
>>
>
>
> --
> *Regards,*
>
> *Kasun Siyambalapitiya*
> *Software Engineer*
> WSO2 Inc. - http://wso2.com/
> lean . enterprise . middleware
> Tel : 0715523466
> E mail : [email protected]
> Blog: https://medium.com/@kasunsiyambalapitiya
> <https://wso2.com/signature>
>

[1] - https://github.com/wso2/carbon-feature-repository
[2] - https://github.com/wso2/carbon-maven-plugins/tree/1.5.x
[3] - https://github.com/wso2/carbon-maven-plugins

Regards,
Nira

-- 


*Niranjan Karunanandham*
Associate Technical Lead - WSO2 Inc.
WSO2 Inc.: http://www.wso2.com
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to