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