karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adrian Trenaman (JIRA)" <j...@apache.org>
Subject [jira] Commented: (KARAF-165) A better 'feature-assembly' plugin
Date Fri, 27 Aug 2010 13:11:53 GMT

    [ https://issues.apache.org/jira/browse/KARAF-165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903395#action_12903395

Adrian Trenaman commented on KARAF-165:

Thanks for the input Charles! 

I actually do want to be able to recursively pull down whatever dependencies I need: I just
want to pull down the features in my own feature file, and then just dependent features from
any other repositories. So, if I have a camel route in a bundle that needs camel-core and
camel-jms, then I'd like to pull down these features as well with ease. 

I get your point that, right now, I have full control over naming my repository. Thing is,
my goal is to make this REALLY SIMPLE. So, if we can get away without having to ask that the
developer makes a decision about naming, but instead uses a well known convention by default,
then I'm all for it. 

Love the hack about adding the feature repository as a feature! Still though, for me, it is
a hack and our user shouldn't have to do it. 

Please understand my motivations. I know that right now I can do everything I want to with
a whole load of Maven plugins! That's exactly the problem though: I just want this assembly
packaging to be easier, and not require screenfuls of Maven to acheive.  

> A better 'feature-assembly' plugin
> ----------------------------------
>                 Key: KARAF-165
>                 URL: https://issues.apache.org/jira/browse/KARAF-165
>             Project: Karaf
>          Issue Type: New Feature
>    Affects Versions: 2.2.0
>            Reporter: Adrian Trenaman
> Create an improved Maven feature-assembly plugin. Right now, to make a feature I've got
to add almost a hundred lines of Maven verbage to my pom.xml in order to assemble a feature.
I've got to use the attach-artifact goal of the org.codehaus.mojo/build-helper-maven-plugin
to deploy my features file into Maven. I've got to use the add-features-to-repo goal from
the org.apache.karaf.tooling/features-maven-plugin to suck down all the dependent bundles.
I've got to a whole load of other stuff to perform the packaging to .tar.gz and .zip. The
problem here is that I'm using a whole load of generic plugins to do a very specific job,
and I'm having to tell the plugins what to do instead of telling them what I want done. I'd
prefer to have a single more declarative plugin to do this. It might look like this:  
> {code:xml}
> 			<plugin>
> 				<groupId>org.apache.karaf.tooling</groupId>
> 				<artifactId>feature-assembly-plugin</artifactId>
> 				<version>2.2.0</version>
> 				<executions>
> 					<execution>
> 						<id>create-repo</id>
> 						<phase>generate-resources</phase>
> 						<goals>
> 							<goal>create-repo</goal>
> 						</goals>
> 						<configuration>
> 							<!-- Specify the feature file to use. -->
> 							<featureFile>file:${basedir}/target/classes/features.xml</featureFile>
> 							<!-- Specify what features to include. This is actually optional: if no features
> 								are specified, then include all features in the file by default. --> 
> 							<features>
> 								<feature>feature-a</feature>
> 							</features>
> 						</configuration>
> 					</execution>
> 				</executions>
> 			</plugin>
> {code}
> The plugin should produce a .tar.gz and .zip file, containing the feature descriptor
(and all dependent descriptors) and all bundles (and dependent bundles)in a Maven-style directory,
similar to the system/ directory currently used in Karaf. Note that this plugin doesn't need
you to list out all the feature repositories / descriptors that your feature file may transitively
include - it will detect these dependencies at runtime and work out the details.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message