You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Lenny Primak <lp...@hope.nyc.ny.us> on 2011/03/07 19:40:15 UTC

Differences between Tapestry IoC and J2EE 6 CDI

Is there an executive summary of the differences or something like that?
I am trying to decide whether to use Tapestry's IoC or J2EE CDI in my application.
The only CDI I've used in the past is Google Guice.

Thanks
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by Howard Lewis Ship <hl...@gmail.com>.
On Mon, Mar 7, 2011 at 2:28 PM, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
> Thanks guys for your insight. So is there any reason not to pick tapestry IOC in favor of other frameworks?  Are you saying that tap IOC is the best?

It's the best suited for Tapestry, I'll say that much.  I think
Tapestry IoC has a lot of advantages over Guice in terms of
meta-programming, over Spring in terms of simplicity and
Java-centric-ness (let me rephrase that as "no XML").  Spring has lots
to offer in terms of what they've built on top of their IoC container.
 Guice is full of very cool ideas, so of which have been adapted into
Tapestry IoC.  None of the others have the same concept of service
configurations (which are, ultimately, modeled after the Eclipse
plugin system, to tackle the same kinds of problems).


>
>
>
> On Mar 7, 2011, at 2:15 PM, Howard Lewis Ship <hl...@gmail.com> wrote:
>
>> What Thiago and Juan are getting at is that Tapestry's IoC was
>> specifically designed to be a framework IoC container, where multiple
>> modules would be "glued" together at runtime in configurations that
>> would not be known at the time any individual module was built.  In
>> other words, you stack these things up like legos and the services in
>> one layer can configure services in other layers.
>>
>> By comparison, Spring and other IoC containers are application
>> containers: they expect a developer to know about all available
>> services in, effectively, a single master configuration file.
>> Obviously, the details differ from implementation to implementation,
>> but Tapestry IoC confronts the issues related to combining layers at
>> runtime directly, from its core design.  The end result is "It Just
>> Works", i.e., drop a Tapestry-related library's JAR file onto the
>> classpath and everything autowires itself into place.
>>
>> On Mon, Mar 7, 2011 at 12:03 PM, Juan E. Maya <ma...@gmail.com> wrote:
>>> Another great feature from Tapestry IOC is how easy is to write well
>>> designed applications using Design Patterns like Chains of
>>> responsibilities, Strategies or Pipelines. U will be able to write
>>> truly modular applications using them together with the Distributed
>>> Configuration mentioned by Thiago.
>>>
>>> On Mon, Mar 7, 2011 at 7:56 PM, Thiago H. de Paula Figueiredo
>>> <th...@gmail.com> wrote:
>>>> On Mon, 07 Mar 2011 15:40:15 -0300, Lenny Primak <lp...@hope.nyc.ny.us>
>>>> wrote:
>>>>
>>>>> Is there an executive summary of the differences or something like that?
>>>>> I am trying to decide whether to use Tapestry's IoC or J2EE CDI in my
>>>>> application. The only CDI I've used in the past is Google Guice.
>>>>
>>>> See
>>>> http://blog.tapestry5.de/index.php/2011/01/17/javax-inject-inject-support-in-tapestry/
>>>>
>>>> Something very, very useful that Tapestry-IoC has that CDI, Spring and Guice
>>>> don't is distributed configuration. This feature is the reason Tapestry-IoC
>>>> was created instead of Tapestry (the web framework) adopt some other IoC
>>>> container. T-IoC has annotation-less injection, CDI and Guice doesn't.
>>>>
>>>> --
>>>> Thiago H. de Paula Figueiredo
>>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
>>>> instructor
>>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>>> http://www.arsmachina.com.br
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>
>>
>>
>> --
>> Howard M. Lewis Ship
>>
>> Creator of Apache Tapestry
>>
>> The source for Tapestry training, mentoring and support. Contact me to
>> learn how I can get you up and productive in Tapestry fast!
>>
>> (971) 678-5210
>> http://howardlewisship.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Thanks, that was very helpful

On Mar 7, 2011, at 5:59 PM, Thiago H. de Paula Figueiredo wrote:

> On Mon, 07 Mar 2011 19:28:32 -0300, Lenny Primak <lp...@hope.nyc.ny.us> wrote:
> 
>> Thanks guys for your insight. So is there any reason not to pick tapestry IOC in favor of other frameworks?  Are you saying that tap IOC is the best?
> 
> IMHO, I'd say that Tapestry-IoC is the best IoC framework I've ever seen from a pure IoC view.
> Spring wins in number of integrations with other frameworks and complex transaction management.
> EJB and CDI are standards and handle complex transaction managements.
> 
> As always, the best choice for depends heavily on the project. :)
> 
> -- 
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
On Mon, 07 Mar 2011 19:28:32 -0300, Lenny Primak <lp...@hope.nyc.ny.us>  
wrote:

