[ https://issues.apache.org/jira/browse/KARAF-1390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Topping updated KARAF-1390: --------------------------------- Attachment: (was: k1390.patch) > Embedded features should have POM dependencies on the projects they represent > ----------------------------------------------------------------------------- > > Key: KARAF-1390 > URL: https://issues.apache.org/jira/browse/KARAF-1390 > Project: Karaf > Issue Type: Improvement > Components: karaf-feature > Affects Versions: 3.0.0 > Reporter: Brian Topping > Assignee: Jean-Baptiste Onofré > Attachments: k1390.patch > > > The logic in karaf-maven-plugin:features-generate-descriptor looks at > dependencies of the current project and will add project dependencies as > either {{<bundle>}} or {{<feature>}} elements to a {{<feature>}} whose name > matches the name of the project (or a new one if none exists). There are two > problems when dealing with features in group o.a.k.assemblies: > # The features are created by hand using features.xml templates in > src/main/feature > # The POMs for these features do not have dependencies on the bundles that > they reference > This limits functionality in features-generate-descriptor that would > otherwise avoid adding bundles that are already a a part of a feature that > the project depends on. > For instance: > # Create a project that depends on spring-core and attaches a features.xml to > a bundle with the plugin defaults. > # A {{<features>}} file should be generated with one {{<feature>}} element. > Save the output. > # Now, copy that output to {{src/main/feature}} and remove the bundles that > were generated for it. Add a reference to a standard Karaf feature (i.e. > {{<feature name="spring"/>}}). > # Add this dependency as the first dependency in the project POM: > {code} > <dependency> > <groupId>org.apache.karaf.assemblies.features</groupId> > <artifactId>standard</artifactId> > <version>2.2.6</version> <!-- use whatever version here --> > <classifier>features</classifier> > <type>xml</type> > <scope>provided</scope> > </dependency> > {code} > At this point, when we do a build, the bundle references spring-core as a > bundle, even though we added a {{<feature name="spring"/>}} above. > The problem is that o.a.k.assemblies.features:standard does not have any > dependencies, and because the features files themselves have insufficient > data to create an artifact coordinate, it's difficult for the plugin to > authoritatively know which version should be included in the generation. > The primary piece of this solution then is to have the top-level dependencies > referenced in the POM for the features. This is by default in projects that > actually create a bundle, but it needs to be done for features-only projects. > The next is a small patch for the plugin. I'm in the process of putting > these together. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira