Details
Description
We start our application by deploying a feature file into the deploy folder of Karaf. This "startup" feature file contains only a minimal feature configuration:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <features name="HOMER Core StartUp" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0"> <repository>mvn:at.ac.ait.hbs.homer/at.ac.ait.hbs.homer.core.features.core/1.2.30-SNAPSHOT/xml/features</repository> <feature name="homer-core-startup" description="HOMER Core StartUp" version="1.2.30-SNAPSHOT" install="auto"> <feature version="1.2.30-SNAPSHOT">homer-core</feature> </feature> </features>
When Karaf is started up (with the "clean" param) it results in an error but all the necessary bundles seem to be loaded correctly:
org.apache.karaf.deployer.features[org.apache.karaf.deployer.features.FeatureDeploymentListener] : Unable to install deployed features for bundle: homer-core-startup.xml - 0.0.0 java.lang.IllegalStateException: Invalid BundleContext. at org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:511) at org.apache.felix.framework.BundleContextImpl.getDataFile(BundleContextImpl.java:488) at org.apache.karaf.deployer.features.FeatureDeploymentListener.getPropertiesFile(FeatureDeploymentListener.java:152) at org.apache.karaf.deployer.features.FeatureDeploymentListener.saveProperties(FeatureDeploymentListener.java:140) at org.apache.karaf.deployer.features.FeatureDeploymentListener.bundleChanged(FeatureDeploymentListener.java:244) at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:913) at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:834) at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1143) at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:55) at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:102) at java.lang.Thread.run(Thread.java:744)
When deleting the startup feature file and adding the feature to featuresBoot it results in a different error but the bundles also seem to be loaded correctly:
org.apache.karaf.features.core[org.apache.karaf.features.internal.service.BootFeaturesInstaller] : Error installing boot features org.apache.karaf.features.internal.util.MultiException: Error restarting bundles at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:844) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1079) at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:975) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Suppressed: org.osgi.framework.BundleException: Activator start error in bundle org.apache.felix.metatype [55]. at org.apache.felix.framework.Felix.activateBundle(Felix.java:2270) at org.apache.felix.framework.Felix.startBundle(Felix.java:2138) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1189) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:836) ... 6 more Caused by: java.lang.IllegalStateException: Unknown protocol: mvn at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:482) at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:474) at java.net.URL.toExternalForm(URL.java:921) at java.net.URL.toString(URL.java:907) at java.lang.ClassLoader.defineClassSourceLocation(ClassLoader.java:676) at java.lang.ClassLoader.defineClass(ClassLoader.java:797) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2350) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2134) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1526) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1399) at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4471) at org.apache.felix.framework.Felix.activateBundle(Felix.java:2215) ... 11 more Suppressed: org.osgi.framework.BundleException: Activator start error in bundle org.apache.karaf.services.eventadmin [77]. at org.apache.felix.framework.Felix.activateBundle(Felix.java:2270) at org.apache.felix.framework.Felix.startBundle(Felix.java:2138) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1189) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:836) ... 6 more Caused by: java.lang.IllegalStateException: Unknown protocol: mvn at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:482) at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:474) at java.net.URL.toExternalForm(URL.java:921) at java.net.URL.toString(URL.java:907) at java.lang.ClassLoader.defineClassSourceLocation(ClassLoader.java:676) at java.lang.ClassLoader.defineClass(ClassLoader.java:797) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2350) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2134) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1526) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1399) at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4471) at org.apache.felix.framework.Felix.activateBundle(Felix.java:2215) ... 11 more
The mentioned feature can be found at http://dev.arcsmed.at/nexus/content/repositories/homer.core-snapshots/ under mvn:at.ac.ait.hbs.homer/at.ac.ait.hbs.homer.core.features.core/1.2.30-SNAPSHOT/xml/features
The custom distribution can be found under http://dev.arcsmed.at/nexus/content/repositories/homer.core-snapshots/at/ac/ait/hbs/homer/at.ac.ait.hbs.homer.core.distribution.assembly/1.2.30-SNAPSHOT/at.ac.ait.hbs.homer.core.distribution.assembly-1.2.30-20151015.140016-3.zip