Csaba Szucs | 8 Feb 10:38
Picon
Gravatar

Service component deployment fails into a running Equinox application

Hello Guys,

I have an Equinox OSGi application using Declarative Services with 3 plugins:
-a service interface plugin
-a service provider component
-a service consumer component (cardinality: 0..n, policy: dynamic)

Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.8.0.v20110908-1857
3 ACTIVE osgi.example.service.consumer_1.0.0.qualifier
4 ACTIVE org.eclipse.osgi.services_3.3.0.v20110711-1243
5 ACTIVE org.eclipse.equinox.util_1.0.300.v20110502
6 ACTIVE org.eclipse.equinox.ds_1.3.100.v20110705
10 ACTIVE osgi.example.service_interface_1.0.0.qualifier
11 ACTIVE osgi.example.service.implementation_1.0.0.qualifier

In case the application is launched, the service consumer is triggered.

But in case the service provider is installed and started only after the application has launched, SCR fails to load service implementation class. See exception stack below!

What is the problem with this runtime/post-application deployment of the service component?

Please note:
With Apache Felix and SCR, there is no problem with the runtime deployment at all.

Many thanks, Csaba.

Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.8.0.v20110908-1857
3 ACTIVE osgi.example.service.consumer_1.0.0.qualifier
4 ACTIVE org.eclipse.osgi.services_3.3.0.v20110711-1243
5 ACTIVE org.eclipse.equinox.util_1.0.300.v20110502
6 ACTIVE org.eclipse.equinox.ds_1.3.100.v20110705
10 ACTIVE osgi.example.service_interface_1.0.0.qualifier

osgi> install file:/home/csaba/eclipse_distros/Indigo/workspace/osgi.example.service.implementation
Bundle id is 11.

id State Bundle
11 INSTALLED osgi.example.service.implementation_1.0.0.qualifier

osgi> start 11

Here SCR throws an exception:


!SESSION 2012-02-06 21:01:12.378 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments: -dev file:/home/csaba/eclipse_distros/Indigo/workspace/.metadata/.plugins/org.eclipse.pde.core/New_configuration (1)/dev.properties -os linux -ws gtk -arch x86 -consoleLog -console -consolelog

!ENTRY org.eclipse.equinox.ds 4 0 2012-02-06 21:03:11.214
!MESSAGE Exception occurred while creating new instance of component Component[
name = osgi.example.service.implementation
activate = activate
deactivate = deactivate
modified =
configuration-policy = optional
factory = null
autoenable = true
immediate = false
implementation = osgi.example.service.implementation.ServiceImpl
state = Unsatisfied
properties =
serviceFactory = false
serviceInterface = [osgi.example.service_interface.Service]
references = null
located in bundle = osgi.example.service.implementation_1.0.0.qualifier [13]
]
!STACK 0
java.lang.ClassNotFoundException: osgi.example.service.implementation.ServiceImpl
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1208)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:480)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:271)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:332)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:141)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:139)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594)
at org.eclipse.equinox.internal.ds.InstanceProcess.getService(InstanceProcess.java:686)
at org.eclipse.equinox.internal.ds.model.ComponentReference.getMethod(ComponentReference.java:111)
at org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:322)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:441)
at org.eclipse.equinox.internal.ds.InstanceProcess.dynamicBind(InstanceProcess.java:415)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:319)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:221)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:504)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:259)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)

!ENTRY org.eclipse.equinox.ds 4 0 2012-02-06 21:03:11.216
!MESSAGE Exception occurred while creating new instance of component Component[
name = osgi.example.service.implementation
activate = activate
deactivate = deactivate
modified =
configuration-policy = optional
factory = null
autoenable = true
immediate = false
implementation = osgi.example.service.implementation.ServiceImpl
state = Unsatisfied
properties =
serviceFactory = false
serviceInterface = [osgi.example.service_interface.Service]
references = null
located in bundle = osgi.example.service.implementation_1.0.0.qualifier [13]
]
!STACK 0
java.lang.ClassNotFoundException: osgi.example.service.implementation.ServiceImpl
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1208)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:480)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:271)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:332)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:141)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:139)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594)
at org.eclipse.equinox.internal.ds.InstanceProcess.getService(InstanceProcess.java:686)
at org.eclipse.equinox.internal.ds.model.ComponentReference.getMethod(ComponentReference.java:111)
at org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:322)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:441)
at org.eclipse.equinox.internal.ds.InstanceProcess.dynamicBind(InstanceProcess.java:415)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:319)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:221)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:504)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:259)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)

