Hi Kasun,

Have we created a git issue for the carbon-maven-plugins with regard to not
able to download two versions of the same feature to create a p2-repo?

Regards,
Nira

On 8 Sep 2017 5:13 a.m., "Kasun Siyambalapitiya" <kasu...@wso2.com> wrote:

> Hi Dilan and all,
>
> Pardon me for the late reply. Yes, I agree with your point due to the fact
> that different feature versions including slight or major differences in
> their implementation has been released as compatible features for WSO2
> Carbon 4.4.x (Wilkes) [1] products,
>
> For example,
>
>
>    1. 
> org.wso2.carbon.identity.application.authentication.framework.server_4.5.6.jar
>    / org.wso2.carbon.identity.application.authentication.framewor
>    k.server_5.7.5.jar
>    2. org.wso2.carbon.directory.service.mgr.server_4.5.6.jar /
>    org.wso2.carbon.directory.service.mgr.server_5.7.5.jar
>    3. rg.wso2.carbon.forum.server_2.0.0.jar / org.wso2.carbon.forum.server
>    _6.1.66.jar
>    4. org.wso2.carbon.identity.core.server_4.5.5.jar
>    / org.wso2.carbon.identity.core.server_5.7.5.jar
>    5. org.wso2.carbon.identity.core.ui_4.5.5.jar
>    / org.wso2.carbon.identity.core.ui_5.7.5.jar
>
> Since all the jars mentioned above have major implementational changes
> which are not backward compatible (as indicated by the major version no
> change) there is a huge possibility of having a functional inconsistency in
> the system if multiple versions of the same feature are used in different
> runtimes. For example the format of data inserted and queried out from db
> from previous version may differ from the how it is done in the latest
> version leaving to inconsistencies in DB. IMO I think either we should
> restrict to one version of a certain feature or allow up to it's next major
> version. WDYT?
>
>
> [1] http://product-dist.wso2.com/p2/carbon/releases/wilkes/features/
>
> Thanks.
>
> On Fri, Aug 18, 2017 at 8:39 AM, Dilan Udara Ariyaratne <dil...@wso2.com>
> wrote:
>
>> Hi Kasun and All,
>>
>> Let me raise a different, but fundamental concern to this issue. Please
>> correct me if I am wrong.
>>
>> It's perfectly valid to have the same feature on different run-times (or
>> profiles) of a product, but if that same feature appears in "different
>> versions",
>> meaning, with slight or major differences of their implementations, at
>> different run-times of the product, wouldn't that open up any possibilities
>> of functional inconsistencies or even failures to the overall system ?
>>
>> Thanks,
>> Dilan.
>>
>> *Dilan U. Ariyaratne*
>> Senior Software Engineer
>> WSO2 Inc. <http://wso2.com/>
>> Mobile: +94766405580 <%2B94766405580>
>> lean . enterprise . middleware
>>
>>
>> On Thu, Aug 17, 2017 at 8:19 PM, Kasun Siyambalapitiya <kasu...@wso2.com>
>> wrote:
>>
>>> Hi Niranjan,
>>>
>>> When generating the p2-repository using `carbon-maven-plugin version
>>> 3.x` this issue arises due to the fact that it resolves dependencies for
>>> each given feature with the dependencies we defined in the pom itself (note
>>> that the effective pom is used for the resolving). Since maven picks only
>>> one version of a given dependency due the use of `nearest in the dependency
>>> tree` strategy, a p2-repo with multiple versions of the same feature can
>>> not be created by using the current `carbon-maven-plugin version 3.1.3`.
>>>
>>> But in the case of `carbon-maven-plugin version 1.5.x` this is possible
>>> as the dependencies of each feature is defined in a string form as below
>>>
>>> org.apache.axis2.transport:org.apache.axis2.transport.jms.feature:
>>>> ${axis2-transports.wso2.version.1.1.0.wso2v17}
>>>
>>>
>>> and the version `${axis2-transports.wso2.version.1.1.0.wso2v17}` is
>>> replaced with the value of the relevant property we defined in the pom.xml.
>>> Since there are no restrictions like above in defining properties in
>>> pom.xml this works.
>>>
>>> Thanks.
>>>
>>> On Thu, Aug 17, 2017 at 10:39 AM, Niranjan Karunanandham <
>>> niran...@wso2.com> wrote:
>>>
>>>> Hi Kasun,
>>>>
>>>> On Thu, Aug 17, 2017 at 10:04 AM, Kasun Siyambalapitiya <
>>>> kasu...@wso2.com> 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 <
>>>>> niran...@wso2.com> wrote:
>>>>>
>>>>>> Hi Kasun,
>>>>>>
>>>>>> On Wed, Aug 16, 2017 at 3:30 PM, Kasun Siyambalapitiya <
>>>>>> kasu...@wso2.com> 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 : kasu...@wso2.com
>>>>>>> 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 : kasu...@wso2.com
>>>>> 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
>>>>
>>>>
>>>
>>>
>>> --
>>> *Regards,*
>>>
>>> *Kasun Siyambalapitiya*
>>> *Software Engineer*
>>> WSO2 Inc. - http://wso2.com/
>>> lean . enterprise . middleware
>>> Tel : 0715523466
>>> E mail : kasu...@wso2.com
>>> Blog: https://medium.com/@kasunsiyambalapitiya
>>> <https://wso2.com/signature>
>>>
>>
>>
>
>
> --
> *Regards,*
>
> *Kasun Siyambalapitiya*
> *Software Engineer*
> WSO2 Inc. - http://wso2.com/
> lean . enterprise . middleware
> Tel : 0715523466
> E mail : kasu...@wso2.com
> Blog: https://medium.com/@kasunsiyambalapitiya
> <https://wso2.com/signature>
>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to