You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Per-Erik Svensson <pe...@2c8.com> on 2019/05/24 08:31:06 UTC
How to setup felix to enable OSGi DS Annotations
Hi,
We have a product running Felix with SCR (and some other felix-services like fileinstall), using it partly as a plugin-mechanism and mostly to handle our own internal modules. This means all our modules have a service component xml-file which I'm now looking to "remove" through the use of OSGi DS Annotations. As I understand it, SCR implements the spec but I'm not able to get it to work. The bundle I'm trying to install throws the following error my way
missing requirement [failing-bundle [46](R 46.0)] osgi.extender; (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0))) Unresolved requirements: [[failing-bundle [46](R 46.0)] osgi.extender; (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))]
which according to some internet searches means that I don't have a proper DS-implementation? Or have I misunderstood this?
1. Version of felix framework is 6.0.0
2. Version of SCR is 2.1.12
3. The failing bundle is built with maven-bundle-plugin version 4.1.0
When I look at the manifest of the failing bundle, it has the following require-capability
Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))",osgi.service;filter:="(objectClass=se.conciliate.extensions.ui.Shell)";effective:=active,osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
And looking at SCR it has the following provide-capability
Provide-Capability: osgi.extender;osgi.extender="osgi.component";uses:="org.osgi.service.component";version:Version="1.4",osgi.service;objectClass:List<String>="org.osgi.service.component.runtime.ServiceComponentRuntime";uses:="org.osgi.service.component.runtime"
Can anyone give any hints as to what I'm doing wrong. As I understand it, SCR should provide the required capability (version ranges seem to check out too)?
Best regards,
Per-Erik Svensson
Re: How to setup felix to enable OSGi DS Annotations
Posted by Davi Baldin Tavares <da...@gmail.com>.
Per-Erik, I’m not very familiar with SCR. I’ve tried deploying these bundles and I had no luck before.
My guess these JARs are required for building bundles compatible with SCR. If you go to use Annotations, annotations are only used in the build process to generate xml descriptor files.
I’ve started with 6.0.0 and today I’m 6.0.2. No change at my code have been required...
Regards,
Davi
> On 24 May 2019, at 08:47, Per-Erik Svensson <pe...@2c8.com> wrote:
>
> Hi,
>
> Thanks! I'll try with the 6.0.2 version of the framework and 2.1.16 of SCR then. Have there been changes made in these versions to support DS Annotations? I thought that was part of OSGi Compendium Release 7 and implemented by SCR since 2.1.0?
>
> Can anyone say what the other SCR modules do since some of them have names indicating that I may need them?
>
> SCR (Declarative Services)
> SCR Annotations - I'm guessing this is the "old" non-standard SCR annotations
> SCR bnd Plugin
> SCR Compat (Declarative Services) - Compatibility with what?
> SCR DS Annotations - Is this not needed by the runtime to make DS Annotations work?
> SCR Ext Anno
> SCR Generator
>
> Best regards
> Per-Erik Svensson
>
> -----Original Message-----
> From: Davi Baldin Tavares <da...@gmail.com>
> Sent: 24 May 2019 12:48
> To: users@felix.apache.org
> Subject: Re: How to setup felix to enable OSGi DS Annotations
>
> Hi, I’ve Ds running at my setup.
>
> These are the bundles required for me to working
>
> START LEVEL 1
> ID|State |Level|Name
> 0|Active | 0|System Bundle (6.0.2)|6.0.2
> 26|Active | 1|JLine Bundle (3.7.0)|3.7.0
> 27|Active | 1|Apache Log4j API (2.11.2)|2.11.2
> 28|Active | 1|Apache Log4j Core (2.11.2)|2.11.2
> 29|Active | 1|Apache Log4j SLF4J Binding (2.11.2)|2.11.2
> 32|Active | 1|Apache Felix Bundle Repository (2.0.10)|2.0.10
> 33|Active | 1|Apache Felix Configuration Admin Service (1.9.12)|1.9.12
> 34|Active | 1|Apache Felix EventAdmin (1.5.0)|1.5.0
> 35|Active | 1|Apache Felix File Install (3.6.4)|3.6.4
> 36|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
> 37|Active | 1|Apache Felix Gogo JLine Shell (1.1.0)|1.1.0
> 38|Active | 1|Apache Felix Gogo Runtime (1.1.0)|1.1.0
> 39|Active | 1|Apache Felix Log Service (1.2.0)|1.2.0
> 40|Active | 1|Apache Felix Declarative Services (2.1.16)|2.1.16
> 41|Active | 1|org.osgi:org.osgi.util.function (1.1.0.201802012106)|1.1.0.201802012106
> 42|Active | 1|org.osgi:org.osgi.util.promise (1.1.1.201810101357)|1.1.1.201810101357
> 44|Active | 1|slf4j-api (1.7.25)|1.7.25
>
> Osgi.util.function and promise I’ve downloaded from maven central repository.
>
> Because I use Eclipse to build, org.osgi.service.component.annotations is optional (just for build)
>
> Manifest-Version: 1.0
> Bundle-ManifestVersion: 2
> Bundle-Name: Siteview :: Plugins :: XXX
> Bundle-SymbolicName: plugin.nmap;singleton:=true
> Bundle-Version: 1.0.0
> Automatic-Module-Name: plugin.unix
> Bundle-RequiredExecutionEnvironment: JavaSE-1.8
> Bundle-ClassPath: .
> Bundle-Vendor: Vendor
> Require-Bundle: io.vendor.siteview.api;bundle-version="1.0.0",
> io.vendor.siteview.plugins;bundle-version="1.0.1"
> Import-Package: javax.xml.parsers,
> org.osgi.framework,
> org.osgi.service.component.annotations;version="1.3.0";resolution:=optional,
> org.slf4j;version="1.7.2",
> org.w3c.dom,
> org.xml.sax
> Service-Component: OSGI-INF/plugin.MyPluginClass.xml
>
>
> Davi.
>
>
>> On 24 May 2019, at 05:31, Per-Erik Svensson <pe...@2c8.com> wrote:
>>
>> Hi,
>>
>> We have a product running Felix with SCR (and some other
>> felix-services like fileinstall), using it partly as a
>> plugin-mechanism and mostly to handle our own internal modules. This
>> means all our modules have a service component xml-file which I'm now
>> looking to "remove" through the use of OSGi DS Annotations. As I
>> understand it, SCR implements the spec but I'm not able to get it to
>> work. The bundle I'm trying to install throws the following error my
>> way
>>
>> missing requirement [failing-bundle [46](R 46.0)] osgi.extender;
>> (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))
>> Unresolved requirements: [[failing-bundle [46](R 46.0)] osgi.extender;
>> (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))]
>>
>> which according to some internet searches means that I don't have a proper DS-implementation? Or have I misunderstood this?
>>
>>
>> 1. Version of felix framework is 6.0.0 2. Version of SCR is 2.1.12
>> 3. The failing bundle is built with maven-bundle-plugin version 4.1.0
>>
>> When I look at the manifest of the failing bundle, it has the
>> following require-capability
>> Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))",osgi.service;filter:="(objectClass=se.conciliate.extensions.ui.Shell)";effective:=active,osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
>>
>> And looking at SCR it has the following provide-capability
>>
>> Provide-Capability: osgi.extender;osgi.extender="osgi.component";uses:="org.osgi.service.component";version:Version="1.4",osgi.service;objectClass:List<String>="org.osgi.service.component.runtime.ServiceComponentRuntime";uses:="org.osgi.service.component.runtime"
>>
>> Can anyone give any hints as to what I'm doing wrong. As I understand it, SCR should provide the required capability (version ranges seem to check out too)?
>>
>> Best regards,
>> Per-Erik Svensson
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
RE: How to setup felix to enable OSGi DS Annotations
Posted by Per-Erik Svensson <pe...@2c8.com>.
Hi,
Thanks! I'll try with the 6.0.2 version of the framework and 2.1.16 of SCR then. Have there been changes made in these versions to support DS Annotations? I thought that was part of OSGi Compendium Release 7 and implemented by SCR since 2.1.0?
Can anyone say what the other SCR modules do since some of them have names indicating that I may need them?
SCR (Declarative Services)
SCR Annotations - I'm guessing this is the "old" non-standard SCR annotations
SCR bnd Plugin
SCR Compat (Declarative Services) - Compatibility with what?
SCR DS Annotations - Is this not needed by the runtime to make DS Annotations work?
SCR Ext Anno
SCR Generator
Best regards
Per-Erik Svensson
-----Original Message-----
From: Davi Baldin Tavares <da...@gmail.com>
Sent: 24 May 2019 12:48
To: users@felix.apache.org
Subject: Re: How to setup felix to enable OSGi DS Annotations
Hi, I’ve Ds running at my setup.
These are the bundles required for me to working
START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (6.0.2)|6.0.2
26|Active | 1|JLine Bundle (3.7.0)|3.7.0
27|Active | 1|Apache Log4j API (2.11.2)|2.11.2
28|Active | 1|Apache Log4j Core (2.11.2)|2.11.2
29|Active | 1|Apache Log4j SLF4J Binding (2.11.2)|2.11.2
32|Active | 1|Apache Felix Bundle Repository (2.0.10)|2.0.10
33|Active | 1|Apache Felix Configuration Admin Service (1.9.12)|1.9.12
34|Active | 1|Apache Felix EventAdmin (1.5.0)|1.5.0
35|Active | 1|Apache Felix File Install (3.6.4)|3.6.4
36|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
37|Active | 1|Apache Felix Gogo JLine Shell (1.1.0)|1.1.0
38|Active | 1|Apache Felix Gogo Runtime (1.1.0)|1.1.0
39|Active | 1|Apache Felix Log Service (1.2.0)|1.2.0
40|Active | 1|Apache Felix Declarative Services (2.1.16)|2.1.16
41|Active | 1|org.osgi:org.osgi.util.function (1.1.0.201802012106)|1.1.0.201802012106
42|Active | 1|org.osgi:org.osgi.util.promise (1.1.1.201810101357)|1.1.1.201810101357
44|Active | 1|slf4j-api (1.7.25)|1.7.25
Osgi.util.function and promise I’ve downloaded from maven central repository.
Because I use Eclipse to build, org.osgi.service.component.annotations is optional (just for build)
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Siteview :: Plugins :: XXX
Bundle-SymbolicName: plugin.nmap;singleton:=true
Bundle-Version: 1.0.0
Automatic-Module-Name: plugin.unix
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: .
Bundle-Vendor: Vendor
Require-Bundle: io.vendor.siteview.api;bundle-version="1.0.0",
io.vendor.siteview.plugins;bundle-version="1.0.1"
Import-Package: javax.xml.parsers,
org.osgi.framework,
org.osgi.service.component.annotations;version="1.3.0";resolution:=optional,
org.slf4j;version="1.7.2",
org.w3c.dom,
org.xml.sax
Service-Component: OSGI-INF/plugin.MyPluginClass.xml
Davi.
> On 24 May 2019, at 05:31, Per-Erik Svensson <pe...@2c8.com> wrote:
>
> Hi,
>
> We have a product running Felix with SCR (and some other
> felix-services like fileinstall), using it partly as a
> plugin-mechanism and mostly to handle our own internal modules. This
> means all our modules have a service component xml-file which I'm now
> looking to "remove" through the use of OSGi DS Annotations. As I
> understand it, SCR implements the spec but I'm not able to get it to
> work. The bundle I'm trying to install throws the following error my
> way
>
> missing requirement [failing-bundle [46](R 46.0)] osgi.extender;
> (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))
> Unresolved requirements: [[failing-bundle [46](R 46.0)] osgi.extender;
> (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))]
>
> which according to some internet searches means that I don't have a proper DS-implementation? Or have I misunderstood this?
>
>
> 1. Version of felix framework is 6.0.0 2. Version of SCR is 2.1.12
> 3. The failing bundle is built with maven-bundle-plugin version 4.1.0
>
> When I look at the manifest of the failing bundle, it has the
> following require-capability
> Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))",osgi.service;filter:="(objectClass=se.conciliate.extensions.ui.Shell)";effective:=active,osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
>
> And looking at SCR it has the following provide-capability
>
> Provide-Capability: osgi.extender;osgi.extender="osgi.component";uses:="org.osgi.service.component";version:Version="1.4",osgi.service;objectClass:List<String>="org.osgi.service.component.runtime.ServiceComponentRuntime";uses:="org.osgi.service.component.runtime"
>
> Can anyone give any hints as to what I'm doing wrong. As I understand it, SCR should provide the required capability (version ranges seem to check out too)?
>
> Best regards,
> Per-Erik Svensson
Re: How to setup felix to enable OSGi DS Annotations
Posted by Davi Baldin Tavares <da...@gmail.com>.
Hi, I’ve Ds running at my setup.
These are the bundles required for me to working
START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (6.0.2)|6.0.2
26|Active | 1|JLine Bundle (3.7.0)|3.7.0
27|Active | 1|Apache Log4j API (2.11.2)|2.11.2
28|Active | 1|Apache Log4j Core (2.11.2)|2.11.2
29|Active | 1|Apache Log4j SLF4J Binding (2.11.2)|2.11.2
32|Active | 1|Apache Felix Bundle Repository (2.0.10)|2.0.10
33|Active | 1|Apache Felix Configuration Admin Service (1.9.12)|1.9.12
34|Active | 1|Apache Felix EventAdmin (1.5.0)|1.5.0
35|Active | 1|Apache Felix File Install (3.6.4)|3.6.4
36|Active | 1|Apache Felix Gogo Command (1.0.2)|1.0.2
37|Active | 1|Apache Felix Gogo JLine Shell (1.1.0)|1.1.0
38|Active | 1|Apache Felix Gogo Runtime (1.1.0)|1.1.0
39|Active | 1|Apache Felix Log Service (1.2.0)|1.2.0
40|Active | 1|Apache Felix Declarative Services (2.1.16)|2.1.16
41|Active | 1|org.osgi:org.osgi.util.function (1.1.0.201802012106)|1.1.0.201802012106
42|Active | 1|org.osgi:org.osgi.util.promise (1.1.1.201810101357)|1.1.1.201810101357
44|Active | 1|slf4j-api (1.7.25)|1.7.25
Osgi.util.function and promise I’ve downloaded from maven central repository.
Because I use Eclipse to build, org.osgi.service.component.annotations is optional (just for build)
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Siteview :: Plugins :: XXX
Bundle-SymbolicName: plugin.nmap;singleton:=true
Bundle-Version: 1.0.0
Automatic-Module-Name: plugin.unix
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: .
Bundle-Vendor: Vendor
Require-Bundle: io.vendor.siteview.api;bundle-version="1.0.0",
io.vendor.siteview.plugins;bundle-version="1.0.1"
Import-Package: javax.xml.parsers,
org.osgi.framework,
org.osgi.service.component.annotations;version="1.3.0";resolution:=optional,
org.slf4j;version="1.7.2",
org.w3c.dom,
org.xml.sax
Service-Component: OSGI-INF/plugin.MyPluginClass.xml
Davi.
> On 24 May 2019, at 05:31, Per-Erik Svensson <pe...@2c8.com> wrote:
>
> Hi,
>
> We have a product running Felix with SCR (and some other felix-services like fileinstall), using it partly as a plugin-mechanism and mostly to handle our own internal modules. This means all our modules have a service component xml-file which I'm now looking to "remove" through the use of OSGi DS Annotations. As I understand it, SCR implements the spec but I'm not able to get it to work. The bundle I'm trying to install throws the following error my way
>
> missing requirement [failing-bundle [46](R 46.0)] osgi.extender; (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0))) Unresolved requirements: [[failing-bundle [46](R 46.0)] osgi.extender; (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))]
>
> which according to some internet searches means that I don't have a proper DS-implementation? Or have I misunderstood this?
>
>
> 1. Version of felix framework is 6.0.0
> 2. Version of SCR is 2.1.12
> 3. The failing bundle is built with maven-bundle-plugin version 4.1.0
>
> When I look at the manifest of the failing bundle, it has the following require-capability
> Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))",osgi.service;filter:="(objectClass=se.conciliate.extensions.ui.Shell)";effective:=active,osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"
>
> And looking at SCR it has the following provide-capability
>
> Provide-Capability: osgi.extender;osgi.extender="osgi.component";uses:="org.osgi.service.component";version:Version="1.4",osgi.service;objectClass:List<String>="org.osgi.service.component.runtime.ServiceComponentRuntime";uses:="org.osgi.service.component.runtime"
>
> Can anyone give any hints as to what I'm doing wrong. As I understand it, SCR should provide the required capability (version ranges seem to check out too)?
>
> Best regards,
> Per-Erik Svensson