Re: Features Conditional on JDK version

2020-02-27 Thread Alex Soto
Thanks!



> On Feb 27, 2020, at 10:49 AM, Jean-Baptiste Onofre  wrote:
> 
> Hi,
> 
> That’s an issue in the bundle (JAXB is affected AFAIR) itself (already 
> reported). I have to implement a workaround to avoid this with JDK 9+.
> 
> About condition, they are evaluated at runtime by the resolver. Thanks to 
> that, if later you install a condition feature, then the inner resources will 
> be installed.
> 
> Regards
> JB
> 
>> Le 27 févr. 2020 à 16:34, Alex Soto > > a écrit :
>> 
>> Thank you JB,
>> 
>> I have made the changes you suggested, but the behavior is very strange; the 
>> first time I run, I get this error:
>> 
>> java.lang.ArrayIndexOutOfBoundsException: 19
>>  at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:576)
>>  at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
>>  at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
>>  at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
>>  at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
>>  at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
>>  at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
>>  at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
>>  at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
>>  at 
>> org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
>>  at java.net.URL.openStream(URL.java:1045)
>>  at 
>> org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:78)
>>  at 
>> org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
>>  at 
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>  at 
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>>  at 
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>>  at 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>  at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>  at java.lang.Thread.run(Thread.java:748)
>> java.lang.ArrayIndexOutOfBoundsException: 19
>>  at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:576)
>>  at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
>>  at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
>>  at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
>>  at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
>>  at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
>>  at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
>>  at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
>>  at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
>>  at 
>> org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
>>  at java.net.URL.openStream(URL.java:1045)
>>  at 
>> org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:78)
>>  at 
>> org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
>>  at 
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>  at 
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>>  at 
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>>  at 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>  at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>  at java.lang.Thread.run(Thread.java:748)
>> 
>> Followed by multiple errors of the kind:
>> 
>> Uses constraint violation. Unable to resolve resource .  because it is 
>> exposed to package 'javax.xml.bind' from resources jakarta.xml.bind-api 
>> [jakarta.xml.bind-api [52](R 52.0)] and org.apache.felix.framework 
>> [org.apache.felix.framework [0](R 0)] via two dependency chains.
>> 
>> 
>> However, after I exit Karaf and run it again, the errors disappear, and the 
>> bundles in the conditional are not deployed as expected.
>> All of the above happens when  building the code with Java 13 (although 
>> passing —release 1.8 to the compiler).
>> 
>> I wonder, is the condition evaluated at build time or at runtime?
>> 
>> Now, when I compile with Java 8,  I still get the Index out of bound errors 
>> from BND the first time it runs, but not the uses constraints violation 
>> errors.
>> 
>> 
>> Best regards,
>> Alex soto
>> 
>> 

Re: Features Conditional on JDK version

2020-02-27 Thread Jean-Baptiste Onofre
Hi,

That’s an issue in the bundle (JAXB is affected AFAIR) itself (already 
reported). I have to implement a workaround to avoid this with JDK 9+.

About condition, they are evaluated at runtime by the resolver. Thanks to that, 
if later you install a condition feature, then the inner resources will be 
installed.

Regards
JB

> Le 27 févr. 2020 à 16:34, Alex Soto  a écrit :
> 
> Thank you JB,
> 
> I have made the changes you suggested, but the behavior is very strange; the 
> first time I run, I get this error:
> 
> java.lang.ArrayIndexOutOfBoundsException: 19
>   at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:576)
>   at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
>   at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
>   at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
>   at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
>   at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
>   at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
>   at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
>   at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
>   at 
> org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
>   at java.net.URL.openStream(URL.java:1045)
>   at 
> org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:78)
>   at 
> org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>   at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>   at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:748)
> java.lang.ArrayIndexOutOfBoundsException: 19
>   at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:576)
>   at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
>   at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
>   at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
>   at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
>   at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
>   at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
>   at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
>   at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
>   at 
> org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
>   at java.net.URL.openStream(URL.java:1045)
>   at 
> org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:78)
>   at 
> org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>   at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>   at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:748)
> 
> Followed by multiple errors of the kind:
> 
> Uses constraint violation. Unable to resolve resource .  because it is 
> exposed to package 'javax.xml.bind' from resources jakarta.xml.bind-api 
> [jakarta.xml.bind-api [52](R 52.0)] and org.apache.felix.framework 
> [org.apache.felix.framework [0](R 0)] via two dependency chains.
> 
> 
> However, after I exit Karaf and run it again, the errors disappear, and the 
> bundles in the conditional are not deployed as expected.
> All of the above happens when  building the code with Java 13 (although 
> passing —release 1.8 to the compiler).
> 
> I wonder, is the condition evaluated at build time or at runtime?
> 
> Now, when I compile with Java 8,  I still get the Index out of bound errors 
> from BND the first time it runs, but not the uses constraints violation 
> errors.
> 
> 
> Best regards,
> Alex soto
> 
> 
> 
> 
>> On Feb 27, 2020, at 9:46 AM, Jean-Baptiste Onofre > > wrote:
>> 
>> Hi Alex,
>> 
>> Can you try this condition:
>> 
>> req:osgi.ee;filter:="(&(osgi

