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

Reply via email to