I wanted to follow up on this, was going to file a Jira. I don't know if anyone else was able to recreate the issue I'm seeing, I don't *think* this is related to the environment or other setup I'm using, yet Christian wasn't able to reproduce this, and it is 100% reproducible for me.
On Wed, 16 Dec 2015 18:00:40 +0100, Christian Schneider <[email protected]> wrote: > 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
