Karaf
  1. Karaf
  2. KARAF-867

Inconsistent deployment behavior between bundle installer and feature installer

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Not a Problem
    • Affects Version/s: 2.2.3
    • Fix Version/s: 2.2.5, 3.0.0
    • Component/s: karaf-feature
    • Labels:
      None
    • Environment:

      Windows 7, Cygwin, Equinox as underlying OSGi framework.

      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

        Activity

        Hide
        Jamie goodyear added a comment - - edited

        I see the same error message behavior when deploying the bundle via the deploy folder as when using the osgi:install command. Happens with equinox and felix as the core.

        Error executing command: The bundle "org.apache.geronimo.specs.geronimo-j2ee-connector_1.5_spec_2.0.0 [46]" could not be resolved. Reason: Missing Constraint: Import-Package: javax.transaction.xa; version="0.0.0"
        
        Show
        Jamie goodyear added a comment - - edited I see the same error message behavior when deploying the bundle via the deploy folder as when using the osgi:install command. Happens with equinox and felix as the core. Error executing command: The bundle "org.apache.geronimo.specs.geronimo-j2ee-connector_1.5_spec_2.0.0 [46]" could not be resolved. Reason: Missing Constraint: Import-Package: javax.transaction.xa; version= "0.0.0"
        Hide
        Jamie goodyear added a comment -

        Bumping out to 2.2.5 to provide more time for investigation.

        Show
        Jamie goodyear added a comment - Bumping out to 2.2.5 to provide more time for investigation.
        Hide
        Ioannis Canellos added a comment -

        Hi Peter,

        I tried to reproduce your case and I noticed that in both cases (drop in to deploy folder and features:install) I receive the same failure:
        Unresolved constraint in bundle org.apache.geronimo.specs.geronimo-j2ee-connector_1.5_spec [65]: Unable to resolve 65.0: missing requirement [65.0] package; (package=javax.transaction.xa).

        This is expected since the connector spec requires the presence of a bundle that exports javax.transaction.xa package.

        My guess is that when you dropped the artifact in the deploy folder, your container was not empty and already contained a bundle that exports javax.transaction.xa (or had transaction feature installed).

        I am resolving this as "Not a Problem". If I misunderstood or your problem persists, please feel free to reopen it.

        Show
        Ioannis Canellos added a comment - Hi Peter, I tried to reproduce your case and I noticed that in both cases (drop in to deploy folder and features:install) I receive the same failure: Unresolved constraint in bundle org.apache.geronimo.specs.geronimo-j2ee-connector_1.5_spec [65] : Unable to resolve 65.0: missing requirement [65.0] package; (package=javax.transaction.xa). This is expected since the connector spec requires the presence of a bundle that exports javax.transaction.xa package. My guess is that when you dropped the artifact in the deploy folder, your container was not empty and already contained a bundle that exports javax.transaction.xa (or had transaction feature installed). I am resolving this as "Not a Problem". If I misunderstood or your problem persists, please feel free to reopen it.
        Hide
        Peter Gardfjäll added a comment -

        I tried to reproduce it now but I can't. When I drop the bundle (jar-file) into the deploy directory it installs but it is not resolved.
        When I try to start the bundle it indeed gives the same missing constraint error as in the feature-deployment case.
        So I'm fine with closing the issue.

        Show
        Peter Gardfjäll added a comment - I tried to reproduce it now but I can't. When I drop the bundle (jar-file) into the deploy directory it installs but it is not resolved. When I try to start the bundle it indeed gives the same missing constraint error as in the feature-deployment case. So I'm fine with closing the issue.
        Hide
        Ioannis Canellos added a comment -

        Great!

        Show
        Ioannis Canellos added a comment - Great!

          People

          • Assignee:
            Ioannis Canellos
            Reporter:
            Peter Gardfjäll
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development