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