Hi Niranjan,

Thank you for pointing it out, created an issue regarding the above.

Thanks.

On Fri, Sep 8, 2017 at 8:35 AM, Niranjan Karunanandham <niran...@wso2.com>
wrote:

> 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>
>>
>


-- 
*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