Oki found it there:
most general superclass first.
of course the
interceptors_spec_1_1 only defines this for 'Lifycycle interceptors'
But what about my example 4, the shared @Inject method + @PostConstruct case?
Do we need to invoke all superclass injection first? thus do all @Inject fields + @Inject
methods + @PostConstruct first, then the one from the Horse class?
Could we also specify that all @Inject methods needs to get called before @PostConstruct?
txs and LieGrue,
strub
--- On Fri, 9/30/11, Stuart Douglas <stuart.w.douglas(a)gmail.com> wrote:
From: Stuart Douglas <stuart.w.douglas(a)gmail.com>
Subject: Re: [cdi-dev] @PostConstruct and @Inject methods in superclasses
To: "Mark Struberg" <struberg(a)yahoo.de>
Cc: "cdi-dev" <cdi-dev(a)lists.jboss.org>
Date: Friday, September 30, 2011, 9:58 PM
This is actually covered by the interceptors specification,
from memory I am pretty sure the base class method is mean't
to be called first, but the spec gives you the full order.
@Inject methods are called before @PostConstuct (the are
called in InjectionTarget.inject, which gets called before
InjectionTarget.postConstruct).
I don't think we specify an order for @Inject methods.
Stuart
On 01/10/2011, at 5:47 AM, Mark Struberg wrote:
> Hi!
>
> JSR-250 common annotations is pretty thin about having
@PostConstruct in multiple class hierarchies. It just says
that there must only be one single method annotated with
@PostConstruct in a class. Thus my question:
>
> If I have
>
>
> public class Animal {
> @PostConstruct
>
> public void doInit() {..}
> ..
>
> }
>
> and
>
> public class Horse extends Animal {
> @PostConstruct
>
> public void doSomeOtherInit() {..}
> ..
>
> }
>
>
> 1.) for a contextual instance of Horse, will
Animal#doInit() get executed or only the one from the
'effective' class?
> 2.) if 1.) was yes, then In which order do they get
executed? Is this specced somewhere?
>
> 3.) Same scenario with @Inject methods. Do we specify
an order?
>
> 4.) Both classes have @Inject methods and
@PostConstruct. Again: which order of invocaition?
>
>
> Just that you understand my intention: we had a
@PostConstruct method in Horse which did set a 'cached' flag
in Animal. Turned out that this was a random generator
depending on the intsalled server ;)
>
>
> LieGrue,
> strub
>
> _______________________________________________
> cdi-dev mailing list
> cdi-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/cdi-dev