Details
Description
The (drop-in) deployment behavior differs between the bundle installer and the feature installer.
To be more specific, the problem occurs when trying to deploy the bundle mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.5_spec/2.0.0,
which declares an import on package javax.transaction.xa. When dropping the bundle jar file into the deploy directory it resolves and fires up as expected.
However, when dropping the following feature descriptor
<features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0" >
<feature name="j2ee_connector_feature" version="1.0.0-SNAPSHOT" >
<bundle>mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.5_spec/2.0.0</bundle>
</feature>
</features>
which should be semantically equivalent to dropping the jar file into the deploy folder, the installation fails with the following error :
[ERROR] 2011-09-09T08:04:12.829 [Framework Event Dispatcher:org.apache.karaf.deployer.features.FeatureDeploymentListener:bundleChanged:138] Unable to install features
java.lang.Exception: Could not start bundle mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.5_spec/2.0.0 in feature(s) j2ee_connector_feature-1.0.0-SNAPSHOT: The bundle "org.apache.geronimo.specs.geronimo-j2ee-connector_1.5_spec_2.0.0 [43]" could not be resolved. Reason: Missing Constraint: Import-Package: javax.transaction.xa; version="0.0.0"
at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:353)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_27]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_27]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_27]
at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_27]
at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50)[7:org.apache.aries.proxy:0.3.0]
at org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31)[7:org.apache.aries.proxy:0.3.0]
at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78)[7:org.apache.aries.proxy:0.3.0]
at $Proxy1.installFeatures(Unknown Source)[11:org.apache.karaf.features.core:2.2.3]
at org.apache.karaf.deployer.features.FeatureDeploymentListener.bundleChanged(FeatureDeploymentListener.java:133)[31:org.apache.karaf.deployer.features:2.2.3]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:919)[osgi-3.6.2.R36x_v20110210.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)[osgi-3.6.2.R36x_v20110210.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)[osgi-3.6.2.R36x_v20110210.jar:]
Caused by: org.osgi.framework.BundleException: The bundle "org.apache.geronimo.specs.geronimo-j2ee-connector_1.5_spec_2.0.0 [43]" could not be resolved. Reason: Missing Constraint: Import-Package: javax.transaction.xa; version="0.0.0"
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1317)[osgi-3.6.2.R36x_v20110210.jar:]
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1301)[osgi-3.6.2.R36x_v20110210.jar:]
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:319)[osgi-3.6.2.R36x_v20110210.jar:]
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)[osgi-3.6.2.R36x_v20110210.jar:]
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276)[osgi-3.6.2.R36x_v20110210.jar:]
at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:350)
... 12 more