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

Reply via email to