<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Next Presso &#187; Hibernate</title>
	<atom:link href="http://www.next-presso.fr/tag/hibernate/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.next-presso.fr</link>
	<description>Java, Seam, Spring &#38; co</description>
	<lastBuildDate>Thu, 08 Apr 2010 10:09:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How to use Hibernate filters in Seam</title>
		<link>http://www.next-presso.fr/2008/10/how-to-use-hibernate-filters-in-seam/</link>
		<comments>http://www.next-presso.fr/2008/10/how-to-use-hibernate-filters-in-seam/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 21:56:30 +0000</pubDate>
		<dc:creator>Antoine Sabot-Durand</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://www.next-presso.fr/?p=12</guid>
		<description><![CDATA[<p>JBoss Seam is very rich and powerful framework but some of its features are badly documented.</p>
<p>Hibernate Filters is one of these  forgotten features. In fact filters documentation in Seam is rather useless.</p>
<p></p>
<p>I won&#8217;t explain in details Hibernate Filters here. Hibernate documentation does it ways better. To make short it&#8217;s a smart solution to add [...]]]></description>
			<content:encoded><![CDATA[<p>JBoss Seam is very rich and powerful framework but some of its features are badly documented.</p>
<p>Hibernate Filters is one of these  forgotten features. In fact <a href="http://docs.jboss.org/seam/latest/reference/en-US/html/persistence.html#d0e6816" target="_blank">filters documentation in Seam</a> is rather useless.</p>
<p><span id="more-12"></span></p>
<p>I won&#8217;t explain in details Hibernate Filters here. Hibernate <a href="http://www.hibernate.org/hib_docs/v3/reference/en-US/html/filters.html" target="_blank">documentation</a> does it ways better. To make short it&#8217;s a smart solution to add conditions to the &#8220;where&#8221; clause of a request at runtime.</p>
<p>To create such a filter in Seam, one will also have to read <a href="http://www.hibernate.org/hib_docs/annotations/reference/en/html/entity.html#entity-hibspec-filters" target="_blank">Hibernate annotations</a> on that matter.</p>
<p>For instance let say we have an used cars stock for which we had developed a bunch of forms and pages to search and navigate through it. We also created a Seam component to handle a requests collection to populate search form&#8217;s combo box fields and orchestrate all the search and navigation.</p>
<p>In database, cars have a &#8220;stockVoLib&#8221; field which gives car origin (demonstration, management car, etc&#8230;). Until now this field wasn&#8217;t used by the application and search were done on all the stock db. But now, our customer ask for a new navigation having exactly the same look at the first one but restricted on  a given car origin.</p>
<p>We can answer to this request in two different ways.</p>
<ul>
<li>Refactor all the running website&#8217;s engine to introduce the new &#8220;stcokVoLib&#8221; parameter in all the requests and code calling these requests</li>
<li>Create a filter which will save us a lot of refactoring work on existing code.</li>
</ul>
<p>Guess what ? I prefer to create a filter <img src='http://www.next-presso.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (good news for the end of this post).</p>
<h3>1.Hibernate filter creation with annotations</h3>
<p>First thing to do : define the filter. We can dot it in the target entity or at the package level. As a filter can be applied to more than one entity I prefer the package level option. So I add a &#8220;package-info.java&#8221; file to my entities package to define the filter in it.</p>
<pre class="brush: java;">
@FilterDef(name = &quot;stockLib&quot;, defaultCondition = &quot;stockLibele = :aStockLib&quot;,
parameters = @ParamDef(name = &quot;aStockLib&quot;, type = &quot;string&quot;))

package org.fpp.domain;

import org.hibernate.annotations.FilterDef;
import org.hibernate.annotations.ParamDef;
</pre>
<p>The name of the filter is &#8220;stockLib&#8221;, it has a default condition which will be used if there is no condition defined when the filter is applied on the entity and it also has one string parameter : &#8220;aStockLib&#8221;.<br />
Keep in mind that the condition defined here is not a HQL &#8220;where&#8221; but a SQL one.</p>
<p>After that I apply the filter on one or more entities (I could also attach it to a collection). In my use case I only have one entity concerned : &#8220;usedCar&#8221;.</p>
<pre class="brush: java;">
@Entity
@Filter(name = &quot;stockLib&quot;)
public class usedCar {
...
</pre>
<h3>3.Using the filter with Hibernate</h3>
<p>Now, I can use the filter with Hibernate. I can activate it and send it parameter values  by getting Hibernate session (if we are using JPA we do that with EntityManager.getDelegate())</p>
<pre class="brush: java;">
Session session=(Session) entityManager.getDelegate();
session.enableFilter(&quot;stockLib&quot;).setParameter(&quot;aStockLib&quot;, &quot;VD&quot;);
...
session.disableFilter(&quot;stockLib&quot;);
</pre>
<h3>3.What about Seam ?</h3>
<p>You can do better with Seam by creating a filter component (wraping Hibernate filter) in which you can inject parameter at runtime.<br />
We only have to have this component in the Seam components.xml file.</p>
<pre class="brush: xml;">
&lt;persistence:filter name=&quot;stockLibFilter&quot;&gt;
  &lt;persistence:name&gt;stockLib&lt;/persistence:name&gt;
  &lt;persistence:parameters&gt;
    &lt;key&gt;aStockLib&lt;/key&gt;
    &lt;value&gt;#{parameterHdl.stockLib}&lt;/value&gt;
  &lt;/persistence:parameters&gt;
&lt;/persistence:filter&gt;
</pre>
<p>Remember that parameters value in this &#8220;meta-filter&#8221;  should always be expressed in expression language even if we want inject a constant : #{&#8216;VD&#8217;}.<br />
In our example &#8220;parameterHdl&#8221; is a Seam component in which the stockLib parameter is injected from the URL according tto the the following configuration in pages.xml</p>
<pre class="brush: xml;">
&lt;param name=&quot;stockLib&quot; value=&quot;#{parameterHdl.stockLib}&quot; required=&quot;false&quot;/&gt;
</pre>
<p>At that point Seam filter can be injected in a specific EntityManager on which the filter will be always activated.</p>
<pre class="brush: xml;">
&lt;persistence:managed-persistence-context name=&quot;emStockLib&quot; auto-create=&quot;true&quot; persistence-unit-jndi-name=&quot;java:/fppEntityManagerFactory&quot; &gt;
  &lt;persistence:filters&gt;
    &lt;value&gt;#{stockLibFilter}&lt;/value&gt;
  &lt;/persistence:filters&gt;
&lt;/persistence:managed-persistence-context&gt;
</pre>
<p>This new entityManager could be injected in components instead of the standard entityManager (without filter). There is nothing to do to activate the filter, it is on by default.<br />
<strong>But that&#8217;s not all !</strong></p>
<h3>4.Dynamic filters activation in Seam</h3>
<p>It&#8217;s here that Seam documentation is lacking something very useful : filters activation can be dynamically set at run time.</p>
<p>Thus we can write someting like :</p>
<pre class="brush: xml;">
&lt;persistence:filter name=&quot;stockLibFilter&quot; enabled=&quot;#{!(empty parameterHdl.stockLib)}&quot;&gt;
  &lt;persistence:name&gt;stockLib&lt;/persistence:name&gt;
  &lt;persistence:parameters&gt;
    &lt;key&gt;aStockLib&lt;/key&gt;
    &lt;value&gt;#{parameterHdl.stockLib}&lt;/value&gt;
  &lt;/persistence:parameters&gt;
&lt;/persistence:filter&gt;
</pre>
<p>Pay attention to the &#8220;enabled&#8221; parameter in which we put a boolean expression. It means that the filter is activated only if stockLib field of component parameterHdl is not empty. As this field is filled by URL parameter injection, an existing stockLib parameter in URL activate the filter.</p>
<p>In this usage we can apply the filter to the application&#8217;s main entityManager (no need to create a specific one) and this filter will be activated if its enabled parameter is satisfied. This test will be evaluated each time the entityManager is called (that&#8217;s Seam&#8217;s &#8220;magic&#8221;).</p>
<pre class="brush: xml;">
&lt;persistence:managed-persistence-context name=&quot;entityManager&quot; auto-create=&quot;true&quot; persistence-unit-jndi-name=&quot;java:/fppEntityManagerFactory&quot; &gt;
  &lt;persistence:filters&gt;
    &lt;value&gt;#{stockLibFilter}&lt;/value&gt;
  &lt;/persistence:filters&gt;
&lt;/persistence:managed-persistence-context&gt;
</pre>
<p>So we have injected a dynamically activated Hibernate filter in the entityManager and its activation will depend of the application context.<br />
One last thing to keep in mind : if the enabled parameter of the filter uses a Seam component (like in my example), you should not inject the &#8220;filtered&#8221; entityManager in this component. If you did you would get an exception at the application launch caused by the circular reference.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F&amp;partner=sociable" title="Print"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F&amp;title=%5Blang_en%5DHow%20to%20use%20Hibernate%20filters%20in%20Seam%5B%2Flang_en%5D%5Blang_fr%5DUtilisation%20des%20filtres%20hibernate%20dans%20Seam%5B%2Flang_fr%5D&amp;bodytext=%5Blang_fr%5DJBoss%20Seam%20est%20vraiment%20un%20framework%20tr%C3%A8s%20riche%20mais%20certaines%20de%20ses%20fonctionalit%C3%A9s%20sont%20mal%20document%C3%A9es.%0D%0A%0D%0AC%27est%20le%20cas%20des%20filtres%20Hibernate.%20La%20documentation%20de%20Seam%20sur%20le%20sujet%20est%20plut%C3%B4t%20lapidaire%20et%20inutilisable%20en%20l%27%C3%A9tat.%5B%2Flan" title="Digg"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F&amp;title=%5Blang_en%5DHow%20to%20use%20Hibernate%20filters%20in%20Seam%5B%2Flang_en%5D%5Blang_fr%5DUtilisation%20des%20filtres%20hibernate%20dans%20Seam%5B%2Flang_fr%5D&amp;notes=%5Blang_fr%5DJBoss%20Seam%20est%20vraiment%20un%20framework%20tr%C3%A8s%20riche%20mais%20certaines%20de%20ses%20fonctionalit%C3%A9s%20sont%20mal%20document%C3%A9es.%0D%0A%0D%0AC%27est%20le%20cas%20des%20filtres%20Hibernate.%20La%20documentation%20de%20Seam%20sur%20le%20sujet%20est%20plut%C3%B4t%20lapidaire%20et%20inutilisable%20en%20l%27%C3%A9tat.%5B%2Flan" title="del.icio.us"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F&amp;t=%5Blang_en%5DHow%20to%20use%20Hibernate%20filters%20in%20Seam%5B%2Flang_en%5D%5Blang_fr%5DUtilisation%20des%20filtres%20hibernate%20dans%20Seam%5B%2Flang_fr%5D" title="Facebook"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F&amp;title=%5Blang_en%5DHow%20to%20use%20Hibernate%20filters%20in%20Seam%5B%2Flang_en%5D%5Blang_fr%5DUtilisation%20des%20filtres%20hibernate%20dans%20Seam%5B%2Flang_fr%5D&amp;annotation=%5Blang_fr%5DJBoss%20Seam%20est%20vraiment%20un%20framework%20tr%C3%A8s%20riche%20mais%20certaines%20de%20ses%20fonctionalit%C3%A9s%20sont%20mal%20document%C3%A9es.%0D%0A%0D%0AC%27est%20le%20cas%20des%20filtres%20Hibernate.%20La%20documentation%20de%20Seam%20sur%20le%20sujet%20est%20plut%C3%B4t%20lapidaire%20et%20inutilisable%20en%20l%27%C3%A9tat.%5B%2Flan" title="Google Bookmarks"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F&amp;title=%5Blang_en%5DHow%20to%20use%20Hibernate%20filters%20in%20Seam%5B%2Flang_en%5D%5Blang_fr%5DUtilisation%20des%20filtres%20hibernate%20dans%20Seam%5B%2Flang_fr%5D&amp;source=Next+Presso+Java%2C+Seam%2C+Spring+%26amp%3B+co&amp;summary=%5Blang_fr%5DJBoss%20Seam%20est%20vraiment%20un%20framework%20tr%C3%A8s%20riche%20mais%20certaines%20de%20ses%20fonctionalit%C3%A9s%20sont%20mal%20document%C3%A9es.%0D%0A%0D%0AC%27est%20le%20cas%20des%20filtres%20Hibernate.%20La%20documentation%20de%20Seam%20sur%20le%20sujet%20est%20plut%C3%B4t%20lapidaire%20et%20inutilisable%20en%20l%27%C3%A9tat.%5B%2Flan" title="LinkedIn"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=%5Blang_en%5DHow%20to%20use%20Hibernate%20filters%20in%20Seam%5B%2Flang_en%5D%5Blang_fr%5DUtilisation%20des%20filtres%20hibernate%20dans%20Seam%5B%2Flang_fr%5D&amp;url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F" title="Netvibes"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=%5Blang_en%5DHow%20to%20use%20Hibernate%20filters%20in%20Seam%5B%2Flang_en%5D%5Blang_fr%5DUtilisation%20des%20filtres%20hibernate%20dans%20Seam%5B%2Flang_fr%5D%20-%20http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fhow-to-use-hibernate-filters-in-seam%2F" title="Twitter"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.next-presso.fr/2008/10/how-to-use-hibernate-filters-in-seam/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Bienvenue sur Next Presso</title>
		<link>http://www.next-presso.fr/2008/10/bienvenue-sur-next-presso/</link>
		<comments>http://www.next-presso.fr/2008/10/bienvenue-sur-next-presso/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 03:20:52 +0000</pubDate>
		<dc:creator>Antoine Sabot-Durand</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://www.next-presso.fr/?p=3</guid>
		<description><![CDATA[<p>Comme il faut un premier post le voici  </p>
<p>Cela fait un certain nombre d&#8217;années que je conçois des architectures applicatives et les développe. Aujourd&#8217;hui j&#8217;ai envie de partager un peu de mon expérience sur le sujet.</p>
<p>Bon, de quoi va-t-on parler ici ?</p>
<p>Tout d&#8217;abord d&#8217;outils et de frameworks issus du mode Java. J&#8217;ai un petit [...]]]></description>
			<content:encoded><![CDATA[<p>Comme il faut un premier post le voici <img src='http://www.next-presso.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Cela fait un certain nombre d&#8217;années que je conçois des architectures applicatives et les développe. Aujourd&#8217;hui j&#8217;ai envie de partager un peu de mon expérience sur le sujet.</p>
<p>Bon, de quoi va-t-on parler ici ?</p>
<p>Tout d&#8217;abord d&#8217;outils et de frameworks issus du mode Java. J&#8217;ai un petit faible pour <a title="Site de Seam" href="http://www.seamframework.org/" target="_blank">Seam</a>, <a title="Site de Spring" href="http://www.springframework.org/" target="_blank">Spring</a> et <a title="Site d'Hibernate" href="http://www.hibernate.org/" target="_blank">Hibernate</a> donc je risque d&#8217;en parler un peu&#8230;</p>
<p>Je vais également aborder des problématiques concrètes pour mettre en œuvre des outils (IDE, software factories et autres serveurs d&#8217;application).</p>
<p>La méthodologie et l&#8217;architecture sont aussi des sujets qui m&#8217;intéressent et j&#8217;écrirai articles sur le sujet de temps en temps.</p>
<p>Enfin, de par sa nature historique pour moi, je ne pourrais pas passer à côté d&#8217;articles sur <a title="Developer works Domino" href="http://www.ibm.com/developerworks/lotus" target="_blank">Lotus domino</a> (si, si&#8230;) qui m&#8217;a longtemps accompagné, que j&#8217;ai essayé de semer mais qui revient de temps en temps dans mon activité.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F&amp;partner=sociable" title="Print"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F&amp;title=Bienvenue%20sur%20Next%20Presso&amp;bodytext=Comme%20il%20faut%20un%20premier%20post%20le%20voici%20%3A-%29%0D%0A%0D%0ACela%20fait%20un%20certain%20nombre%20d%27ann%C3%A9es%20que%20je%20con%C3%A7ois%20des%20architectures%20applicatives%20et%20les%20d%C3%A9veloppe.%20Aujourd%27hui%20j%27ai%20envie%20de%20partager%20un%20peu%20de%20mon%20exp%C3%A9rience%20sur%20le%20sujet.%0D%0A%0D%0ABon%2C%20de%20quoi%20va-t-on%20p" title="Digg"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F&amp;title=Bienvenue%20sur%20Next%20Presso&amp;notes=Comme%20il%20faut%20un%20premier%20post%20le%20voici%20%3A-%29%0D%0A%0D%0ACela%20fait%20un%20certain%20nombre%20d%27ann%C3%A9es%20que%20je%20con%C3%A7ois%20des%20architectures%20applicatives%20et%20les%20d%C3%A9veloppe.%20Aujourd%27hui%20j%27ai%20envie%20de%20partager%20un%20peu%20de%20mon%20exp%C3%A9rience%20sur%20le%20sujet.%0D%0A%0D%0ABon%2C%20de%20quoi%20va-t-on%20p" title="del.icio.us"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F&amp;t=Bienvenue%20sur%20Next%20Presso" title="Facebook"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F&amp;title=Bienvenue%20sur%20Next%20Presso&amp;annotation=Comme%20il%20faut%20un%20premier%20post%20le%20voici%20%3A-%29%0D%0A%0D%0ACela%20fait%20un%20certain%20nombre%20d%27ann%C3%A9es%20que%20je%20con%C3%A7ois%20des%20architectures%20applicatives%20et%20les%20d%C3%A9veloppe.%20Aujourd%27hui%20j%27ai%20envie%20de%20partager%20un%20peu%20de%20mon%20exp%C3%A9rience%20sur%20le%20sujet.%0D%0A%0D%0ABon%2C%20de%20quoi%20va-t-on%20p" title="Google Bookmarks"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F&amp;title=Bienvenue%20sur%20Next%20Presso&amp;source=Next+Presso+Java%2C+Seam%2C+Spring+%26amp%3B+co&amp;summary=Comme%20il%20faut%20un%20premier%20post%20le%20voici%20%3A-%29%0D%0A%0D%0ACela%20fait%20un%20certain%20nombre%20d%27ann%C3%A9es%20que%20je%20con%C3%A7ois%20des%20architectures%20applicatives%20et%20les%20d%C3%A9veloppe.%20Aujourd%27hui%20j%27ai%20envie%20de%20partager%20un%20peu%20de%20mon%20exp%C3%A9rience%20sur%20le%20sujet.%0D%0A%0D%0ABon%2C%20de%20quoi%20va-t-on%20p" title="LinkedIn"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Bienvenue%20sur%20Next%20Presso&amp;url=http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F" title="Netvibes"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Bienvenue%20sur%20Next%20Presso%20-%20http%3A%2F%2Fwww.next-presso.fr%2F2008%2F10%2Fbienvenue-sur-next-presso%2F" title="Twitter"><img src="http://www.next-presso.fr/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.next-presso.fr/2008/10/bienvenue-sur-next-presso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
