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