On Fri, Apr 2, 2010 at 1:43 AM, Senaka Fernando <sen...@wso2.com> wrote:

> Hi Sameera,
>
> Where can I find an example common feature?
>

Carbon Core contains a common feature called
org.wso2.carbon.core.common.feature and
org.apache.synapse.transport.nhttp.feature.


Sameera

>
> Senaka.
>
> On Thu, Apr 1, 2010 at 6:29 AM, Sameera Jayasoma <same...@wso2.com> wrote:
>
>> Hi Carbon Component Owners,
>>
>> Following work items should be completed by each and every component
>> owner.
>>
>> Here I've taken logging mgt feature as an example. Say it contains 4
>> features, composite, server, ui and common features.
>>
>> *1) Feature names should be changed in the following manner*
>>
>> WSO2 Carbon - Logging Management Feature
>> --WSO2 Carbon - Logging Management Server Feature
>> --WSO2 Carbon - Logging Management UI Feature
>> --WSO2 Carbon - Logging Management Common Feature
>>
>> *2) Add meaningful feature descriptions.*
>>  Fill <description> tag in pom.xml. Feature descriptions are available for
>> most of the features in this document(
>> http://wso2.org/projects/carbon/provisioning-wso2-carbon-with-equinox-p2)
>>
>> *3) Fix feature.properties file location*
>> feature.properties file contains license and copyright information. Each
>> and every feature should carry this file. This file is located in features
>> project under the etc/ folder. Relative path to feature.properties file
>> should be added to the <propertiesFile> element of carbon-p2-plugin. Some
>> feature may have to use long relative paths. :) I could only think of this
>> solution at this moment. Please suggest if you have a better solution.
>>
>>
>> <propertiesFile>../../../../../../../etc/feature.properties</propertiesFile>
>>
>> *4) Usage of org.wso2.carbon.p2.category.type property*
>> This property is used to mark a feature as a server, common or console
>> feature. If the feature is a server feature, following configuration element
>> should be added to the carbon-p2-plugin.
>>
>> <adviceFile>
>>     <properties>
>>         <propertyDef>org.wso2.carbon.p2.category.type:server</propertyDef>
>>     </properties>
>> </adviceFile>
>>
>> Likewise you can add any number of properties under the properties
>> element.
>>
>> *5) Usage of org.eclipse.equinox.p2.type.group property*
>> By default all the features are considered as group/top level features in
>> Equinox P2. When you query a P2 repository what you get is a list of group
>> features. But ideally we should only show the composite feature as top level
>> features. Other features should be showen as child features in the
>> tree-view. Otherwise there will be long list of features.
>>
>> Therefore we need to set the above property to false in server, console,
>> common features in the following manner. This property is added to
>> server/console/common features only if they have a composite feature. I've
>> seen some server features which does not have a composite feature. Please
>> don't add this property in such cases.
>>
>> <adviceFile>
>>     <properties>
>>         <propertyDef>org.eclipse.equinox.p2.type.group:false</propertyDef>
>>     </properties>
>> </adviceFile>
>>
>> I've added bot the above properties to all the features. But please check
>> whether they have been added correctly.
>>
>> *6) Usage of <bundleDef> and <importBundleDef>*
>>
>> Both these element are used to declare required bundles in features. I
>> will explain the usage of these elements using the following example.
>>
>> Security mgt feature has a dependency on xkms bundle and also XKMS feature
>> has a dependency on xkms bundle. Ideally xkms bundle should be a part of the
>> XKMS feature and other features should import xkms feature using
>> <importFeatureDef> element. Now when you install security mgt feature, xkms
>> feature will also get installed, because it is required feature of security
>> mgt. But xkms feature may contain some other bundles which are not required
>> for Security mgt. Hence importing the complete xkms feature would not solve
>> the problem. In these cases, you can use importBundleDef element to import
>> only the xkms bundle from xkms feature.
>>
>> Each and every bundle used in Carbon based products, should belongs to a
>> SINGLE feature and dependencies on these bundles should be declared using
>> <bundleDef> element. Other features can either import complete features or
>> import bundles.
>>
>> We need to enforce this fact in our Carbon features. If not, it causes
>> issues when *patching features*. Therefore please make sure that you have
>> declared dependencies on bundles and features correctly.
>>
>> If you have any concerns on this, please let us know.
>>
>> Thanks
>> Sameera
>>
>>
>>
>> _______________________________________________
>> Carbon-dev mailing list
>> Carbon-dev@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>
>>
>
>
> --
> Senaka Fernando
> Software Engineer
> WSO2 Inc.
> E-mail: senaka AT wso2.com;  Mobile: +94 77 322 1818
>
> http://www.wso2.com/ - "Lean . Enterprise . Middleware"
>
> _______________________________________________
> Carbon-dev mailing list
> Carbon-dev@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>
>
_______________________________________________
Carbon-dev mailing list
Carbon-dev@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to