Perhaps if you shared the stacktrace it would be easier to decipher what's
going on.


On Wed, May 22, 2013 at 6:42 AM, <to...@orbit-x.de> wrote:

> Hi guys,
>
> excuse me for bumping my own message but two days later am still clueless.
>
> Could it possibly be that i may not @Specializes an abstract class?
>
> thx for your help!
> Reinis
>
> -----Ursprüngliche Nachricht-----
> Betreff: [OWB] make @Specializes to work for me
> Von: to...@orbit-x.de
> An: users@tomee.apache.org
> Datum: 2013/05/20 11:42:34
>
> Hi guys,
>
> in my scenario I want to realize a "template method". For this I implement
> common abstract base class:
>
> public abstract AbstractFooProducer {
>
>     protected void init() {}
>
>     @Produces
>     public Foo produceFoo() {
>         init();
>         return foo;
>     }
>
> and then one or more specific implementations:
>
> public class XmlFooProducer extends AbstractFooProducer {
>     @Override
>     protected void init() {
>         // wicked xml initialization done here
>     }
> }
>
> Now, this solution is causing me some headache to realize, here are number
> of wrong assumptions I made:
>
> - I assumed that,  because AbstractFooProducer is abstract, OWB will
> activate XmlFooProducer as the only concrete implementation and will
> recognize @Produces method through the inheritance. No, does not happen!
> - Ok, next assumption is that if I decorate XmlFooProducer with
> @Specializes I will get the behavior described above. No and from this
> point on i always get this same exception from OWB:
> InconsistentSpecializationException(not sure if the name is correct since
> am writing this by heart but it is thrown by OWBBeanUtil during
> configureSpecializations());
> - Next, I will add @Alternative on top of @Specializes and activate it to
> make it work (as described in oracle docs for CDI). Result - the said
> InconsistentSpecializationException;
> - Next, I will @Override the @Produces method from abstract class in the
> concrete implementation (i read some place that specializing class fully
> "replaces" specialized class and interpreted this so that i have to
> replicate then all relevant Cdi annotations). No, the same exception is
> thrown;
>
> At this point i am out of ideas and would appretiate a hint or two on how
> to make it work.
>
> br
> Reinis
>
>
>
>
>
>

Reply via email to