I am not sure if this is what is happening to your case.
But just in case to describe that there is some difference in
blueprint's injection in contrast to that of spring or how one
intuitively thinks.

With blueprint, you can only access the setters from the public super
classes and not the setters from from the abstract super classes.

So if you have
abstract class A {
   public method setFoo(...) {
   }
}

public class B extends A {
    public method setBar(...) {
    }
}


with above, you can do in java
B b = new B();
b.setBar(..);
b.setFoo(...):

and you can also access the foo setter in spring, but not in blueprint.

There is a method check in its reflection utility class
(ReflectionUtils) that rejects those with m.isBridge() == true.

regards, aki


2015-09-03 2:12 GMT+02:00 Benson Margulies <[email protected]>:
> On Wed, Sep 2, 2015 at 6:06 PM, Guillaume Nodet <[email protected]> wrote:
>> What's the exception you end up with ?
>> I had a brief look at the blueprint code and that seems to be supported.
>>
>
> Error message:
>
> org.osgi.service.blueprint.container.ComponentDefinitionException:
> Unable to find property descriptor requestTracker on class
> com.basistech.ws.frontend.service.RaasRsCategorizationService
>
> And when I duplicated the setter into the derived class, it worked fine.
>
>
>> 2015-09-02 22:53 GMT+02:00 Benson Margulies <[email protected]>:
>>
>>> While setting up a raft of jax-rs service beans, I am getting an exception
>>> that seems to tell me that blueprint cannot use setter methods from base
>>> classes. Anyone here have experience one way or the other?
>>>

Reply via email to