You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Nourredine Khadri <no...@atos.net> on 2013/05/15 15:11:48 UTC

[ANNOUNCE] Tapestry-cdi contribution

Hi,

Atos is proud to announce the first release of Tapestry-cdi, part of the
got5[1] project.


This library is based on work of Romain Manni Bucau[2] and inspired from
other contributions (Magnus Kvalheim[3] and FlowLogix projects[4]).

We have updated the dependencies of this library to use Tapestry 5.3.7



Tapestry-CDI module allows injecting all kind of JSR 299 managed beans
(POJO, EJB, web service, ...) as they are managed by the CDI-container



This library also supports:



   - CDI beans injection
   @Inject CDI beans into pages, components and tapestry services.
   Both @Inject annotations are handled (@javax.inject.Inject and
   @org.apache.tapestry5.ioc.annotations.Inject)



   - Injection by constructor
   @Inject CDI beans into tapestry services constructors.
   Beans can then be injected by field or by constructor.



   - Qualifiers
   To disambiguate when injecting same type but different implementations,
   the module provides support for qualifier which is part of CDI
   specification.
   You can use qualifiers into pages, components and services. Just use
   @javax.inject.Named annotation



   - Helpers
   Add method helpers to ease the cdi bean instantiation (uncommon but
   useful if you want to declare some CDI beans in your AppModule to let
   tapestry manage them)



   - IOC isolation
   The module assures to have no conflict with the tapestry's IOC
   (Inversion of Control).
   Indeed, as there are beans managed by the java EE container and others
   beans managed by the framework, work has been made to prevent one to take
   control over the beans it is not supposed to manage.



Code is available at https://github.com/got5/tapestry-cdi

If you want to see it in action, you just need to:

   - Download the sources and "mvn install" the project
   - Add the module as a maven dependency for your project
   - In your project, @Inject your CDI beans into pages, components or
   services, and that’s pretty much it.

*@Inject*

*private MyCdiBean bean;*

* *

*@Inject*

*@MyQualifier*
*private MyQualifiedBean qualifiedBean;*



For  other use cases, you can already take a look at the unit tests.

A demo project is coming soon. Stay tuned...



The contributors of this release are :

   - Romain Manni Bucau
   - Nourredine Khadri
   - Pierre Marot
   - François Facon



Feedbacks are welcome !



Best Regards



[1] https://github.com/got5

[2] https://github.com/rmannibucau/cdi-tapestry-contribution

[3] https://github.com/magnuskvalheim/tapestry-cdi

[4] http://code.google.com/p/flowlogix


<https://github.com/magnuskvalheim/tapestry-cdi>