[weld-dev] Java EE component class injection point validation

Martin Kouba mkouba at redhat.com
Mon May 18 07:38:44 EDT 2015


I think you should create an InjectionTarget upfront, during EE 
component initialization (i.e. cache the IT for a component,
similarly to how javax.enterprise.inject.spi.Unmanaged works) and before 
an EE component instance is instantiated.

Martin

Dne 18.5.2015 v 11:38 Emily Jiang napsal(a):
> Thank you Martin! I did an experiment with your suggestion. The
> org.jboss.weld.manager.api.WeldManager.createInjectionTargetBuilder(AnnotatedType<T>)
> for EE components was called by us when an EE component class is
> instanciated so it is too late for the validation (I think this api is
> used for creating instances or I was wrong, please explain a bit more).
> The validation has to happen during weld  WeldBootstrap.validateBeans(),
> so an DefinitionException should cause the deployment failure.
>
> On Mon, May 18, 2015 at 9:02 AM, Martin Kouba <mkouba at redhat.com
> <mailto:mkouba at redhat.com>> wrote:
>
>     Emily,
>
>     I've looked at WildFly integration code and it makes use of
>     org.jboss.weld.manager.api.WeldManager.createInjectionTargetBuilder(AnnotatedType<T>)
>     for EE components, i.e. delegates validation to weld implemetation.
>
>     M
>
>     Dne 18.5.2015 v 09:51 Emily Jiang napsal(a):
>
>         oops. yes. Can you shed some lights on this problem?
>
>         On Mon, May 18, 2015 at 8:48 AM, Martin Kouba <mkouba at redhat.com
>         <mailto:mkouba at redhat.com>
>         <mailto:mkouba at redhat.com <mailto:mkouba at redhat.com>>> wrote:
>
>              Emily,
>
>              I believe this one belongs rather to the weld-dev ML.
>
>              Martin
>
>              Dne 18.5.2015 v 09:23 Emily Jiang napsal(a):
>
>
>                  In CDI1.2 spec, section 5.5.7
>                  If a Java EE component class supporting injection that
>         is not a
>                  bean has
>                  an injection point of
>                  type InjectionPoint and qualifier @Default, the container
>                  automatically
>                  detects the problem
>                  and treats it as a definition error.
>
>                  How can I plugin this validation? Is there a callback
>         spi I can
>                  use to
>                  validate the injection point on JavaEE component? This
>         exception
>                  needs
>                  to be thrown during the application deployment.
>
>                  --
>                  Thanks
>                  Emily
>                  =================
>                  Emily Jiang
>         ejiang at apache.org <mailto:ejiang at apache.org>
>         <mailto:ejiang at apache.org <mailto:ejiang at apache.org>>
>                  <mailto:ejiang at apache.org <mailto:ejiang at apache.org>
>         <mailto:ejiang at apache.org <mailto:ejiang at apache.org>>>
>
>
>
>
>
>         --
>         Thanks
>         Emily
>         =================
>         Emily Jiang
>         ejiang at apache.org <mailto:ejiang at apache.org>
>         <mailto:ejiang at apache.org <mailto:ejiang at apache.org>>
>
>
>     --
>     Martin Kouba
>     Software Engineer
>     Red Hat, Czech Republic
>
>
>
>
> --
> Thanks
> Emily
> =================
> Emily Jiang
> ejiang at apache.org <mailto:ejiang at apache.org>

-- 
Martin Kouba
Software Engineer
Red Hat, Czech Republic


More information about the weld-dev mailing list