<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Pawel's Blog</title>
	<atom:link href="http://pawel.wrzesz.cz/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://pawel.wrzesz.cz/blog</link>
	<description>beyond buzzword bingo ;)</description>
	<pubDate>Mon, 26 Jul 2010 20:14:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Seam-Guice is now part of Seam</title>
		<link>http://pawel.wrzesz.cz/blog/?p=32</link>
		<comments>http://pawel.wrzesz.cz/blog/?p=32#comments</comments>
		<pubDate>Fri, 31 Jul 2009 08:16:51 +0000</pubDate>
		<dc:creator>Paweł Wrzeszcz</dc:creator>
		
		<category><![CDATA[Guice]]></category>

		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://pawel.wrzesz.cz/blog/?p=32</guid>
		<description><![CDATA[Google Guice support for Seam is now part of the Seam distribution!
It is available since the 2.1.2 release of Seam, as a part of the IoC module, but if you happen to need it, the best choice is to grab the latest 2.2.0.GA version which includes a fix for the disinjection issue.
Disinjection
The problem with disinjection [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pawel.wrzesz.cz/blog/?p=4">Google Guice support for Seam</a> is now part of the Seam distribution!</p>
<p>It is available since the 2.1.2 release of Seam, as a part of the IoC module, but if you happen to need it, the best choice is to <a href="http://seamframework.org/Download">grab</a> the latest 2.2.0.GA version which includes a fix for the <a href="https://jira.jboss.org/jira/browse/JBSEAM-4245">disinjection issue</a>.</p>
<p><strong>Disinjection</strong></p>
<p>The problem with disinjection was that the implementation injected values to the fields annotated with @Inject, but did not clear those values after the method call. The disinjection step here is required for exactly the same reason that Seam itself performs it on @In- and @Out-jected fields - to prevent a long-scoped Seam component from holding a reference to a (possibly short-living) Guice component.</p>
<p>Also, the presence of disinjection allows you to @Inject non-serializable properties into serializable components without having to worry about making those properties transient.</p>
<p><strong>Configuration and Docs</strong></p>
<p>The configuration did not change, except for one detail, which is the &#8220;guice&#8221; namespace URL declaration in the components.xml file:</p>
<pre name="code" class="xml">

&lt;components
xmlns=&quot;http://jboss.com/products/seam/components&quot;
xmlns:guice=&quot;http://jboss.com/products/seam/guice&quot;&gt;
...
&lt;/components&gt;
</pre>
<p>All components are now in the <a href="http://anonsvn.jboss.org/repos/seam/branches/community/Seam_2_2/src/ioc/org/jboss/seam/ioc/guice/">org.jboss.seam.ioc.guice</a> package.</p>
<p>If you feel like checking the latest documentation of the Seam-Guice module, here is the link:<br />
<a href="http://docs.jboss.com/seam/2.2.0.GA/reference/en-US/html/guice.html">http://docs.jboss.com/seam/2.2.0.GA/reference/en-US/html/guice.html</a>.</p>
<p>Thanks to <a href="http://mojavelinux.com/">Dan Allen</a> who reviewed my code and spotted the disinjection issue.</p>
<p>-Pawel</p>
]]></content:encoded>
			<wfw:commentRss>http://pawel.wrzesz.cz/blog/?feed=rss2&amp;p=32</wfw:commentRss>
		</item>
		<item>
		<title>Seam Talk at GeeCON</title>
		<link>http://pawel.wrzesz.cz/blog/?p=15</link>
		<comments>http://pawel.wrzesz.cz/blog/?p=15#comments</comments>
		<pubDate>Mon, 04 May 2009 21:17:54 +0000</pubDate>
		<dc:creator>Paweł Wrzeszcz</dc:creator>
		
		<category><![CDATA[Conferences]]></category>

		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://pawel.wrzesz.cz/blog/?p=15</guid>
		<description><![CDATA[
I am speaking at the GeeCON conference in Cracow this Friday.
The presentation is called &#8220;Seam for Spring Developers&#8221; and will be a fast-track introduction to Seam and a &#8220;Seamish&#8221; way of thinking for those already experienced with other Java web frameworks, like Spring.
If you are around, make sure to choose Room 5 at 12.15  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.geecon.org/main/home"><img class="size-medium wp-image-16 alignright" src="http://pawel.wrzesz.cz/blog/wp-content/uploads/2009/05/geecon.png" alt="" width="120" height="46" /></a><br />
I am speaking at the <a href="http://www.geecon.org/main/home">GeeCON</a> conference in Cracow this Friday.</p>
<p>The presentation is called &#8220;Seam for Spring Developers&#8221; and will be a fast-track introduction to <a href="http://www.seamframework.org/">Seam</a> and a &#8220;Seamish&#8221; way of thinking for those already experienced with other Java web frameworks, like Spring.</p>
<p>If you are around, make sure to choose Room 5 at 12.15 <img src='http://pawel.wrzesz.cz/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>See you there.</p>
<p>-Pawel</p>
<p>Update: I&#8217;ve uploaded the <a href="http://pawel.wrzesz.cz/blog/wp-content/uploads/2009/05/seamforspringdevelopersgeecon2009.pdf">presentation slides</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pawel.wrzesz.cz/blog/?feed=rss2&amp;p=15</wfw:commentRss>
		</item>
		<item>
		<title>Seam Exam (beta) @ JavaBlackBelt</title>
		<link>http://pawel.wrzesz.cz/blog/?p=12</link>
		<comments>http://pawel.wrzesz.cz/blog/?p=12#comments</comments>
		<pubDate>Sat, 13 Sep 2008 13:33:30 +0000</pubDate>
		<dc:creator>Paweł Wrzeszcz</dc:creator>
		
		<category><![CDATA[Exam]]></category>

		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://pawel.wrzesz.cz/blog/?p=12</guid>
		<description><![CDATA[Together with Matthias Merz we created Seam - Basic Exam at JavaBlackBelt.
It verifies general understanding of the Seam 2.0 concepts, required to implement a simple Seam application.
The exam is now in the beta stage, which means it is available publicly and you can take the (beta) exam, which does not count for your belt progress. [...]]]></description>
			<content:encoded><![CDATA[<p>Together with <a href="http://www.javablackbelt.com/UserView.wwa?userId=4202187">Matthias Merz</a> we created <a href="http://www.javablackbelt.com/QuestionnaireDefDisplay.wwa?questPublicId=1620">Seam - Basic Exam</a> at <a href="http://www.javablackbelt.com">JavaBlackBelt</a>.</p>
<p>It verifies general understanding of the <a href="http://www.seamframework.org/">Seam</a> 2.0 concepts, required to implement a simple Seam application.</p>
<p>The exam is now in the beta stage, which means it is available publicly and you can <a href="http://www.javablackbelt.com/QuestionnairePerform.wwa?questDefId=8090960">take the (beta) exam</a>, which does not count for your belt progress. It will be released as soon as we collect enough stable questions in each category.</p>
<p>Like all exams available at <a href="http://www.javablackbelt.com">JavaBlackBelt</a>, it is free.</p>
<p>You are welcome to contribute your own questions and improve or rate existing ones.</p>
<p style="text-align: center;"><a href="http://www.javablackbelt.com/QuestionnaireDefDisplay.wwa?questPublicId=1620">Exam page</a></p>
<p style="text-align: center;"><a href="http://www.javablackbelt.com/QuestionnaireDefDisplay.wwa?questPublicId=1620"><img class="aligncenter" src="http://www.javablackbelt.com/imgs/logos/logo-javablackbelt.gif" alt="JavaBlackBelt Seam Exam" /></a></p>
<p>Cheers,<br />
-Pawel</p>
]]></content:encoded>
			<wfw:commentRss>http://pawel.wrzesz.cz/blog/?feed=rss2&amp;p=12</wfw:commentRss>
		</item>
		<item>
		<title>JBoss.org Project Statistics</title>
		<link>http://pawel.wrzesz.cz/blog/?p=7</link>
		<comments>http://pawel.wrzesz.cz/blog/?p=7#comments</comments>
		<pubDate>Thu, 21 Aug 2008 13:44:48 +0000</pubDate>
		<dc:creator>Paweł Wrzeszcz</dc:creator>
		
		<category><![CDATA[JBoss]]></category>

		<guid isPermaLink="false">http://pawel.wrzesz.cz/blog/?p=7</guid>
		<description><![CDATA[The JBoss.org Team is pleased to release JBoss.org Statistics, available at stats.jboss.org. We provide JIRA and Subversion statistics for projects hosted at JBoss.org.
JBoss.org Statistics are powered by Kosmos, created by Aron Gombas. They run on JBoss Portal.
They come with a couple of interesting charts, which let you easily find out the most active commiters of [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.jboss.org">JBoss.org</a> <a href="http://www.jboss.org/community/jbossORG.html">Team</a> is pleased to release <a href="http://stats.jboss.org">JBoss.org Statistics</a>, available at <a href="http://stats.jboss.org">stats.jboss.org</a>. We provide <a href="http://stats.jboss.org/dev/jira">JIRA</a> and <a href="http://stats.jboss.org/dev/svn">Subversion</a> statistics for projects hosted at JBoss.org.</p>
<p>JBoss.org Statistics are powered by <a href="http://jboss.org/kosmos">Kosmos</a>, created by <a href="http://www.midori.hu">Aron Gombas.</a> They run on <a href="http://jboss.org/jbossportal">JBoss Portal</a>.</p>
<p>They come with a couple of interesting charts, which let you easily find out the most active commiters of the <a href="http://jboss.org/jbossas">JBoss AS</a> project:</p>
<div class="img left" style="width:480px;">
	<a href="http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_jbossas.png"><img src="http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_jbossas.png" alt="" width="480" height="360" /></a>
	<div>JBoss Application Server - Most Active Commiters</div>
</div>
<p>or how new projects (like <a href="http://jboss.org/envers">Envers</a>) grow in size:</p>
<div class="img alignnone size-medium wp-image-9" style="width:480px;">
	<a href='http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_envers.png'><img src="http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_envers.png" alt="" width="480" height="360" /></a>
	<div>Envers project - Repository Entry History</div>
</div>
<p>Now, looking at the following chart, guess when the <a href="http://seamframework.org">Seam Freamework</a> releases occurred:</p>
<div class="img alignnone size-medium wp-image-10" style="width:480px;">
	<a href='http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_seam.png'><img src="http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_seam.png" alt="" width="480" height="360" /></a>
	<div>Seam Framework - Commit History</div>
</div>
<p>Well, 1.0 beta1 was out in September 2005, beta2 in February 2006, 1.0 GA in June. And so on <img src='http://pawel.wrzesz.cz/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Here is <a href="https://jira.jboss.org/jira/browse/JBSEAM?report=com.atlassian.jira.plugin.system.project:versions-panel&#038;subset=-1">the full list</a>.</p>
<p>On the &#8220;Most Active Files&#8221; diagrams I quickly discovered that usually the most frequently changed files are&#8230; Maven files <img src='http://pawel.wrzesz.cz/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="img alignnone size-medium wp-image-11" style="width:480px;">
	<a href='http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_mc.png'><img src="http://pawel.wrzesz.cz/blog/wp-content/uploads/2008/08/stats_mc.png" alt="JBoss Microcontainer - Most Active Files" width="480" height="360" /></a>
	<div>JBoss Microcontainer - Most Active Files</div>
</div>
<p>Needless to say, you will find more at <a href="http://stats.jboss.org">stats.jboss.org</a>.</p>
<p>Enjoy,<br />
-Pawel</p>
]]></content:encoded>
			<wfw:commentRss>http://pawel.wrzesz.cz/blog/?feed=rss2&amp;p=7</wfw:commentRss>
		</item>
		<item>
		<title>Guicy Seam</title>
		<link>http://pawel.wrzesz.cz/blog/?p=4</link>
		<comments>http://pawel.wrzesz.cz/blog/?p=4#comments</comments>
		<pubDate>Fri, 20 Jun 2008 08:50:56 +0000</pubDate>
		<dc:creator>Paweł Wrzeszcz</dc:creator>
		
		<category><![CDATA[Guice]]></category>

		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://pawel.wrzesz.cz/blog/?p=4</guid>
		<description><![CDATA[Introducing @Guice annotation
You may already have heard about  Seam being a &#8220;deep integration framework&#8221; and Google Guice providing lightweight dependency injection. The news is that you can now easily use Seam together with Guice.
The WebBeans specification is built upon concepts from both of those frameworks. Since Seam provides Spring support in the IoC module, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introducing @Guice annotation</strong></p>
<p>You may already have heard about  <a title="seam" href="http://seamframework.org">Seam</a> being a &#8220;deep integration framework&#8221; and <a href="http://code.google.com/p/google-guice/">Google Guice</a> providing lightweight dependency injection. The news is that you can now easily use <a title="seam with guice" href="http://wiki.jboss.org/wiki/LabsSeamGuice">Seam together with Guice</a>.</p>
<p>The <a href="http://jcp.org/en/jsr/detail?id=299">WebBeans</a> specification is built upon concepts from both of those frameworks. Since Seam provides <a href="http://docs.jboss.com/seam/2.1.0.A1/reference/en/html/spring.html">Spring support</a> in the IoC module, why not to integrate Guice as well? Thinking this way I have implemented Guice support for Seam.</p>
<p><strong>Quick Howto</strong></p>
<p>The rule is fairly simple - if you want to use Guice injection in your Seam component, annotate it with the <a href="http://anonsvn.jboss.org/repos/labs/labs/jbosslabs/labs-3.0-build/integration/seam-guice/src/main/java/org/jboss/labs/seam/guice/Guice.java">@Guice</a> annotation.</p>
<pre name="code" class="java">

@Name(&quot;myGuicyComponent&quot;)
@Guice
public class MyGuicyComponent
{
  @Inject MyObject myObject
}
</pre>
<p>For all Seam components annotated with the @Guice annotation, Guice injection will be performed automatically.</p>
<p>Great, but wait&#8230; which Guice injector will be used? Well, the one you provide. Just edit components.xml:</p>
<pre name="code" class="xml">

&lt;components
xmlns=&quot;http://jboss.com/products/seam/components&quot;
xmlns:guice=&quot;http://jboss.org/jbosslabs/seam-guice&quot;&gt;
  ...
  &lt;guice:init injector=&quot;#{myGuiceInjector}/&gt;
  ...
&lt;/components&gt;
</pre>
<p><code>myGuiceInjector</code> should be a Seam component that implements the <a href="http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/Injector.html">Injector</a> interface.</p>
<p>You may want to create it <span class="wikiContent">from a list of <a href="http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/Module.html">modules</a>:</span></p>
<pre name="code" class="xml">

&lt;guice:injector name=&quot;myGuiceInjector&quot;&gt;
  &lt;guice:modules&gt;
    &lt;value&gt;com.example.guice.GuiceModule1&lt;/value&gt;
    &lt;value&gt;com.example.guice.GuiceModule2&lt;/value&gt;
  &lt;/guice:modules&gt;
&lt;/guice:injector&gt;
</pre>
<p>Of course you can also use an injector that is already used in other, possibly non-Seam, parts of you application. That was one of the reasons I implemented this integration - to tie other parts of an application that used Guice together with Seam.</p>
<p>To enable Seam and Guice integration, add <a title="seam-guice.jar" href="http://jboss.org/shotoku/downloads/other">seam-guice.jar</a> library to your application. Do not forget to put <a href="http://code.google.com/p/google-guice/downloads/list">guice-1.0.jar</a> in as well <img src='http://pawel.wrzesz.cz/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Give it a try!</strong></p>
<p>I have included more information on the <a href="http://wiki.jboss.org/wiki/LabsSeamGuice">wiki page</a>. You can <a href="http://jboss.org/shotoku/downloads/other">download seam-guice library</a> and browse the <a title="source code" href="http://anonsvn.jboss.org/repos/labs/labs/jbosslabs/labs-3.0-build/integration/seam-guice/src/main/java/org/jboss/labs/seam/guice/">source code</a>. It is implemented as a simple interceptor. Let me know if you find a bug or a place for improvement.</p>
<p>If you like this solution, you can <a title="seam guice vote" href="http://jira.jboss.com/jira/browse/JBSEAM-3044">vote</a> to make it part of the Seam project. You may also want to have a look at <a href="http://notdennisbyrne.blogspot.com/2007/09/integrating-guice-and-jsf.html">Guice and plain JSF integration</a> and the <a href="http://anonsvn.jboss.org/repos/jbossas/projects/microcontainer/trunk/guice-int/">Guice extension to JBoss Microcontainer</a>.</p>
<p>Many thanks to <a href="http://szimano.org">Tomek</a>, who introduced Guice to me, <a href="http://www.seamframework.org/Community/SeamComponentOutOfBoxGuiceJobssMC">Kamil</a>, for feedback and <a href="http://warski.org">Adam</a>, for encouraging me to blog about it <img src='http://pawel.wrzesz.cz/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>-Paweł</p>
]]></content:encoded>
			<wfw:commentRss>http://pawel.wrzesz.cz/blog/?feed=rss2&amp;p=4</wfw:commentRss>
		</item>
	</channel>
</rss>