!ENTRY org.eclipse.osgi 4 0 2012-02-06 21:03:11.220
!MESSAGE An unexpected runtime error has occurred.
!STACK 0
org.osgi.service.component.ComponentException: Exception occurred while creating new instance of component Component[
name = osgi.example.service.implementation
activate = activate
deactivate = deactivate
modified =
configuration-policy = optional
factory = null
autoenable = true
immediate = false
implementation = osgi.example.service.implementation.ServiceImpl
state = Unsatisfied
properties =
serviceFactory = false
serviceInterface = [osgi.example.service_interface.Service]
references = null
located in bundle = osgi.example.service.implementation_1.0.0.qualifier [13]
]
at org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:482)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:271)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:332)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:141)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:139)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594)
at org.eclipse.equinox.internal.ds.InstanceProcess.getService(InstanceProcess.java:686)
at org.eclipse.equinox.internal.ds.model.ComponentReference.getMethod(ComponentReference.java:111)
at org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:322)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:441)
at org.eclipse.equinox.internal.ds.InstanceProcess.dynamicBind(InstanceProcess.java:415)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:319)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:221)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:504)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:259)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: java.lang.ClassNotFoundException: osgi.example.service.implementation.ServiceImpl
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1208)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:480)
... 34 more

!ENTRY osgi.example.service.implementation 4 0 2012-02-06 21:03:11.223
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.ServiceException: Exception in org.eclipse.equinox.internal.ds.ServiceReg.getService()
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:151)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594)
at org.eclipse.equinox.internal.ds.InstanceProcess.getService(InstanceProcess.java:686)
at org.eclipse.equinox.internal.ds.model.ComponentReference.getMethod(ComponentReference.java:111)
at org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:322)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:441)
at org.eclipse.equinox.internal.ds.InstanceProcess.dynamicBind(InstanceProcess.java:415)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:319)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:221)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at org.eclipse.equinox.internal.ds.InstanceProcess.registerService(InstanceProcess.java:504)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:259)
at org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:441)
at org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:213)
at org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:800)
at org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:767)
at org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:70)
Caused by: org.osgi.service.component.ComponentException: Exception occurred while creating new instance of component Component[
name = osgi.example.service.implementation
activate = activate
deactivate = deactivate
modified =
configuration-policy = optional
factory = null
autoenable = true
immediate = false
implementation = osgi.example.service.implementation.ServiceImpl
state = Unsatisfied
properties =
serviceFactory = false
serviceInterface = [osgi.example.service_interface.Service]
references = null
located in bundle = osgi.example.service.implementation_1.0.0.qualifier [13]
]
at org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:482)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:271)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:332)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:588)
at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:141)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:139)
... 27 more
Caused by: java.lang.ClassNotFoundException: osgi.example.service.implementation.ServiceImpl
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1208)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:480)
... 34 more

!ENTRY osgi.example.service.consumer 2 0 2012-02-06 21:03:11.228
!MESSAGE [SCR] Could not get the service object relevant to the reference. One possible reason is a circularity problem. Another possible reason is that BundleContext.getService() returns null.
Details:
Problematic reference = Reference[name = Service, interface = osgi.example.service_interface.Service, policy = dynamic, cardinality = 0..n, target = null, bind = setService, unbind = unsetService]
of service component = osgi.example.service.consumer
component implementation class = osgi.example.service.consumer.ServiceConsumer
located in bundle with symbolic name = osgi.example.service.consumer
bundle location = initial <at> reference:file:../../../../osgi.example.service.consumer/

!ENTRY osgi.example.service.consumer 2 0 2012-02-06 21:03:11.229
!MESSAGE [SCR] ComponentReference.bind(): bind method 'setService' is not found or it is not accessible!
Details:
Problematic reference = Reference[name = Service, interface = osgi.example.service_interface.Service, policy = dynamic, cardinality = 0..n, target = null, bind = setService, unbind = unsetService]
of service component = osgi.example.service.consumer
component implementation class = osgi.example.service.consumer.ServiceConsumer
located in bundle with symbolic name = osgi.example.service.consumer
bundle location = initial <at> reference:file:../../../../osgi.example.service.consumer/
Favicon
Gravatar

Project meta data is out of date for rt.equinox

