<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: Tapestry IoC: Modularization of web applications without OSGi</title>
	<atom:link href="http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/</link>
	<description>Thoughts on coding, technology and occasional stuff.</description>
	<lastBuildDate>Fri, 03 Feb 2012 11:06:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>Von: Igor Drobiazko</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-305</link>
		<dc:creator>Igor Drobiazko</dc:creator>
		<pubDate>Tue, 20 Jul 2010 14:20:57 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-305</guid>
		<description>Tapestry logs the modules which are added to the registry. Please see your logs, you should find something like:

[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.ioc.services.TapestryIOCModule
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.hibernate.HibernateModule
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.hibernate.HibernateCoreModule
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.spring.SpringModule
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.services.TapestryModule
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.internal.services.InternalModule</description>
		<content:encoded><![CDATA[<p>Tapestry logs the modules which are added to the registry. Please see your logs, you should find something like:</p>
<p>[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.ioc.services.TapestryIOCModule<br />
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.hibernate.HibernateModule<br />
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.hibernate.HibernateCoreModule<br />
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.spring.SpringModule<br />
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.services.TapestryModule<br />
[INFO] org.apache.tapestry5.ioc.RegistryBuilder Adding module definition for class org.apache.tapestry5.internal.services.InternalModule</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Alexander</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-298</link>
		<dc:creator>Alexander</dc:creator>
		<pubDate>Fri, 09 Jul 2010 18:49:38 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-298</guid>
		<description>Hi Igor,

thanks a lot for this great article! 

I&#039;ve got a little question regarding the architecture of an app with modules. Is there any possibility to list all loaded modules?

Thanks a lot
Alex</description>
		<content:encoded><![CDATA[<p>Hi Igor,</p>
<p>thanks a lot for this great article! </p>
<p>I&#8217;ve got a little question regarding the architecture of an app with modules. Is there any possibility to list all loaded modules?</p>
<p>Thanks a lot<br />
Alex</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Soddino</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-169</link>
		<dc:creator>Soddino</dc:creator>
		<pubDate>Sat, 10 Apr 2010 05:00:09 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-169</guid>
		<description>Hi Igor,

I think an other advantage of OSGi inside Tapestry is deployment of Tapestry-OSGi app in the Google App Engine environment :)</description>
		<content:encoded><![CDATA[<p>Hi Igor,</p>
<p>I think an other advantage of OSGi inside Tapestry is deployment of Tapestry-OSGi app in the Google App Engine environment <img src='http://blog.tapestry5.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Soddino</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-124</link>
		<dc:creator>Soddino</dc:creator>
		<pubDate>Mon, 08 Mar 2010 08:15:07 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-124</guid>
		<description>Hi Igor,

 Thank for your reply.

I knew all dependency libraries of a bundle are managed by OSGi container. I meant the &#039;private&#039; dependency libraries of a bundle, they can package together by using &#039;Bundle-ClassPath&#039; header field (In this case, you can easily remove all related files of a module from the application)

About OSGi inside Tapestry: I think the advantage is Tapestry application becomes OSGi container. And you easily develop/active/inactive extension modules for that. Otherwise,  it is easy to deploy on &#039;traditional&#039; servlet container like Tomcat, Jetty with no OSGi configurations...

I am enthusiastic in a next your port about integrate Tapestry 5 into Spring dm Server and the way make Tapestry/Spring/Hibernate(JPA) work together in Spring dm Server :)</description>
		<content:encoded><![CDATA[<p>Hi Igor,</p>
<p> Thank for your reply.</p>
<p>I knew all dependency libraries of a bundle are managed by OSGi container. I meant the &#8216;private&#8217; dependency libraries of a bundle, they can package together by using &#8216;Bundle-ClassPath&#8217; header field (In this case, you can easily remove all related files of a module from the application)</p>
<p>About OSGi inside Tapestry: I think the advantage is Tapestry application becomes OSGi container. And you easily develop/active/inactive extension modules for that. Otherwise,  it is easy to deploy on &#8216;traditional&#8217; servlet container like Tomcat, Jetty with no OSGi configurations&#8230;</p>
<p>I am enthusiastic in a next your port about integrate Tapestry 5 into Spring dm Server and the way make Tapestry/Spring/Hibernate(JPA) work together in Spring dm Server <img src='http://blog.tapestry5.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Igor Drobiazko</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-118</link>
		<dc:creator>Igor Drobiazko</dc:creator>
		<pubDate>Fri, 05 Mar 2010 12:39:41 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-118</guid>
		<description>Hi Soddino,

In OSGi you put small pieces of functionality into a bundle. The bundle and its dependencies are not packaged together. This level of granularity leads to enormous amount of installed bundles but gives you a lot of freedom and flexibility. In the described Tapestry IoC approach you put certain functionality into small IoC modules, which are then dropped into a web application. These modules should not be packed together with their dependencies. 

Regarding OSGi inside Tapestry: I don&#039;t see any advantage of starting Felix or Equinox inside Tapestry. But it is possible to integrate Tapestry into OSGi. In my day job we implemented a bundle management application similar to &lt;a href=&quot;http://felix.apache.org/site/apache-felix-web-console.html&quot; rel=&quot;nofollow&quot;&gt;Felix Web Console&lt;/a&gt;. This application 
is based on Tapestry and &lt;a href=&quot;http://www.osgi.org/javadoc/r4v42/org/osgi/service/http/HttpService.html&quot; rel=&quot;nofollow&quot;&gt;HttpService&lt;/a&gt;. Fur this purpose the issues &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-503&quot; rel=&quot;nofollow&quot;&gt;TAP5-503&lt;/a&gt; and &lt;a href=&quot;https://issues.apache.org/jira/browse/TAPESTRY-2519&quot; rel=&quot;nofollow&quot;&gt;TAPESTRY-2519&lt;/a&gt; has been fixed. I&#039;ll describe how to integrate Tapestry into OSGi in some later posts.</description>
		<content:encoded><![CDATA[<p>Hi Soddino,</p>
<p>In OSGi you put small pieces of functionality into a bundle. The bundle and its dependencies are not packaged together. This level of granularity leads to enormous amount of installed bundles but gives you a lot of freedom and flexibility. In the described Tapestry IoC approach you put certain functionality into small IoC modules, which are then dropped into a web application. These modules should not be packed together with their dependencies. </p>
<p>Regarding OSGi inside Tapestry: I don&#8217;t see any advantage of starting Felix or Equinox inside Tapestry. But it is possible to integrate Tapestry into OSGi. In my day job we implemented a bundle management application similar to <a href="http://felix.apache.org/site/apache-felix-web-console.html" rel="nofollow">Felix Web Console</a>. This application<br />
is based on Tapestry and <a href="http://www.osgi.org/javadoc/r4v42/org/osgi/service/http/HttpService.html" rel="nofollow">HttpService</a>. Fur this purpose the issues <a href="https://issues.apache.org/jira/browse/TAP5-503" rel="nofollow">TAP5-503</a> and <a href="https://issues.apache.org/jira/browse/TAPESTRY-2519" rel="nofollow">TAPESTRY-2519</a> has been fixed. I&#8217;ll describe how to integrate Tapestry into OSGi in some later posts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Soddino</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-113</link>
		<dc:creator>Soddino</dc:creator>
		<pubDate>Fri, 05 Mar 2010 00:14:27 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-113</guid>
		<description>Hi Igor,

Usually a module have many dependency libraries and related file configurations. How do if I want to package all of them in a &#039;bundle&#039; like OSGi bundle for easily add to or remove from the application?

How do you think if we embed Felix inside Tapestry, like the way Struts 2 do? (They have a Struts-OSGi plugin: http://cwiki.apache.org/WW/osgi-plugin.html)</description>
		<content:encoded><![CDATA[<p>Hi Igor,</p>
<p>Usually a module have many dependency libraries and related file configurations. How do if I want to package all of them in a &#8216;bundle&#8217; like OSGi bundle for easily add to or remove from the application?</p>
<p>How do you think if we embed Felix inside Tapestry, like the way Struts 2 do? (They have a Struts-OSGi plugin: <a href="http://cwiki.apache.org/WW/osgi-plugin.html" rel="nofollow">http://cwiki.apache.org/WW/osgi-plugin.html</a>)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Igor Drobiazko</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-56</link>
		<dc:creator>Igor Drobiazko</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:18:10 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-56</guid>
		<description>Hi Johannes,

take a look at &lt;a href=&quot;http://tapestry.apache.org/tapestry5.1/tapestry-hibernate/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Tapestry/Hibernate Integration Library&lt;/a&gt;. This library provides the per-thread service &lt;a href=&quot;http://tapestry.apache.org/tapestry5.1/apidocs/org/apache/tapestry5/hibernate/HibernateSessionManager.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;HibernateSessionManager&lt;/a&gt;, which creates a new session for every request. When the session is first created, a transaction is started. At the end of the request the transaction is aborted and your changes are lost unless you commit the transaction manually or you annotate a method with &lt;a href=&quot;http://tapestry.apache.org/tapestry5.1/apidocs/org/apache/tapestry5/hibernate/annotations/CommitAfter.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;@CommitAfter&lt;/a&gt; annotation. 

If you need a more comprehensive transaction support you should use Spring.</description>
		<content:encoded><![CDATA[<p>Hi Johannes,</p>
<p>take a look at <a href="http://tapestry.apache.org/tapestry5.1/tapestry-hibernate/" target="_blank" rel="nofollow">Tapestry/Hibernate Integration Library</a>. This library provides the per-thread service <a href="http://tapestry.apache.org/tapestry5.1/apidocs/org/apache/tapestry5/hibernate/HibernateSessionManager.html" target="_blank" rel="nofollow">HibernateSessionManager</a>, which creates a new session for every request. When the session is first created, a transaction is started. At the end of the request the transaction is aborted and your changes are lost unless you commit the transaction manually or you annotate a method with <a href="http://tapestry.apache.org/tapestry5.1/apidocs/org/apache/tapestry5/hibernate/annotations/CommitAfter.html" target="_blank" rel="nofollow">@CommitAfter</a> annotation. </p>
<p>If you need a more comprehensive transaction support you should use Spring.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Johannes Neubauer</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-55</link>
		<dc:creator>Johannes Neubauer</dc:creator>
		<pubDate>Mon, 08 Feb 2010 13:11:39 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-55</guid>
		<description>Hi Igor,

It is clear to me that Tapestry is no JEE container. My question targeted at the end of your answer. So there is no pooling available. Is there a possibility to facilitate Tapestry as a container, which manages transactions and similar services for me? Or should I use Tapestry to inject Spring Beans in my pages, which support transactions? A nice feature would be to have a transaction per Page request, which I can achieve with PageRenderRequestFilter opening and commiting an transaction for me.

best regards,
Johannes Neubauer</description>
		<content:encoded><![CDATA[<p>Hi Igor,</p>
<p>It is clear to me that Tapestry is no JEE container. My question targeted at the end of your answer. So there is no pooling available. Is there a possibility to facilitate Tapestry as a container, which manages transactions and similar services for me? Or should I use Tapestry to inject Spring Beans in my pages, which support transactions? A nice feature would be to have a transaction per Page request, which I can achieve with PageRenderRequestFilter opening and commiting an transaction for me.</p>
<p>best regards,<br />
Johannes Neubauer</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Igor Drobiazko</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-42</link>
		<dc:creator>Igor Drobiazko</dc:creator>
		<pubDate>Sun, 07 Feb 2010 17:37:21 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-42</guid>
		<description>Your stateful session beans (SLSB) are managed by your JEE container and Tapestry can&#039;t and shouldn&#039;t manage these beans. You can replace your SLSBs which you lookup in a build method by real Tapestry services. These services will be autobuilt by Tapestry, but there is no pooling available. BTW the value of pooling SLSBs is questionable.</description>
		<content:encoded><![CDATA[<p>Your stateful session beans (SLSB) are managed by your JEE container and Tapestry can&#8217;t and shouldn&#8217;t manage these beans. You can replace your SLSBs which you lookup in a build method by real Tapestry services. These services will be autobuilt by Tapestry, but there is no pooling available. BTW the value of pooling SLSBs is questionable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Johannes Neubauer</title>
		<link>http://blog.tapestry5.de/index.php/2010/01/19/tapestry-ioc-modularization-of-web-applications-without-osgi/comment-page-1/#comment-39</link>
		<dc:creator>Johannes Neubauer</dc:creator>
		<pubDate>Fri, 05 Feb 2010 19:39:39 +0000</pubDate>
		<guid isPermaLink="false">http://tapestry5.de/blog/?p=59#comment-39</guid>
		<description>Hi Igor,

Nice article! We met at the technical university of dortmund, after your talk. I got your book today and will read it in the near future. 

I like your ideas using tapestry for product lining. It is definitively a powerful feature. The constraint to have to restart the system isn&#039;t too hard. Reload features like hot deployment and others seem not to work properly or even reliably. Restarting a tomcat or jetty is not that time consuming at all.

My question is: You have your own IoC container and I can configure my own types of Injection in the service configuration. Additionally you have a page pool for delivering pages fast and being scalable, since you can configure the pool. But is it possible to use a PoJo-Pool or something similar for Injecting some business logic, too? I ask that question, because I have scalable business logic by using session beans in a Java EE container like JBoss (Heavy-Weight thing isn&#039;t it). I Inject such a session bean to my Tapestry pages using a JNDI lookup, because tapestry service classes are not managed classes of the web container. I annotate the build-method with @Scope(ScopeConstants.PERTHREAD), so that the bean is retrieved only once per request. If I could use the tapestry injection to simulate scalable stateless session beans, that would be really really nice.

best regards
Johannes Neubauer</description>
		<content:encoded><![CDATA[<p>Hi Igor,</p>
<p>Nice article! We met at the technical university of dortmund, after your talk. I got your book today and will read it in the near future. </p>
<p>I like your ideas using tapestry for product lining. It is definitively a powerful feature. The constraint to have to restart the system isn&#8217;t too hard. Reload features like hot deployment and others seem not to work properly or even reliably. Restarting a tomcat or jetty is not that time consuming at all.</p>
<p>My question is: You have your own IoC container and I can configure my own types of Injection in the service configuration. Additionally you have a page pool for delivering pages fast and being scalable, since you can configure the pool. But is it possible to use a PoJo-Pool or something similar for Injecting some business logic, too? I ask that question, because I have scalable business logic by using session beans in a Java EE container like JBoss (Heavy-Weight thing isn&#8217;t it). I Inject such a session bean to my Tapestry pages using a JNDI lookup, because tapestry service classes are not managed classes of the web container. I annotate the build-method with @Scope(ScopeConstants.PERTHREAD), so that the bean is retrieved only once per request. If I could use the tapestry injection to simulate scalable stateless session beans, that would be really really nice.</p>
<p>best regards<br />
Johannes Neubauer</p>
]]></content:encoded>
	</item>
</channel>
</rss>

