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

