rougeSE opened a new issue, #2195: URL: https://github.com/apache/karaf/issues/2195
I have a project that is generating karaf features, some of the dependencies that we use have their own dependencies that are not compatible with OSGI, so the generated feature file utilizes the wrap protocol to expose those dependencies within OSGI. When trying to generate the karaf assemble with karaf-maven-plugin, there are errors with regards to missing requirements that I have found no way around. ` [ERROR] Failed to execute goal org.apache.karaf.tooling:karaf-maven-plugin:4.4.5:assembly (default-assembly) on project test-karaf-assembly: Unable to build assembly: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=wrap; type=karaf.feature; version=0; filter:="(&(osgi.identity=wrap)(type=karaf.feature)(version>=0.0.0))" -> [Help 1] ` The **feature** being generated is using CXF as an example with a pom as follows ``` xml <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>test-karaf-feature</artifactId> <version>1.0.0</version> <packaging>feature</packaging> <properties> <karaf.version>4.4.5</karaf.version> </properties> <dependencies> <!-- Example dependencies to be converted to bundles --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.3.9</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.karaf.tooling</groupId> <artifactId>karaf-maven-plugin</artifactId> <version>${karaf.version}</version> <extensions>true</extensions> </plugin> <plugin> <!-- Version 3.X of the install plugin doesn't seem compatible with the feature packaging of the karaf-maven-plugin resulting in error unless we specify the allowIncompleteProjects=true--> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <configuration> <allowIncompleteProjects>true</allowIncompleteProjects> </configuration> </plugin> <plugin> <!-- Version 3.X of the deploy plugin doesn't seem compatible with the feature packaging of the karaf-maven-plugin resulting in error unless we specify the allowIncompleteProjects=true--> <artifactId>maven-deploy-plugin</artifactId> <configuration> <allowIncompleteProjects>true</allowIncompleteProjects> </configuration> </plugin> </plugins> </build> </project> ``` The **assembly** is being generated with the following pom ``` xml <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.raytheon.eclipse.portal</groupId> <artifactId>portal-parent</artifactId> <version>${revision}${changelist}</version> </parent> <artifactId>test-karaf-assembly</artifactId> <packaging>karaf-assembly</packaging> <properties> <karaf.version>4.4.5</karaf.version> </properties> <dependencies> <dependency> <groupId>org.apache.karaf.features</groupId> <artifactId>framework</artifactId> <version>${karaf.version}</version> <type>kar</type> </dependency> <dependency> <groupId>org.apache.karaf.features</groupId> <artifactId>standard</artifactId> <version>${karaf.version}</version> <classifier>features</classifier> <type>xml</type> <scope>runtime</scope> </dependency> <dependency> <groupId>com.example</groupId> <artifactId>test-karaf-feature</artifactId> <version>1.0.0</version> <classifier>features</classifier> <type>xml</type> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.karaf.tooling</groupId> <artifactId>karaf-maven-plugin</artifactId> <version>${karaf.version}</version> <extensions>true</extensions> <configuration> <finalName>${project.artifactId}</finalName> <installedBundles> <installedBundle>${additional.bundle}</installedBundle> </installedBundles> <bootFeatures> <feature>bundle</feature> <feature>config</feature> <feature>diagnostic</feature> <feature>feature</feature> <feature>jaas</feature> <feature>shell</feature> <feature>log</feature> <feature>management</feature> <feature>package</feature> <feature>shell-compat</feature> <feature>ssh</feature> <feature>system</feature> <feature>wrap</feature> </bootFeatures> <archiveZip>false</archiveZip> </configuration> </plugin> </plugins> </build> </project> ``` ### Workaround Attempts Tried to resolve by creating a /src/main/feature/feature.xml template that included the karaf feature repository and enabling the **enableGeneration** option. src/main/feature/feature.xml ``` xml <features name="${project.artificatId}" xmlns="http://karaf.apache.org/xmlns/features/v1.6.0"> <repository>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</repository> <feature name="${project.artifactId}" version="${project.version}"> <feature>wrap</feature> <!-- plugin will add bundles here --> </feature> </features> ``` Which resulted in this error during the assembly ` [ERROR] Failed to execute goal [32morg.apache.karaf.tooling:karaf-maven-plugin:4.4.5:assembly (default-assembly) on project test-karaf-assembly Unable to build assembly: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=wrap; type=karaf.feature; version=0; filter:="(&(osgi.identity=wrap)(type=karaf.feature)(version>=0.0.0))" [caused by: Unable to resolve wrap/2.6.14: missing requirement [wrap/2.6.14] osgi.identity; osgi.identity=pax-url-wrap; type=karaf.feature; version="[2.6.14,2.6.14]" [caused by: Unable to resolve pax-url-wrap/2.6.14: missing requirement [pax-url-wrap/2.6.14] osgi.identity; osgi.identity=org.ops4j.pax.url.wrap; type=osgi.bundle; version="[2.6.14,2.6.14]"; resolution:=mandatory [caused by: Unable to resolve org.ops4j.pax.url.wrap/2.6.14: missing requirement [org.ops4j.pax.url.wrap/2.6.14] osgi.wiring.package; filter:="(&(osgi.wiring.package=org.osgi.service.log)(version>=1.3.0)(!(version>=2.0.0)))"]]] -> [Help 1] ` I suppose this might have worked if the wrap feature had declared the pax-logging-api bundle but it did not. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
