I attach the pom.xml for my assembly project and the corresponding features
XML. It relies on other projects and other feature XML's so you won't be
able to just build using this. Maybe it can give you a hint though.
Actually I attach two feature XML's since they both fail.
/Bengt
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>se.digia.skistory</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>assembly</artifactId>
<packaging>pom</packaging>
<name>skistory :: assembly</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>features-maven-plugin</artifactId>
<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.assemblies.features/standard/${karaf-version}/xml/features</descriptor>
<descriptor>mvn:org.apache.karaf.assemblies.features/enterprise/${karaf-version}/xml/features</descriptor>
<descriptor>mvn:org.apache.camel.karaf/apache-camel/${camel-version}/xml/features</descriptor>
<descriptor>mvn:se.digia.seco/karaf/${seco-version}/xml/features</descriptor>
<descriptor>mvn:se.digia.skistory/karaf/${project.version}/xml/features</descriptor>
</descriptors>
<features>
<feature>skist-feature-repos</feature>
<feature>skist-all</feature>
</features>
<repository>${project.build.directory}/dist/apache-karaf-${karaf-version}/system</repository>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>skistory</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<filters>
<filter>${project.basedir}/src/main/filters/prod.properties</filter>
</filters>
<descriptors>
<descriptor>${project.basedir}/src/main/descriptors/skistory.xml</descriptor>
</descriptors>
<finalName>skistory-${pom.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<assemblyId />
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>dist</id>
<phase>package</phase>
<configuration>
<tasks>
<unzip src="${project.build.directory}/skistory-${project.version}.zip" dest="${project.build.directory}/dist/apache-karaf-${karaf-version}" />
<zip basedir="${project.build.directory}/dist" destfile="${project.build.directory}/skistory-dist-${project.version}.zip" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.karaf.assemblies.features</groupId>
<artifactId>standard</artifactId>
<version>${karaf-version}</version>
<classifier>features</classifier>
<type>xml</type>
</dependency>
<dependency>
<groupId>org.apache.karaf.assemblies.features</groupId>
<artifactId>enterprise</artifactId>
<version>${karaf-version}</version>
<classifier>features</classifier>
<type>xml</type>
</dependency>
<dependency>
<groupId>org.apache.camel.karaf</groupId>
<artifactId>apache-camel</artifactId>
<version>${camel-version}</version>
<classifier>features</classifier>
<type>xml</type>
</dependency>
<dependency>
<groupId>se.digia.seco</groupId>
<artifactId>karaf</artifactId>
<version>${seco-version}</version>
<classifier>features</classifier>
<type>xml</type>
</dependency>
<dependency>
<groupId>se.digia.skistory</groupId>
<artifactId>karaf</artifactId>
<version>${project.version}</version>
<classifier>features</classifier>
<type>xml</type>
</dependency>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<features>
<repository>mvn:se.digia.skistory/karaf/${project.version}/xml/features</repository>
<feature name="skist-feature-repos" version="${project.version}">
<!-- <bundle>mvn:se.digia.connect/karaf/${connect-version}/xml/features</bundle>-->
<bundle>mvn:org.apache.camel.karaf/apache-camel/${camel-version}/xml/features</bundle>
<bundle>mvn:se.digia.skistory/karaf/${project.version}/xml/features</bundle>
</feature>
<feature name="skist-application-without-isolation" version="${project.version}">
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/${servicemix-asm-version}</bundle>
<bundle>mvn:org.apache.aries.proxy/org.apache.aries.proxy/${aries-version}</bundle>
<!-- <bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint/${aries-version}</bundle>-->
<bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint/0.3.1</bundle>
</feature>
<feature name="aries-jta" version="${project.version}">
<bundle>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-spec-jta-version}</bundle>
<bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.blueprint/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.wrappers/${aries-version}</bundle>
</feature>
<feature name="aries-jpa" version="${project.version}">
<bundle>mvn:org.apache.geronimo.specs/geronimo-jpa_2.0_spec/${geronimo-spec-jpa-version}</bundle>
<bundle>mvn:org.apache.aries/org.apache.aries.util/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.api/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.blueprint.aries/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jpa/org.apache.aries.jpa.container.context/${aries-version}</bundle>
</feature>
<feature name="aries-jndi" version="${project.version}">
<bundle>mvn:org.apache.aries.jndi/org.apache.aries.jndi.api/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jndi/org.apache.aries.jndi.core/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jndi/org.apache.aries.jndi.rmi/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jndi/org.apache.aries.jndi.url/${aries-version}</bundle>
<bundle>mvn:org.apache.aries.jndi/org.apache.aries.jndi.legacy.support/${aries-version}</bundle>
</feature>
<feature name="openjpa" version="${project.version}">
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/${servicemix-cglib-version}</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${servicemix-serp-version}</bundle>
<bundle>mvn:org.apache.openjpa/openjpa/${openjpa-version}</bundle>
<bundle>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
<bundle>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
<bundle>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
<!-- START Seems to be required... -->
<bundle>mvn:org.apache.geronimo.specs/geronimo-servlet_3.0_spec/1.0</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/${servicemix-commons-dbcp-version}</bundle>
<bundle>mvn:org.apache.geronimo.specs/geronimo-annotation_1.1_spec/1.0</bundle>
<!-- END Seems to be required... -->
</feature>
<feature name="skist-all" version="${project.version}">
<feature version="${camel-version}">camel-core</feature>
<feature version="${camel-version}">camel-spring</feature>
<feature version="${project.version}">openjpa</feature>
<feature version="${project.version}">skist-application-without-isolation</feature>
<feature version="${project.version}">aries-jta</feature>
<feature version="${project.version}">aries-jpa</feature>
<feature version="${project.version}">aries-jndi</feature>
<bundle>mvn:se.digia.skistory/domain/${project.version}</bundle>
<bundle>mvn:mysql/mysql-connector-java/${mysql-connector-version}</bundle>
<bundle>mvn:se.digia.skistory/datasource/${project.version}</bundle>
<bundle>mvn:se.digia.skistory/processor/${project.version}</bundle>
</feature>
</features>
<?xml version="1.0" encoding="UTF-8"?>
<features>
<repository>mvn:se.digia.seco/karaf/${project.version}/xml/features</repository>
<feature name="seco-ipojo" version="${project.version}">
<bundle>mvn:org.apache.felix/org.apache.felix.ipojo/${ipojo-version}</bundle>
<bundle>mvn:org.apache.felix/org.apache.felix.ipojo.webconsole/${ipojo-webconsole-version}</bundle>
</feature>
<!-- These bundles must be packaged with Karaf -->
<feature name="seco-prereq" version="${project.version}">
<!--feature version="${pax-web-version}">pax-web</feature-->
<feature version="${pax-web-version}">http</feature>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/${servicemix-cglib-version}</bundle>
<bundle>mvn:org.apache.karaf.assemblies.features/standard/${karaf-version}/xml/features</bundle>
<bundle>mvn:org.apache.karaf.assemblies.features/enterprise/${karaf-version}/xml/features</bundle>
<!--bundle>mvn:org.ops4j.pax.web/features/${pax-web-version}/xml/features</bundle-->
<bundle>mvn:se.digia.seco/karaf/${project.version}/xml/features</bundle>
<feature version="${project.version}">seco-nteventlog-provider</feature>
</feature>
<feature name="seco-notification-service" version="${project.version}">
<bundle>mvn:se.digia.seco.notification/notification-service/${project.version}</bundle>
</feature>
<feature name="seco-notification-log-provider" version="${project.version}">
<bundle>mvn:se.digia.seco.notification/log-provider/${project.version}</bundle>
</feature>
<feature name="seco-nteventlog-provider" version="${project.version}">
<bundle>mvn:se.digia.seco.notification/nteventlog-provider/${project.version}</bundle>
</feature>
<feature name="seco-service" version="${project.version}">
<bundle>mvn:se.digia.seco.service/service-api/${project.version}</bundle>
</feature>
<feature name="seco-web" version="${project.version}">
<feature version="${project.version}">seco-ipojo</feature>
<feature version="${project.version}">seco-service</feature>
<bundle>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
<bundle>mvn:com.google.code.gson/gson/${gson-version}</bundle>
<bundle>mvn:se.digia.seco.web/web-api/${project.version}</bundle>
<bundle>mvn:se.digia.seco.web/web-console/${project.version}</bundle>
<bundle>mvn:se.digia.seco.web/web-service-plugin/${project.version}</bundle>
</feature>
<feature name="seco-all" version="${project.version}">
<feature version="${project.version}">seco-notification-service</feature>
<feature version="${project.version}">seco-notification-log-provider</feature>
<feature version="${project.version}">seco-service</feature>
<feature version="${project.version}">seco-web</feature>
</feature>
</features>