Re: Features Conditional on JDK version

2020-02-27 Thread Alex Soto
Thank you JB,

I have made the changes you suggested, but the behavior is very strange; the 
first time I run, I get this error:

java.lang.ArrayIndexOutOfBoundsException: 19
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:576)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
at 
org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
at java.net.URL.openStream(URL.java:1045)
at 
org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:78)
at 
org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
java.lang.ArrayIndexOutOfBoundsException: 19
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:576)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
at 
org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
at java.net.URL.openStream(URL.java:1045)
at 
org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:78)
at 
org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Followed by multiple errors of the kind:

Uses constraint violation. Unable to resolve resource .  because it is 
exposed to package 'javax.xml.bind' from resources jakarta.xml.bind-api 
[jakarta.xml.bind-api [52](R 52.0)] and org.apache.felix.framework 
[org.apache.felix.framework [0](R 0)] via two dependency chains.


However, after I exit Karaf and run it again, the errors disappear, and the 
bundles in the conditional are not deployed as expected.
All of the above happens when  building the code with Java 13 (although passing 
—release 1.8 to the compiler).

I wonder, is the condition evaluated at build time or at runtime?

Now, when I compile with Java 8,  I still get the Index out of bound errors 
from BND the first time it runs, but not the uses constraints violation errors.


Best regards,
Alex soto




> On Feb 27, 2020, at 9:46 AM, Jean-Baptiste Onofre  wrote:
> 
> Hi Alex,
> 
> Can you try this condition:
> 
> req:osgi.ee;filter:="(&(osgi.ee=JavaSE)(!(version>=1.8)))"
> 
> And also remove the dependency flag.
> 
> Regards
> JB
> 
>> Le 27 févr. 2020 à 15:42, Alex Soto > > a écrit :
>> 
>> Perhaps I am still doing something wrong, or not understanding how the 
>> condition works.
>> I have this in my features.xml:
>> 
>> 
>>  
>>  
>>  
>> req:osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=9))"
>> 
>>  > dependency="true">mvn:jakarta.xml.bind/jakarta

Re: Features Conditional on JDK version

2020-02-27 Thread Jean-Baptiste Onofre
Hi Alex,

Can you try this condition:

req:osgi.ee;filter:="(&(osgi.ee=JavaSE)(!(version>=1.8)))"

And also remove the dependency flag.

Regards
JB

> Le 27 févr. 2020 à 15:42, Alex Soto  a écrit :
> 
> Perhaps I am still doing something wrong, or not understanding how the 
> condition works.
> I have this in my features.xml:
> 
> 
>   
>   
>   
> req:osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=9))"
> 
>dependency="true">mvn:jakarta.xml.bind/jakarta.xml.bind-api/${jaxb.version}
>dependency="true">mvn:com.sun.activation/javax.activation/1.2.0
>dependency="true">wrap:mvn:org.glassfish.jaxb/txw2/${jaxb.version}
>dependency="true">mvn:com.sun.istack/istack-commons-runtime/3.0.8
>dependency="true">mvn:org.jvnet.staxex/stax-ex/1.8.1
>dependency="true">mvn:com.sun.xml.fastinfoset/FastInfoset/1.2.16
>dependency="true">wrap:mvn:org.glassfish.jaxb/jaxb-runtime/${jaxb.version}
>   
> 
> 
> But when I run on Java 8, the above bundles are deployed, but my intention is 
> the opposite. 
> Of course this causes a lot of errors. Please help.
> 
> Best regards,
> Alex soto
> 
> 
> 
> 
>> On Feb 26, 2020, at 4:21 PM, Jean-Baptiste Onofré > > wrote:
>> 
>> Thanks Guillaume, it?s what I was looking for. 
>> 
>> Regards 
>> JB
>> 
>> Le mer. 26 f?vr. 2020 ? 21:31, Guillaume Nodet > > a ?crit :
>> This should be doable using something like in the test 
>> https://github.com/apache/karaf/blob/master/features/core/src/test/resources/org/apache/karaf/features/internal/service/f06.xml#L30-L33
>>  
>> 
>> Le mer. 26 f?vr. 2020 ? 19:53, Alex Soto > > a ?crit :
>> In Features XML, is it possible to add a bundle conditionally based on JDK 
>> version?
>> 
>> 
>>  ???
>> 
>> 
>> BTW, I could not find documentation about what can be put in the condition 
>> tag.
>> I looked here https://karaf.apache.org/manual/latest/provisioning 
>>  but there is no 
>> mention of this.
>> 
>> Best regards,
>> Alex soto
>> 
>> 
>> 
>> 
>> 
>> 
>> -- 
>> 
>> Guillaume Nodet
>> 
> 



Re: Features Conditional on JDK version

2020-02-27 Thread Alex Soto
Perhaps I am still doing something wrong, or not understanding how the 
condition works.
I have this in my features.xml:





req:osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=9))"

mvn:jakarta.xml.bind/jakarta.xml.bind-api/${jaxb.version}
mvn:com.sun.activation/javax.activation/1.2.0
wrap:mvn:org.glassfish.jaxb/txw2/${jaxb.version}
mvn:com.sun.istack/istack-commons-runtime/3.0.8
mvn:org.jvnet.staxex/stax-ex/1.8.1
mvn:com.sun.xml.fastinfoset/FastInfoset/1.2.16
wrap:mvn:org.glassfish.jaxb/jaxb-runtime/${jaxb.version}



But when I run on Java 8, the above bundles are deployed, but my intention is 
the opposite. 
Of course this causes a lot of errors. Please help.

Best regards,
Alex soto




> On Feb 26, 2020, at 4:21 PM, Jean-Baptiste Onofré  wrote:
> 
> Thanks Guillaume, it?s what I was looking for. 
> 
> Regards 
> JB
> 
> Le mer. 26 f?vr. 2020 ? 21:31, Guillaume Nodet  a ?crit :
> This should be doable using something like in the test 
> https://github.com/apache/karaf/blob/master/features/core/src/test/resources/org/apache/karaf/features/internal/service/f06.xml#L30-L33
>  
> 
> Le mer. 26 f?vr. 2020 ? 19:53, Alex Soto  > a ?crit :
> In Features XML, is it possible to add a bundle conditionally based on JDK 
> version?
> 
> 
>   ???
> 
> 
> BTW, I could not find documentation about what can be put in the condition 
> tag.
> I looked here https://karaf.apache.org/manual/latest/provisioning 
>  but there is no mention 
> of this.
> 
> Best regards,
> Alex soto
> 
> 
> 
> 
> 
> 
> -- 
> 
> Guillaume Nodet
> 



Re: Features Conditional on JDK version

2020-02-26 Thread Jean-Baptiste Onofré
Thanks Guillaume, it?s what I was looking for. Regards JBLe mer. 26 f?vr. 2020 ? 21:31, Guillaume Nodet  a ?crit :This should be doable using something like in the test https://github.com/apache/karaf/blob/master/features/core/src/test/resources/org/apache/karaf/features/internal/service/f06.xml#L30-L33Le mer. 26 f?vr. 2020 ? 19:53, Alex Soto  a ?crit :In Features XML, is it possible to add a bundle conditionally based on JDK version?	???BTW, I could not find documentation about what can be put in the condition tag.I looked here https://karaf.apache.org/manual/latest/provisioning but there is no mention of this.
Best regards,Alex soto


-- Guillaume Nodet

Re: Features Conditional on JDK version

2020-02-26 Thread Jean-Baptiste Onofré
Ok that?s possible using java.se capability condition. Let me find an example. Regards JBLe mer. 26 f?vr. 2020 ? 20:49, Alex Soto  a ?crit :The use case is: I wish my solution to be able to run in various Java versions.For example, if deployed in Java 8, I do not need to provide JAXB jars, but I do for JDK11.


