<?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>Everything is wrong &#187; Seam</title>
	<atom:link href="http://everythingiswrong.free.fr/index.php/tag/seam/feed/" rel="self" type="application/rss+xml" />
	<link>http://everythingiswrong.free.fr</link>
	<description>Un blog dédié à l&#039;informatique en général</description>
	<lastBuildDate>Wed, 06 Oct 2021 21:20:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Maven et SeamTest</title>
		<link>http://everythingiswrong.free.fr/index.php/2011/03/22/maven-et-seamtest/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2011/03/22/maven-et-seamtest/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 22:10:46 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Conteneurs embarqués]]></category>
		<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Tests unitaires]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[Seam]]></category>
		<category><![CDATA[Tests]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=1098</guid>
		<description><![CDATA[Comment intégrer des tests d'intégration avec SeamTest ou DBUnitSeamTest dans un projet Maven.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">L&#8217;intégration des tests unitaires SeamTest dans un projet <a href="http://maven.apache.org/" target="_blank">Maven</a> est assez compliquée. Voici un exemple concret :</p>
<h1 style="text-align: justify;">Présentation du projet</h1>
<p style="text-align: justify;">Avant de rentrer dans des détails techniques, je préfère vous parler de l&#8217;application qui va me servir de base pour intégrer mon test SeamTest.</p>
<h2>Vision fonctionnelle</h2>
<p style="text-align: justify;">J&#8217;ai choisi de me baser sur l&#8217;exemple &#8220;hello world&#8221; du livre <em>Seam Framework:  Experience the Evolution of Java EE 2nd edition</em>. Vous pouvez retrouver les sources des exemples du livre à l&#8217;adresse suivante : <a href="http://solutionsfit.com/blog/books/" target="_blank">http://solutionsfit.com/blog/books/</a>. Malheureusement, l&#8217;auteur utilise <a href="http://ant.apache.org/" target="_blank">Ant</a> et non Maven pour gérer la compilation de ses projets.</p>
<p style="text-align: justify;">J&#8217;ai rajouté l&#8217;utilisation d&#8217;un service EJB Stateless pour démontrer la possibilité d&#8217;utiliser SeamTest dans un contexte technique hétérogène. Voici le diagramme des cas d&#8217;utilisation de l&#8217;application :</p>
<p style="text-align: center;"><img class="aligncenter" title="Cas d'utilisation de l'application" src="http://yuml.me/diagram/scruffy/usecase/[Utilisateur]-(Enregistrer une personne), [Utilisateur]-(Visualiser les personnes enregistrées)" alt="Cas d'utilisation de l'application" /></p>
<h2>Vision maven</h2>
<p>Le projet est composé d&#8217;un module père ayant trois modules fils :</p>
<p class="wp-caption" style="text-align: justify;">seamtest-parent<br />
|&#8211; seamtest-ear<br />
|&#8211; seamtest-ejb<br />
`&#8211; seamtest-webapp</p>
<p style="text-align: justify;">Vous pouvez checkouter les sources à l&#8217;adresse suivante : <a href="https://subversion.assembla.com/svn/everythingiswrong/seamtest-parent/" target="_blank">https://subversion.assembla.com/svn/everythingiswrong/seamtest-parent/</a>.</p>
<p style="text-align: justify;">Dans le reste de l&#8217;article, je vais me focaliser sur le module seamtest-ejb car c&#8217;est lui qui contient le composant Seam, la persistance et l&#8217;EJB Stateless à tester.</p>
<h2 style="text-align: justify;">Composant Seam à tester</h2>
<p>Nous allons tester le composant qui va :</p>
<ul>
<li>Enregistrer une nouvelle personne dans la base de données</li>
<li>Rechercher toutes les personnes de la base de données</li>
</ul>
<pre class="brush: java; toolbar: true;">@Stateful
@Name("manager")
public class ManagerAction extends Manager {
  @In
  private Person person;

  @Out
  private List&lt;Person&gt; fans;

  @EJB
  private CalculService calculService;

  @PersistenceContext
  private EntityManager em;

  //Méthode à tester.
  public void sayHello () {
    em.persist (person);
    fans = em.createQuery("select p from Person p").getResultList();
  }

  // Méthode pour vérifier l'injection de l'EJB Stateless dans le composant Seam
  public int additionner(int a, int b) {
    return (int) calculService.addition(a, b);
  }

  @Remove
  @Destroy
  public void destroy() {
  }
}</pre>
<h1 style="text-align: justify;">Installation et configuration</h1>
<p style="text-align: justify;">Pour information, SeamTest utilise le serveur <a href="http://community.jboss.org/wiki/EmbeddedJBoss" target="_blank">JBoss embedded</a>.</p>
<h2 style="text-align: justify;">Installation de JBoss Embedded</h2>
<p style="text-align: justify;">Cette installation se résume à la copie du répertoire booststrap qui est dans la distribution de Seam (par exemple <a href="http://anonsvn.jboss.org/repos/seam/branches/community/Seam_2_2/bootstrap/" target="_blank">ici</a>) dans le répertoire src/test.</p>
<h2 style="text-align: justify;">Le fichier &#8220;pom.xml&#8221;</h2>
<p style="text-align: justify;">Ce fichier doit contenir l&#8217;ensemble des librairies qui vont permettre de démarrer et d&#8217;exécuter le serveur JBoss embedded. Il doit aussi prendre en compte le répertoire de <em>bootstrap</em> ajouté précédemment dans les ressources des tests.</p>
<pre class="brush: xml; toolbar: true;">&lt;dependencies&gt;
  ...
  &lt;!-- dépendances des tests unitaites : http://community.jboss.org/thread/18299 --&gt;
  &lt;!-- dependencies related to JBoss Embedded for Seam 2.X.X --&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.jboss.seam.embedded&lt;/groupId&gt;
    &lt;artifactId&gt;jboss-embedded-all&lt;/artifactId&gt;
    &lt;version&gt;beta3.SP12&lt;/version&gt;
    &lt;scope&gt;test&lt;/scope&gt;
    &lt;exclusions&gt;
      &lt;exclusion&gt;
        &lt;groupId&gt;org.jboss.microcontainer&lt;/groupId&gt;
        &lt;artifactId&gt;jboss-deployers-client-spi&lt;/artifactId&gt;
      &lt;/exclusion&gt;
      &lt;exclusion&gt;
        &lt;groupId&gt;org.jboss.microcontainer&lt;/groupId&gt;
        &lt;artifactId&gt;jboss-deployers-core-spi&lt;/artifactId&gt;
      &lt;/exclusion&gt;
    &lt;/exclusions&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.jboss.seam.embedded&lt;/groupId&gt;
    &lt;artifactId&gt;hibernate-all&lt;/artifactId&gt;
    &lt;version&gt;beta3.SP12&lt;/version&gt;
    &lt;scope&gt;test&lt;/scope&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.jboss.seam.embedded&lt;/groupId&gt;
    &lt;artifactId&gt;thirdparty-all&lt;/artifactId&gt;
    &lt;version&gt;beta3.SP12&lt;/version&gt;
    &lt;scope&gt;test&lt;/scope&gt;
  &lt;/dependency&gt;

  &lt;!-- dependencies related to JBoss MicroContainer --&gt;
  &lt;!-- java.lang.NoClassDefFoundError: javax/faces/application/Application --&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;javax.faces&lt;/groupId&gt;
    &lt;artifactId&gt;jsf-api&lt;/artifactId&gt;
    &lt;version&gt;1.2_09&lt;/version&gt;
    &lt;scope&gt;test&lt;/scope&gt;
  &lt;/dependency&gt;

  &lt;!-- java.lang.NoClassDefFoundError: org/jboss/el/ExpressionFactoryImpl --&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.jboss.el&lt;/groupId&gt;
    &lt;artifactId&gt;jboss-el&lt;/artifactId&gt;
    &lt;version&gt;1.0_02.CR4&lt;/version&gt;    &lt;!-- http://seamframework.org/Community/IllegalAccessErrorAfterUpgradingTo212CR1 --&gt;
    &lt;scope&gt;test&lt;/scope&gt;
  &lt;/dependency&gt;

  &lt;!-- dependencies related to TestNG --&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.testng&lt;/groupId&gt;
    &lt;artifactId&gt;testng&lt;/artifactId&gt;
    &lt;version&gt;5.8&lt;/version&gt;
    &lt;classifier&gt;jdk15&lt;/classifier&gt;
    &lt;scope&gt;test&lt;/scope&gt;
  &lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;build&gt;
  &lt;testResources&gt;
    &lt;testResource&gt;
      &lt;directory&gt;src/test/resources&lt;/directory&gt;
      &lt;filtering&gt;true&lt;/filtering&gt;
    &lt;/testResource&gt;
    &lt;testResource&gt;
      &lt;directory&gt;src/test/bootstrap&lt;/directory&gt;
      &lt;filtering&gt;false&lt;/filtering&gt;
    &lt;/testResource&gt;
    &lt;testResource&gt;
      &lt;directory&gt;src/test/bootstrap&lt;/directory&gt;
      &lt;filtering&gt;true&lt;/filtering&gt;
      &lt;includes&gt;
        &lt;include&gt;**/*.xml&lt;/include&gt;
      &lt;/includes&gt;
    &lt;/testResource&gt;
  &lt;/testResources&gt;
  ...
&lt;/build&gt;</pre>
<p style="text-align: justify;"><span style="text-decoration: underline;">Remarque</span> : à l&#8217;heure actuelle la version la plus récente du conteneur est la beta3.SP12.</p>
<h2 style="text-align: justify;">Fichiers de tests</h2>
<p style="text-align: justify;">Dans la pratique, on ajoute toujours un fichier seam.properties vide dans le classpath des jar contenant des composants Seam. Dans le cas du test, ce fichier doit contenenir au minimum l&#8217;information sur le nom JNDI des EJB :</p>
<p class="wp-caption" style="text-align: justify;">org.jboss.seam.core.init.jndiPattern = #{ejbName}/local</p>
<p style="text-align: justify;">La classe de test doit étendre SeamTest. Elle peut ensuite utiliser l&#8217;EL pour référencer les composants Seam :</p>
<pre class="brush: java; toolbar: true;">public class ManagerActionTest extends SeamTest {
  private static Logger LOGGER = Logger.getLogger(ManagerActionTest.class);

  @Test
  public void testSayHello() {
    try {
      new ComponentTest() {
        @Override
        protected void testComponents() throws Exception {
          setValue("#{person.name}", "Yan");
          invokeMethod("#{manager.sayHello}");
          List&lt;Person&gt; fans = (List&lt;Person&gt;) getValue("#{fans}");
          assertNotNull(fans);
          assertEquals(1, fans.size());
          assertEquals("Yan", fans.get(0).getName());
          // Test le service EJB
          assertEquals(3, invokeMethod("#{manager.additionner(1, 2)}"));
        }
      }.run();
    } catch (Exception e) {
      LOGGER.error("TEST KO : " + e.getMessage());
      fail("TEST KO : " + e.getMessage());
    }
  }
}</pre>
<p style="text-align: justify;">En utilisant Hibernate, vous pouvez exécuter des scripts SQL au déploiement de votre test en ajoutant un fichier <em>import.sql</em> dans le classpath de test (src/test/resources). Cela dit,  dans ce cas, je conseillerai plutôt d&#8217;utiliser l&#8217;intégration avec DBUnit.</p>
<h2 style="text-align: justify;">Exécution</h2>
<p style="text-align: justify;">Pour exécuter les tests il faut lancer la commande <em>mvn clean test</em>.</p>
<h1 style="text-align: justify;">Variantes</h1>
<h2 style="text-align: justify;">Intégration avec DBUnit</h2>
<p style="text-align: justify;">L&#8217;intégration est possible entre seamTest et DBUnit. La classe de test doit étendre <em>DBunitSeamTest</em> et implémenter la méthode <em>prepareDBUnitOperations()</em>. Il faut aussi donner à TestNg la nom JNDI de la source de données vers la base de données ainsi que le type de la base de données (HSQL ou MYSQL). Pour cela, il faut configurer le plugin surefire comme cela :</p>
<pre class="brush: xml; toolbar: true;">&lt;build&gt;
  ...
  &lt;plugin&gt;
    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
    &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
    &lt;version&gt;2.4.3&lt;/version&gt;
    &lt;configuration&gt;
      &lt;systemProperties&gt;
        &lt;property&gt;
          &lt;name&gt;datasourceJndiName&lt;/name&gt;
          &lt;value&gt;java:/DefaultDS&lt;/value&gt;
        &lt;/property&gt;
        &lt;property&gt;
          &lt;name&gt;database&lt;/name&gt;
          &lt;value&gt;HSQL&lt;/value&gt;
        &lt;/property&gt;
      &lt;/systemProperties&gt;
      &lt;argLine&gt;-Dsun.lang.ClassLoader.allowArraySyntax=true&lt;/argLine&gt;
    &lt;/configuration&gt;
 ...
&lt;/build&gt;</pre>
<p style="text-align: justify;"><span style="text-decoration: underline;">Remarque</span> : deux propriétés pour déclarer le type de la source de données et son nom JNDI ainsi qu&#8217;un argument pour permettre au serveur JBoss Embedded de s&#8217;éxécuter avec une JDK 1.6 (par défaut ce serveur n&#8217;est compatible qu&#8217;avec une JDK1.5).</p>
<p style="text-align: justify;">Pour information, DBUnit propose deux implémentations différentes pour décrire les données d&#8217;une base : le <a href="http://dbunit.sourceforge.net/apidocs/org/dbunit/dataset/xml/FlatXmlDataSet.html">FlatXmlDataSet</a> et le <a href="http://dbunit.sourceforge.net/apidocs/org/dbunit/dataset/xml/XmlDataSet.html">XmlDataSet</a> (<a href="http://dbunit.sourceforge.net/components.html" target="_blank">http://dbunit.sourceforge.net/components.html</a>).  SeamTest ne support que le FlatXmlDataSet.</p>
<h2 style="text-align: justify;">Dépendances sur des projets ou modules de type EJB</h2>
<p style="text-align: justify;">Dans le cas où votre module dépende d&#8217;un autre module EJB, il faut arriver à déployer la dépendance de type EJB dans le conteneur JBoss embedded. Il est possible de faire cette opération avec le plugin maven <a href="http://maven.apache.org/plugins/maven-dependency-plugin/" target="_blank">maven-dependency-plugin</a> comme cela :</p>
<pre class="brush: xml; toolbar: true;">&lt;build&gt;
  ...
  &lt;plugin&gt;
    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
    &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
    &lt;executions&gt;
      &lt;execution&gt;
        &lt;id&gt;copy&lt;/id&gt;
        &lt;phase&gt;process-test-resources&lt;/phase&gt;
        &lt;goals&gt;
          &lt;goal&gt;copy&lt;/goal&gt;
        &lt;/goals&gt;
        &lt;configuration&gt;
          &lt;artifactItems&gt;
            &lt;artifactItem&gt;
              &lt;groupId&gt;...&lt;/groupId&gt;
              &lt;artifactId&gt;...&lt;/artifactId&gt;
              &lt;version&gt;...&lt;/version&gt;
              &lt;type&gt;...&lt;/type&gt;
              &lt;classifier&gt;...&lt;/classifier&gt;
              &lt;overWrite&gt;false&lt;/overWrite&gt;
              &lt;outputDirectory&gt;${project.build.directory}/test-classes/deploy&lt;/outputDirectory&gt;
            &lt;/artifactItem&gt;
          &lt;/artifactItems&gt;
        &lt;/configuration&gt;
      &lt;/execution&gt;
    &lt;/executions&gt;
  &lt;/plugin&gt;
  ...
&lt;/build&gt;</pre>
<p><span style="text-decoration: underline;">Remarque</span> : la copie de la dépendance se déroule avant la phase d&#8217;exécution des tests.</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2011/03/22/maven-et-seamtest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seam : Exporter une dataTable à l&#8217;interieure d&#8217;une subview</title>
		<link>http://everythingiswrong.free.fr/index.php/2010/09/30/seam-exporter-une-datatable-a-linterieure-dune-subview/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2010/09/30/seam-exporter-une-datatable-a-linterieure-dune-subview/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 20:49:52 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=339</guid>
		<description><![CDATA[Seam dataTableExporter n'arrive pas à trouver la datTable à exporter.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Lorsqu&#8217;un développeur utilise Seam, il a à sa disposition tout un panel de composant pour l&#8217;aider à développer. Par exemple le composant <a href="http://docs.jboss.org/seam/2.2.1.CR1/reference/en-US/html_single/#excel.datatableexporter" target="_blank">dataTable Exporter</a> permet d&#8217;exporter un tableau JSF (h:dataTable, rih:dataTable, etc.) sous la forme d&#8217;un fichier Excel. Voici la syntaxe directement récupérée de la <a href="http://docs.jboss.org/seam/latest/en-US/html/" target="_blank">documentation de référence de Seam</a> :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;h:form id=&quot;theForm&quot;&gt;
    &lt;h:dataTable id=&quot;theDataTable&quot; value=&quot;#{personList.personList}&quot;
        var=&quot;person&quot;&gt;
         ...
    &lt;/h:dataTable&gt;
&lt;/h:form&gt;
...
&lt;h:commandLink
    value=&quot;Export&quot;
    action=&quot;#{excelExporter.export('theForm:theDataTable')}&quot; /&gt;
</pre>
<p style="text-align: justify;">Lorsque la table se trouve dans une sous vue (&lt;f:subview/&gt;) ou tout autre composant qui joue un rôle de conteneur de nom (<a href="http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/api/javax/faces/component/NamingContainer.html" target="_blank">NamingContainer</a>), il faut que le paramètre de la méthode d&#8217;export soit sous la forme <em>idNamingContainer1:</em><em>idNamingContainer2:&#8230;</em><em>:&#8230;:idDataTable</em>. De cette manière, la table est identifiée de façon unique dans la RootView.<em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2010/09/30/seam-exporter-une-datatable-a-linterieure-dune-subview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problème d&#8217;export Excel avec le Datatable exporter de Seam</title>
		<link>http://everythingiswrong.free.fr/index.php/2010/09/09/probleme-dexport-excel-avec-le-datatable-exporter-de-seam/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2010/09/09/probleme-dexport-excel-avec-le-datatable-exporter-de-seam/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 16:33:33 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Seam]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=185</guid>
		<description><![CDATA[Seam permet d&#8217;exporter très simplement des dataTable JSF en CSV ou en Excel. Pour cela il suffit de déclarer une dataTable et un lien qui fait référence au bon composant Seam : Cette fonctionnalité est très pratique mais lorsqu&#8217;il y a un problème il est parfois très compliqué de trouver l&#8217;erreur. J&#8217;ai ainsi découvert par [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Seam permet d&#8217;exporter très simplement des dataTable JSF en CSV ou en Excel. Pour cela il suffit de déclarer une dataTable et un lien qui fait référence au bon composant Seam :</p>
<pre class="brush: xml; title: ; notranslate">

&lt;h:form id=&quot;theForm&quot;&gt;
      &lt;h:dataTable id=&quot;theDataTable&quot; value=&quot;#{personList.personList}&quot;
            var=&quot;person&quot;&gt;
                  ...
      &lt;/h:dataTable&gt;
&lt;/h:form&gt;

...

&lt;h:commandLink
      value=&quot;Export&quot;
      action=&quot;#{excelExporter.export('theForm:theDataTable')}&quot;
      /&gt;
</pre>
<p style="text-align: justify;">Cette fonctionnalité est très pratique mais lorsqu&#8217;il y a un problème il est parfois très compliqué de trouver l&#8217;erreur. J&#8217;ai ainsi découvert par hasard que les colonnes doivent être composées de composants JSF et non de chaines de caractères simples pour apparaître dans l&#8217;export. Dans l&#8217;exemple suivant, seule la première colonne apparaîtra dans l&#8217;export :</p>
<pre class="brush: xml; title: ; notranslate">

&lt;h:form id=&quot;theForm&quot;&gt;
      &lt;rich:dataTable id=&quot;theDataTable&quot; value=&quot;#{personList.personList}&quot;
                  var=&quot;person&quot;&gt;
            &lt;rich:column&gt;
                  &lt;f:facet name=&quot;header&quot;&gt;&lt;h:outputText value=&quot;Name&quot;/&gt;&lt;/f:facet&gt;
                  &lt;h:outputText value=&quot;#{person.name}&quot; /&gt;
            &lt;/rich:column&gt;
            &lt;rich:column&gt;
                  &lt;f:facet name=&quot;header&quot;&gt;&lt;h:outputText value=&quot;Age&quot;/&gt;&lt;/f:facet&gt;
                  #{person.age}
            &lt;/rich:column&gt;
      &lt;/rich:dataTable&gt;
&lt;/h:form&gt;
</pre>
<p style="text-align: justify;">Pour information, ce comportement est aussi valable pour le <em>facet header</em>. Ce comportement est enregistré en tant que &#8220;nouvelle fonctionnalité&#8221; dans le JIRA de Seam : <a href="https://jira.jboss.org/browse/JBSEAM-3213" target="_blank">https://jira.jboss.org/browse/JBSEAM-3213</a></p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2010/09/09/probleme-dexport-excel-avec-le-datatable-exporter-de-seam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10minutemail</title>
		<link>http://everythingiswrong.free.fr/index.php/2010/03/30/10minutemail/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2010/03/30/10minutemail/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 19:41:18 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[trucs et astuces]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[minute]]></category>
		<category><![CDATA[Seam]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://yan.langlois.free.fr/wordpress/?p=92</guid>
		<description><![CDATA[Comme les grandes découverts scientifiques, c&#8217;est souvent en cherchant quelque chose sur internet que l&#8217;on tombe sur les plus grosses pépites sans aucun lien avec la première recherche. C&#8217;est donc en navigant sur le site de JBoss Seam que j&#8217;ai trouvé 10minutemail. Le principe est simple : création instantanée d&#8217;une adresse email qui n&#8217;a que [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Comme les grandes découverts scientifiques, c&#8217;est souvent en cherchant quelque chose sur internet que l&#8217;on tombe sur les plus grosses pépites sans aucun lien avec la première recherche. C&#8217;est donc en navigant sur le site de <a href="http://www.seamframework.org/" target="_blank">JBoss Seam</a> que j&#8217;ai trouvé <a href="http://10minutemail.com" target="_blank">10minutemail</a>. Le principe est simple : création instantanée d&#8217;une adresse email qui n&#8217;a que dix minutes de durée de vie.</p>
<p style="text-align: justify;">Intérêt limité ? Tout dépend de l&#8217;utilisation : Cela permet de garder un certain anonymat, d&#8217;éviter les spams et surtout vous n&#8217;avez plus besoin de mémoriser tout vos comptes dans votre email habituel. Pour ce dernier point, il suffit de créer un nouveau compte avec une nouvelle adresse temporaire à chaque fois que vous avez besoin de vous inscrire quelque part. Si si, je vous assure que des fois c&#8217;est plus rapide que de retrouver son identifiant et son mot de passe.</p>
<p style="text-align: justify;">Au niveau des fonctionnalités, dès votre arrivée, le site internet vous attribue automatiquement une adresse email sans formulaire à remplir. Lorsque vous recevez un email vous pouvez le lire bien entendu, y répondre et le transférer à quelqu&#8217;un d&#8217;autre. Si jamais dix minutes ne vous suffisent pas, vous pouvez demander de réinitialiser la durée de vie votre boite aux lettres à dix minutes.</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2010/03/30/10minutemail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