Jeff, Thomas,
Projects are required to keep meta data up to date using the MyFoundation
Portal (http://portal.eclipse.org/).  The following problems were found
with this project's meta-data:

* Project home page does not exist (projecturl = http://eclipse.org/equinox
returns a 404)

Picon
Gravatar

Welcome Matitiahu Allouche as a new rt.equinox.bundles Committer

rt.equinox.bundles Committers,
This automatically generated message marks the completion of all the legal
paperwork and webmaster provisioning for Matitiahu Allouche. Matitiahu
Allouche is a new full Committer on the rt.equinox.bundles project.

Welcome!
Frida Valecchi | 23 Jan 21:45
Picon
Gravatar

Equinox on Android

Hi, I am working on a project called Netserv, in collaboration with Columbia University
http://www.cs.columbia.edu/irt/project/netserv/
This service could be implemented in the peripheral routers in internet and it aims to ease the sharing of several data and applications to end users.
It is now supported by a linux platform and the container part is realized using Equinox bundles.
My work is the porting of Netserv on Android systems, that's why I am interested in integrating Equinox on Android; I followed a guide in http://www.slideshare.net/peterbuck/android-and-osgi-can-they-work-together (2008), that seemed to suit our purpose
and when I try to start the modified Equinox through the script in the emulator (I use Eclipse 3.7 for the Android emulator), I get:
 
Dalvik VM unable to locate class 'org/eclipse/core/runtime/ adaptor/EclipseStarter'
java.lang.
NoClassDefFoundError: org.eclipse.core.runtime.adaptor.EclipseStarter
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter in loader dalvik.system.PathClassLoader <at> 400195b0
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
    ... 1 more
 
The path is right, I checked it several times. 
Would it probably be because the version of Android I am using is different (new) from the one in the 2008 when they wrote the patches?
Maybe the classes.dex is not readable by my dalvik? Any suggestions could be helpful!
I thank you in advance for any advice you would give.
Tim Diekmann | 20 Jan 22:06
Favicon
Gravatar

Optional bundle resolution on startup

Hi,

does anyone here know how to force Equinox to resolve optional dependencies in bundles when the exporting bundle is available at startup?

I keep running into a situation (OSGi launch configuration in Eclipse) where a bundle A has an optional package dependency on p that is provided by bundle B. A and B are both listed in the initial bundles of the framework configuration (B before A), so they are both installed and available.
However, for some reason A gets resolved with the package P left in <optional, unresolved> state until I manually refresh A from the OSGi console. There must be a way to fix this.

Thanks,

     Tim.

"There is no place like 127.0.0.1"

Favicon

Committer vote for Matitiahu Allouche has been approved by the PMC

rt.equinox.bundles Committers,
This automatically generated message marks the PMC's approval of the vote
for Matitiahu Allouche's full Committer status on the rt.equinox.bundles
project. The next step is for the project lead to return to the portal and
fill in the VCS package and employer information for Matitiahu Allouche.

The PMC's comments were: Welcome Matitiahu!

If you have any questions, please do not hesitate to contact your project
lead, PMC member, or the EMO <emo@...>

Favicon

Committer vote for Matitiahu Allouche has concluded successfully

rt.equinox.bundles Committers,
This automatically generated message marks the successful completion of
voting for Matitiahu Allouche to receive full Committer status on the
rt.equinox.bundles project. The next step is for the PMC to approve this
vote, followed by the EMO processing the paperwork and provisioning the
account.

Vote summary: 7/0/0 with 11 not voting 
  +1  John Arthorne
  +1  Oleg Besedin
   ?  Stoyan Boshev
   ?  Sonia Dimitrov
  +1  Pavlin Dobrev
   ?  BJ Hargrave
  +1  DJ Houghton
   ?  Simon Kaegi
   ?  Borislav Kapukaranov
  +1  Lazar Kirchev
   ?  Martin Lippert
   ?  Jeff McAffer
   ?  Kim Moir
  +1  Glyn Normington
   ?  Pascal Rapicault
   ?  John Ross
   ?  Heiko Seeberger
  +1  Thomas Watson

If you have any questions, please do not hesitate to contact your project
lead, PMC member, or the EMO <emo@...>

Favicon

+1 for Matitiahu Allouche on rt.equinox.bundles by Glyn Normington

Glyn Normington voted:
    +1
+1

Voting summary: http://portal.eclipse.org/

Thomas Watson | 19 Jan 21:44
Picon
Favicon

Use of jsr14 and Java 7 javac


Our use of jsr14 for some Equinox projects in order to use generics AND
continue support of J2SE 1.4 and J2ME Foundation 1.2 will cause problems
for folks compiling against our jars using the Java 7 javac compiler.  I
have opened https://bugs.eclipse.org/bugs/show_bug.cgi?id=369145 to discuss
not using the jsr14 option anymore.  Please comment in that bug with your
concerns or comments.  The consequence is that the Equinox Framework in
Juno will have a J2SE-1.5 minimum execution environment.

Tom

Favicon

+1 for Matitiahu Allouche on rt.equinox.bundles by Lazar Kirchev

Lazar Kirchev voted:
    +1
+1

Voting summary: http://portal.eclipse.org/

Favicon

+1 for Matitiahu Allouche on rt.equinox.bundles by Pavlin Dobrev

Pavlin Dobrev voted:
    +1
+1

Voting summary: http://portal.eclipse.org/


Gmane