Re: [Architecture] Same feature with different versions in different runtimes

2017-09-11 Thread Kasun Siyambalapitiya
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 
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"  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 
>> 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. 
>>> Mobile: +94766405580 <%2B94766405580>
>>> lean . enterprise . middleware
>>>
>>>
>>> On Thu, Aug 17, 2017 at 8:19 PM, Kasun Siyambalapitiya >> > 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 

Re: [Architecture] Same feature with different versions in different runtimes

2017-09-07 Thread Niranjan Karunanandham
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"  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 
> 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. 
>> Mobile: +94766405580 <%2B94766405580>
>> lean . enterprise . middleware
>>
>>
>> On Thu, Aug 17, 2017 at 8:19 PM, Kasun Siyambalapitiya 
>> 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 

Re: [Architecture] Same feature with different versions in different runtimes

2017-09-07 Thread Kasun Siyambalapitiya
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.
   framework.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 
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. 
> Mobile: +94766405580 <%2B94766405580>
> lean . enterprise . middleware
>
>
> On Thu, Aug 17, 2017 at 8:19 PM, Kasun Siyambalapitiya 
> 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 

Re: [Architecture] Same feature with different versions in different runtimes

2017-08-17 Thread Dilan Udara Ariyaratne
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. 
Mobile: +94766405580 <%2B94766405580>
lean . enterprise . middleware


On Thu, Aug 17, 2017 at 8:19 PM, Kasun Siyambalapitiya 
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 > > 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
> 

Re: [Architecture] Same feature with different versions in different runtimes

2017-08-17 Thread Kasun Siyambalapitiya
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 
wrote:

> Hi Kasun,
>
> On Thu, Aug 17, 2017 at 10:04 AM, Kasun Siyambalapitiya 
> 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 >> > 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
  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 

Re: [Architecture] Same feature with different versions in different runtimes

2017-08-16 Thread Niranjan Karunanandham
Hi Kasun,

On Thu, Aug 17, 2017 at 10:04 AM, Kasun Siyambalapitiya 
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  > wrote:
>
>> Hi Kasun,
>>
>> On Wed, Aug 16, 2017 at 3:30 PM, Kasun Siyambalapitiya 
>> 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
>>>  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
>>> 
>>>
>>
>> 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 : 

Re: [Architecture] Same feature with different versions in different runtimes

2017-08-16 Thread Kasun Siyambalapitiya
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?

[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 
wrote:

> Hi Kasun,
>
> On Wed, Aug 16, 2017 at 3:30 PM, Kasun Siyambalapitiya 
> 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
>>  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
>> 
>>
>
> 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

___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Same feature with different versions in different runtimes

2017-08-16 Thread Niranjan Karunanandham
Hi Kasun,

On Wed, Aug 16, 2017 at 3:30 PM, Kasun Siyambalapitiya 
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
>  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-
> versions-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
> 
>

Regards,
Nira

-- 


*Niranjan Karunanandham*
Associate Technical Lead - WSO2 Inc.
WSO2 Inc.: http://www.wso2.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Same feature with different versions in different runtimes

2017-08-16 Thread Kasun Siyambalapitiya
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
 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.

[1] https://github.com/wso2/carbon-kernel/tree/v5.2.0-alpha
[2]
https://stackoverflow.com/questions/24962607/multiple-versions-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

___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture