Never mind, I found part of the answer inside ~/.m2/repository and realize
that the BND instructions are placed as file names somehow, and not into a
bnd file, so line breaks doesn't work.

Making it into a single line, the exception changes to

Caused by: java.net.MalformedURLException: Invalid syntax for instruction
[Require-Capability:
osgi.extender;filter:="(osgi.extender=osgi.serviceloader.processor)",osgi.serviceloader;filter:="(osgi.serviceloader=javax.json.spi.JsonProvider)";cardinality:=multiple]


even though I have copied that verbatim from
https://blog.osgi.org/2013/02/javautilserviceloader-in-osgi.html


Any thoughts?


On Thu, Aug 15, 2019 at 10:56 AM Niclas Hedhman <[email protected]> wrote:

>
> Gang,
> I got the exception below, when using wrappedBundle() to add handling for
> Javax JSON API service loader, without rewriting the original bundle
> manifest.
>
> Does anyone understand what is happening and what can be done about it?
>
> Code is
>
> wrappedBundle( mavenBundle( "javax.json", "javax.json-api", "1.1" ).getURL() )
>     .overwriteManifest( WrappedUrlProvisionOption.OverwriteMode.MERGE )
>     .instructions( "Require-Capability: osgi.extender;\\\n"
>                    + "    
> filter:=\"(osgi.extender=osgi.serviceloader.processor)\",\\\n"
>                    + "  osgi.serviceloader;\\\n"
>                    + "    
> filter:=\"(osgi.serviceloader=javax.json.spi.JsonProvider)\";\\\n"
>                    + "    cardinality:=multiple" ),
> mavenBundle( "org.apache.johnzon", "johnzon-core", "1.1.1" ),
>
>
>
> Exception in thread "main" org.ops4j.pax.exam.TestContainerException:
> Problem starting test container.
> at
> org.ops4j.pax.exam.nat.internal.NativeTestContainer.start(NativeTestContainer.java:212)
> at
> com.spicter.niclas1.test.integration.PaxExamStarter.main(PaxExamStarter.java:26)
> Caused by: org.osgi.framework.BundleException: Unable to cache bundle:
> wrap:mvn:javax.json/javax.json-api/1.1$overwrite=MERGE&Require-Capability:
> osgi.extender;\
>     filter:="(osgi.extender=osgi.serviceloader.processor)",\
>   osgi.serviceloader;\
>     filter:="(osgi.serviceloader=javax.json.spi.JsonProvider)";\
>     cardinality:=multiple
> at org.apache.felix.framework.Felix.installBundle(Felix.java:3013)
> at
> org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:167)
> at
> org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:140)
> at
> org.ops4j.pax.exam.nat.internal.NativeTestContainer.installAndStartBundles(NativeTestContainer.java:340)
> at
> org.ops4j.pax.exam.nat.internal.NativeTestContainer.start(NativeTestContainer.java:209)
> ... 1 more
> Caused by: java.io.IOException: Error resolving artifact
> javax.json:javax.json-api:jar:1.1$overwrite=MERGE&Require-Capability:
> osgi.extender;\
>     filter:="(osgi.extender=osgi.serviceloader.processor)",\
>   osgi.serviceloader;\
>     filter:="(osgi.serviceloader=javax.json.spi.JsonProvider)";\
>     cardinality:=multiple: Could not transfer artifact
> javax.json:javax.json-api:jar:1.1$overwrite=MERGE&Require-Capability:
> osgi.extender;\
>     filter:="(osgi.extender=osgi.serviceloader.processor)",\
>   osgi.serviceloader;\
>     filter:="(osgi.serviceloader=javax.json.spi.JsonProvider)";\
>     cardinality:=multiple from/to central (http://repo1.maven.org/maven2/):
> /home/niclas/.m2/repository/javax/json/javax.json-api/1.1$overwrite=MERGE&Require-Capability:
> osgi.extender;\
>     filter:="(osgi.extender=osgi.serviceloader.processor)",\
>   osgi.serviceloader;\
>     filter:="(osgi.serviceloader=javax.json.spi.JsonProvider)";\
>
> cardinality:=multiple/javax.json-api-1.1$overwrite=MERGE&Require-Capability:
> osgi.extender;\
>     filter:="(osgi.extender=osgi.serviceloader.processor)",\
>   osgi.serviceloader;\
>     filter:="(osgi.serviceloader=javax.json.spi.JsonProvider)";\
>     cardinality:=multiple.jar.part.lock (File name too long)
> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:626)
> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:570)
> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:548)
> at
> org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:523)
> at
> org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123)
> at org.ops4j.net.URLUtils.prepareInputStream(URLUtils.java:180)
> at
> org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.java:83)
> at
> org.apache.felix.framework.util.SecureAction.getURLConnectionInputStream(SecureAction.java:525)
> at
> org.apache.felix.framework.cache.JarRevision.initialize(JarRevision.java:166)
>
> --
> Niclas Hedhman, Software Developer
> http://polygene.apache.org - New Energy for Java
>


-- 
Niclas Hedhman, Software Developer
http://polygene.apache.org - New Energy for Java

-- 
-- 
------------------
OPS4J - http://www.ops4j.org - [email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ops4j/CADmm%2BKekF925UtMYXQw%3D7LvPYgy2N6F7vQUmBROMq8LakZw2wQ%40mail.gmail.com.

Reply via email to