> Thanks guys for your insight. So is there any reason not to pick  
> tapestry IOC in favor of other frameworks?  Are you saying that tap IOC  
> is the best?

IMHO, I'd say that Tapestry-IoC is the best IoC framework I've ever seen  
 from a pure IoC view.
Spring wins in number of integrations with other frameworks and complex  
transaction management.
EJB and CDI are standards and handle complex transaction managements.

As always, the best choice for depends heavily on the project. :)

-- 
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,  
and instructor
Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by Lenny Primak <lp...@hope.nyc.ny.us>.
Thanks guys for your insight. So is there any reason not to pick tapestry IOC in favor of other frameworks?  Are you saying that tap IOC is the best?  



On Mar 7, 2011, at 2:15 PM, Howard Lewis Ship <hl...@gmail.com> wrote:

> What Thiago and Juan are getting at is that Tapestry's IoC was
> specifically designed to be a framework IoC container, where multiple
> modules would be "glued" together at runtime in configurations that
> would not be known at the time any individual module was built.  In
> other words, you stack these things up like legos and the services in
> one layer can configure services in other layers.
> 
> By comparison, Spring and other IoC containers are application
> containers: they expect a developer to know about all available
> services in, effectively, a single master configuration file.
> Obviously, the details differ from implementation to implementation,
> but Tapestry IoC confronts the issues related to combining layers at
> runtime directly, from its core design.  The end result is "It Just
> Works", i.e., drop a Tapestry-related library's JAR file onto the
> classpath and everything autowires itself into place.
> 
> On Mon, Mar 7, 2011 at 12:03 PM, Juan E. Maya <ma...@gmail.com> wrote:
>> Another great feature from Tapestry IOC is how easy is to write well
>> designed applications using Design Patterns like Chains of
>> responsibilities, Strategies or Pipelines. U will be able to write
>> truly modular applications using them together with the Distributed
>> Configuration mentioned by Thiago.
>> 
>> On Mon, Mar 7, 2011 at 7:56 PM, Thiago H. de Paula Figueiredo
>> <th...@gmail.com> wrote:
>>> On Mon, 07 Mar 2011 15:40:15 -0300, Lenny Primak <lp...@hope.nyc.ny.us>
>>> wrote:
>>> 
>>>> Is there an executive summary of the differences or something like that?
>>>> I am trying to decide whether to use Tapestry's IoC or J2EE CDI in my
>>>> application. The only CDI I've used in the past is Google Guice.
>>> 
>>> See
>>> http://blog.tapestry5.de/index.php/2011/01/17/javax-inject-inject-support-in-tapestry/
>>> 
>>> Something very, very useful that Tapestry-IoC has that CDI, Spring and Guice
>>> don't is distributed configuration. This feature is the reason Tapestry-IoC
>>> was created instead of Tapestry (the web framework) adopt some other IoC
>>> container. T-IoC has annotation-less injection, CDI and Guice doesn't.
>>> 
>>> --
>>> Thiago H. de Paula Figueiredo
>>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
>>> instructor
>>> Owner, Ars Machina Tecnologia da Informação Ltda.
>>> http://www.arsmachina.com.br
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>> 
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> 
> 
> -- 
> Howard M. Lewis Ship
> 
> Creator of Apache Tapestry
> 
> The source for Tapestry training, mentoring and support. Contact me to
> learn how I can get you up and productive in Tapestry fast!
> 
> (971) 678-5210
> http://howardlewisship.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by Howard Lewis Ship <hl...@gmail.com>.
What Thiago and Juan are getting at is that Tapestry's IoC was
specifically designed to be a framework IoC container, where multiple
modules would be "glued" together at runtime in configurations that
would not be known at the time any individual module was built.  In
other words, you stack these things up like legos and the services in
one layer can configure services in other layers.

By comparison, Spring and other IoC containers are application
containers: they expect a developer to know about all available
services in, effectively, a single master configuration file.
Obviously, the details differ from implementation to implementation,
but Tapestry IoC confronts the issues related to combining layers at
runtime directly, from its core design.  The end result is "It Just
Works", i.e., drop a Tapestry-related library's JAR file onto the
classpath and everything autowires itself into place.

