OK - obviously @ServiceController is what I need...

/Bengt

2010/10/1 Richard S. Hall <[email protected]>

>  On 10/1/10 10:41, Bengt Rodehav wrote:
>
>> OK - thanks,
>>
>> BTW, what then is @Controller used for?
>>
>
> It is for disabling the component itself and is generally more to signal
> error conditions from which the component cannot recover, such as faulty or
> missing configuration. On the other hand, @ServiceController allows you to
> control when your services are provided.
>
> -> richard
>
>
>  /Bengt
>>
>> 2010/10/1 Karl Pauls<[email protected]>
>>
>>  iirc, you want the @ServiceController and not the @Controller and
>>> again iirc, you need to update to ipojo 1.6.x for that one.
>>>
>>> regards,
>>>
>>> Karl
>>>
>>> On Fri, Oct 1, 2010 at 4:06 PM, Bengt Rodehav<[email protected]>  wrote:
>>>
>>>> I'm using iPOJO 1.4.0. My installed iPOJO related artifacts (in Karaf
>>>>
>>> 1.6.0)
>>>
>>>> are:
>>>>
>>>> org.apache.felix.ipojo-1.4.0.jar
>>>>
>>>> org.apache.felix.ipojo.handler.extender-1.4.0.jar
>>>>
>>>> org.apache.felix.ipojo.online.manipulator-1.4.2.jar
>>>>
>>>> org.apache.felix.ipojo.webconsole-1.4.0.jar
>>>>
>>>>
>>>> I also use
>>>>
>>>> org.apache.felix.fileinstall-3.0.2.jar
>>>>
>>>>
>>>> ... and a whole lot of other bundles.
>>>>
>>>> I publish services using factories. An example of a configuration file
>>>>
>>> for
>>>
>>>> my factories is:
>>>>
>>>> connect.enabled=true
>>>>
>>>> connect.name=Sample file transfer from file to file
>>>>
>>>>
>>>> The "connect.enabled" property is bound to the field in my service class
>>>> that is a "controller":
>>>>
>>>>  @Controller
>>>>
>>>>  @Property(name = "connect.enabled", mandatory = false, value = "true")
>>>>
>>>>  private boolean mValid;
>>>>
>>>>
>>>> The intention is that I can then disable my service by setting this
>>>> configuration property to false. However, I've encounted a problem
>>>>
>>> regarding
>>>
>>>> this. While the service is active, I set "connect.enabled" to false.
>>>> File
>>>> install picks up the changes and the service is de-registered - works
>>>> perfectly. But if I now shutdown Karaf and restart it again, the service
>>>>
>>> is
>>>
>>>> started (registered) despite the fact that "connect.disabled" is still
>>>> false. Is this a bug in iPOJO or have I misunderstood something?
>>>>
>>>> When googling about this problem I noticed that there is also an
>>>>
>>> annotation
>>>
>>>> called @ServiceController. What is the difference between @Controller
>>>> and
>>>> @ServiceController?
>>>>
>>>> I tried to switch to @ServiceController instead but get the following
>>>>
>>> error:
>>>
>>>> 2010-10-01 15:48:03,341 | ERROR | guration Updater | configadmin
>>>>
>>>>>          | ?                                   ? |
>>>>> [org.apache.felix.ipojo.Factory,
>>>>>
>>>> org.osgi.service.cm.ManagedServiceFactory,
>>>
>>>> id=174, bundle=84]: Updating configuration property
>>>>>
>>>>> {service.pid=connect.skandia.filetransfer.269d25ad-c4d6-4277-9d78-6d4b15acb795,
>>>
>>>> fromuri=file:data/connect/test/sample/file2file,
>>>>> touris=file:data/connect/test/sample/file2file/test-out,
>>>>> service.factorypid=connect.skandia.filetransfer,
>>>>>
>>>>> felix.fileinstall.filename=connect.skandia.filetransfer-sample-file2file.cfg,
>>>
>>>> connect.enabled=true, instance.name
>>>>>
>>>> =connect.skandia.filetransfer.269d25ad-c4d6-4277-9d78-6d4b15acb795,
>>>
>>>> connect.name=Sample file transfer from file to file} caused a problem:
>>>>> Missing handlers : org.apache.felix.ipojo.annotations:servicecontroller
>>>>>
>>>> org.osgi.service.cm.ConfigurationException:
>>>>
>>>
>>> {service.pid=connect.skandia.filetransfer.269d25ad-c4d6-4277-9d78-6d4b15acb795,
>>>
>>>> fromuri=file:data/connect/test/sample/file2file,
>>>>> touris=file:data/connect/test/sample/file2file/test-out,
>>>>> service.factorypid=connect.skandia.filetransfer,
>>>>>
>>>>> felix.fileinstall.filename=connect.skandia.filetransfer-sample-file2file.cfg,
>>>
>>>> connect.enabled=true, instance.name
>>>>>
>>>> =connect.skandia.filetransfer.269d25ad-c4d6-4277-9d78-6d4b15acb795,
>>>
>>>> connect.name=Sample file transfer from file to file} : Missing handlers
>>>>>
>>>> :
>>>
>>>> org.apache.felix.ipojo.annotations:servicecontroller
>>>>>
>>>> at
>>>>
>>>
>>> org.apache.felix.ipojo.IPojoFactory.updated(IPojoFactory.java:609)[38:org.apache.felix.ipojo:1.4.0]
>>>
>>>> at
>>>>
>>>
>>> org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceFactoryUpdate.run(ConfigurationManager.java:1279)[6:org.apache.felix.configadmin:1.2.4]
>>>
>>>> at
>>>>
>>>
>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:88)[6:org.apache.felix.configadmin:1.2.4]
>>>
>>>>
>>>> I'm not sure in which jar the
>>>> " org.apache.felix.ipojo.annotations:servicecontroller" resides. I tried
>>>>
>>> to
>>>
>>>> deploy "org.apache.felix.ipojo.handler.whiteboard-1.4.0.jar" but it
>>>>
>>> didn't
>>>
>>>> seem to help.
>>>>
>>>> Can anyone help me sort this out?
>>>>
>>>> /Bengt
>>>>
>>>>
>>>
>>> --
>>> Karl Pauls
>>> [email protected]
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to