[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