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 >>>>>>> >>>>>>>