Hey David, https://issues.apache.org/jira/browse/ARIES-1452 <https://issues.apache.org/jira/browse/ARIES-1452> with test case
Cheers, Roy > On 13 Nov 2015, at 22:33, Roy Teeuwen <[email protected]> wrote: > > Hey David, > > I will definitely do that, seeing as I now know the cause of the problem and > I can reproduce it :), thanks! > > Greets, > Roy >> On 13 Nov 2015, at 22:31, David Bosschaert <[email protected]> >> wrote: >> >> Hi Roy, >> >> On the face of it this shouldn't be a problem. Both chains boil down >> to the same origin (the framework) so this should be absolutely fine >> as far as I can see. >> >> Would it be possible to create a little test case for it and uploading >> it to the Aries JIRA [1]? Since you say that it doesn't appear with a >> plain framework maybe this has something to do with how Aries >> Subsystems drives the resolver... >> >> Cheers, >> >> David >> >> [1] https://issues.apache.org/jira/browse/ARIES >> >> On 13 November 2015 at 21:09, Roy Teeuwen <[email protected]> wrote: >>> Hey David, >>> >>> Thanks for the help so far, I seem to have found the problem for this one >>> :). >>> When looking at the mdm-parser-core’s generated manifest file I found the >>> Require-Capability header, generated by using maven-bundle-plugin 2.5.4. I >>> upgraded to 3.0.1 and that issue was resolved. >>> >>> But alas, on to the next error :(... >>> >>> 13.11.2015 22:01:23.849 *ERROR* [Thread-95] >>> org.apache.sling.extensions.threaddump.internal.Activator Uncaught >>> exception in Thread Thread[Thread-95,5,main] >>> org.osgi.service.subsystem.SubsystemException: >>> org.osgi.service.resolver.ResolutionException: Uses constraint violation. >>> Unable to resolve resource idoneus.mdm-parser-core >>> [/var/folders/h1/k9tr352j615f8jrrzh5yr5b80000gn/T/inputStreamExtract734624941409606295.zip/mdm-parser-core-1.0.0-SNAPSHOT.jar] >>> because it is exposed to package 'org.osgi.framework' from resources >>> org.apache.felix.framework [org.apache.felix.framework [0](R 0)] and >>> org.apache.felix.framework [org.apache.felix.framework [0](R 0)] via two >>> dependency chains. >>> >>> Chain 1: >>> idoneus.mdm-parser-core >>> [/var/folders/h1/k9tr352j615f8jrrzh5yr5b80000gn/T/inputStreamExtract734624941409606295.zip/mdm-parser-core-1.0.0-SNAPSHOT.jar] >>> import: >>> (&(osgi.wiring.package=org.osgi.framework)(&(version>=1.5.0)(!(version>=2.0.0)))) >>> | >>> export: osgi.wiring.package: org.osgi.framework >>> org.apache.felix.framework [org.apache.felix.framework [0](R 0)] >>> >>> Chain 2: >>> idoneus.mdm-parser-core >>> [/var/folders/h1/k9tr352j615f8jrrzh5yr5b80000gn/T/inputStreamExtract734624941409606295.zip/mdm-parser-core-1.0.0-SNAPSHOT.jar] >>> import: >>> (&(osgi.wiring.package=org.apache.sling.event.jobs.consumer)(&(version>=1.2.0)(!(version>=2.0.0)))) >>> | >>> export: osgi.wiring.package=org.apache.sling.event.jobs.consumer; >>> uses:=org.osgi.service.event >>> org.apache.sling.event [org.apache.sling.event [103](R 103.0)] >>> import: >>> (&(osgi.wiring.package=org.osgi.service.event)(version>=1.2.0)(!(version>=2.0.0))) >>> | >>> export: osgi.wiring.package=org.osgi.service.event; >>> uses:=org.osgi.framework >>> org.apache.felix.eventadmin [org.apache.felix.eventadmin [9](R 9.0)] >>> import: >>> (&(osgi.wiring.package=org.osgi.framework)(version>=1.3.0)(!(version>=2.0.0))) >>> | >>> export: osgi.wiring.package: org.osgi.framework >>> org.apache.felix.framework [org.apache.felix.framework [0](R 0)] >>> at >>> org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:395) >>> >>> Any clue in this one ? (again, when installing these two bundles, api and >>> core, without a subsystem but with the newly generated manifest from >>> maven-bundle-plugin 3.0.1, this issue does not arise) >>> >>> Thanks! >>> Roy >>> >>> >>>> On 13 Nov 2015, at 09:29, David Bosschaert <[email protected]> >>>> wrote: >>>> >>>> Hi Roy, >>>> >>>> It's looking for an provider of the osgi.service capability for the >>>> service org.apache.sling.event.jobs.JobManager. >>>> Normally those requirements are of type 'effective:=active'... as they >>>> are a hint to a provisioning system but should not influence >>>> resolution. This service is provided by Sling, but maybe it does not >>>> have the capability in its manifest (yet). By having it >>>> effective:=active the system should still resolve regardless of >>>> whether the service provider actually declares that capability. >>>> >>>> So such a requirement is either in one of your bundles (e.g. in >>>> mdm-parser-core-1.0.0-SNAPSHOT.jar) or in the subsystem? If so I >>>> wonder how that requirement was generated there? The requirement >>>> should be fine if you use the JobManager but it should have the >>>> 'effective:=active' directive, e.g. >>>> >>>> Require-Capability: osgi.service; >>>> filter:="(objectClass=com.foo.MyService)"; effective:="active" >>>> >>>> See also 134.16.2.2 of the OSGi Enterprise R6 spec [1]. >>>> >>>> Cheers, >>>> >>>> David >>>> >>>> [1] https://www.osgi.org/developer/downloads/release-6/ >>>> >>>> On 12 November 2015 at 23:23, Roy Teeuwen <[email protected]> wrote: >>>>> Hey David, >>>>> >>>>> I’m currently using the Sling launchpad 9-SNAPSHOT, and I can indeed >>>>> directly install the subsystems felix webconsole, so perfect, thanks! >>>>> >>>>> But now when I try to iinstall an esa I get following exception. Is there >>>>> anything extra I should to do get it working in Sling? >>>>> >>>>> 13.11.2015 00:18:00.060 *ERROR* [Thread-119] >>>>> org.apache.sling.extensions.threaddump.internal.Activator Uncaught >>>>> exception in Thread Thread[Thread-119,5,main] >>>>> org.osgi.service.subsystem.SubsystemException: >>>>> org.osgi.service.resolver.ResolutionException: Unable to resolve >>>>> /var/folders/h1/k9tr352j615f8jrrzh5yr5b80000gn/T/inputStreamExtract4257393115279757160.zip/mdm-parser-core-1.0.0-SNAPSHOT.jar: >>>>> missing requirement >>>>> org.apache.aries.subsystem.core.archive.RequireCapabilityRequirement: >>>>> namespace=osgi.service, attributes={}, >>>>> directives={filter=(objectClass=org.apache.sling.event.jobs.JobManager), >>>>> effective=active, resolution=mandatory, cardinality=single}, >>>>> resource=/var/folders/h1/k9tr352j615f8jrrzh5yr5b80000gn/T/inputStreamExtract4257393115279757160.zip/mdm-parser-core-1.0.0-SNAPSHOT.jar >>>>> at >>>>> org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:395) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:356) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:98) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:90) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:54) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:30) >>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:646) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:690) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:278) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:65) >>>>> at >>>>> org.apache.felix.webconsole.plugins.subsystem.internal.WebConsolePlugin$1.exec(WebConsolePlugin.java:191) >>>>> at >>>>> org.apache.felix.webconsole.plugins.subsystem.internal.WebConsolePlugin$5.run(WebConsolePlugin.java:267) >>>>> at java.lang.Thread.run(Thread.java:745) >>>>> Caused by: org.osgi.service.resolver.ResolutionException: Unable to >>>>> resolve >>>>> /var/folders/h1/k9tr352j615f8jrrzh5yr5b80000gn/T/inputStreamExtract4257393115279757160.zip/mdm-parser-core-1.0.0-SNAPSHOT.jar: >>>>> missing requirement >>>>> org.apache.aries.subsystem.core.archive.RequireCapabilityRequirement: >>>>> namespace=osgi.service, attributes={}, >>>>> directives={filter=(objectClass=org.apache.sling.event.jobs.JobManager), >>>>> effective=active, resolution=mandatory, cardinality=single}, >>>>> resource=/var/folders/h1/k9tr352j615f8jrrzh5yr5b80000gn/T/inputStreamExtract4257393115279757160.zip/mdm-parser-core-1.0.0-SNAPSHOT.jar >>>>> at >>>>> org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42) >>>>> at >>>>> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:235) >>>>> at >>>>> org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:158) >>>>> at >>>>> org.apache.aries.subsystem.core.internal.SubsystemResource.computeDependencies(SubsystemResource.java:373) >>>>> >>>>> It is generated by following plugin and is a feature, so by my knowledge >>>>> all services/bundles should just be imported/exported. The dependencies >>>>> are 3 bundles with all the rest of their dependencies already available >>>>> in the standard Sling 9-SNAPSHOT (if I install the 3 bundles separately >>>>> through the webconsole, everything works fine so): >>>>> >>>>> <plugin> >>>>> <groupId>org.apache.aries</groupId> >>>>> <artifactId>esa-maven-plugin</artifactId> >>>>> <version>1.0.0</version> >>>>> <extensions>true</extensions> >>>>> <configuration> >>>>> <generateManifest>true</generateManifest> >>>>> <startOrder>dependencies</startOrder> >>>>> <instructions> >>>>> >>>>> <Subsystem-Type>osgi.subsystem.feature</Subsystem-Type> >>>>> </instructions> >>>>> </configuration> >>>>> </plugin> >>>>> >>>>> Thanks alot! >>>>> Greets >>>>> Roy >>>>> >>>>>> On 12 Nov 2015, at 13:24, David Bosschaert <[email protected]> >>>>>> wrote: >>>>>> >>>>>> Hi Roy, >>>>>> >>>>>> That blog post references old-ish versions of the relevant bundles. >>>>>> You might want to take a look at >>>>>> http://aries.apache.org/modules/subsystems.html for a newer list of >>>>>> bundles required. >>>>>> >>>>>> Alternatively you can just use the latest Sling launchpad (9-SNAPSHOT, >>>>>> which you'd have to build yourself). It has all the deps for >>>>>> Subsystems installed. Just install the webconsole plugin on top of >>>>>> that and it should work - I just tried it and it works for me :) >>>>>> >>>>>> Cheers, >>>>>> >>>>>> David >>>>>> >>>>>> On 12 November 2015 at 11:58, Roy Teeuwen <[email protected]> wrote: >>>>>>> Hey David, >>>>>>> >>>>>>> I tried your second approach. >>>>>>> >>>>>>> I first installed subsystems on felix by following this guide: >>>>>>> >>>>>>> http://coderthoughts.blogspot.be/2014/01/osgi-subsytems-on-apache-felix.html >>>>>>> >>>>>>> <http://coderthoughts.blogspot.be/2014/01/osgi-subsytems-on-apache-felix.html> >>>>>>> >>>>>>> Afterwords I tried to install a subsystem through the webconsole, but >>>>>>> the error.log returns following exception: >>>>>>> >>>>>>> 12.11.2015 12:48:31.624 *ERROR* [Thread-65] >>>>>>> org.apache.sling.extensions.threaddump.internal.Activator Uncaught >>>>>>> exception in Thread Thread[Thread-65,5,main] >>>>>>> org.osgi.service.subsystem.SubsystemException: >>>>>>> java.net.MalformedURLException: Unknown protocol: inputstream >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:101) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:31) >>>>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:560) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:252) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.BasicSubsystem.install(BasicSubsystem.java:58) >>>>>>> at >>>>>>> org.apache.felix.webconsole.plugins.subsystem.internal.WebConsolePlugin$1.exec(WebConsolePlugin.java:191) >>>>>>> at >>>>>>> org.apache.felix.webconsole.plugins.subsystem.internal.WebConsolePlugin$5.run(WebConsolePlugin.java:267) >>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>> Caused by: java.net.MalformedURLException: Unknown protocol: inputstream >>>>>>> at java.net.URL.<init>(URL.java:620) >>>>>>> at java.net.URL.<init>(URL.java:483) >>>>>>> at java.net.URL.<init>(URL.java:432) >>>>>>> at java.net.URI.toURL(URI.java:1089) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.Location.<init>(Location.java:69) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.RawSubsystemResource.<init>(RawSubsystemResource.java:113) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.SubsystemResource.<init>(SubsystemResource.java:92) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.InstallAction.createSubsystemResource(InstallAction.java:128) >>>>>>> at >>>>>>> org.apache.aries.subsystem.core.internal.InstallAction.run(InstallAction.java:62) >>>>>>> ... 8 common frames omitted >>>>>>> Caused by: java.lang.IllegalStateException: Unknown protocol: >>>>>>> inputstream >>>>>>> at >>>>>>> org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:373) >>>>>>> at java.net.URL.<init>(URL.java:615) >>>>>>> ... 16 common frames omitted >>>>>>> >>>>>>> >>>>>>> Any idea where it’s going wrong? >>>>>>> >>>>>>> Greetings >>>>>>> Roy >>>>>>> >>>>>>>> On 12 Nov 2015, at 11:11, David Bosschaert >>>>>>>> <[email protected]> wrote: >>>>>>>> >>>>>>>> Hi Roy, >>>>>>>> >>>>>>>> You currently have a couple of options in Sling to install subsystems. >>>>>>>> >>>>>>>> 1. Directly by calling the OSGi Subsystem Service >>>>>>>> https://osgi.org/javadoc/r6/enterprise/org/osgi/service/subsystem/Subsystem.html >>>>>>>> but this requires you to create some code around it. >>>>>>>> 2. With the webconsole subsystem plugin >>>>>>>> https://svn.apache.org/repos/asf/felix/trunk/webconsole-plugins/subsystems >>>>>>>> this plugin is currently under vote for its first release, but you can >>>>>>>> build it yourself from that URL and install it into sling. That plugin >>>>>>>> looks like this: http://tinypic.com/r/2z8tbpe/8 >>>>>>>> 3. You can also feed .esa files to the OSGi Installer in sling, e.g. >>>>>>>> by putting them in the install directory... >>>>>>>> >>>>>>>> If you're just experimenting, option 2 is definitely the easiest. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> >>>>>>>> David >>>>>>>> >>>>>>>> On 12 November 2015 at 09:31, Roy Teeuwen <[email protected]> wrote: >>>>>>>>> Hey all, >>>>>>>>> >>>>>>>>> I have fetched the sling launchpad 8 from maven central and I made a >>>>>>>>> subsystem with the esa maven plugin from apache aries. Now when I >>>>>>>>> want to install it, I get a popup with the error “You cannot select a >>>>>>>>> .esa file. Try again…" >>>>>>>>> >>>>>>>>> Is this not the way to install OSGi subsystems? And would it be >>>>>>>>> possible to install this esa with the maven-bundle plugin? >>>>>>>>> >>>>>>>>> Greetings, >>>>>>>>> Roy >>>>>>>>> >>>>>>>>> >>>>>>> >>>>> >>> >