On Feb 26, 2020, at 2:30 PM, Jean-Baptiste Onofre  wrote:Hi Alex,Can you quickly explain what you are looking for ?You can to install a feature matching a condition, where the condition is a bundle or a capability (provided by another bundle or feature) ?RegardsJBLe 26 f?vr. 2020 ? 20:27, Alex Soto  a ?crit :Thanks JB,Can you point me to capability documentation?
Best regards,Alex soto


On Feb 26, 2020, at 2:25 PM, Jean-Baptiste Onofre  wrote:Hi,No, a condition is actually another feature.So, the content of the feature will be installed only if the condition feature is installed (or when it will be installed).In your case, you can maybe use a capability ?RegardsJBLe 26 f?vr. 2020 ? 19:53, Alex Soto  a ?crit :In Features XML, is it possible to add a bundle conditionally based on JDK version?	???BTW, I could not find documentation about what can be put in the condition tag.I looked here https://karaf.apache.org/manual/latest/provisioning but there is no mention of this.
Best regards,Alex soto




Re: Features Conditional on JDK version

2020-02-26 Thread Alex Soto
Thank you Guillaume,

I am doing something like this:





req:osgi.ee;filter:="(&(osgi.ee=JavaSE)(!(version>=9)))"

mvn:jakarta.xml.bind/jakarta.xml.bind-api/${jaxb.version}
mvn:com.sun.activation/javax.activation/1.2.0
wrap:mvn:org.glassfish.jaxb/txw2/${jaxb.version}
mvn:com.sun.istack/istack-commons-runtime/3.0.8
mvn:org.jvnet.staxex/stax-ex/1.8.1
mvn:com.sun.xml.fastinfoset/FastInfoset/1.2.16
wrap:mvn:org.glassfish.jaxb/jaxb-runtime/${jaxb.version}



Not sure yet if it is working correctly. Testing...

Best regards,
Alex soto




> On Feb 26, 2020, at 3:31 PM, Guillaume Nodet  wrote:
> 
> This should be doable using something like in the test 
> https://github.com/apache/karaf/blob/master/features/core/src/test/resources/org/apache/karaf/features/internal/service/f06.xml#L30-L33
>  
> 
> Le mer. 26 févr. 2020 à 19:53, Alex Soto  > a écrit :
> In Features XML, is it possible to add a bundle conditionally based on JDK 
> version?
> 
> 
>   ???
> 
> 
> BTW, I could not find documentation about what can be put in the condition 
> tag.
> I looked here https://karaf.apache.org/manual/latest/provisioning 
>  but there is no mention 
> of this.
> 
> Best regards,
> Alex soto
> 
> 
> 
> 
> 
> 
> -- 
> 
> Guillaume Nodet
> 



Re: Features Conditional on JDK version

2020-02-26 Thread Guillaume Nodet
This should be doable using something like in the test
https://github.com/apache/karaf/blob/master/features/core/src/test/resources/org/apache/karaf/features/internal/service/f06.xml#L30-L33

Le mer. 26 févr. 2020 à 19:53, Alex Soto  a écrit :

> In Features XML, is it possible to add a bundle conditionally based on JDK
> version?
>
> 
> ???
> 
>
> BTW, I could not find documentation about what can be put in the condition
> tag.
> I looked here https://karaf.apache.org/manual/latest/provisioning but
> there is no mention of this.
>
> Best regards,
> Alex soto
>
>
>
>
>

-- 

Guillaume Nodet


Re: Features Conditional on JDK version

2020-02-26 Thread Alex Soto
The use case is: I wish my solution to be able to run in various Java versions.
For example, if deployed in Java 8, I do not need to provide JAXB jars, but I 
do for JDK11.