On Mon, Mar 7, 2011 at 12:03 PM, Juan E. Maya <ma...@gmail.com> wrote:
> Another great feature from Tapestry IOC is how easy is to write well
> designed applications using Design Patterns like Chains of
> responsibilities, Strategies or Pipelines. U will be able to write
> truly modular applications using them together with the Distributed
> Configuration mentioned by Thiago.
>
> On Mon, Mar 7, 2011 at 7:56 PM, Thiago H. de Paula Figueiredo
> <th...@gmail.com> wrote:
>> On Mon, 07 Mar 2011 15:40:15 -0300, Lenny Primak <lp...@hope.nyc.ny.us>
>> wrote:
>>
>>> Is there an executive summary of the differences or something like that?
>>> I am trying to decide whether to use Tapestry's IoC or J2EE CDI in my
>>> application. The only CDI I've used in the past is Google Guice.
>>
>> See
>> http://blog.tapestry5.de/index.php/2011/01/17/javax-inject-inject-support-in-tapestry/
>>
>> Something very, very useful that Tapestry-IoC has that CDI, Spring and Guice
>> don't is distributed configuration. This feature is the reason Tapestry-IoC
>> was created instead of Tapestry (the web framework) adopt some other IoC
>> container. T-IoC has annotation-less injection, CDI and Guice doesn't.
>>
>> --
>> Thiago H. de Paula Figueiredo
>> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
>> instructor
>> Owner, Ars Machina Tecnologia da Informação Ltda.
>> http://www.arsmachina.com.br
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by "Juan E. Maya" <ma...@gmail.com>.
Another great feature from Tapestry IOC is how easy is to write well
designed applications using Design Patterns like Chains of
responsibilities, Strategies or Pipelines. U will be able to write
truly modular applications using them together with the Distributed
Configuration mentioned by Thiago.

On Mon, Mar 7, 2011 at 7:56 PM, Thiago H. de Paula Figueiredo
<th...@gmail.com> wrote:
> On Mon, 07 Mar 2011 15:40:15 -0300, Lenny Primak <lp...@hope.nyc.ny.us>
> wrote:
>
>> Is there an executive summary of the differences or something like that?
>> I am trying to decide whether to use Tapestry's IoC or J2EE CDI in my
>> application. The only CDI I've used in the past is Google Guice.
>
> See
> http://blog.tapestry5.de/index.php/2011/01/17/javax-inject-inject-support-in-tapestry/
>
> Something very, very useful that Tapestry-IoC has that CDI, Spring and Guice
> don't is distributed configuration. This feature is the reason Tapestry-IoC
> was created instead of Tapestry (the web framework) adopt some other IoC
> container. T-IoC has annotation-less injection, CDI and Guice doesn't.
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and
> instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
On Mon, 07 Mar 2011 15:40:15 -0300, Lenny Primak <lp...@hope.nyc.ny.us>  
wrote:

> Is there an executive summary of the differences or something like that?
> I am trying to decide whether to use Tapestry's IoC or J2EE CDI in my  
> application. The only CDI I've used in the past is Google Guice.

See  
http://blog.tapestry5.de/index.php/2011/01/17/javax-inject-inject-support-in-tapestry/

Something very, very useful that Tapestry-IoC has that CDI, Spring and  
Guice don't is distributed configuration. This feature is the reason  
Tapestry-IoC was created instead of Tapestry (the web framework) adopt  
some other IoC container. T-IoC has annotation-less injection, CDI and  
Guice doesn't.

-- 
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,  
and instructor
Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Differences between Tapestry IoC and J2EE 6 CDI

Posted by Werner Keil <we...@gmail.com>.
please also try not to call it J2EE 6 that unlucky term (J2EE) was supposed
to disappear even before Oracle took over Sun [?]

On Tue, Mar 8, 2011 at 12:10 AM, Lenny Primak <lp...@hope.nyc.ny.us>wrote:

> Is there an executive summary of the differences or something like that?
> I am trying to decide whether to use Tapestry's IoC or J2EE CDI in my
> application.
> The only CDI I've used in the past is Google Guice.
>
> Thanks
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


-- 

 Werner Keil | UOMo Lead | Eclipse Foundation | Agile Coach, Principal
Consultant | *emergn* limited

590 Madison Avenue. New York. NY 10022 | 68 Lombard Street. London EC3V 9LJ
UK

US Toll Free:  +1-877.964.1981 | Worldwide Toll Free:  +800.225.53482
Skype: werner.keil|www.emergn.com | Reshaping IT

* STP Conference & Expo: March 24, 2011, Nashville, TN. Werner Keil, Agile
Coach and Principal Consultant, will be presenting "Agile Test Automation"

* Great Indian Developer Summit: April 21, 2011, Bangalore, India. Werner
Keil, Agile Coach and Principal Consultant, will be presenting "Java EE 7,
CDI and Trusted Java"