You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Charles Moulliard (JIRA)" <ji...@apache.org> on 2010/08/27 07:32:54 UTC

[jira] Issue Comment Edited: (KARAF-165) A better 'feature-assembly' plugin

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

Charles Moulliard edited comment on KARAF-165 at 8/27/10 1:32 AM:
------------------------------------------------------------------

Hi Ade,

Is this maven plugin not doing what you want -->

{code}
            <plugin>
                <groupId>org.apache.karaf.tooling</groupId>
                <artifactId>features-maven-plugin</artifactId>
                <version>${karaf.version}</version>
                <executions>
                    <execution>
                        <id>add-features-to-repo</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>add-features-to-repo</goal>
                        </goals>
                        <configuration>
                            <descriptors>
                                <descriptor>mvn:org.apache.karaf/apache-karaf/${karaf.version}/xml/features</descriptor>
                                <descriptor>mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/${servicemix.nmr.version}/xml/features</descriptor>
                                <descriptor>file:${basedir}/target/classes/camel-features.xml</descriptor>
                                <descriptor>file:${basedir}/target/classes/ode-features.xml</descriptor>
                                <descriptor>file:${basedir}/target/classes/features.xml</descriptor>
                            </descriptors>
                            <features>
                                <feature>jbi-cluster</feature>
                                <feature>web</feature>
                                <feature>cxf-nmr</feature>
                                <feature>cxf-osgi</feature>
                                <feature>camel-activemq</feature>  
                                <!-- ServiceMix components -->
                                <feature>servicemix-cxf-bc</feature>
                                <feature>servicemix-file</feature>
                                <feature>servicemix-ftp</feature>
                                <feature>servicemix-http</feature>
                                <feature>servicemix-jms</feature>
                                <feature>servicemix-mail</feature>
                                <feature>servicemix-bean</feature>
                                <feature>servicemix-camel</feature>
                                <feature>servicemix-cxf-se</feature>
                                <feature>servicemix-drools</feature>
                                <feature>servicemix-eip</feature>
                                <feature>servicemix-osworkflow</feature>
                                <feature>servicemix-quartz</feature>
                                <feature>servicemix-scripting</feature>
                                <feature>servicemix-validation</feature>
                                <feature>servicemix-saxon</feature>
                                <feature>servicemix-wsn2005</feature>
                                <feature>servicemix-snmp</feature>
                                <feature>servicemix-vfs</feature>
                                <feature>servicemix-smpp</feature>
                            </features>
                            <repository>target/features-repo</repository>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

{code}

      was (Author: cmoulliard):
    Hi Ade,

Is this maven plugin not doign what you want -->

{code}
            <plugin>
                <groupId>org.apache.karaf.tooling</groupId>
                <artifactId>features-maven-plugin</artifactId>
                <version>${karaf.version}</version>
                <executions>
                    <execution>
                        <id>add-features-to-repo</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>add-features-to-repo</goal>
                        </goals>
                        <configuration>
                            <descriptors>
                                <descriptor>mvn:org.apache.karaf/apache-karaf/${karaf.version}/xml/features</descriptor>
                                <descriptor>mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/${servicemix.nmr.version}/xml/features</descriptor>
                                <descriptor>file:${basedir}/target/classes/camel-features.xml</descriptor>
                                <descriptor>file:${basedir}/target/classes/ode-features.xml</descriptor>
                                <descriptor>file:${basedir}/target/classes/features.xml</descriptor>
                            </descriptors>
                            <features>
                                <feature>jbi-cluster</feature>
                                <feature>web</feature>
                                <feature>cxf-nmr</feature>
                                <feature>cxf-osgi</feature>
                                <feature>camel-activemq</feature>  
                                <!-- ServiceMix components -->
                                <feature>servicemix-cxf-bc</feature>
                                <feature>servicemix-file</feature>
                                <feature>servicemix-ftp</feature>
                                <feature>servicemix-http</feature>
                                <feature>servicemix-jms</feature>
                                <feature>servicemix-mail</feature>
                                <feature>servicemix-bean</feature>
                                <feature>servicemix-camel</feature>
                                <feature>servicemix-cxf-se</feature>
                                <feature>servicemix-drools</feature>
                                <feature>servicemix-eip</feature>
                                <feature>servicemix-osworkflow</feature>
                                <feature>servicemix-quartz</feature>
                                <feature>servicemix-scripting</feature>
                                <feature>servicemix-validation</feature>
                                <feature>servicemix-saxon</feature>
                                <feature>servicemix-wsn2005</feature>
                                <feature>servicemix-snmp</feature>
                                <feature>servicemix-vfs</feature>
                                <feature>servicemix-smpp</feature>
                            </features>
                            <repository>target/features-repo</repository>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

{code
  
> 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.