> On Feb 26, 2020, at 2:30 PM, Jean-Baptiste Onofre  wrote:
> 
> Hi Alex,
> 
> Can you quickly explain what you are looking for ?
> 
> You can to install a feature matching a condition, where the condition is a 
> bundle or a capability (provided by another bundle or feature) ?
> 
> Regards
> JB
> 
>> Le 26 févr. 2020 à 20:27, Alex Soto > > a écrit :
>> 
>> Thanks JB,
>> 
>> Can you point me to capability documentation?
>> 
>> 
>> Best regards,
>> Alex soto
>> 
>> 
>> 
>> 
>>> On Feb 26, 2020, at 2:25 PM, Jean-Baptiste Onofre >> > wrote:
>>> 
>>> Hi,
>>> 
>>> No, a condition is actually another feature.
>>> 
>>> So, the content of the feature will be installed only if the condition 
>>> feature is installed (or when it will be installed).
>>> 
>>> In your case, you can maybe use a capability ?
>>> 
>>> Regards
>>> JB
>>> 
 Le 26 févr. 2020 à 19:53, Alex Soto >>> > a écrit :
 
 In Features XML, is it possible to add a bundle conditionally based on JDK 
 version?
 
 
???
 
 
 BTW, I could not find documentation about what can be put in the condition 
 tag.
 I looked here https://karaf.apache.org/manual/latest/provisioning 
  but there is no 
 mention of this.
 
 Best regards,
 Alex soto
 
 
 
 
>>> 
>> 
> 



Re: Features Conditional on JDK version

2020-02-26 Thread Jean-Baptiste Onofre
Hi Alex,

Can you quickly explain what you are looking for ?

You can to install a feature matching a condition, where the condition is a 
bundle or a capability (provided by another bundle or feature) ?

Regards
JB

> Le 26 févr. 2020 à 20:27, Alex Soto  a écrit :
> 
> Thanks JB,
> 
> Can you point me to capability documentation?
> 
> 
> Best regards,
> Alex soto
> 
> 
> 
> 
>> On Feb 26, 2020, at 2:25 PM, Jean-Baptiste Onofre > > wrote:
>> 
>> Hi,
>> 
>> No, a condition is actually another feature.
>> 
>> So, the content of the feature will be installed only if the condition 
>> feature is installed (or when it will be installed).
>> 
>> In your case, you can maybe use a capability ?
>> 
>> Regards
>> JB
>> 
>>> Le 26 févr. 2020 à 19:53, Alex Soto >> > a écrit :
>>> 
>>> In Features XML, is it possible to add a bundle conditionally based on JDK 
>>> version?
>>> 
>>> 
>>> ???
>>> 
>>> 
>>> BTW, I could not find documentation about what can be put in the condition 
>>> tag.
>>> I looked here https://karaf.apache.org/manual/latest/provisioning 
>>>  but there is no 
>>> mention of this.
>>> 
>>> Best regards,
>>> Alex soto
>>> 
>>> 
>>> 
>>> 
>> 
> 



Re: Features Conditional on JDK version

2020-02-26 Thread Alex Soto
Thanks JB,

Can you point me to capability documentation?


Best regards,
Alex soto




> On Feb 26, 2020, at 2:25 PM, Jean-Baptiste Onofre  wrote:
> 
> Hi,
> 
> No, a condition is actually another feature.
> 
> So, the content of the feature will be installed only if the condition 
> feature is installed (or when it will be installed).
> 
> In your case, you can maybe use a capability ?
> 
> Regards
> JB
> 
>> Le 26 févr. 2020 à 19:53, Alex Soto > > a écrit :
>> 
>> In Features XML, is it possible to add a bundle conditionally based on JDK 
>> version?
>> 
>> 
>>  ???
>> 
>> 
>> BTW, I could not find documentation about what can be put in the condition 
>> tag.
>> I looked here https://karaf.apache.org/manual/latest/provisioning 
>>  but there is no 
>> mention of this.
>> 
>> Best regards,
>> Alex soto
>> 
>> 
>> 
>> 
> 



Re: Features Conditional on JDK version

2020-02-26 Thread Jean-Baptiste Onofre
Hi,

No, a condition is actually another feature.

So, the content of the feature will be installed only if the condition feature 
is installed (or when it will be installed).

In your case, you can maybe use a capability ?

Regards
JB

> Le 26 févr. 2020 à 19:53, Alex Soto  a écrit :
> 
> In Features XML, is it possible to add a bundle conditionally based on JDK 
> version?
> 
> 
>   ???
> 
> 
> BTW, I could not find documentation about what can be put in the condition 
> tag.
> I looked here https://karaf.apache.org/manual/latest/provisioning 
>  but there is no mention 
> of this.
> 
> Best regards,
> Alex soto
> 
> 
> 
>