Can you make a try with latest manipulator : 1.9.0-SNAPSHOT ?

2013/5/3 Michiel Vermandel <[email protected]>

> Hi,
>
> No the factory description did not change:
>
> g! Factory com.ce.flowbeans.io.DeviceService
> factory name="com.ce.flowbeans.io.DeviceService" bundle="30" state="valid"
> implementation-class="com.ce.flowbeans.io.DeviceService"
>     requiredhandlers list="[org.apache.felix.ipojo:requires,
> org.apache.felix.ipojo:callback, org.apache.felix.ipojo:provides,
> org.apache.felix.ipojo:architecture]"
>     missinghandlers list="[]"
>     provides specification="com.ce.flowbeans.io.DeviceService"
>     inherited interfaces="[]" superclasses="[]"
>
> Manipulator: 1.8.6
>
>
> -----------------
> http://www.codessentials.com - Your essential software, for free!
> Follow us at http://twitter.com/#!/Codessentials
>
>
> ________________________________
>  From: Guillaume Sauthier (OW2/GMail) <[email protected]>
> To: [email protected]
> Sent: Friday, May 3, 2013 11:46 AM
> Subject: Re: [iPOJO] using External Handler
>
>
> The factory description did not change ?
> What is the manipulator version you're using ?
> --G
>
>
> 2013/5/3 Michiel Vermandel <[email protected]>
>
> > I changed my Handler to this:
> >
> >    @Handler(name = "ScanCustom", namespace = "com.ce.flowbeans.channels")
> >    public class EventChannelHandler extends PrimitiveHandler {
> >
> > Created the new Annotation:
> >
> >    package com.ce.flowbeans.channels;
> >
> >    import java.lang.annotation.ElementType;
> >    import java.lang.annotation.Retention;
> >    import java.lang.annotation.RetentionPolicy;
> >    import java.lang.annotation.Target;
> >
> >    @Target(ElementType.TYPE)
> >    @Retention(RetentionPolicy.SOURCE)
> >    public @interface ScanCustom {}
> >
> > And changed my DeviceService class:
> >
> >    @Component
> >    @Provides
> >    @ScanCustom
> >    public class DeviceService{
> >
> >        public static final String
> > VOLUME_STATE_CHANGED="com/ce/flowbeans/io/VOLUME_STATE_CHANGED";
> >
> >       private DeviceWatcher deviceWatcher = null;
> >
> >        @Requires
> >       EventService flowService;
> >
> >        @Channel(payload = DeviceBean.class, topic = VOLUME_STATE_CHANGED)
> >       EventSender volumeStateChanged;
> >
> >        ...
> >     }
> >
> > No change however...
> >
> >
> > -----------------
> > http://www.codessentials.com - Your essential software, for free!
> > Follow us at http://twitter.com/#!/Codessentials
> >
> >
> > ________________________________
> >  From: Guillaume Sauthier (OW2/GMail) <[email protected]>
> > To: [email protected]
> > Sent: Friday, May 3, 2013 10:48 AM
> > Subject: Re: [iPOJO] using External Handler
> >
> >
> > Looking at your factory description, you can see that your handler is not
> > in the required handler's list.
> >
> > Hmm I think I got it.
> >
> > This is probably because of FELIX-3889
> > Runtime visible annotations cannot be iPOJO handler's markers.
> >
> > Maybe you can simply have a class level marker annotation (not runtime
> > visible, probably no attributes, depending on what you need to read in
> your
> > handler). this annotation will enable your own handler.
> > And this handler will be able to read your own @Channel annotation
> >
> >
> > https://issues.apache.org/jira/browse/FELIX-3889
> >
> >
> > 2013/5/3 Michiel Vermandel <[email protected]>
> >
> > > Handler com.ce.flowbeans.channels:Channel  (VALID)
> > >
> > > @Component
> > > @Provides
> > > public class DeviceService{
> > >
> > >     public static final String
> > > VOLUME_STATE_CHANGED="com/ce/flowbeans/io/VOLUME_STATE_CHANGED";
> > >
> > >     private DeviceWatcher deviceWatcher = null;
> > >
> > >     @Requires
> > >     EventService flowService;
> > >
> > >     @Channel(payload = DeviceBean.class, topic = VOLUME_STATE_CHANGED)
> > >     EventSender volumeStateChanged;
> > >
> > > ...
> > > }
> > >
> > >
> > > g! Factory com.ce.flowbeans.io.DeviceService
> > > factory name="com.ce.flowbeans.io.DeviceService" bundle="30"
> > state="valid"
> > > implementation-class="com.ce.flowbeans.io.DeviceService"
> > >     requiredhandlers list="[org.apache.felix.ipojo:requires,
> > > org.apache.felix.ipojo:callback, org.apache.felix.ipojo:provides,
> > > org.apache.felix.ipojo:architecture]"
> > >     missinghandlers list="[]"
> > >     provides specification="com.ce.flowbeans.io.DeviceService"
> > >     inherited interfaces="[]" superclasses="[]"
> > >
> > > g! Instance com.ce.flowbeans.io.DeviceService-0
> > > instance name="com.ce.flowbeans.io.DeviceService-0" state="valid"
> > > bundle="30" component.type="com.ce.flowbeans.io.DeviceService"
> > >     handler name="org.apache.felix.ipojo:requires" state="valid"
> > >         requires specification="com.ce.flowbeans.EventService"
> > > id="com.ce.flowbeans.EventService" optional="false" aggregate="false"
> > > proxy="true" binding-policy="dynamic" state="resolved"
> > >     handler name="org.apache.felix.ipojo:callback" state="valid"
> > >     handler name="org.apache.felix.ipojo:provides" state="valid"
> > >         provides specifications="[com.ce.flowbeans.io.DeviceService]"
> > > state="registered" service.id="59"
> > >             property name="factory.name"
> > > value="com.ce.flowbeans.io.DeviceService"
> > >             property name="instance.name"
> > > value="com.ce.flowbeans.io.DeviceService-0"
> > >     handler name="org.apache.felix.ipojo:architecture" state="valid"
> > >     object name="com.ce.flowbeans.io.DeviceService@662f743b"
> > >
> > >
> > > -----------------
> > > http://www.codessentials.com - Your essential software, for free!
> > > Follow us at http://twitter.com/#!/Codessentials
> > >
> > >
> > > ________________________________
> > >  From: Guillaume Sauthier (OW2/GMail) <[email protected]>
> > > To: [email protected]
> > > Sent: Friday, May 3, 2013 10:11 AM
> > > Subject: Re: [iPOJO] using External Handler
> > >
> > >
> > > Can you show me the details of the following commands:
> > > >$ factory com.ce.flowbeans.io.DeviceService
> > > >$ instance com.ce.flowbeans.io.DeviceService-0
> > >
> > > Thanks
> > >
> > >
> > > 2013/5/3 Michiel Vermandel <[email protected]>
> > >
> > > > Hi,
> > > >
> > > >
> > > > I did not do that yet.
> > > > I just wanted to see the Handler getting invoked.
> > > > I have added a System.out in the constructor of the handler and in
> the
> > > > start method but I do not see any of these comments in the console.
> > > >
> > > > When exactly is/should the Handler be instantiated?
> > > >
> > > > Thanks
> > > >
> > > > -----------------
> > > > http://www.codessentials.com - Your essential software, for free!
> > > > Follow us at http://twitter.com/#!/Codessentials
> > > >
> > > >
> > > > ________________________________
> > > >  From: Clement Escoffier <[email protected]>
> > > > To: [email protected]; Michiel Vermandel <[email protected]>
> > > > Sent: Thursday, May 2, 2013 8:06 PM
> > > > Subject: Re: [iPOJO] using External Handler
> > > >
> > > >
> > > > Hi,
> > > >
> > > > Did you implement the configure method and parsed the given metadata
> ?
> > > You
> > > > must register a field interceptor for each field you need to inject.
> > > >
> > > > Regards,
> > > >
> > > > Clement
> > > >
> > > > On 2 mai 2013, at 17:10, Michiel Vermandel <[email protected]>
> wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > In my previous post I mentioned an issue with my custom
> annotations.
> > > > > Now I'm trying to write a iPOJO Handler to inject these
> dependencies.
> > > > >
> > > > > I have created a class implementing PrimitiveHandler:
> > > > >
> > > > > @Handler(name = "Channel", namespace = "com.ce.flowbeans.channels")
> > > > > public class EventChannelHandler extends PrimitiveHandler {
> > > > >
> > > > > I have implemented the required methods, but have only put some
> > > > system.out for the moment.
> > > > >
> > > > > I also have my annotation @Channel in the package
> > > > "com.ce.flowbeans.channels".
> > > > >
> > > > > When I startup the framework I see the handler:
> > > > >
> > > > >> handlers
> > > > > Handler org.apache.felix.ipojo:properties (VALID)
> > > > > Handler org.apache.felix.ipojo:requires (VALID)
> > > > > Handler org.apache.felix.ipojo:architecture (VALID)
> > > > > Handler
> > > >  org.apache.felix.ipojo:callback (VALID)
> > > > > Handler org.apache.felix.ipojo:controller (VALID)
> > > > > Handler org.apache.felix.ipojo:provides (VALID)
> > > > > Handler com.ce.flowbeans.channels:Channel (VALID)    <==
> > > > >
> > > > > But when a field in a component is annotated with the @Channel
> > > > annotation, it gets not injected.
> > > > > Neither do I see any call to the initializeComponentFactory(...) or
> > > > configure(...) or start() methods of the handler.
> > > > >
> > > > > Do I need to specifically attach the handler to the component
> > instance
> > > > in some way?
> > > > >
> > > > > Thanks
> > > > >
> > > > >
> > > > >
> > > > > -----------------
> > > > > http://www.codessentials.com - Your essential software, for free!
> > > > > Follow us at http://twitter.com/#!/Codessentials
> > > >
> > >
> >
>

Reply via email to