Hello

I'm going to look ahead for :
> - either manage my data sources according to your links and verify if
> it could be a valid solution but without any workaround about bundle
> headers (this headers removal seems to be some kind of lie about the
> bundle real requirements)
> - or find a way to tell Karaf how get the requirement another way from
> the wrapping service.
>
> Perhaps an opinion on these two alternative solutions ???
>

I'd personally not mix "bundle requirements" with "service requirements".
In my opinion, bundle should not be unresolved just because one service is
missing - OSGi services may come and go... But others may have different
opinion...

About the capabilities you used:


> <capability>osgi.service;objectClass=javax.jdbc.DataSource);effective:=active</capability>
>
> <capability>osgi.service;objectClass=javax.jdbc.XADataSource);effective:=active</capability>
>

These effectively mean that your "my-test-26-karaf-s-db" Karaf feature
"provides data sources" - without specifying their names... That's bringing
effectively zero information (IMO)...

I simply wouldn't treat <_removeheaders>Import-Service</_removeheaders> as
dirty hack ;)

regards
Grzegorz Grzybek

pt., 21 paź 2022 o 13:51 Ephemeris Lappis <[email protected]>
napisał(a):

> Hello again :) !
>
> Well, as you suggested,  I've tested the
> "<_removeheaders>Import-Service</_removeheaders>", and it seems to
> work.
> I suppose that removing the service import from my manifest also
> remove the check from Karaf installer, and let my bundle starts.
> Whats strange is that the OSGi service resolution is still working for
> the different services that my bundle imports.
> An explanation perhaps ?
>
> So I have now my DataSource feature with the desired blueprint (see
> attachment) and the following feature that declares dependencies for
> the DataSource wrapping :
>
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <features xmlns="http://karaf.apache.org/xmlns/features/v1.6.0";
> name="my-test-26-karaf-s-db">
>     <feature name="my-test-26-karaf-s-db-cfg" description="Fifi-T26 ::
> DB Data Source - Configuration" version="0.0.1.SNAPSHOT">
>         <details>Fifi-T26 :: DB Data Source - Configuration</details>
>         <configfile
>
> finalname="/etc/my_test_26_karaf_s_db.cfg">mvn:my.tests/my-test-26-karaf-s-db/0.0.1-SNAPSHOT/cfg/configuration</configfile>
>     </feature>
>     <feature name="my-test-26-karaf-s-db" description="Fifi-T26 :: DB"
> version="0.0.1.SNAPSHOT">
>         <details>Fifi-T26 :: DB Data Source</details>
>         <feature version="0.0.1-SNAPSHOT"
> prerequisite="true">my-test-26-karaf-s-db-cfg</feature>
>         <feature version="4.4.1"
> prerequisite="true">aries-blueprint</feature>
>         <feature prerequisite="true">transaction</feature>
>
> <bundle>mvn:org.apache.aries.transaction/org.apache.aries.transaction.wrappers/1.0.0</bundle>
>         <bundle>mvn:my.tests/my-test-26-karaf-s-db/0.0.1-SNAPSHOT</bundle>
>         <bundle>mvn:org.postgresql/postgresql/42.4.2</bundle>
>
> <capability>osgi.service;objectClass=javax.jdbc.DataSource);effective:=active</capability>
>
> <capability>osgi.service;objectClass=javax.jdbc.XADataSource);effective:=active</capability>
>     </feature>
> </features>
>
> When the feature is installed, the blueprint bundle creates the
> XADataSource, and then the wrapper takes the resulting service to
> expose a "XA aware" DataSource adding pooling and XA management.
>
> Then my Camel routes feature is installed with no missing requirement,
> and works...
>
> But I'm not sure this way is the best one.
>
> I'm going to look ahead for :
> - either manage my data sources according to your links and verify if
> it could be a valid solution but without any workaround about bundle
> headers (this headers removal seems to be some kind of lie about the
> bundle real requirements)
> - or find a way to tell Karaf how get the requirement another way from
> the wrapping service.
>
> Perhaps an opinion on these two alternative solutions ???
>
> Thanks a lot.
>
> Regards.
>
> Le ven. 21 oct. 2022 à 11:45, Grzegorz Grzybek <[email protected]> a
> écrit :
> >
> >
> >
> > pt., 21 paź 2022 o 11:30 Ephemeris Lappis <[email protected]>
> napisał(a):
> >>
> >> Hello again.
> >>
> >> Sorry for the last interrupted mail...
> >>
> >> For sure, this wrapping mechanism is a bit confusing. It was confusing
> >> for us too when we were working on it, long time ago, with Fuse (and
> >> ServiceMix too I think), looking for solutions to declare and use
> >> XADataSource while Camel components like SQL only accept simple
> >> DataSource.
> >>
> >> For Fuse, this page
> >> (
> https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html/transaction_guide/xajdbc-autoenlist
> )
> >> explains how it works, and identifies the bundle that does the magic :
> >> org.apache.aries.transaction.wrappers.
> >>
> >> I don't know exactly how the bundle comes into play in Fuse 6.3 :
> >> indeed we declare dependencies only on features connector and
> >> transaction, and the wrapper creates our DataSource proxy...
> >>
> >> Your examples from Fuse 7 are interesting, but if I understand them,
> >> the XADataSource is used explicitly as is, and not throw a simple
> >> DataSource proxy that Camel components only accept.
> >
> >
> >
> https://github.com/jboss-fuse/karaf-quickstarts/blob/7.x.redhat-7-11-x/persistence/databases/blueprints/postgresql-pax-jdbc-discovery.xml
> is indeed registering "Database-specific, non-pooling, non-enlisting
> javax.sql.XADataSource"
> > which is then picked up by pax-jdbc-config -
> https://github.com/ops4j/org.ops4j.pax.jdbc/blob/jdbc-1.5.4/pax-jdbc-config/src/main/java/org/ops4j/pax/jdbc/config/impl/Activator.java#L65-L70
> turning it into instances of
> org.ops4j.pax.jdbc.config.impl.DataSourceWrapper
> > when pax-jdbc-config tracks an instance of DataSourceFactory -
> https://github.com/ops4j/org.ops4j.pax.jdbc/blob/jdbc-1.5.4/pax-jdbc-config/src/main/java/org/ops4j/pax/jdbc/config/impl/DataSourceWrapper.java#L101
> > which are registered by for example pax-jdbc-pool-dbcp2 -
> https://github.com/ops4j/org.ops4j.pax.jdbc/blob/jdbc-1.5.4/pax-jdbc-pool-dbcp2/src/main/java/org/ops4j/pax/jdbc/pool/dbcp2/impl/Activator.java#L43
> > pax-jdbc-config creates DataSourceRegistrations -
> https://github.com/ops4j/org.ops4j.pax.jdbc/blob/jdbc-1.5.4/pax-jdbc-config/src/main/java/org/ops4j/pax/jdbc/config/impl/DataSourceWrapper.java#L103-L107
> > and finally real "DataSource" (not XADataSource) is registered -
> https://github.com/ops4j/org.ops4j.pax.jdbc/blob/jdbc-1.5.4/pax-jdbc-config/src/main/java/org/ops4j/pax/jdbc/config/impl/DataSourceRegistration.java#L93
> >
> > I know that this flow is not intuitive, but that's OSGi ;) What you
> eventually get is an OSGi service with pooling, XA-enlisting "data source"
> with interface of `javax.sql.DataSource`.
> >
> >>
> >> In our case, the same XADataSource is provided with its natural
> >> interface for the part of our code that needs it as is, and as the
> >> wrapping "XA aware" DataSource that handles automatic transaction
> >> enlistment when it's used in Camel.
> >>
> >> I can't find any example from my old works, but I think this feature
> >> was already used in old projects with ServiceMix.
> >>
> >> The question for me now, if I'm not wrong, is to find a way to make
> >> the Karaf feature resolver accept the wrapped service as a capability,
> >> or, at the opposite, avoid its checking to let it deploy and install
> >> our bundles that seem to be able to resolve the wrapping service (that
> >> what it does if the Camel bundle is already installed and the wrapper
> >> provides the service after ...
> >
> >
> > Did you try to add this to your maven-bundle-configuration to remove the
> check during resolution?
> >
> > <_removeheaders>Import-Service</_removeheaders>
> >
> > it works for me...
> >
> > regards
> > Grzegorz Grzybek
> >
> >>
> >>
> >> Thanks again.
> >>
> >> Le ven. 21 oct. 2022 à 09:48, Grzegorz Grzybek <[email protected]>
> a écrit :
> >> >
> >> > Hello
> >> >
> >> > I'm a bit lost with this aries.transaction.wrapper - I never used it
> and I'm not sure about its purpose...
> >> >
> >> > However, I can try with other source of examples. I know you're
> migrating from Fuse 6 to Karaf, but let me show you something from Fuse 7
> (which is an evolution of Fuse 6 - without fabric8, but based on Karaf 4).
> There are "karaf persistence quickstarts" here:
> https://github.com/jboss-fuse/karaf-quickstarts/tree/7.x.redhat-7-11-x/persistence
> >> > I've investigated the scenarios related to JDBC, JMS and XA and you
> can find there some readmes (see the "manual" folder) and example
> blueprints (see "databases/blueprints"). I tried to put a lot of
> explanation comments, so maybe you'll find them useful.
> >> >
> >> > I hope these help. There is even a camel-xa example (with JDBC/JPA
> and JMS) - please check
> https://github.com/jboss-fuse/karaf-quickstarts/tree/7.x.redhat-7-11-x/persistence/camel-xa
> >> >
> >> > regards
> >> > Grzegorz Grzybek
> >> >
> >> > pt., 21 paź 2022 o 09:38 Ephemeris Lappis <[email protected]>
> napisał(a):
> >> >>
> >> >> Hello.
> >> >>
> >> >> I don't really understand how I can manage my XADataSource/DataSource
> >> >> with this example, and I think the resolution exception comes from
> >> >> another reason.
> >> >>
> >> >> I think I've not been very clear at all... I'm going to try to do it
> now...
> >> >>
> >> >> In a first step of my tests, I had two features :
> >> >> - one to create a javax.PostgreSQL sql.DataSource (bundle with a
> >> >> single blueprint with a bean and a service declaration), and expose
> it
> >> >> as an OSGi service with its natural interface. The feature declares
> >> >> the capability
> "osgi.service;objectClass=javax.jdbc.DataSource);effective:=active".
> >> >> - another one with Camel routes (blueprint with a reference to a
> >> >> javax.sql.DataSource service, and Camel routes with the SQL
> >> >> component).
> >> >>
> >> >> When y install these two features, I understand that Karaf does the
> >> >> following actions :
> >> >> - the DataSource bundle is installed, its service is exposed, and the
> >> >> feature is registered for its capability.
> >> >> - as the Camel routes bundle needs the DataSource capability, Karaf
> >> >> checks it and finds successfully my previous feature as a good
> >> >> candidate, and the bundle is finally installed with ethe resolved
> >> >> services. My Camel routes get the expected javax.sql.DataSource
> object
> >> >> and all work as expected.
> >> >>
> >> >> A my new step of my tests, I have three features (that are directly
> >> >> implied in the issue) :
> >> >> - another feature that provides a JMS connection factory, using
> >> >> dependencies on ActiveMQ client, and so on : no problem with this
> one.
> >> >> - a modified version of my PostgreSQL feature that now creates a
> >> >> XADataSource (same bundle with a new bean and a
> javax.sql.XADataSource
> >> >> service). I've added a bundle in the feature
> >> >>
> (mvn:org.apache.aries.transaction/org.apache.aries.transaction.wrappers/1.0.0)
> >> >> to handle the XADataSource wrapping.
> >> >> - a modified version of my Camel routes feature, adding a reference
> on
> >> >> the JMS connection factory (no problem with that), but still with the
> >> >> javax.sql.DataSource service reference, since the SQL component uses
> >> >> this type). Routes now are transacted and mix SQL and JMS operations.
> >> >>
> >> >> Now, when I install the features, I think that Karaf does that :
> >> >> - The JMS connection factory feature is installed
> >> >> - The PostgreSQL feature too, creating explicitly the
> >> >> javax.sql.XADataSource service and the wrapping javax.sql.DataSource
> >> >> using the xa.* properties set on my service declaration (I can really
> >> >> see the two services on the Karaf shell).
> >> >> - But when the Karaf resolver processes my Camel routes feature, it
> >> >> fails on the capability checking : the javax.sql.DataSource service
> is
> >> >> probably identified, but as it's not directly exposed by my feature
> >> >> and its declared capability, but by the wrapper, the resolution
> fails,
> >> >> and Karaf refuses to install the feature.
> >> >>
> >> >> I understand that the resolution exception is raised by the Karaf
> >> >> feature resolver, not by the OSGi service management.
> >> >>
> >> >> So I've tried that to confirm my understanding :
> >> >> - Install the first version of my javax.sql.DataSource feature
> >> >> - Install the second Camel routes (SQL+JMS) version feature : this
> >> >> works since both the capability and service checking are OK. In this
> >> >> case, the Camel routes bundle is installed, started, and the
> blueprint
> >> >> and routes are all working, but using a DataSource that is not XA.
> >> >> - Replace the DataSource feature with the second version, but without
> >> >> the wrapper : now I have an XADataSource.
> >> >> - When the Camel routes bundle is refreshed, it fails because no
> >> >> javax.sql.DataSource is found.
> >> >> - Install manually the wrapper bundle : it creates its
> >> >> javax.sql.DataSource proxy over my XADataSource, exposes the service.
> >> >> - The Camel routes bundle now resolves the javax.sql.DataSource
> >> >> service (OSGi level).
> >> >> - And the routes work, using now the "XA aware" proxy.
> >> >>
> >> >> I allow myself to add JB to the conversation (please forgive me),
> >> >> since he helped me some weeks ago on issues about the Karaf
> capability
> >> >> resolver. Perhaps JB should confirm my analysis of the observed
> >> >> behaviour, and propose some solution to manage these "double
> >> >> interfaces DataSource" that are needed for our Camel transacted
> >> >> routes...
> >> >>
> >> >> I'm not sure that the wrapper bundle I've used is the best way to
> >> >> manage my XA data sources. If a feature like the Fuse's connector
> >> >> exists with this wrapping mechanism, it could probably be a best
> >> >> solution.
> >> >>
> >> >> Thanks again for all your help.
> >> >>
> >> >> Regards.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> Le ven. 21 oct. 2022 à 06:38, Grzegorz Grzybek <[email protected]>
> a écrit :
> >> >> >
> >> >> > Hello
> >> >> >
> >> >> > If you're moving from Fuse 6 to Karaf, you have to do few (or even
> more) things manually - that's why Fuse 6 did it for you in the first place
> ;)
> >> >> >
> >> >> > Karaf 4's approach to Data Sources is through much improved Pax
> JDBC project and you should rather manage your data sources using
> DataSourceFactory - that's standard OSGi service (org.osgi.service.jdbc)
> implemented by Pax JDBC. Karaf manual provides a link to examples:
> https://github.com/apache/karaf/blob/main/examples/karaf-jdbc-example/README.md
> >> >> >
> >> >> > About "missing requirement
> [my-test-26-karaf-2-routes/0.0.1.SNAPSHOT] osgi.service; effective:=active"
> that's (from my ~9 years experience with OSGi) one of the most confusing
> and discouraging things in OSGi.
> >> >> > This is an error from "bundle resolver" which prevents resolving a
> bundle because "a service" is not available.
> >> >> > What's wrong with this? because there are two "layers" or "spaces"
> mixed - bundle (module) and a service. OSGi promises you that services are
> highly dynamic, while bundles (modules) are more static. IMO preventing a
> resolution of a bundle because a service is missing (I saw cases that the
> service was being registered from this very bundle itself!) is simply wrong.
> >> >> >
> >> >> > Fortunately maven-bundle-plugin (and bnd itself) has option to
> "fix" this - I always use (especially for data source / JPA) bundles this
> header:
> >> >> >
> >> >> > <_removeheaders>Import-Service</_removeheaders>
> >> >> >
> >> >> > this way, the bundle won't contain it and (OSGi) resolver won't
> complain.
> >> >> >
> >> >> > regards
> >> >> > Grzegorz Grzybek
> >> >> >
> >> >> > czw., 20 paź 2022 o 19:28 Ephemeris Lappis <
> [email protected]> napisał(a):
> >> >> >>
> >> >> >> Hello.
> >> >> >>
> >> >> >> We are working on an old Fuse 6.3, and my current work is about
> >> >> >> porting our works from Fuse to Karaf.
> >> >> >>
> >> >> >> So,yes, I'd like to manage my DB configurations using "off the
> self"
> >> >> >> features if possible, and avoid creating hybrid ones...
> >> >> >>
> >> >> >> Do you mean the bundle I've tested and seemed to work is not the
> good
> >> >> >> one, and I should use
> >> >> >>
> org.apache.aries.transaction:org.apache.aries.transaction.jdbc:2.1.3.
> >> >> >>
> >> >> >> On Karaf 4.4.1 the connector feature seems to be poor, and if I'm
> not
> >> >> >> wrong it doesn't provide this bundle :
> >> >> >> karaf@root()> feature:info connector
> >> >> >> Feature connector 3.1.1
> >> >> >> Description:
> >> >> >>   OSGi support for JCA Connector 1.6
> >> >> >> Details:
> >> >> >>   OSGi support for JCA Connector 1.6
> >> >> >> Feature has no configuration
> >> >> >> Feature has no configuration files
> >> >> >> Feature depends on:
> >> >> >>   transaction [2,3)
> >> >> >> Feature contains followed bundles:
> >> >> >>
>  mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/1.0
> >> >> >>   mvn:org.apache.geronimo.specs/geronimo-validation_1.0_spec/1.1
> >> >> >>   mvn:org.apache.geronimo.components/geronimo-connector/3.1.4
> >> >> >> Feature has no conditionals.
> >> >> >>
> >> >> >> What should I do : add a direct dependency on the bundle, look
> for a
> >> >> >> better feature ?
> >> >> >>
> >> >> >> What's strange, is that the bundle I found seemed to work when
> >> >> >> installing it manually on a karaf instance, but something is wrong
> >> >> >> when I add it as a dependency in my DB feature. The Camel routes
> >> >> >> bundle fails with that error :
> >> >> >>
> >> >> >> Caused by: org.apache.felix.resolver.reason.ReasonException:
> Unable to
> >> >> >> resolve my-test-26-karaf-2-routes/0.0.1.SNAPSHOT: missing
> requirement
> >> >> >> [my-test-26-karaf-2-routes/0.0.1.SNAPSHOT] osgi.service;
> >> >> >> effective:=active;
> >> >> >> filter:="(&(objectClass=javax.sql.DataSource)(
> osgi.jndi.service.name=jdbc/fifi))"
> >> >> >>
> >> >> >> However, The 2 DataSource services are present, one with the
> >> >> >> javax.sql.DataSource interface and both with the right
> >> >> >> osgi.jndi.service.name=jdbc/fifi...
> >> >> >>
> >> >> >> Any idea ?
> >> >> >>
> >> >> >> Thanks for your help.
> >> >> >>
> >> >> >> Regards.
> >> >> >>
> >> >> >>
> >> >> >> Le jeu. 20 oct. 2022 à 17:57, Grzegorz Grzybek <
> [email protected]> a écrit :
> >> >> >> >
> >> >> >> > Hello
> >> >> >> >
> >> >> >> >
> >> >> >> > czw., 20 paź 2022 o 17:54 Ephemeris Lappis <
> [email protected]> napisał(a):
> >> >> >> >>
> >> >> >> >> Hello again.
> >> >> >> >>
> >> >> >> >> Looking at my old Fuse installations I found that the bundle
> that
> >> >> >> >> wraps XADatasource services is
> >> >> >> >>
> "mvn:org.apache.aries.transaction/org.apache.aries.transaction.wrappers/1.0.0".
> >> >> >> >> Installing it manually, it seems to wrap my XADataSource into
> a simple
> >> >> >> >> "XA aware" DataSource. Now I can see the 2 services :
> >> >> >> >
> >> >> >> >
> >> >> >> > Which Fuse version do you mean?
> >> >> >> >
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> [javax.sql.DataSource]
> >> >> >> >> ----------------------
> >> >> >> >>  aries.xa.aware = true
> >> >> >> >>  aries.xa.name = xa-fifi
> >> >> >> >>  aries.xa.pooling = true
> >> >> >> >>  aries.xa.poolMaxSize = 10
> >> >> >> >>  aries.xa.poolMinSize = 3
> >> >> >> >>  datasource.name = postgresql-fifi
> >> >> >> >>  osgi.jndi.service.name = jdbc/fifi
> >> >> >> >>  osgi.service.blueprint.compname = dsBean
> >> >> >> >>  service.bundleid = 124
> >> >> >> >>  service.id = 251
> >> >> >> >>  service.ranking = 1000
> >> >> >> >>  service.scope = singleton
> >> >> >> >> Provided by :
> >> >> >> >>  Fifi-T26 :: DB (124)
> >> >> >> >> Used by:
> >> >> >> >>  Fifi-T26 :: Camel (186)
> >> >> >> >>  System Bundle (0)
> >> >> >> >>
> >> >> >> >> [javax.sql.XADataSource]
> >> >> >> >> ------------------------
> >> >> >> >>  aries.xa.name = xa-fifi
> >> >> >> >>  aries.xa.pooling = true
> >> >> >> >>  aries.xa.poolMaxSize = 10
> >> >> >> >>  aries.xa.poolMinSize = 3
> >> >> >> >>  datasource.name = postgresql-fifi
> >> >> >> >>  osgi.jndi.service.name = jdbc/fifi
> >> >> >> >>  osgi.service.blueprint.compname = dsBean
> >> >> >> >>  service.bundleid = 124
> >> >> >> >>  service.id = 210
> >> >> >> >>  service.scope = bundle
> >> >> >> >> Provided by :
> >> >> >> >>  Fifi-T26 :: DB (124)
> >> >> >> >> Used by:
> >> >> >> >>  Fifi-T26 :: DB (124)
> >> >> >> >>  System Bundle (0)
> >> >> >> >>
> >> >> >> >> And my Camel routes seem to get the expected DataSource and
> run as
> >> >> >> >> expected... at least for elementary tests.
> >> >> >> >>
> >> >> >> >> So, my question is now : Instead of setting this bundle as a
> >> >> >> >> dependency of my service feature, is there an existing Karaf
> feature
> >> >> >> >> that could be more suitable to be a dependency ?
> >> >> >> >
> >> >> >> >
> >> >> >> > In Fuse 6 there's "connector" feature:
> >> >> >> >
> >> >> >> >     <feature name="connector" description="OSGi support for JCA
> Connector 1.6" version="3.1.1" resolver="(obr)">
> >> >> >> >         <details>OSGi support for JCA Connector 1.6</details>
> >> >> >> >         <feature version="[1.1,2)">transaction</feature>
> >> >> >> >         <bundle
> dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-connector_1.6_spec/1.0</bundle>
> >> >> >> >         <bundle
> dependency="true">mvn:javax.validation/validation-api/1.1.0.Final-redhat-1</bundle>
> >> >> >> >
>  <bundle>mvn:org.apache.geronimo.components/geronimo-connector/3.1.1</bundle>
> >> >> >> >         <bundle
> start-level="30">mvn:org.apache.aries.transaction/org.apache.aries.transaction.jdbc/2.1.3</bundle>
> >> >> >> >     </feature>
> >> >> >> >
> >> >> >> > And the "wrapping" is done by org.apache.aries.transaction.jdbc.
> >> >> >> >
> >> >> >> > Are you thinking about configuring it correctly in Karaf or in
> Fuse?
> >> >> >> >
> >> >> >> > regards
> >> >> >> > Grzegorz Grzybek
> >> >> >> >
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> Thanks again.
> >> >> >> >>
> >> >> >> >> Regards.
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> Le jeu. 20 oct. 2022 à 14:46, Ephemeris Lappis
> >> >> >> >> <[email protected]> a écrit :
> >> >> >> >> >
> >> >> >> >> > Hello.
> >> >> >> >> >
> >> >> >> >> > I'm trying to configure a XADataSource exposed by a bundle
> and a
> >> >> >> >> > feature. (see the attachment).
> >> >> >> >> >
> >> >> >> >> > The bundle is a single blueprint that creates the PostgreSQL
> XA
> >> >> >> >> > DataSource and exposes it as a service.
> >> >> >> >> >
> >> >> >> >> > I set Aries XA properties to let Aries wrapping my
> datasource : I hope
> >> >> >> >> > this works in my case. At the bundle level,
> >> >> >> >> >
> >> >> >> >> > The service appears like that :
> >> >> >> >> > [javax.sql.XADataSource]
> >> >> >> >> > ------------------------
> >> >> >> >> >  aries.xa.name = xa-fifi
> >> >> >> >> >  aries.xa.pooling = true
> >> >> >> >> >  aries.xa.poolMaxSize = 10
> >> >> >> >> >  aries.xa.poolMinSize = 3
> >> >> >> >> >  datasource.name = postgresql-fifi
> >> >> >> >> >  osgi.jndi.service.name = jdbc/fifi
> >> >> >> >> >  osgi.service.blueprint.compname = dsBean
> >> >> >> >> >  service.bundleid = 124
> >> >> >> >> >  service.id = 210
> >> >> >> >> >  service.scope = bundle
> >> >> >> >> >   Provided by : Fifi-T26 :: DB (124)
> >> >> >> >> >  Used by:
> >> >> >> >> >   System Bundle (0)
> >> >> >> >> >
> >> >> >> >> > My feature (see attachment), declares a non-XA DataSource
> capability,
> >> >> >> >> > what is perhaps wrong...
> >> >> >> >> >
> <capability>osgi.service;objectClass=javax.jdbc.DataSource);effective:=active</capability>
> >> >> >> >> >
> >> >> >> >> > Should I declare a double capability with XADataSource ?
> >> >> >> >> >
> >> >> >> >> > But my Camel routes bundle references a jaxa.sql.DataSource
> service
> >> >> >> >> > with the needed jndi name, but fails with this error message.
> >> >> >> >> >
> >> >> >> >> > Unable to start container for blueprint bundle
> >> >> >> >> > my-test-26-karaf-2-routes/0.0.1.SNAPSHOT due to unresolved
> >> >> >> >> > dependencies [(&(osgi.jndi.service.name
> =jdbc/fifi)(objectClass=javax.sql.DataSource))]
> >> >> >> >> >
> >> >> >> >> > The same pattern works on Red-Hat Fuse with a XADataSource
> exposed
> >> >> >> >> > service and a DataSource reference in the routes bundles,
> because
> >> >> >> >> > Aries TM is wrapping the service to auto-enlist connections
> in JTA
> >> >> >> >> > transactions...
> >> >> >> >> >
> >> >> >> >> > What's wrong here ???
> >> >> >> >> > Someone with any experience on transactions ?
> >> >> >> >> >
> >> >> >> >> > Thanks in advance.
> >> >> >> >> >
> >> >> >> >> > Regards.
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > I expect Aries to wrap ml
>

Reply via email to