Thanks David and Neil,
Humm, I don't think I understood yet.
Ok, I don't have any other bundle/component consuming this service, yet.
but in this case why I have an instance of the service that received the
configuration from CM registered ?
Look at the log below:
18:54:13.557 INFO : com.c4biz.feast.kernel.lib [ OSGI_BUNDLE ]:
ServiceEvent REGISTERED
[S:{com.c4biz.feast.FixedControllerService}={service.pid=fixed.controller-1467064453446-0,
service.factoryPid=fixed.controller,
component.name=com.c4biz.feast.ComponentControllerServiceProvider,
extenderAlias=ConfigurationManifestHeaderExtender,
targetBundleStateMask=32, component.id=4,
targetTrackingMode=manifest_header, service.id=56,
service.bundleid=18, service.scope=prototype}]
On 27/06/2016 18:47, Neil Bartlett wrote:
Probably lazy activation. Your component is a service, of type
FixedControllerService. No instances will be created until a consumer binds to
it.
Neil
On 27 Jun 2016, at 22:42, Cristiano Gavião <[email protected]> wrote:
Hello,
I'm facing a situation that I'm not understanding. I'm using
org.apache.felix.scr 2.0.2.
I've set a component with this annotation:
@Component(enabled = true, configurationPolicy =
ConfigurationPolicy.REQUIRE,
scope = ServiceScope.PROTOTYPE, service =
FixedControllerService.class,
configurationPid = {SERVICE_FACTORY_PID_CONTROLLER})
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0"
name="com.c4biz.feast.ComponentControllerServiceProvider"
configuration-policy="require" enabled="true" activate="activate"
deactivate="deactivate" modified="modified"
configuration-pid="fixed.controller">
<implementation
class="com.c4biz.feast.ComponentControllerServiceProvider"/>
<service scope="prototype">
<provide interface="com.c4biz.feast.FixedControllerService"/>
</service>
</scr:component>
In this component class I have a method (activate()) tagged with @Activate
annotation. And there are any reference bind being used for now.
From another bundle I'm creating a configuration using factoryPID =
SERVICE_FACTORY_PID_CONTROLLER.
Interesting is that the service are being created and with in a proper
autogenerated PID and passed properties. At least I can see it when listing the
services using gogo console.
also scr:list tells me that the component is enabled and satisfied.
What I'm not understanding is that the activate method is not being called...
could someone explain me what am I missing here?
thanks,
Cristiano
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]