I dont think there is a difference. Probably it just does not always happen.
I guess it is like this one:
https://issues.apache.org/jira/browse/KARAF-4173

Christian


On 16.12.2015 17:54, Ed Welch wrote:
Just to make sure it wasn't something with my karaf, i extracted a clean 
version from tarball and ran the commands as you listed:

feature:repo-add activemq 5.13.0
feature:repo-add camel 2.16.1
feature:install transaction activemq-camel

then

karaf@root()> bundle:diag
Apache Aries Transaction Blueprint (58)
---------------------------------------
Status: GracePeriod
Blueprint
12/16/15 11:52 AM
Missing dependencies:
(objectClass=javax.transaction.TransactionManager)


Apache Aries Transaction Blueprint (59)
---------------------------------------
Status: GracePeriod
Blueprint
12/16/15 11:52 AM
Missing dependencies:
(objectClass=javax.transaction.TransactionManager)


I'm not sure what might be different between our two setups which would matter?


On Wed, 16 Dec 2015 17:33:46 +0100, Christian Schneider 
<[email protected]> wrote:

I just tried this:
feature:repo-add activemq 5.13.0
feature:repo-add camel 2.16.1
feature:install transaction activemq-camel

After this I have two bundles offering jta:
74 | Active   |  10 | 1.1.1                 |
org.apache.geronimo.specs.geronimo-jta_1.1_spec
   55 | Active   |  80 | 1.2                   | javax.transaction-api

exports | grep javax.transaction
javax.transaction.xa                                   | 0.0.0
| 0   | org.eclipse.osgi
javax.transaction.xa                                   | 1.1.0
| 74  | org.apache.geronimo.specs.geronimo-jta_1.1_spec
javax.transaction.xa                                   | 1.2.0
| 55  | javax.transaction-api
javax.transaction                                      | 0.0.0
| 0   | org.eclipse.osgi
javax.transaction                                      | 1.1.0
| 74  | org.apache.geronimo.specs.geronimo-jta_1.1_spec
javax.transaction                                      | 1.2.0
| 55  | javax.transaction-api

I do not get an error using diag but the presence of several jta APIs
alone will create problems for as it is not sure which bundle binds to
which API.


This is strange as in the camel feature the dependency=true flag is set
for the jta bundle. So I would expect it to be not installed.
So not sure but it may indeed be a bug.

Christian


On 16.12.2015 17:02, Ed Welch wrote:
I *think* I may have found a bug, and I think it's with karaf based on this 
behavior I'm seeing:

If I install the transaction and activemq-camel features one at a time manually 
from console: No Problem

vs

If I install them as dependent features of another feature: Problem


Background:

Running Karaf 4.0.3, activemq 5.13.0 and camel 2.16.1 on Linux (Ubuntu)

I can install the karaf transaction and activemq-camel features manually at 
command line and everything seems fine, output of bundle:diag is empty

However.... if I have a simple feature like:

<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"; 
name="test-feature-1.0">
      <feature description="test" version="1.0" name="test-feature">
          <feature>transaction</feature>
          <feature>activemq-camel</feature>
      </feature>
</features>


When i install that feature, bundle-diag will output:
karaf@root()> bundle:diag
Apache Aries Transaction Blueprint (98)
---------------------------------------
Status: GracePeriod
Blueprint
12/16/15 10:46 AM
Missing dependencies:
(objectClass=javax.transaction.TransactionManager)


Apache Aries Transaction Blueprint (99)
---------------------------------------
Status: GracePeriod
Blueprint
12/16/15 10:46 AM
Missing dependencies:
(objectClass=javax.transaction.TransactionManager)



It looks like what's happening is activemq-camel installs dependent feature 
camel-jms, which looks like:

<feature name='camel-jms' version='${project.version}' resolver='(obr)' 
start-level='50'>
      <feature version='${spring-version-range-karaf}'>spring</feature>
      <bundle 
dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
      <bundle 
dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
      <bundle 
dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo-jms-spec-version}</bundle>
      <feature version='${spring-version-range-karaf}'>spring-jms</feature>
      <feature version='${project.version}'>camel-core</feature>
      <bundle>mvn:org.apache.camel/camel-jms/${project.version}</bundle>
    </feature>

i think it's the inclusion of this bundle which is causing some issue
<bundle 
dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>

when the feature finishes loading, I see a whole bunch of wiring to this 
geronimo jta package,

which is something I did not see when the features are installed separately.

Not sure, but this maybe related to javax.transaction being in the boot 
delegation section?  (I don't totally understand what boot delegation does)

Did I find a bug in the karaf feature resolver?

Thanks,
Ed

--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com



--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to