Hi All,

I came across some more features in our platform which have included
external features instead of importing them as dependencies.
As explained above, these included features can cause P2 installation
version conflicts. We must fix these features to import their external
dependency features rather than including them, to avoid such conflicts in
future.

Following is the list of features which have included external features;

   - 
./mediation-initializer/org.wso2.carbon.mediation.initializer.server.feature/4.0.2/pom.xml:
   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.event.server.feature:4.0.2</includedFeatureDef>


   - ./service-mgt/org.wso2.carbon.service.mgt.ui.feature/4.0.0/pom.xml:


   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.throttle.ui.feature</includedFeatureDef>

   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.module.mgt.ui.feature:${project.version}</includedFeatureDef>

   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.throttle.ui.feature:${project.parent.version}</includedFeatureDef>

   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.caching.ui.feature:${project.parent.version}</includedFeatureDef>

   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.rm.ui.feature:${project.parent.version}</includedFeatureDef>

   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.security.mgt.ui.feature:${project.version}</includedFeatureDef>


   - 
./stratos/common/org.wso2.carbon.stratos.common.server.feature/2.0.5/pom.xml:
   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.identity.authenticator.saml2.sso.server.feature:4.0.3</includedFeatureDef>


   - ./stratos/common/org.wso2.carbon.stratos.common.ui.feature/2.0.6/pom.xml:
   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.identity.authenticator.saml2.sso.ui.feature:4.0.6</includedFeatureDef>


   - 
./data-services/data-services-tasks/org.wso2.carbon.dataservices.task.server.feature/4.0.5/pom.xml:
   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.ntask.core.feature:4.0.5</includedFeatureDef>


   - ./identity/oauth/org.wso2.carbon.identity.oauth.ui.feature/4.0.5/pom.xml:

   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.webapp.mgt.server.feature:4.0.5</includedFeatureDef>


   - 
./identity/scim/org.wso2.carbon.identity.scim.provider.feature/4.0.5/pom.xml:
   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.webapp.mgt.server.feature:4.0.5</includedFeatureDef>


   - ./rss-manager/org.wso2.carbon.rssmanager.server.feature/4.0.1/pom.xml:
   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.service.mgt.server.feature:4.0.1


   - ./cg/org.wso2.carbon.cloud.gateway.feature/4.0.2/pom.xml:
   
<includedFeatureDef>org.wso2.carbon:org.wso2.carbon.mediation.initializer.server.feature:4.0.2</includedFeatureDef>

If there are no objections, and feature owners are agreeable to above
change, can we please fix these features in 4.0.6?

Thanks,
Dileepa

On Thu, Dec 13, 2012 at 7:38 PM, Dileepa Jayakody <[email protected]> wrote:

>
>
> On Thu, Dec 13, 2012 at 7:31 PM, Pradeep Fernando <[email protected]>wrote:
>
>> May be you should make this a blog post, so that others can easily refer
>> this. Good post!!
>>
>> Actually I have written one post on general guidelines for Feature
> developers :
> http://dileepajayakody.blogspot.com/2012/11/guidelines-for-carbon-feature-developers.html
> :)
>
> Thanks,
> Dileepa
>
>> --Pradeep
>>
>>
>> On Thu, Dec 13, 2012 at 6:08 PM, Dileepa Jayakody <[email protected]>wrote:
>>
>>> Hi All,
>>>
>>> *importFeatureDef* instruction in carbon-p2-plugin is used to define
>>> dependencies to external features when developing a feature.
>>> We come across conflicts in feature installations when features have
>>> tight-dependencies to external features as* includedFeatures*.
>>> includedFeatureDef should be used to include sub-features (eg:to include
>>> server and ui features in the aggregate feature) and not to include other
>>> external features.
>>> Included features are considered parts of the nesting feature and they
>>> are not allowed to be updated by P2.
>>>
>>> One example is :* org.wso2.carbon.service.mgt.server.feature*. It has
>>> included several external features as part of it, including
>>> org.wso2.carbon.security.mgt.server feature.
>>> So if the user needs to install a newer version of one of the nested
>>> features (eg: org.wso2.carbon.security.mgt.server feature), P2 doesn't
>>> allow it to update parts of a nested feature.
>>>
>>> So as a best practice when developing features; when a feature has a
>>> dependency to an external feature, it should be defined as an
>>> importFeatureDef.
>>> Then the feature installation is enforced by P2 and updates are
>>> supported at the time of installation.
>>>
>>> I have fixed the org.wso2.carbon.service.mgt.server feature: 4.0.5 for
>>> above reason, by importing external features. When importing external
>>> features we should also make sure the importedFeatures are published to the
>>> repository.
>>>
>>> Thanks,
>>> Dileepa
>>>
>>>
>>> --
>>> Dileepa Jayakody,
>>> Software Engineer, WSO2 Inc.
>>> Lean . Enterprise . Middleware
>>>
>>> Mobile : +94777-857616
>>>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> [email protected]
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> *Pradeep Fernando*
>> Member, Management Committee - Platform & Cloud Technologies
>> Senior Software Engineer;WSO2 Inc.; http://wso2.com
>>
>> blog: http://pradeepfernando.blogspot.com
>> m: +94776603662
>>
>
>
>
> --
> Dileepa Jayakody,
> Software Engineer, WSO2 Inc.
> Lean . Enterprise . Middleware
>
> Mobile : +94777-857616
>
>


-- 
Dileepa Jayakody,
Software Engineer, WSO2 Inc.
Lean . Enterprise . Middleware

Mobile : +94777-857616
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to