This thread is cross-posted to the jclouds-dev list. We (jclouds) are trying to move our codebase to Java 8 and are stuck with an issue we've found in our Karaf integration that we are not able to understand.
We have our codebase compiled with Java 8, and our Karaf integration (built with Java 8 too) updated to use Karaf 4.2.0. We are able to add the generated jclouds features repo to a vanilla Karaf distribution, but after installing a feature for the first time, all subsequent attempts to install a feature, or even to uninstall a just installed one (?!), we get an error similar to the following one. Here is a complete example with a just downloaded Karaf 4.2.0: karaf@root()> feature:repo-add mvn:org.apache.jclouds.karaf/jclouds-karaf/2.2.0-SNAPSHOT/xml/features Adding feature url mvn:org.apache.jclouds.karaf/jclouds-karaf/2.2.0-SNAPSHOT/xml/features karaf@root()> feature:repo-list Repository │ URL ──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────── enterprise-4.2.0 │ mvn:org.apache.karaf.features/enterprise/4.2.0/xml/features pax-transx-0.2.0 │ mvn:org.ops4j.pax.transx/pax-transx-features/0.2.0/xml/features jclouds-2.2.0-SNAPSHOT │ mvn:org.apache.jclouds.karaf/jclouds-karaf/2.2.0-SNAPSHOT/xml/features framework-4.2.0 │ mvn:org.apache.karaf.features/framework/4.2.0/xml/features org.ops4j.pax.web-7.0.0 │ mvn:org.ops4j.pax.web/pax-web-features/7.0.0/xml/features hibernate-validator-osgi-features │ mvn:org.hibernate.validator/hibernate-validator-osgi-karaf-features/6.0.9.Final/xml/features hibernate-osgi │ mvn:org.hibernate/hibernate-osgi/5.2.9.Final/xml/karaf pax-jms-0.3.0 │ mvn:org.ops4j.pax.jms/pax-jms-features/0.3.0/xml/features org.ops4j.pax.cdi-1.0.0 │ mvn:org.ops4j.pax.cdi/pax-cdi-features/1.0.0/xml/features standard-4.2.0 │ mvn:org.apache.karaf.features/standard/4.2.0/xml/features spring-4.2.0 │ mvn:org.apache.karaf.features/spring/4.2.0/xml/features org.ops4j.pax.jdbc-1.2.0 │ mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.2.0/xml/features aries-jpa-2.6.1 │ mvn:org.apache.aries.jpa/jpa-features/2.6.1/xml/features karaf@root()> feature:install jclouds-digitalocean2 karaf@root()> feature:list | grep jclouds | grep Started jclouds-guice │ 2.2.0.SNAPSHOT │ │ Started │ jclouds-2.2.0-SNAPSHOT │ jclouds - Google Guice jclouds │ 2.2.0.SNAPSHOT │ │ Started │ jclouds-2.2.0-SNAPSHOT │ jclouds jclouds-compute │ 2.2.0.SNAPSHOT │ │ Started │ jclouds-2.2.0-SNAPSHOT │ jclouds - compute jclouds-scriptbuilder │ 2.2.0.SNAPSHOT │ │ Started │ jclouds-2.2.0-SNAPSHOT │ jclouds - scriptbuilder jclouds-api-oauth │ 2.2.0.SNAPSHOT │ │ Started │ jclouds-2.2.0-SNAPSHOT │ jclouds - API - OAuth jclouds-digitalocean2 │ 2.2.0.SNAPSHOT │ x │ Started │ jclouds-2.2.0-SNAPSHOT │ Components to access DigitalOcean v2 karaf@root()> feature:uninstall jclouds-digitalocean2 org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=jaas; type=karaf.feature; version="[4.2.0,4.2.0]"; filter:="(&(osgi.identity=jaas)(type=karaf.feature)(version>=4.2.0)(version<=4.2.0))" [caused by: Unable to resolve jaas/4.2.0: missing requirement [jaas/4.2.0] osgi.identity; osgi.identity=org.apache.karaf.jaas.modules; type=osgi.bundle; version="[4.2.0,4.2.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.karaf.jaas.modules/4.2.0: missing requirement [org.apache.karaf.jaas.modules/4.2.0] osgi.wiring.package; filter:="(osgi.wiring.package=javax.net)"]] at org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42) at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:391) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:377) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:331) at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:248) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:388) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1025) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:964) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Error executing command: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=jaas; type=karaf.feature; version="[4.2.0,4.2.0]"; filter:="(&(osgi.identity=jaas)(type=karaf.feature)(version>=4.2.0)(version<=4.2.0))" [caused by: Unable to resolve jaas/4.2.0: missing requirement [jaas/4.2.0] osgi.identity; osgi.identity=org.apache.karaf.jaas.modules; type=osgi.bundle; version="[4.2.0,4.2.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.karaf.jaas.modules/4.2.0: missing requirement [org.apache.karaf.jaas.modules/4.2.0] osgi.wiring.package; filter:="(osgi.wiring.package=javax.net)"]] karaf@root()> feature:install jclouds-aws-ec2 org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=diagnostic; type=karaf.feature; version="[4.2.0,4.2.0]"; filter:="(&(osgi.identity=diagnostic)(type=karaf.feature)(version>=4.2.0)(version<=4.2.0))" [caused by: Unable to resolve diagnostic/4.2.0: missing requirement [diagnostic/4.2.0] osgi.identity; osgi.identity=org.apache.karaf.diagnostic.core; type=osgi.bundle; version="[4.2.0,4.2.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.karaf.diagnostic.core/4.2.0: missing requirement [org.apache.karaf.diagnostic.core/4.2.0] osgi.wiring.package; filter:="(osgi.wiring.package=javax.management)"]] at org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42) at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:391) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:377) at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:331) at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:248) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:388) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1025) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:964) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Error executing command: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=diagnostic; type=karaf.feature; version="[4.2.0,4.2.0]"; filter:="(&(osgi.identity=diagnostic)(type=karaf.feature)(version>=4.2.0)(version<=4.2.0))" [caused by: Unable to resolve diagnostic/4.2.0: missing requirement [diagnostic/4.2.0] osgi.identity; osgi.identity=org.apache.karaf.diagnostic.core; type=osgi.bundle; version="[4.2.0,4.2.0]"; resolution:=mandatory [caused by: Unable to resolve org.apache.karaf.diagnostic.core/4.2.0: missing requirement [org.apache.karaf.diagnostic.core/4.2.0] osgi.wiring.package; filter:="(osgi.wiring.package=javax.management)"]] At this point, it fails to install/uninstall any feature. The relevant changes to the jclouds-karaf project are here: https://github.com/jclouds/jclouds-karaf/pull/108 Could the OSGi filter introduced in that PR be the cause of the issue? If it is could be part of the issue, why can are we able to install the feature initially? If you want to reproduce the issue locally you can build the following branches with "mvn clean install -DskipTests": 1. https://github.com/gaul/jclouds/tree/jdk1.8 2. https://github.com/andreaturli/jclouds-labs/tree/java8-guava21 3. https://github.com/andreaturli/jclouds-karaf/tree/java8-guava21 After these three repos have been built everything should be in place to install the local jclouds feature repo and reproduce the issue. Your help would be highly appreciated, I.