On 04.10.2010, at 21:04, Bengt Rodehav wrote:
> Clement,
>
> I added:
>
> @Updated
>>
>> public void updated(Dictionary theDict) {
>>
>> System.out.println("updated: " + theDict);
>>
>> mValid = true;
>>
>> }
>>
>>
> I do get the output to System.out but the instance is still invalid.
>
>
> updated: {include=(?i).*(?<!\.TMP), redelivery.maxAttempts=10,
>> delimiter=<DELIM>
>
> , connect.enabled=false, deleteProcessedFiles=false, skipEmptyFiles=false,
>> servi
>
> ce.factoryPid=connect.skandia.filetransfer, delay=60000,
>> fromUri=file:data/conne
>
> ct/test/sample/file2file, connect.name=Sample file transfer from file to
>> file, f
>
> elix.fileinstall.filename=connect.skandia.filetransfer-sample-file2file.cfg,
>> alw
>
> aysDisconnect=true,
>> service.pid=connect.skandia.filetransfer.694a9c3c-9319-46b0-
>
> 997f-70af37f40da2,
>> redelivery.delaypattern=0:2000;5:10000;10:60000;20:600000;25:
>
> 1800000, temporaryFileName=${file:name.noext}.tmp,
>> toUris=file:data/connect/test
>
> /sample/file2file/test-out}
>
>
> I don't seem to get the same problem with iPOJO 1.6.0. Maybe the problem has
> been "fixed". Nevertheless, it's important for me to know that I don't
> speculate in a particular implementation detail but that I take advantage of
> supported behaviour (preferably supported by some junit test case in iPOJO).
>
> Should I still create a JIRA ticket?
Yes please. Because I didn't fix anything in this area. I need to look into
this and create a test case (to avoid regressions).
Regards,
Clement
>
> /Bengt
>
> 2010/10/4 Clement Escoffier <[email protected]>
>
>> Hi,
>>
>> On 04.10.2010, at 18:00, Bengt Rodehav wrote:
>>
>>> Clement,
>>>
>>> Like I wrote before, I did manage to get iPOJO 1.6.0 to work for me.
>>> However, once I got it to work I realised that the @ServiceController is
>> not
>>> really what I need. It's the @Controller. I haven't quite filled you in
>> with
>>> all the details. This is what I do:
>>>
>>> I use OSGi service factories to instantiate "integration services" in my
>>> Karaf/Camel based integration platform. Most of the integration services
>> are
>>> implemented as Camel routes (but not all of them).
>>>
>>> When an instance becomes valid I start the camel route and when the
>> instance
>>> becomes invalid I stop it:
>>>
>>> @Validate
>>>
>>> public void start() {
>>>
>>> startContext();
>>>
>>> }
>>>
>>>
>>>> @Invalidate
>>>
>>> public void stop() {
>>>
>>> stopContext();
>>>
>>> }
>>>
>>>
>>> I use a configuration property (the connect.enabled) to control whether a
>>> particular integration service should be up-and-running or not, using the
>>> following code:
>>>
>>> @Controller
>>>
>>> @Property(name = "connect.enabled", mandatory = true)
>>>
>>> private boolean mValid = false;
>>>
>>>
>>> Note that the way I do it above makes sure that a disabled service cannot
>>> start (this was my original problem). However, now I get problems on
>> startup
>>> (Karaf startup). Although the property "connect.enabled" is true, the
>>> instance is still invalid. Looking under the iPOJO tab in the Webconsole
>> I
>>> can see that iPOJO regards this property as false and thus regards the
>> iPOJO
>>> instance as invalid. Looking under the Configuration tab I can see that
>>> Configuration Manager regards it as true.
>>>
>>> There must be some kind of timing problem here. iPOJO regards the
>> instance
>>> as invalid (connect.enabled=false the way I initialise it) and then
>> doesn't
>>> pick up the change from configuration manager. My original problem was
>> the
>>> opposite since I initialised it to true instead. Then iPOJO regarded the
>>> instance as valid and failed to pick up information from configuration
>>> manager that said it was disabled.
>>>
>>> How can I get this to work? (Note that I now use iPOJO 1.4.0 but I can
>>> upgrade if that would help)
>>>
>>> What I want to achieve is, I believe, rather trivial and it's hard to
>>> believe that no one else has thought of this use case:
>>>
>>> "Control the validity of an iPOJO instance using a configuration
>> property".
>>
>> There is two points here:
>> - I think there is a bug. In fact the @Controller and @Property are
>> completely disconnected (handler are complete separated). But, both should
>> check the current value of the field during initialization, listen onSet on
>> the field and call onSet when they receive a new value. It sounds like one
>> of those handlers does not respect these instructions. I bet on the
>> Controller :-)
>> - could you try to add a @Updated method or use a setter for the property.
>> In these method really assign the controller field to the desired value
>> (false|true) like m_controller = true|false. If it's works, it's definitely
>> a bug, so please fill a bug.
>>
>>
>> Regards,
>>
>> Clement
>>
>>
>>>
>>> Any clues?
>>>
>>> BTW I also publish a service to enable my GUI to show me, and interact
>> with,
>>> all running "integration services". It makes it easy to find all of "my
>>> services".
>>>
>>> /Bengt
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2010/10/4 Clement Escoffier <[email protected]>
>>>
>>>> Hi,
>>>>
>>>> On 03.10.2010, at 21:08, Bengt Rodehav wrote:
>>>>
>>>>> Clement,
>>>>>
>>>>> Now that used your tip (from the FAQ), it works fine with
>>>> maven-ipojo-plugin
>>>>> version 1.6.0. The real error was of course that I used the wrong
>> version
>>>> of
>>>>> the manipulator. I dont't know why the latest version from trunk
>>>>> (1.7.0-SNAPSHOT) seemed the hide that error but it's gone now that I
>> use
>>>> the
>>>>> correct manipulator version.
>>>>
>>>> I've to check that... I will look into that.
>>>>
>>>> Regards,
>>>>
>>>> Clement
>>>>
>>>>>
>>>>> /Bengt
>>>>>
>>>>> 2010/10/3 Bengt Rodehav <[email protected]>
>>>>>
>>>>>> Thanks Clement - that worked perfectly!
>>>>>>
>>>>>> I don't know how I've missed that FAQ but now I learned something new.
>>>>>>
>>>>>> Yes, I used the latest maven-ipojo-plugin from trunk.
>>>>>>
>>>>>> /Bengt
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2010/10/3 clement escoffier <[email protected]>
>>>>>>
>>>>>> Hi,
>>>>>>>
>>>>>>> 2010/10/3 Bengt Rodehav <[email protected]>
>>>>>>>
>>>>>>>> Clement,
>>>>>>>>
>>>>>>>> I've upgrade to iPOJO 1.6.0 but I still have problems exposing
>>>> services
>>>>>>>> using the @ServiceController.
>>>>>>>>
>>>>>>>> I get:
>>>>>>>>
>>>>>>>> factory name="connect.skandia.filetransfer" state="invalid"
>>>> bundle="86"
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> implementation-class="se.digia.connect.services.skandia.filetransfer.FileTransferService"
>>>>>>>> missinghandlers
>>>>>>>> list="[org.apache.felix.ipojo.annotations:servicecontroller]"
>>>>>>>> requiredhandlers list="[org.apache.felix.ipojo:requires,
>>>>>>>> org.apache.felix.ipojo:properties, org.apache.felix.ipojo:callback,
>>>>>>>> org.apache.felix.ipojo:provides,
>>>>>>>> org.apache.felix.ipojo.annotations:servicecontroller,
>>>>>>>> org.apache.felix.ipojo:architecture]"
>>>>>>>>
>>>>>>>> in the Webconsole under iPOJO/factories. It seems iPOJO cannot find
>> a
>>>>>>>> handler for
>>>>>>>>
>>>>>>>> org.apache.felix.ipojo.annotations:servicecontroller
>>>>>>>>
>>>>>>>> What bundle am I missing?
>>>>>>>>
>>>>>>>
>>>>>>> No, but you must use the manipulator 1.6.4 as explained in:
>>>>>>>
>>>>>>>
>>>>
>> http://felix.apache.org/site/ipojo-faq.html#iPOJOFAQ-Usingadifferentversionofthemanipulatorduringthemanipulation
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> BTW I also move away from using the ipojo url handler (online
>>>>>>> manipulator)
>>>>>>>> and started using the maven-ipojo-plugin instead. It turns out I
>>>> cannot
>>>>>>> use
>>>>>>>> the latest released version of the plugin (1.6.0) but I have to use
>>>>>>>> 1.7.0-SNAPSHOT.
>>>>>>>
>>>>>>>
>>>>>>> Here is the configuration you should use.
>>>>>>>
>>>>>>> <plugin>
>>>>>>> <groupId>org.apache.felix</groupId>
>>>>>>> <artifactId>maven-ipojo-plugin</artifactId>
>>>>>>> <executions>
>>>>>>> <execution>
>>>>>>> <goals>
>>>>>>> <goal>ipojo-bundle</goal>
>>>>>>> </goals>
>>>>>>> </execution>
>>>>>>> </executions>
>>>>>>> <dependencies>
>>>>>>> <dependency>
>>>>>>> <groupId>org.apache.felix</groupId>
>>>>>>>
>>>>>>> <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
>>>>>>> <version>1.6.4</version>
>>>>>>> </dependency>
>>>>>>> </dependencies>
>>>>>>> </plugin>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Otherwise I get the following exception:
>>>>>>>>
>>>>>>>> java.lang.NullPointerException
>>>>>>>>
>>>>>>>
>>>>>>> I will look into that. Did you use the latest from trunk ?
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Clement
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.felix.ipojo.manipulation.annotations.MetadataCollector.visitEnd(MetadataCollector.java:215)
>>>>>>>>
>>>>>>>> at org.objectweb.asm.ClassReader.accept(Unknown Source)
>>>>>>>>
>>>>>>>> at org.objectweb.asm.ClassReader.accept(Unknown Source)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.felix.ipojo.manipulator.Pojoization.computeAnnotations(Pojoization.java:294)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.felix.ipojo.manipulator.Pojoization.manipulateComponents(Pojoization.java:484)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.felix.ipojo.manipulator.Pojoization.manipulateJarFile(Pojoization.java:335)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:194)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.felix.ipojo.plugin.ManipulatorMojo.execute(ManipulatorMojo.java:199)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
>>>>>>>>
>>>>>>>> at
>>>> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
>>>>>>>>
>>>>>>>> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
>>>>>>>>
>>>>>>>> at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>
>> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
>>>>>>>>
>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>>>
>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>
>>>>>>>> at
>>>>>>>>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>>>>>>>>
>>>>>>>> at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>>>>>>>>
>>>>>>>> at
>>>>>>>>>
>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>>>>>>>>
>>>>>>>> at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>>>>>>>>
>>>>>>>>
>>>>>>>> /Bengt
>>>>>>>>
>>>>>>>>
>>>>>>>> /Bengt
>>>>>>>>
>>>>>>>> 2010/10/1 Clement Escoffier <[email protected]>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 01.10.2010, at 18:30, Bengt Rodehav wrote:
>>>>>>>>>
>>>>>>>>>> Clement,
>>>>>>>>>>
>>>>>>>>>> Just a clarification:
>>>>>>>>>>
>>>>>>>>>> When you restart your instance, be sure that the filed is really
>>>>>>>>> re-assigned
>>>>>>>>>>> to false. To be sure, make your instance immediate and set the
>>>>>>> field
>>>>>>>> in
>>>>>>>>> the
>>>>>>>>>>> constructor.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I suspect you misspelled "filed". I'm not sure what you mean here.
>>>>>>> My
>>>>>>>>>> "mValid" field will be set from a configuration that file install
>>>>>>> picks
>>>>>>>>> up.
>>>>>>>>>> If the configuration value "connect.enabled" is set to true (which
>>>>>>> is
>>>>>>>> the
>>>>>>>>>> normal case) then I want the service to be started. If it is set
>> to
>>>>>>>>> false,
>>>>>>>>>> then I do not want to start nor publish a service yet.
>>>>>>>>>>
>>>>>>>>>> I want to make sure that I never have a mismatch, that is if
>>>>>>>>>> the "connect.enabled" property is false, then the service can
>> never
>>>>>>> be
>>>>>>>>>> started and vice versa. It is important that services that I have
>>>>>>>>> "disabled"
>>>>>>>>>> this way is never started (which has unfortunately happened...).
>>>>>>>>>
>>>>>>>>> I never tested having the @ServiceController on the same field as a
>>>>>>>>> @Property. This may have some side effects, like not-yet injected
>>>>>>> values.
>>>>>>>>> Try to set your component as immediate. This will force the
>>>> injection.
>>>>>>> In
>>>>>>>>> fact, if the property has the value false, but there is no object
>>>>>>>> created,
>>>>>>>>> the
>>>>>>>>> @ServiceController has no way to know the current value. If the
>>>>>>> instance
>>>>>>>> is
>>>>>>>>> immediate, an object is created and the field is assigned to the
>>>>>>> property
>>>>>>>>> value.
>>>>>>>>> This will allow the service controller to get the value.
>>>>>>>>>
>>>>>>>>> Clement
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> /Bengt
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2010/10/1 Clement Escoffier <[email protected]>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 01.10.2010, at 17:03, Bengt Rodehav wrote:
>>>>>>>>>>>
>>>>>>>>>>>> OK - obviously @ServiceController is what I need...
>>>>>>>>>>>
>>>>>>>>>>> As said by Richard, The @ServiceController impacts the service
>>>>>>>> lifecycle
>>>>>>>>>>> The @Controller impacts the instance lifecycle. The @Controller
>> is
>>>>>>>>> generally
>>>>>>>>>>> used to detect wrong configuration or really bad state where the
>>>>>>>>> instance
>>>>>>>>>>> decide to become invalid.
>>>>>>>>>>>
>>>>>>>>>>> The @ServiceController is not tied to the instance lifecycle,
>> which
>>>>>>>>> means
>>>>>>>>>>> that despite the instance is valid, the service can be
>> unpublished
>>>>>>>> using
>>>>>>>>> the
>>>>>>>>>>> @ServiceController.
>>>>>>>>>>>
>>>>>>>>>>> When you restart your instance, be sure that the filed is really
>>>>>>>>>>> re-assigned to false. To be sure, make your instance immediate
>> and
>>>>>>> set
>>>>>>>>> the
>>>>>>>>>>> field in the constructor.
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>>
>>>>>>>>>>> Clement
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> /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]
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>> 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]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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]
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]