But the  filetransfoerhistoryjta datasource is there. I've verified that.
And if I install the bundle directly instead of going through the feature
it works fine and connects to the datasource. Why can it not be found when
I go through the feature but when I install the bundle directly?

/Bengt

Den ons 9 mars 2022 kl 17:10 skrev Jean-Baptiste Onofré <j...@nanthrax.net>:

> I don't think anything changed on the resolver, maybe you updated
> maven-bundle-plugin or bnd to create your bundle, and now it includes the
> requirement (whereas your bundles didn't contain requirement in MANIFEST
> before).
>
> On Wed, Mar 9, 2022 at 4:59 PM Bengt Rodehav <be...@rodehav.com> wrote:
>
>> I didn't have any problems with this using Karaf 4.3.3. Do you know if
>> something has changed? I'm using Karaf 4.3.6 now.
>>
>> /Bengt
>>
>> Den ons 9 mars 2022 kl 16:46 skrev Bengt Rodehav <be...@rodehav.com>:
>>
>>> Is there any way to stop the feature installer from using the resolver?
>>>
>>> /Bengt
>>>
>>> Den ons 9 mars 2022 kl 16:37 skrev Bengt Rodehav <be...@rodehav.com>:
>>>
>>>> Unfortunately I didn't get any extra information. I got the same as
>>>> before which is:
>>>>
>>>> 2022-03-09T16:26:02,494 | INFO  | pipe-feature:install -v
>>>> connect-filetransfer-history-db | FeaturesServiceImpl              | 18 -
>>>> org.apache.karaf.features.core - 4.3.6 | Adding features:
>>>> connect-filetransfer-history-db/[3.1.0.SNAPSHOT,3.1.0.SNAPSHOT]
>>>> 2022-03-09T16:26:02,901 | ERROR | Karaf local console user karaf |
>>>> ShellUtil                        | 70 - org.apache.karaf.shell.core - 4.3.6
>>>> | Exception caught while executing command
>>>> org.apache.felix.resolver.reason.ReasonException: Unable to resolve
>>>> root: missing requirement [root] osgi.identity;
>>>> osgi.identity=connect-filetransfer-history-db; type=karaf.feature;
>>>> version="[3.1.0.SNAPSHOT,3.1.0.SNAPSHOT]";
>>>> filter:="(&(osgi.identity=connect-filetransfer-history-db)(type=karaf.feature)(version>=3.1.0.SNAPSHOT)(version<=3.1.0.SNAPSHOT))"
>>>> [caused by: Unable to resolve
>>>> connect-filetransfer-history-db/3.1.0.SNAPSHOT: missing requirement
>>>> [connect-filetransfer-history-db/3.1.0.SNAPSHOT] osgi.identity;
>>>> osgi.identity=se.digia.connect.services.filetransfer.history-domain;
>>>> type=osgi.bundle; version="[3.1.0.SNAPSHOT,3.1.0.SNAPSHOT]";
>>>> resolution:=mandatory [caused by: Unable to resolve
>>>> se.digia.connect.services.filetransfer.history-domain/3.1.0.SNAPSHOT:
>>>> missing requirement
>>>> [se.digia.connect.services.filetransfer.history-domain/3.1.0.SNAPSHOT]
>>>> osgi.service; objectClass=javax.sql.DataSource; effective:=active;
>>>> filter:="(osgi.jndi.service.name=jdbc/filetransferhistoryjta)"]]
>>>> at
>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>> ~[?:?]
>>>> at
>>>> org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:433)
>>>> ~[?:?]
>>>> at
>>>> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:420) 
>>>> ~[?:?]
>>>> at
>>>> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:374) 
>>>> ~[?:?]
>>>> at
>>>> org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257)
>>>> ~[?:?]
>>>> at
>>>> org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399)
>>>> ~[?:?]
>>>> at
>>>> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069)
>>>> ~[?:?]
>>>> at
>>>> org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004)
>>>> ~[?:?]
>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
>>>> at
>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>>>> ~[?:?]
>>>> at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>>>> ~[?:?]
>>>> at java.lang.Thread.run(Thread.java:833) [?:?]
>>>> Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to
>>>> resolve connect-filetransfer-history-db/3.1.0.SNAPSHOT: missing requirement
>>>> [connect-filetransfer-history-db/3.1.0.SNAPSHOT] osgi.identity;
>>>> osgi.identity=se.digia.connect.services.filetransfer.history-domain;
>>>> type=osgi.bundle; version="[3.1.0.SNAPSHOT,3.1.0.SNAPSHOT]";
>>>> resolution:=mandatory [caused by: Unable to resolve
>>>> se.digia.connect.services.filetransfer.history-domain/3.1.0.SNAPSHOT:
>>>> missing requirement
>>>> [se.digia.connect.services.filetransfer.history-domain/3.1.0.SNAPSHOT]
>>>> osgi.service; objectClass=javax.sql.DataSource; effective:=active;
>>>> filter:="(osgi.jndi.service.name=jdbc/filetransferhistoryjta)"]
>>>> at
>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>> ~[?:?]
>>>> ... 12 more
>>>> Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to
>>>> resolve
>>>> se.digia.connect.services.filetransfer.history-domain/3.1.0.SNAPSHOT:
>>>> missing requirement
>>>> [se.digia.connect.services.filetransfer.history-domain/3.1.0.SNAPSHOT]
>>>> osgi.service; objectClass=javax.sql.DataSource; effective:=active;
>>>> filter:="(osgi.jndi.service.name=jdbc/filetransferhistoryjta)"
>>>> at
>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>> ~[?:?]
>>>> at
>>>> org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
>>>> ~[?:?]
>>>> ... 12 more
>>>>
>>>> I tried the "--store" option which gave me a quite large file that I
>>>> unfortunately did not understand fully. Not sure if it helps any.
>>>>
>>>> /Bengt
>>>>
>>>> Den ons 9 mars 2022 kl 16:22 skrev Bengt Rodehav <be...@rodehav.com>:
>>>>
>>>>> OK - thanks. Will try that.
>>>>>
>>>>> /Bengt
>>>>>
>>>>> Den ons 9 mars 2022 kl 16:16 skrev Jean-Baptiste Onofré <
>>>>> j...@nanthrax.net>:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> The main difference is that feature used the resolver to optimize the
>>>>>> installation. Bundle installation doesn’t use the feature resolver.
>>>>>>
>>>>>> You can use feature:install -v to get resolver output and you will
>>>>>> probably see the chain found by the resolver.
>>>>>>
>>>>>> Regards
>>>>>> JB
>>>>>>
>>>>>> Le mer. 9 mars 2022 à 15:22, Bengt Rodehav <be...@rodehav.com> a
>>>>>> écrit :
>>>>>>
>>>>>>> I have a very strange problem (in Karaf 4.3.6). I use JPA and have a
>>>>>>> bundle containing a persistence.xml in which a datasource is referenced:
>>>>>>>
>>>>>>>   <jta-data-source>osgi:service/javax.sql.DataSource/(
>>>>>>> osgi.jndi.service.name
>>>>>>> =jdbc/filetransferhistoryjta)</jta-data-source>
>>>>>>>
>>>>>>> If the datasource is not available when I install this bundle then I
>>>>>>> will get an error complaining that the datasource is not present. The
>>>>>>> strange thing is that it seems to be dependent on how I install this 
>>>>>>> bundle
>>>>>>> - directly installing the bundle or doing it via a feature. In the first
>>>>>>> case it works but in the latter it doesn't.
>>>>>>>
>>>>>>> If I first install all the prerequisites I need and then issue the
>>>>>>> following command in the Karaf shell:
>>>>>>>
>>>>>>>   bundle:install -s
>>>>>>> mvn:se.digia.connect.services.filetransfer/history-domain/3.1-SNAPSHOT
>>>>>>>
>>>>>>> Then it works fine. It even works if I remove the "-s" and start the
>>>>>>> bundle afterwards instead.
>>>>>>>
>>>>>>> However, if I use the following feature:
>>>>>>>
>>>>>>>   <feature name="connect-filetransfer-history-db"
>>>>>>> version="3.1-SNAPSHOT">
>>>>>>>
>>>>>>> <bundle>mvn:se.digia.connect.services.filetransfer/history-domain/3.1-SNAPSHOT</bundle>
>>>>>>>   </feature>
>>>>>>>
>>>>>>> And then issue the following command:
>>>>>>>
>>>>>>>   feature:install connect-filetransfer-history-db
>>>>>>>
>>>>>>> Then the datasource cannot be found and the install fails. This
>>>>>>> happens consistently. I am using Pax-Jdbc for exposing the datasource 
>>>>>>> via
>>>>>>> JNDI.
>>>>>>>
>>>>>>> First I thought that there might be a timing problem and that you
>>>>>>> have to wait a while to get the datasource published but it doesn't 
>>>>>>> seem to
>>>>>>> have anything to do with that at all. I can wait 5 minutes after 
>>>>>>> installing
>>>>>>> the datasource. I also check with the command "jndi:names" that it is
>>>>>>> published. But it still doesn't work using a feature.
>>>>>>>
>>>>>>> Can anyone tell me what is being done differently when I use a
>>>>>>> feature compared to when I just install the bundle directly? There is
>>>>>>> apparently some kind of difference.
>>>>>>>
>>>>>>> /Bengt
>>>>>>>
>>>>>>>

Reply via email to