JIRA created:

https://issues.apache.org/jira/browse/FELIX-2636

<https://issues.apache.org/jira/browse/FELIX-2636>/Bengt

2010/10/4 Clement Escoffier <[email protected]>

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

Reply via email to