<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://intelligents-ia.com/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Intelligents-ia</title>
  <link>http://intelligents-ia.com/index.php/</link>
  <atom:link href="http://intelligents-ia.com/iia/index.php/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 15 May 2012 15:09:50 +0200</pubDate>
  <copyright>Intelligents-ia</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Winstone 1.0.4</title>
    <link>http://intelligents-ia.com/index.php/post/2012/03/13/Winstone-1.0.4</link>
    <guid isPermaLink="false">urn:md5:2c0551745a613d04cc16b24bd8c98f69</guid>
    <pubDate>Tue, 13 Mar 2012 13:54:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Winstone</category>
        <category>Servlet container</category><category>Winstone</category>    
    <description>&lt;p&gt;Winstone 1.0.4 is available&lt;/p&gt;
&lt;p&gt;one step beyond&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/winstone/zhuFull.jpg&quot; alt=&quot;zhuFull.jpg&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;Winstone 1.0.4 is available &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can find all the information necessary for this project on the site &lt;a href=&quot;http://code.google.com/p/winstone/&quot; rel=&quot;external&quot;&gt;Google Code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;What's up&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project refactoring: dedicated module for JNDI, and test&lt;/li&gt;
&lt;li&gt;Removing deprecated parameters (javaHome, toolsJar  and commonLibFolder)&lt;/li&gt;
&lt;li&gt;Make use of Bootstrap.extraLibrariesFolderPath from keystone project in order to specify a  folder for additional jar files. Default is ./lib.&lt;/li&gt;
&lt;li&gt;Mark session cookies as HTTP only so that it won't show to JavaScript. (from jenkins branch)&lt;/li&gt;
&lt;li&gt;Add a ServerConfiguration object and server configuration DSL (testing purpose only)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/03/13/Winstone-1.0.4#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/03/13/Winstone-1.0.4#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/62</wfw:commentRss>
      </item>
    
  <item>
    <title>Keystone 2.4</title>
    <link>http://intelligents-ia.com/index.php/post/2012/03/13/Keystone-2.4</link>
    <guid isPermaLink="false">urn:md5:e803b9c20f533bfd3e24a6fb32adce6c</guid>
    <pubDate>Tue, 13 Mar 2012 13:42:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>News</category>
        <category>Bootstrap</category><category>Keystone</category>    
    <description>&lt;p&gt;Bonjour,&lt;br /&gt;
&lt;br /&gt;
la version 2.4 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Quoi de neuf ? &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajout d'un nouveaux paramètre: &quot;BootStrap.extraLibrariesFolderPath&quot;: qui spécifie un dossier externe de libraries à ajouter au classpath, en plus de celles pouvant être embarquées.
Il y a quelques projets (genre Winstone ...) qui ont beaucoup à gagné à pouvoir ajouter quelques drivers sans se cassez la tête en huit...&lt;/li&gt;
&lt;li&gt;Quelques test unitaire en plus, (...) et quelques lièvres en moins...&lt;/li&gt;
&lt;li&gt;De la &lt;a href=&quot;http://code.google.com/p/intelligents-ia/wiki/KeystoneCommandLineOption&quot; rel=&quot;external&quot;&gt;doc sur google code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/keystone/.card-keystone_s.jpg&quot; alt=&quot;keystone&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bonjour,&lt;br /&gt;
&lt;br /&gt;
la version 2.4 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Quoi de neuf ? &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajout d'un nouveaux paramètre: &quot;BootStrap.extraLibrariesFolderPath&quot;: qui spécifie un dossier externe de libraries à ajouter au classpath, en plus de celles pouvant être embarquées.
Il y a quelques projets (genre Winstone ...) qui ont beaucoup à gagné à pouvoir ajouter quelques drivers sans se cassez la tête en huit...&lt;/li&gt;
&lt;li&gt;Quelques test unitaire en plus, (...) et quelques lièvres en moins...&lt;/li&gt;
&lt;li&gt;De la &lt;a href=&quot;http://code.google.com/p/intelligents-ia/wiki/KeystoneCommandLineOption&quot; rel=&quot;external&quot;&gt;doc sur google code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Intégration du plugin à votre POM&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ajouter le repository du plugins&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;pluginRepositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&amp;lt;/pluginRepositories&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;repository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Et configurer le build de votre projet avec le plugin &quot;keystone-plugin&quot; (indiquer votre classe de démarrage) :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;build&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugins&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;org.intelligents-ia.keystone&amp;lt;/groupId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;keystone-plugin&amp;lt;/artifactId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;2.4&amp;lt;/version&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;make-assembly&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mainClass&amp;gt;votre.class.Main&amp;lt;/mainClass&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goal&amp;gt;custom&amp;lt;/goal&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Récupération des sources&lt;/h3&gt;
&lt;p&gt;Pour récupérer le code source et construire le projet (client svn et maven obligatoire) :&lt;/p&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;svn checkout https://intelligents-ia.googlecode.com/svn/trunk/keystone keystone --username yoursUserName
cd keystone
mvn clean package
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/03/13/Keystone-2.4#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/03/13/Keystone-2.4#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/61</wfw:commentRss>
      </item>
    
  <item>
    <title>Winstone 1.0.3</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/28/Winstone-1.0.3</link>
    <guid isPermaLink="false">urn:md5:0ff05c3dc378859333d1ca2433b63e86</guid>
    <pubDate>Tue, 28 Feb 2012 18:04:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Winstone</category>
        <category>Servlet container</category><category>Winstone</category>    
    <description>&lt;p&gt;Winstone 1.0.3 est disponible &lt;img src=&quot;/themes/iia/smilies/love.png&quot; alt=&quot;:x&quot; class=&quot;smiley&quot; /&gt;  &lt;/p&gt;
&lt;p&gt;Comment ça, c'est pas trop tôt ?&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/winstone/zhuFull.jpg&quot; alt=&quot;zhuFull.jpg&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;Winstone 1.0.3 est disponible &lt;img src=&quot;/themes/iia/smilies/love.png&quot; alt=&quot;:x&quot; class=&quot;smiley&quot; /&gt;  &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Vous pourrez retrouvez toutes les informations nécessaire à ce projet sur le site de &lt;a href=&quot;http://code.google.com/p/winstone/&quot; rel=&quot;external&quot;&gt;Google Code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Quoi de neuf&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;L'intégration d'une multitude de patch en provenance de &lt;a href=&quot;https://github.com/jenkinsci/winstone&quot; rel=&quot;external&quot;&gt;Jenkins Winstone&lt;/a&gt;.&lt;br /&gt;Pour plus d'informations, je vous invite à consulter le &lt;a href=&quot;http://code.google.com/p/winstone/wiki/ChangeLog&quot; rel=&quot;external&quot;&gt;&quot;change log&quot;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Et puis, quelques corrections/évolutions en plus (j'étais motivé):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Des corrections, genre:&lt;ul&gt;
&lt;li&gt;Mise a jour des argument de la ligne de commande&lt;/li&gt;
&lt;li&gt;Un problème de séparateur de path sur l'object HostConfiguration&lt;/li&gt;
&lt;li&gt;L'utilisation de la syntaxe jdk5&lt;/li&gt;
&lt;li&gt;L'ajout d'un message d'arrêt&lt;/li&gt;
&lt;li&gt;L'utilisation de StringBuilder&lt;/li&gt;
&lt;li&gt;Le début d'une api correcte autour des classes HostGroup, Cluster et JNDI  depuis une instance Server.&lt;/li&gt;
&lt;li&gt;La javadoc et les commentaires qui vont bien&lt;/li&gt;
&lt;li&gt;L'utilisation du singleton Boolean&lt;/li&gt;
&lt;li&gt;L'ajout de l'option &quot;webroots&quot; en ligne de commande, qui vous permet plusieurs webapp ou qu'elle soit (pas forcement sous un même dossier)&lt;/li&gt;
&lt;li&gt;Le jndi manager qui ne marchait pa&lt;/li&gt;
&lt;li&gt;L'ajout de la dependance vers  log4j&lt;/li&gt;
&lt;li&gt;L'ajout de plus d'information dans les logs lors du déploiement d'application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;De la doc sur google code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Et la suite&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;J'ai quelque idées dans le ciboulot...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Exposer un API pour gérer les hosts et les webapp de manière programatique&lt;/li&gt;
&lt;li&gt;restructurer un peu le projet winstone au niveau des modules maven&lt;/li&gt;
&lt;li&gt;Introduire un objet &quot;Serverconfiguration&quot; et appliquer l'ioc au niveau des classes internes&lt;/li&gt;
&lt;li&gt;Essayer le framework jackson pour lire les web.xml, mais le serveur va grossir un peu...&lt;/li&gt;
&lt;li&gt;Choisir un framework de log par défaut via la facade slf4j. Pour le moment c'est log4J, mais pourquoi pas utiliser logback...&lt;/li&gt;
&lt;li&gt;la création d'un plugin maven pour l'autodeploiement
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;J'ai une question existentiel: &lt;br /&gt;
Doit-on gardez un serveur de petite taille ou utiliser des framework externe qui font très bien le boulot? &lt;br /&gt;
Introduire Slf4J à rajouter 600Ko de librairies...&lt;/p&gt;
&lt;p&gt;N'hésitez pas a me faire part de vous remarques, suggestion...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/28/Winstone-1.0.3#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/28/Winstone-1.0.3#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/58</wfw:commentRss>
      </item>
    
  <item>
    <title>Keystone 2.3</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/28/Keystone-2.3</link>
    <guid isPermaLink="false">urn:md5:ebe32c45e9cb23b15c1f9f97136a4511</guid>
    <pubDate>Tue, 28 Feb 2012 17:26:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>News</category>
        <category>Bootstrap</category><category>Keystone</category><category>Maven</category>    
    <description>&lt;p&gt;la version 2.3 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;Il est jolie, tout beau tout chaud!!&lt;/p&gt;
&lt;p&gt;Quoi de neuf ? &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajout de l'option &quot;explodeDependencies&quot;: historie de packager les dépendances à plat comme le plugin onejar (même si ma préference va clairement au respect de l'intégrité des jar inclus)&lt;/li&gt;
&lt;li&gt;De la doc,...&lt;/li&gt;
&lt;li&gt;Un petit mot clef &quot;[#home]&quot; qui dans l'option logPath sera remplacer par le répertoire racine de l'application&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/keystone/.card-keystone_s.jpg&quot; alt=&quot;keystone&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bonjour,&lt;br /&gt;
&lt;br /&gt;
la version 2.3 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Quoi de neuf ? &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajout de l'option &quot;explodeDependencies&quot;: historie de packager les dépendances à plat comme le plugin onejar (même si ma préference va clairement au respect de l'intégrité des jar inclus)&lt;/li&gt;
&lt;li&gt;De la doc,...&lt;/li&gt;
&lt;li&gt;Un petit mot clef &quot;[#home]&quot; qui dans l'option logPath sera remplacer par le répertoire racine de l'application&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Intégration du plugin à votre POM&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ajouter le repository du plugins&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;pluginRepositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&amp;lt;/pluginRepositories&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;repository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Et configurer le build de votre projet avec le plugin &quot;keystone-plugin&quot; (indiquer votre classe de démarrage) :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;build&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugins&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;org.intelligents-ia.keystone&amp;lt;/groupId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;keystone-plugin&amp;lt;/artifactId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;2.3&amp;lt;/version&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;make-assembly&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mainClass&amp;gt;votre.class.Main&amp;lt;/mainClass&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goal&amp;gt;custom&amp;lt;/goal&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Récupération des sources&lt;/h3&gt;
&lt;p&gt;Les sources du projets ont été déplacées pour cette occasion.&lt;/p&gt;
&lt;p&gt;Pour récupérer le code source et construire le projet (client svn et maven obligatoire) :&lt;/p&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;svn checkout https://intelligents-ia.googlecode.com/svn/trunk/keystone keystone --username yoursUserName
cd keystone
mvn clean package
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/28/Keystone-2.3#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/28/Keystone-2.3#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/59</wfw:commentRss>
      </item>
    
  <item>
    <title>Twitter Bootstrap CSS Tools</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/21/Twitter-Bootstrap-CSS-Tools</link>
    <guid isPermaLink="false">urn:md5:2cbb3d788ba29f900786df5c152fc208</guid>
    <pubDate>Tue, 21 Feb 2012 10:59:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Technique</category>
        <category>Html</category>    
    <description>&lt;p&gt;Twitter Bootstrap CSS Tools  est un outil open source (sous Apache Licence v2.0) à essayer rapidement!&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/technique/.croissance-twitter_s.jpg&quot; alt=&quot;croissance-twitter.jpg&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;Twitter Bootstrap CSS Tools  est un outil open source (sous Apache Licence v2.0) à essayer rapidement!&lt;/p&gt;
&lt;p&gt;Le site officiel&amp;nbsp;: &lt;a href=&quot;http://twitter.github.com/bootstrap/&quot; title=&quot;http://twitter.github.com/bootstrap/&quot; rel=&quot;external&quot;&gt;http://twitter.github.com/bootstrap...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le projet sous gitHub: &lt;a href=&quot;https://github.com/twitter/bootstrap&quot; title=&quot;https://github.com/twitter/bootstrap&quot; rel=&quot;external&quot;&gt;https://github.com/twitter/bootstra...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;C’est un framework qui rassemble&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un fichier css&lt;/li&gt;
&lt;li&gt;des icônes standardisé et claires&lt;/li&gt;
&lt;li&gt;un code Javascript&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;En grosso modo 100Kb (code et données confondus), cela vous permet de réaliser des interfaces WEB&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Standardisé et hautement fonctionnel&lt;/li&gt;
&lt;li&gt;Dynamique (en terme d’interaction utilisateur)&lt;/li&gt;
&lt;li&gt;Simple&amp;nbsp;: regardez donc les pages web a quoi elle ressemble&lt;/li&gt;
&lt;li&gt;Légère&amp;nbsp;: je vous ferais pas l’affront de vous présenter «&amp;nbsp;twitter&amp;nbsp;» et les «&amp;nbsp;quelques&amp;nbsp;» utilisateurs qui y accèdent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;De plus, cela vous affranchit des problèmes de compatibilité entre navigateur et système d'exploitation, car il supporte:&lt;/p&gt;
&lt;p class=&quot;clean&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;width: 100%;&quot;&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;OS&amp;nbsp;&lt;/th&gt;&lt;th&gt;BROWSER&amp;nbsp;&lt;/th&gt;&lt;th&gt;BROWSER&amp;nbsp;VERSION&amp;nbsp;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt; OS X &lt;/td&gt;
&lt;td&gt; Mozilla Firefox &lt;/td&gt;
&lt;td&gt; 6 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; OS X &lt;/td&gt;
&lt;td&gt; Mozilla Firefox &lt;/td&gt;
&lt;td&gt; 5 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; OS X &lt;/td&gt;
&lt;td&gt; Google Chrome &lt;/td&gt;
&lt;td&gt; 14 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; OS X &lt;/td&gt;
&lt;td&gt; Safari &lt;/td&gt;
&lt;td&gt; 5 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; OS X &lt;/td&gt;
&lt;td&gt; Opera &lt;/td&gt;
&lt;td&gt; 11 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Windows &lt;/td&gt;
&lt;td&gt; Internet Explorer &lt;/td&gt;
&lt;td&gt; 9 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Windows &lt;/td&gt;
&lt;td&gt; Internet Explorer &lt;/td&gt;
&lt;td&gt; 8 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Windows &lt;/td&gt;
&lt;td&gt;&amp;nbsp;Internet Explorer&amp;nbsp;&lt;/td&gt;
&lt;td&gt; 7 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Windows &lt;/td&gt;
&lt;td&gt;&amp;nbsp;Google Chrome&amp;nbsp;&lt;/td&gt;
&lt;td&gt; 14 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Windows &lt;/td&gt;
&lt;td&gt; Mozilla Firefox &lt;/td&gt;
&lt;td&gt; 6 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Windows &lt;/td&gt;
&lt;td&gt; Mozilla Firefox &lt;/td&gt;
&lt;td&gt; 5 &lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/twitter/bootstrap/wiki/Browser-Compatibility&quot; title=&quot;https://github.com/twitter/bootstrap/wiki/Browser-Compatibility&quot; rel=&quot;external&quot;&gt;La source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Vu ? Bon développement !&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/21/Twitter-Bootstrap-CSS-Tools#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/21/Twitter-Bootstrap-CSS-Tools#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/50</wfw:commentRss>
      </item>
    
  <item>
    <title>Premier pas en Sidemount</title>
    <link>http://intelligents-ia.com/index.php/post/2011/09/09/Premier-pas-en-Sidemount</link>
    <guid isPermaLink="false">urn:md5:6b21fa414f13b31f9ecc69b91c073167</guid>
    <pubDate>Mon, 20 Feb 2012 14:46:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Plongée</category>
        <category>Plongée</category>    
    <description>&lt;p&gt;Il y a quelques mois, j'ai découvert la plongée en bouteille.&lt;/p&gt;
&lt;p&gt;Ce fût au milieu du paysage enchanteur et magique de l'Ile Maurice, que j'ai eu l'occasion de faire mes premières bulles...&lt;br /&gt;
et quelles bulles!! Depuis, la plongicide aigue est toujours présente :-), j'ai enchainer l'open water, l'advance open water,
le nitrox, Padi donc, et tout récement le Sidemount, SM pour les intimes, côté TDI/SSI.&lt;/p&gt;
&lt;p&gt;Je voulais vous faire partager ma petite experience du SM, dont la philosophie KISS (Keep It Simple and Stupid) ou DIR (Do It Right),
fait un très fort écho avec mon métier : architecte technique jEE...&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/sidemount/.mer_m.jpg&quot; alt=&quot;mer.jpg&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;Il y a quelques mois, j´ai découvert la plongée en bouteille.&lt;/p&gt;
&lt;p&gt;Ce fût au milieu du paysage enchanteur et magique de l´Ile Maurice, que j´ai eu l´occasion de faire mes premières bulles...&lt;br /&gt;
et quelles bulles!! Depuis, la plongicide aigue est toujours présente :-), j´ai enchainer l´open water, l´advance open water,
le nitrox, Padi donc, et tout récement le Sidemount, SM pour les intimes, côté TDI/SSI.&lt;/p&gt;
&lt;p&gt;Je voulais vous faire partager ma petite experience du SM, dont la philosophie KISS (Keep It Simple and Stupid) ou DIR (Do It Right),
fait un très fort écho avec mon métier : architecte technique jEE...&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Initialement posté sur le site de &lt;a href=&quot;http://www.plongeur.com/forums/showthread.php?t=54066&quot; rel=&quot;external&quot;&gt;plongeur.com &lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pour ceux/celles qui ne connaissent pas encore, le sidemount c´est en quelques mots: plonger avec les bouteilles de chaque côté du corps (svelte et musclé évidement...).&lt;/p&gt;
&lt;p&gt;La plongicide aigue est assez récente chez moi: elle date d´il y a 5 mois.&lt;br /&gt;
J´ai le niveau AOWD + nitrox padi et seulement 13 plongées à mon actif, avant cette formation.&lt;br /&gt;
Alors pourquoi s´enquiquiner avec 2 bouteilles et de longs tuyaux, alors qu´il existe de bonne stab tout confort avec lecteur blue-ray et airbag ?&lt;br /&gt;
Ben, j´ai bien une réponse a la c... : c´est 2 fois mieux et plus c´est long plus c´est... Mais que nenni! &lt;/p&gt;
&lt;p&gt;De la plongée soutteraine à la &quot;frog Couic team&quot; en passant par les longues (très longues) discussions objectives stab-versus-wing-verus-sidemount, j´ai du subi &quot;à l´insu de mon plein grès&quot; de long matraquage marketing avec forte publicité! mensongère ? ... un peu, sans doutes, mais rien à voir avec la plongée, soyons bien d´accord!&lt;/p&gt;
&lt;p&gt;Reste que quand j´ai lu la premiere fois un bref récap historique de la plongée sidemount, cela m´est apparue comme un évidence:&lt;br /&gt;
t´apprends et tu plonges avec ce truc.&lt;/p&gt;
&lt;p&gt;Accessoirement, ce qui m´a attiré c´est:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deux bouteilles indépendantes: redondance des gaz et des détendeurs, robinets en visu
&lt;/li&gt;
&lt;li&gt;deux bouteilles: plus grande autonomie,
&lt;/li&gt;
&lt;li&gt;deux bouteilles: mais sans le poids d´un bi c´est mieux
&lt;/li&gt;
&lt;li&gt;la configuration en mono bouteille possible (et c´est vraiment fou à quel point j´ai eu l´impression de ne rien avoir dans cette configuration)
&lt;/li&gt;
&lt;li&gt;le côté léger pour le voyage
&lt;/li&gt;
&lt;li&gt;la sensation de glisse dans l´eau sans être engoncé dans une stab,
&lt;/li&gt;
&lt;li&gt;moins de volume, donc moins de lest, donc moins d´essouflemement, donc ...
&lt;/li&gt;
&lt;li&gt;le côté nouveaux aussi bien sûr!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Quelques bonnes âmes du forum  (arno22, et un certain loule06, au hasard ) m´aiguillent gentillement vers le nom de code &quot;Yannig73&quot;, la version FR du sieur Narcosis. Je vais faire un petit tour sur son site, et l´air de rien je lis une baseline:&lt;/p&gt;
&lt;p&gt;&lt;q&gt;Survival depends on being able to suppress anxiety and replace it with calm, clear, quick and correct reasoning&lt;/q&gt;&lt;br /&gt;
Sheck Exley.&lt;/p&gt;
&lt;p&gt;Et là, je vous passe le chambard des méninges: 13 plongées ... y va te prendre pour un titi le bonhomme, t´as vue le cursus du sieur? ...&lt;/p&gt;
&lt;p&gt;moi les grottes à part les grottes d´Arcy et la visite en tongues... &lt;br /&gt;
et deux bouteilles ? déjà qu´avec une je sais pas toujours quoi en faire à pars la vider...&lt;br /&gt;
la plongée c´est un peu comme la bouteille de ratafia, une fois que tu y a gouté tu la termines jusqu´au bout, alors go...&lt;br /&gt;
pis deux mois sans plongée, j´ai la peau qui déssèche...&lt;br /&gt;
Pis de toute façon, c´est pour apprendre, ouais mais ma flotta, c´est tout de même récent en stab ... &lt;br /&gt;
et je vous parle pas de ma position de mon corps dans la colonne d´eau ...&lt;br /&gt;
le palmage, avec les deux mains c´est plus simple pour reculer...&lt;br /&gt;
Et 9 litres qu´elle fait cette z-trim, je vais jamais remonter du fond...&lt;br /&gt;
bref, j´ai laisser murir le bestiau un peu quoi....&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Quelques rond de serviette plus tard, j´ai osé ecrire au Masta Charles Yannig, dit &quot;le blond&quot; sur la côte sud: Il m´a répondu tout simplement que
oui, je pouvais suivre cette formation! Et voila qui me propose de faire une formation sidemount ce week end ! &lt;/p&gt;
&lt;p&gt;Résultat:&lt;/p&gt;
&lt;p&gt;&quot;- Chérie ?? &lt;br /&gt;- oui ?&lt;br /&gt;- devines où on passe le week end ??&lt;br /&gt;&quot;&lt;/p&gt;
&lt;p&gt;Et me/nous voilà parti faire une visite au berceau de la plongée: Marseille &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; le pays où les S80 flottent dans l´eau &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Un truc, c´est que j´avais pas prévue de rencontrer plein de gens sympa, chui bêta moi tiens ...&lt;br /&gt;
Ben oui, je suis chez les titi depuis 10 ans, j´ai presque eu peur qu´ils me mordent en arrivant, un chouilla je vous rassure quand même!&lt;/p&gt;
&lt;p&gt;Sans rire, merci pour votre accueil! merci à Stéph et Fred de m´avoir supporté pendant la formation, coucou à niki, merci à Laurent pour le cabanon, les caouhètes, je suis heureux de partager le même secret des jolie tomates au fond du jardin!&lt;/p&gt;
&lt;p&gt;J´ai hâte de repasser par Marseille, visité de jolie coin! et si vous passez par Paris, n´hésitez pas &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; la montée des eaux c´est pour bientôt !&lt;br /&gt;
Au milieu de ces zouaves, le &quot;jeunot&quot; que je suis était heureux comme un poisson dans l´eau, moi je vous le dis ! &lt;br /&gt;
y avait un petit côté irréaliste, qui me disais &quot;tu vas te reveiller à Paris avec les touches du clavier imprimmées sur le nez toi...&quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Retour au sidemount avec Yan tout sourire, qui commence par une scéance de taillage sur mesure du dit harnais ´ultimate´; En option bande rose pour les prochaines fois &lt;img src=&quot;/themes/iia/smilies/happy.png&quot; alt=&quot;:p&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;En fait, la simplicité ultime du &quot;truc&quot;  est tout de même le fruis d´un bon jus de cerveau et de moulte petite astuces; Ca respire le fruit de longues nuits de cogitation,
et de moulte essaie dans l´eau. Des astuces &quot;tellement-bêtes-que-t-y-avais-pas-pensée-encore&quot;, il y en a plein; mais pas seulement pour le harnais, y en a pour tout : &lt;br /&gt;
pour les bouteilles, pour le chti bout de ficelle là, qui l´air de rien te sauve la plongée en cas de soucis, sans parler du plongeur! &lt;/p&gt;
&lt;p&gt;Et ça commence direct avec une revue de matériel;&lt;/p&gt;
&lt;p&gt;Bilan: une fois que t´as tout (balancé) rangé dans les grande armoire judicieusement placé de sieur loule, cela deviens a peu près correct.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lesson one&lt;/strong&gt;: DIR ca rigole pas (ou presque)  &lt;br /&gt;
&lt;strong&gt;Lesson two&lt;/strong&gt;: si c´est pour plongée avec l´hydrodynamise d´un oursin, autant essayer un autre sport, genre la pêche tiens...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Lendemain matin, frais comme un gardon et pas encore cuit sous le dur soleil de (Bret..) Marseille: direction le montage de la config.&lt;br /&gt;
Voila celle de Yannig, le top quoi. &lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/sidemount/config.jpg&quot; alt=&quot;config sidemount&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A vous de jouer. Check du boss, l´élève se sent une montée de &quot;stress&quot;, surtout avec le sourire en coin, attendant des remarques (éventuelles) ?&lt;br /&gt;
&quot;mmm, le truc là, c´est mieux dans l´autre sens.&quot;&lt;br /&gt;
Démo au sec, et ben oui, il a raison... forcément vous me direz... et oui... C´est ca la classe...&lt;/p&gt;
&lt;p&gt;Quatres heures d´explications, au minimum, en ne comptant pas les mi-temps, la veille, et les conseils pendant l´aller, Yan adore parler et expliquer,
et ca c´est tout de même super top pour moi &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Et oui, j´ai eu droit à ma première vrai leçon de palmage façon frog-couic, j´ai un peu de boulot mais ca va venir &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; &lt;br /&gt;
&lt;img src=&quot;http://intelligents-ia.com/public/sidemount/palmage.jpg&quot; alt=&quot;frog-couic&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On s´est tout de même bien marré! On a tellement bien rigoler qu´on a pas fait vraiment gaffe au soleil qui lui nous a pas oublié... &lt;br /&gt;
nos peaux d´albâtres ont virer rose...&lt;br /&gt;
Bref, début de l´apres midi, on va commencer nôtre premiere plongée, avec:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;harnais ultimate&lt;/li&gt;
&lt;li&gt;z-trim de 9l &lt;/li&gt;
&lt;li&gt;deux bouteilles S80 equipée (1er etage, mano, detendeur, ds)&lt;/li&gt;
&lt;li&gt;tuyaux longs pour le tricot et tour de cou&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zou à la flotte, fesait trop chaud, c´est parti pour la découverte totale!!!&lt;/p&gt;
&lt;p&gt;Rappellez vous que pour moi, la plus grosse manip de bloc à ce moment là ce résume à l´analyse de gaz... ben oui...&lt;/p&gt;
&lt;p&gt;Au début, cela m´a parut bizzare d´avoir tout ce matériel à manipuler, un peu peur de me mélanger les pinceaux avec les deux détendeurs autour du coup... &lt;br /&gt;
Et puis, la manipulation des mousquetons ben, je le fait pas encore aussi bien que Steve, mais y a de l´idée...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Premier constat direct:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;la position horizontale est grandement faciliter par la configuration du harnais.&lt;/li&gt;
&lt;li&gt;Et la z-trim, elle pousse sacrément! va pas falloir que je rigole avec la bête moi...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C´est parti pour des scéances de palmages, de rotation, et ouch, je découvre de nouveaux muscles... &lt;/p&gt;
&lt;p&gt;1 heures plus tard, petit breifing avant de repartir pour une deuxieme profonde &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Essaie du s-drill, valve-drill, bon, j´ai encore du boulot pour remettre ma bouteille correctement, et plein de truc qui vont pas encore... &lt;br /&gt;
mais je me sens tout de meme plus à l´aise qu´à la première plongée: &lt;br /&gt;
il y a rien qui viens m´écraser le bidon, et ce sentiment de liberté/legerté dans l´eau, c´est génial!&lt;br /&gt;
Et quand je palme, avec mon siouper frog kick, ca pousse plus loin que d´habitude et sans gros effort, ca c´est top.&lt;br /&gt;
Et la manip des blocs/détendeurs ne m´effraie plus, au contraire; Je suis très loin d´avoir l´aisance de Yannig bien sûr, mais au moins j´ai bien compris le pourquoi du comment.&lt;br /&gt;
Et le nitrox, c´est vrai que cela fatigue moins! &lt;br /&gt;
Le bilan de cette première journée: c´est carrément génial! Vivement demain!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Deuxième journée.&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Au menu : Apprentissage du bubble check, répétition des s-drill, v-drill, simulation d´un débit continue et contrôle de l´ouverture de robinet pour sauver du gaz,
et petit tour avec une seule bouteille.&lt;/p&gt;
&lt;p&gt;Là, j´ai galéré grave: masque qui fuyait et plein de buée, résultat: vidage de masque toute les 2 minutes... &lt;br /&gt;
ah ça, j´ai bien travailler le vidage, le retrait et recalage sur le nez de ce p... masque&amp;lt;&lt;/p&gt;
&lt;p&gt;Du coup, je zap de controller ma flottabilité, ma position n´en parlons pas... aiee&lt;br /&gt;
Là je me suis vraiment pas senti au niveau, je fais perdre du temps, je m´énerve... grr chui trop bête&lt;/p&gt;
&lt;p&gt;Malgré ces problèmes, j´ai tout de même pu retravailler les exos, et bien: je vais m´entrainer le plus souvent possible, jusqu´a ce que j´arrive à les faire bien a plat sans bouger.&lt;br /&gt;
J´ai quand même capter l´essence d´un truc important: calme et isolation des problèmes (c´est la première fois que j´en avais un qui me gonflait...) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lesson 3&lt;/strong&gt;: Un masque bien adapté au visage c´est mieux&lt;br /&gt;
&lt;strong&gt;Lesson 4&lt;/strong&gt;: le sidemount en mono bouteille c´est le pieds absolu!! &lt;br /&gt;
&lt;strong&gt;Lesson 5&lt;/strong&gt;: le check de la configuration apres chaque remontage de bloc est obligatoire si je veux pouvoir donner du gaz...&lt;br /&gt;
&lt;strong&gt;Lesson 6&lt;/strong&gt;: le bubble check c´est super important&lt;br /&gt;
&lt;strong&gt;Lesson 7&lt;/strong&gt;: Zen attitude sous l´eau, ne doit pas empêcher l´actvité neuronale.&lt;/p&gt;
&lt;p&gt;En faites, cette troisieme plonger m´agace, car je ai eu l´impression de rien contrôler (flota/trim, etc), j´ai subit. Je dirais pas &quot;plus jamais&quot;, mais... je vais eviter tout de même.&lt;/p&gt;
&lt;p&gt;Aller, petit casse-croute (Merci Stéphanie), et zou quatrième plongée avec petit tour dans l´eau.&lt;/p&gt;
&lt;p&gt;Là, j´ai essayé un lestage a base de harnais. Hormis un petit probleme d´horizontalité (j´avais placé le poids un peu trop haut sur le corps), c´est vraiment plus confortable que
la ceinture!&lt;/p&gt;
&lt;p&gt;Cette fois, c´est plus une plongée récréative: on passe la barrière de la profondeur abyssale de 3-5 mètres, c´est que du bonheur !&lt;br /&gt;
Remontée le long du relief sur le dos avec les bloc devant, j´ai l´impression de glisser dans l´eau!&lt;br /&gt;
Passage dans un &quot;petit&quot; trou, première fois que il y avait autre chose que de l´eau au dessus de ma tête, c´est étrange comme sensation, et plutôt marrant!&lt;br /&gt;
Bon, va falloir que je m´améliore tout de même pour esperer visiter de jolie grotte... Mais ah, oui, je viens de passer la tête et les epaules dans la cavité,
ben c´est que tout le reste passe, merci les inventeurs.&lt;/p&gt;
&lt;p&gt;Descente a 17 metres, petit contrôle avec la z-trim, je me force a utiliser mes poumons le plus possible; vache! C´est top, pas besoin de plus de volume, et j´ai au moins 2 ou 3 kilos de trop.&lt;br /&gt;
J´ai pu voir une seiche qui viens de gober un truc devant nous !! tiens un poulpe, oh puis une langouste ? et un lièvre de mer (merci Fred pour l´explication &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; )&lt;br /&gt;
Ah tiens, le bout de bungee, je l´ai mal mis, bon tant pis, j´ai compris, la prochaine fois je controlerais ce point...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Retour au bercail, dé-breifing, démontage des configurations, passage à la caisse, et ambiance chaleureuse sont au rendez-vous!&lt;/p&gt;
&lt;p&gt;Alors convaincu? Que oui, tiens!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Je vais pas vous dire que je ne plongerais plus jamais avec une stab car je vais surement devoir passer une équivalence de niveau F2;&lt;br /&gt;
Et puis je serais surement obligé de démontrer de quoi je suis capable au DM pour qu´il accepte de me voir plongée en SM...&lt;br /&gt;
Par contre, ca oui, je suis convaincu que le SM c´est génial. &lt;/p&gt;
&lt;p&gt;Je regrette juste un truc, c´est de ne pas avoir appris avec depuis le début!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;De cette formation, j´ai beaucoup appris; La manipulation du harnais, le palmage, des contrôles de sécurité, et beaucoup plus encore...&lt;br /&gt;
Juste une petite chose si vous voulez essayer le SM faites le avec quelqu´un qui soit capable de vous expliquer les petits détails et spécificités de cette configuration.&lt;br /&gt;
D´ailleurs, j´ai appris bien plus de truc que juste le SM en particulier, et ca merci à Yannig et aux Marseillais &lt;img src=&quot;/themes/iia/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/sidemount/mer.jpg&quot; alt=&quot;la mer&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Le lieux du crime.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Un peu de prosélitisme&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://intothedive.com/&quot; rel=&quot;external&quot;&gt;Yannig Charles
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.santiagodivingmexico.com/sidemount-ultimate-fr&quot; rel=&quot;external&quot;&gt;Santiago Pintado&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.plongeur.com&quot; rel=&quot;external&quot;&gt;Plongeur.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2011/09/09/Premier-pas-en-Sidemount#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2011/09/09/Premier-pas-en-Sidemount#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/38</wfw:commentRss>
      </item>
    
  <item>
    <title>Cours gratuit de la Stanford University de Fevrier 2012</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/20/Cours-gratuit-de-la-Stanford-University-de-Fevrier-2012</link>
    <guid isPermaLink="false">urn:md5:23e5c6dcec6a323b674a2f9a49a9e34e</guid>
    <pubDate>Mon, 20 Feb 2012 14:23:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Algorithmique</category><category>Apprentissage</category>    
    <description>&lt;p&gt;La célèbre université de Stanford propose une série de cours gratuit dont beaucoup vont commencer au mois de février 2012.&lt;br /&gt;Ces cours sont en anglais, sous forme de vidéo, de texte à lire, tout en anglais .&lt;/p&gt;
&lt;p&gt;Dépêchez-vous, ils ont pas encore commencé!&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/stanford/stanford_sig_small.gif&quot; alt=&quot;stanford_sig_small.gif&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;La célèbre université de Stanford propose une série de cours gratuit dont beaucoup vont commencer au mois de février 2012.&lt;br /&gt;Ces cours sont en anglais, sous forme de vidéo, de texte à lire, tout en anglais .&lt;/p&gt;
&lt;p&gt;Dépêchez-vous, ils ont pas encore commencé!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pour ma part, je vais tenter de suivre ceux-ci:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nlp-class.org/&quot; rel=&quot;external&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/stanford/nlp-small.jpg&quot; alt=&quot;nlp-small.jpg&quot; /&gt;Natural Language Processing&lt;/a&gt; de Chris Manning et Dan Jurafsky&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.modelthinker-class.org/&quot; rel=&quot;external&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/stanford/modelthinker-small.jpg&quot; alt=&quot;modelthinker-small.jpg&quot; /&gt;Model Thinking&lt;/a&gt; de Scott E Page&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jan2012.ml-class.org/&quot; rel=&quot;external&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/stanford/mlclass-small.jpg&quot; alt=&quot;Artificial intellect&quot; title=&quot;Artificial intellect&quot; /&gt;Machine Learning&lt;/a&gt; de Andrew Ng&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hci-class.org/&quot; rel=&quot;external&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/stanford/hci-small.jpg&quot; alt=&quot;Human-Computer Interaction&quot; /&gt;Human-Computer Interaction&lt;/a&gt; de Scott Klemmer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Et Vous ?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/20/Cours-gratuit-de-la-Stanford-University-de-Fevrier-2012#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/20/Cours-gratuit-de-la-Stanford-University-de-Fevrier-2012#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/49</wfw:commentRss>
      </item>
    
  <item>
    <title>Maven configuration</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/15/Maven-configuration</link>
    <guid isPermaLink="false">urn:md5:0d13f9750ad5771d4f7e47b8849a6731</guid>
    <pubDate>Wed, 15 Feb 2012 17:41:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Technique</category>
        <category>Maven</category><category>Méthodologie</category>    
    <description>&lt;p&gt;Recently, I had to install several development environment, and I wanted to share with you this little setup guide for maven.&lt;br /&gt;
For if the installation is very simple, configuration is much less.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/apache-maven-project-2.png&quot; title=&quot;apache-maven-project-2.png&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/apache-maven-project-2.png&quot; alt=&quot;apache-maven-project-2.png&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/a&gt; Recently, I had to install several development environment, and I wanted to share with you this little setup guide for maven.&lt;br /&gt;
For if the installation is very simple, configuration is much less.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/index.php/post/2011/05/24/Configuration-de-Maven&quot;&gt;French Version&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;http://intelligents-ia.com/index.php/post/2011/05/24/Configuration-de-Maven&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ubuntu, installation boils down to :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;sudo apt-get install maven2
&lt;/pre&gt;
&lt;p&gt;The files are installed in the /usr/share/maven2 and configuration under /etc/maven2.&lt;/p&gt;
&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/index.php/post/2011/05/24/Configuration-de-Maven&quot;&gt;With Windows, download a maven archive and unzip it under c:\maven2. You could find maven on &lt;/a&gt;&lt;a href=&quot;http://maven.apache.org/download.html&quot; rel=&quot;external&quot;&gt;Apache&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The files are installed in  c:\maven2 and configuration c:\maven2\conf.&lt;br /&gt;
Check that you have environment variable (echo %NOM_VARIABLE%)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JAVA_HOME: that points to a JDK and NOT a JRE&lt;/li&gt;
&lt;li&gt;M2_HOME: &quot;c:\maven2&quot;&lt;/li&gt;
&lt;li&gt;a PATH with &quot;c:\maven2\bin&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If this is not the case, set these values​​, open a new terminal, test.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Create your local repository&lt;/h2&gt;
&lt;p&gt;Create folder /usr/local/m2-repository/ (or c:\maven2\m2-repository) and set write rules for all.&lt;/p&gt;
&lt;p&gt;It is in this folder that all libraries will be copied as your projects needed.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;cd /usr/local
sudo mkdir m2-repository
sudo chmod a+w  m2-repository/
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Minimal configuration &lt;/h2&gt;
&lt;p&gt;Edit the configuration file &quot;settings.xml&quot; to indicate where the local repository and use any mirror.&lt;/p&gt;
&lt;p&gt;(The official maven repository is &quot;http://repo1.maven.org/&quot; in order to have reasonable response time we use a mirror)&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;!-- local repository diractory --&amp;gt;
&amp;lt;localRepository&amp;gt;/usr/local/m2-repository&amp;lt;/localRepository&amp;gt;
&amp;lt;mirrors&amp;gt;
&amp;lt;mirror&amp;gt;
&amp;lt;id&amp;gt;UK&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;UK Central&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://uk.maven.org/maven2&amp;lt;/url&amp;gt;
&amp;lt;mirrorOf&amp;gt;central, maven-central-repository&amp;lt;/mirrorOf&amp;gt;
&amp;lt;/mirror&amp;gt;
&amp;lt;/mirrors&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Check installation&lt;/h2&gt;
&lt;p&gt;Execute:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;mvn -version
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And this should give you something like this:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_17
Java home: /usr/local/jdk1.6.0_17/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: &quot;linux&quot; version: &quot;2.6.32-24-generic-pae&quot; arch: &quot;i386&quot; Family: &quot;unix&quot;
&lt;/pre&gt;
&lt;p&gt;From that moment, you have an operational system maven.&lt;/p&gt;
&lt;p&gt;I suggest you go a little further with repositories so you could save a lot of time.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Repositories to know&lt;/h2&gt;
&lt;p&gt;Ideally with maven and use a local repository type nexus / archiva which will serve as mirror all repository maven spread over the Internet. &lt;br /&gt;
In your settings.xml, you will have a configuration that looks like this:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt; &amp;lt;mirrors&amp;gt;
&amp;lt;mirror&amp;gt;
&amp;lt;id&amp;gt;internal-repository&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Maven Repository Manager running on repo.mycompany.com&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repo.mycompany.com/proxy&amp;lt;/url&amp;gt;
&amp;lt;mirrorOf&amp;gt;*&amp;lt;/mirrorOf&amp;gt;
&amp;lt;/mirror&amp;gt;
&amp;lt;/mirrors&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Here the url &quot;repo.mycompany.com&quot; is the url of the repository of your company.&lt;/p&gt;
&lt;p&gt;As the installation of a mirror is not always possible or even desired, here is another way to artificially add a list of repository for your projects.&lt;/p&gt;
&lt;p&gt;The idea is to create a profile in the settings file that will list all the repository you wish to have by default in your projects. Then you can choose to activate it by default or upon request.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;      &amp;lt;profiles&amp;gt;
&amp;lt;profile&amp;gt;
&amp;lt;id&amp;gt;my-repository&amp;lt;/id&amp;gt;
&amp;lt;activation&amp;gt;
&amp;lt;!-- here we did not activate this profile by default --&amp;gt;
&amp;lt;activeByDefault&amp;gt;false&amp;lt;/activeByDefault&amp;gt;
&amp;lt;/activation&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;lt;!-- list of standard repository --&amp;gt;
...
&amp;lt;/repositories&amp;gt;
&amp;lt;/profile&amp;gt;
&amp;lt;/profiles&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To run a command using this list of maven repository, you must add &quot;-Pmy-repository&quot; as parameter (because the profile is not enabled by default):&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;mvn -Pmy-repository clean install
&lt;/pre&gt;
&lt;p&gt;Now, here's a list of very useful repository:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;javanet&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Repository for Maven2&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://download.java.net/maven/2&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;google&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Google repository for Maven2&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;https://oss.sonatype.org/content/repositories/google-releases/&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;jboss&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;JBoss repository for Maven2&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.jboss.org/maven2/&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.bundles.release&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/bundles/release&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.bundles.external&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - External Bundle Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/bundles/external&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.libraries.release&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - SpringSource Library Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/libraries/release&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.libraries.external&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - External Library Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/libraries/external&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can find attached to this post, the file &lt;a href=&quot;http://intelligents-ia.com/public/java/settings.xml&quot;&gt;settings.xml&lt;/a&gt; ready to use&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you know of another repository it would be interesting to add, feel free to contact me :-)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
          <enclosure url="http://intelligents-ia.com/public/java/settings.xml"
      length="4727" type="application/xml" />
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/15/Maven-configuration#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/15/Maven-configuration#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/48</wfw:commentRss>
      </item>
    
  <item>
    <title>How to : JPA, Hibernate &amp; Co English-version</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/15/How-to-%3A-JPA%2C-Hibernate-Co-En-version</link>
    <guid isPermaLink="false">urn:md5:5799a73c81f7e10126d6a325c5b96b3d</guid>
    <pubDate>Wed, 15 Feb 2012 16:51:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Technique</category>
        <category>Hibernate</category><category>Java</category><category>JPA</category><category>Méthodologie</category><category>Spring</category><category>Transaction</category>    
    <description>&lt;p&gt;In order to be quickly operational on persistence mechanisms, and be able to create a data access layer by following current good practices, I propose with a single archive: a generic DAO, an automatic management of temporal data, and an instantiation based on annotations of JPA/Hibernate/Springframework with transaction management.&lt;/p&gt;    &lt;h2&gt;&lt;img src=&quot;http://intelligents-ia.com/public/logo/dao-small.png&quot; alt=&quot;dao-small.png&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In order to be quickly operational on persistence mechanisms, and be able to create a data access layer by following current good practices, I propose with a single archive::&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a generic DAO,&lt;/li&gt;
&lt;li&gt; an automatic management of temporal data,&lt;/li&gt;
&lt;li&gt;an instantiation  of JPA/Hibernate/Springframework with transaction management,&lt;/li&gt;
&lt;li&gt;a model configuration configuration du model based on annotations&lt;/li&gt;
&lt;li&gt;a sample use case&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/index.php/post/2011/04/28/How-to-%3A-JPA%2C-Hibernate-Co&quot;&gt;French version of this document&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;JPA-Utility, what else ?&lt;/h2&gt;
&lt;p&gt;In this library, you can find utilities serving to simplify the use of the trio JPA / Hibernate / Spring DAO as a generic DAO,  methods course large amounts of data efficiently (the paging system is integrated), a basic to customize the names of your database tables, a dating mechanism (not carbon-14 ...) of your entities, but also a complete working example of a persistence layer to copy to keep you running quickly.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;One DAO is enough, ... for beginning&lt;/h3&gt;
&lt;p&gt;You can find the class &quot;org.intelligentsia.utility.jpa.GenericJpaDao&quot;&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/jpa-utility/generic-jpa-dao.jpg&quot; title=&quot;generic-jpa-dao.jpg&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/jpa-utility/.generic-jpa-dao_m.jpg&quot; alt=&quot;generic-jpa-dao.jpg&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a class parameterized by the type of managed entity 'T' and type of the primary key used 'ID'. With this setting, it exposes&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;classical methods :  'persist', 'delete' &lt;/li&gt;
&lt;li&gt;a method for selecting primary key 'findById'.&lt;/li&gt;
&lt;li&gt;a set of method 'findByNamedQuery' which executes a query, with parameters or not, with a paging mechanism (or without) that allows you to browse large volumes of data with a 'for' loop (see post &lt;a href=&quot;http://intelligents-ia.com/index.php/post/2009/02/13/Contribution-Comment-manipuler-large-recordset&quot;&gt;How to browse large volume of datas with 2 lines of code&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A small classical example &amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;...
@Autowired
private GenericJpaDao&amp;lt;page, Long&amp;gt; pageDao;
...
// create a new page
Page page = new Page();
page.setName(&quot;home page&quot;);
pageDao.persist(page);
...
&lt;/pre&gt;
&lt;p&gt;To Iterate on Site collection, you  just have to do &amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;@Repository(&quot;siteDao&quot;)
@Scope(BeanDefinition.SCOPE_SINGLETON)
@Transactional(propagation=Propagation.SUPPORTS)
public class SiteDao extends GenericJpaDao&amp;lt;site, Long&amp;gt; {
public SiteDao() {
super();
}
@Transactional(readOnly = true)
public Iterable&amp;lt;site&amp;gt; findAll() {
return findByNamedQuery(&quot;selectAllSite&quot;, 10);
}
}
...
// For all site
for (Site site : siteDao.findAllSite()) {
// do something
}
...
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When you begin your project, I invite you not to create a specific class for each entity and force you to use an instantiation via Spring. &lt;br /&gt; You can add them step by step when its required for your services, add only the applications necessary for your entities. &lt;br /&gt; At this point, you will add ad hoc methods on a specific DAO.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Easter Eggs, an overview&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The library also includes two or three little things:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/jpa-utility/class-diagram-all.jpg&quot; title=&quot;generic-jpa-dao.jpg&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/jpa-utility/class-diagram-all-m.jpg&quot; alt=&quot;class-diagram-all-m&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Entity Stamped&lt;/h3&gt;
&lt;p&gt;First the interface &quot;timestamped&quot; and its companion bean &quot;TimeStamp&quot; will allow you to manage your entities on the classical fields &quot;timestamp&quot;, &quot;creationDate&quot; and &quot;lastModificationDate&quot; like this &amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;@Entity
@Table(name = &quot;PAGE&quot;)
public class Page implements  Serializable, TimeStamped{
...
/**
* Time stamp data embedded in this entity
*/
@Embedded
private TimeStamp timeStamp =&quot; &quot;&quot;new&quot; TimeStamp();
@Override
public TimeStamp getTimeStamp() {
return timeStamp;
}
...
&lt;/pre&gt;
&lt;p&gt;And that's all! GenericJpaDao class will handle the rest for you. For the curious, this mechanism relies on the declaration of an interface &quot;timestamped&quot;, its bean &quot;TimeStamp&quot; and a little test in the method implementation &quot;persist&quot; on &quot;GenericJpaDao&quot;.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;/**
* if an entity implement this interface, their field 'TimeStamp' will be updated by provider.
* @author &amp;lt;a href=&quot;mailto:jguibert@intelligents-ia.com&quot;&amp;gt;Jerome Guibert&amp;lt;/a&amp;gt;
* @version 1.0.0
*/
public interface TimeStamped {
public TimeStamp getTimeStamp();
}
/**
* TimeStamp offer an implementation for three common fields: timestamp, creationDate and lastModificationDate.
*
* @author &amp;lt;a href=&quot;mailto:jguibert@intelligents-ia.com&quot;&amp;gt;Jerome Guibert&amp;lt;/a&amp;gt;
* @version 1.0.0
*/
public class TimeStamp implements Serializable {
@Temporal(TemporalType.TIMESTAMP)
@Column(name = &quot;TIMESTAMP&quot;)
protected Date timestamp;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = &quot;LASTMODIFICATION&quot;)
protected Date lastModificationDate;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = &quot;CREATION&quot;)
protected Date creationDate;
public TimeStamp() {
super();
}
...
}
//
public class GenericJpaDao&amp;lt;t extends Serializable, ID extends Serializable&amp;gt; {
...
public T persist(T entity) {
// here the egg
if (TimeStamped.class.isAssignableFrom(entity.getClass())) {
TimeStamp stamp = ((TimeStamped) entity).getTimeStamp();
Date current = new Date();
if ((stamp.getCreationDate() == null)) {
stamp.setCreationDate(current);
}
stamp.setLastModificationDate(current);
stamp.setTimestamp(current);
}
entityManager.persist(entity);
return entity;
}
...
}
&lt;/pre&gt;
&lt;p&gt;Achieved at little cost, so far this test has not been challenged by its performance. If you want to add other functionality of this type (trace who did what, for example, ....) I invite you to extend the class GenericJpaDao or otherwise propose me the extension (I would be happy to integrate the project ).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Your DBA will be (again) your best friends (or not)&lt;/h3&gt;
&lt;p&gt;Too long abused, often relegated to the end of the chain, they can also help you (yes, but not all ...).&lt;/p&gt;
&lt;p&gt;Rather than pretend that it did not exist, go to see him/her and explain that&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You will create a new schema (it will be happy to know at least one day before the start of production (real life. ..))&lt;/li&gt;
&lt;li&gt;You can standardize the names of tables that you create (prefix, suffix)&lt;/li&gt;
&lt;li&gt;You can name the tables, as it should '(see the &quot;@ Table (name =' PAGE ')&quot; at the beginning of each entity declaration)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And if in addition you show him a draft schema which will create later (on your local machine you should have what it takes) ...&lt;/p&gt;
&lt;p&gt;In this way, the day (that'll never ...) where you will be out of gas on a query, that your performance read / write will most lamentable, you can ask him (very humbly) assistance (precious ) ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To fix it-prefix-of-suffix, this is a small example&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a class extending &quot;CustomTableNamingStrategy&quot; and set the prefix / suffix of your tables.&lt;br /&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;/**
* DevTableNamingStrategy add &quot;TEST_&quot; prefix on all TABLE.
*
* @author &amp;lt;a href=&quot;mailto:jguibert@intelligents-ia.com&quot;&amp;gt;Jérôme Guibert&amp;lt;/a&amp;gt;
* @version 1.0.0
*/
public class DevTableNamingStrategy extends CustomTableNamingStrategy {
private static final long serialVersionUID = -2544171811654641826L;
public DevTableNamingStrategy() {
super(&quot;TEST_&quot;, null);
}
}
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Set the value of the property &quot;model.hibernate.namingStrategy&quot; on the right class: &quot;model.hibernate.namingStrategy=org.intelligentsia.utility.jpa.DevTableNamingStrategy&quot; (In the example provided, it will be feed the parameter &quot;hibernate.ejb.naming_strategy&quot;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;The route of large data&lt;/h3&gt;
&lt;p&gt;I invite you to read the post &lt;a href=&quot;http://intelligents-ia.com/index.php/post/2009/02/13/Contribution-Comment-manipuler-large-recordset&quot;&gt;Browse large volume of data in two lines of code&lt;/a&gt;.  This is the reason for the existence of classes &quot;ValueIterator&quot; and &quot;ValueHandler&quot;.&lt;/p&gt;
&lt;p&gt;The idea is to make transparent the pagination of a query returning a (very) large amounts of data.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Use and Integration&lt;/h2&gt;
&lt;h3&gt;Configure your POM&lt;/h3&gt;
&lt;p&gt;Two step&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add repository&amp;nbsp;:&lt;br /&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;repositories&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;And dependency&amp;nbsp;:&lt;br /&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;dependencies&amp;gt;
&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;org.intelligentsia.utility&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;jpa&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;/dependencies&amp;gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;For the curious: Checking Out Source Code Project&lt;/h3&gt;
&lt;p&gt;This will also allow you to copy and paste the ad hoc files and customize them to your data layer.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;svn checkout https://blog-intelligents-ia.googlecode.com/svn/trunk/jpa-utility jpa-utility --username yoursUserName
mvn clean install
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The project and the sample &lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/jpa-utility/project-tree.jpg&quot; title=&quot;project-tree.jpg&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/jpa-utility/.project-tree_m.jpg&quot; alt=&quot;project-tree.jpg&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can see the unit test definition features with &quot;full&quot; data access layer with a first service based on it.&lt;/p&gt;
&lt;p&gt;Here is the data model to persist&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/jpa-utility/sample-model.jpg&quot; title=&quot;sample-model.jpg&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/jpa-utility/sample-model.jpg&quot; alt=&quot;sample-model.jpg&quot; style=&quot;margin-top: 0; margin-right: auto; margin-bottom: 0; margin-left: auto; display: block; &quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;1. Creations of the entities and attributes&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For entity site&amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;/**
* Our Site entity.
*
* @author &amp;lt;a href=&quot;mailto:jguibert@intelligents-ia.com&quot;&amp;gt;Jérôme Guibert&amp;lt;/a&amp;gt;
* @version 1.0.0
*/
@Entity
@Table(name = &quot;SITE&quot;)
@NamedQueries({
@NamedQuery(name = &quot;selectAllSite&quot;, query = &quot;SELECT s FROM Site s&quot;)
})
public class Site implements Serializable, TimeStamped {
/**
* serialVersionUID
*/
private static final long serialVersionUID = -1823543375371695270L;
/**
* Automatic version number
*/
@Version
protected Long version;
/**
* Identity with an automatic sequence
*/
@Id
@GeneratedValue(generator = &quot;SEQ_SITE_ID&quot;)
@SequenceGenerator(name = &quot;SEQ_SITE_ID&quot;, sequenceName = &quot;SEQ_SITE_ID&quot;)
@Column(name = &quot;SITE_ID&quot;)
private Long id;
/**
* Name of site with an index
*/
@Column(name = &quot;NAME&quot;, length = 48, nullable = true)
@Index(name = &quot;SITE_NAME_INDEX&quot;, columnNames = {
&quot;NAME&quot;
})
private String name;
...
/**
*  all pages
*/
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = &quot;SITE_ID&quot;)
private List&amp;lt;page&amp;gt; pages = new ArrayList&amp;lt;page&amp;gt;();
/**
* Time stamp data embedded in this entity
*/
@Embedded
private TimeStamp timeStamp = new TimeStamp();
...
}
&lt;/pre&gt;
&lt;p&gt;Pour l'entité &lt;strong&gt;Page&lt;/strong&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;/**
* a page included in our site entity
*
* @author &amp;lt;a href=&quot;mailto:jguibert@intelligents-ia.com&quot;&amp;gt;Jérôme Guibert&amp;lt;/a&amp;gt;
* @version 1.0.0
*/
@Entity
@Table(name = &quot;PAGE&quot;)
public class Page implements  Serializable, TimeStamped{
private static final long serialVersionUID = -773904423928687747L;
/**
* Automatic version number
*/
@Version
protected Long version;
/**
* Identity with an automatic sequence
*/
@Id
@GeneratedValue(generator = &quot;SEQ_PAGE_ID&quot;)
@SequenceGenerator(name = &quot;SEQ_PAGE_ID&quot;, sequenceName = &quot;SEQ_PAGE_ID&quot;)
@Column(name = &quot;PAGE_ID&quot;)
private Long id;
/**
* Name of  page
*/
@Column(name = &quot;NAME&quot;, length = 48, nullable = false)
private String name;
/**
* Time stamp data embedded in this entity
*/
@Embedded
private TimeStamp timeStamp = new TimeStamp();
/**
* An example of many to many association
*/
@ManyToMany(cascade = {
CascadeType.PERSIST, CascadeType.MERGE
}, mappedBy = &quot;pages&quot;, targetEntity = org.intelligentsia.utility.jpa.model.Tag.class)
private List&amp;lt;tag&amp;gt; tags = new ArrayList&amp;lt;tag&amp;gt;();
...
}
&lt;/pre&gt;
&lt;p&gt;I draw your attention to the statement of the relationship between Site and Page in 1-N. For example, NN between Page and Tag, here is an excerpt of the class &quot;Tag&quot;&amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;...
/**
* a many to many example.
*/
@ManyToMany(targetEntity = org.intelligentsia.utility.jpa.model.Page.class, cascade =&quot; &quot;&quot;{&quot;
CascadeType.PERSIST, CascadeType.MERGE
})
@JoinTable(name = &quot;TAG_PAGE&quot;, joinColumns = @JoinColumn(name = &quot;TAG_ID&quot;), inverseJoinColumns = @JoinColumn(name = &quot;PAGE_ID&quot;))
private List&amp;lt;page&amp;gt; pages = new ArrayList&amp;lt;page&amp;gt;();
...
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;2.Reporting entities and the file &quot;my-persistence.xml&quot;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;persistence version=&quot;1.0&quot; xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd&quot;&amp;gt;
&amp;lt;persistence-unit name=&quot;my-model&quot; transaction-type=&quot;RESOURCE_LOCAL&quot;&amp;gt;
&amp;lt;description&amp;gt;
Unite du projet
&amp;lt;/description&amp;gt;
&amp;lt;class&amp;gt;org.intelligentsia.utility.jpa.model.Page&amp;lt;/class&amp;gt;
&amp;lt;class&amp;gt;org.intelligentsia.utility.jpa.model.Site&amp;lt;/class&amp;gt;
&amp;lt;class&amp;gt;org.intelligentsia.utility.jpa.model.Tag&amp;lt;/class&amp;gt;
&amp;lt;exclude-unlisted-classes /&amp;gt;
&amp;lt;/persistence-unit&amp;gt;
&amp;lt;/persistence&amp;gt;
&lt;/pre&gt;
&lt;p&gt;A little tedious...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;3. A pinch of Spring &lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
First statement: The location of properties file
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:jee=&quot;http://www.springframework.org/schema/jee&quot; xmlns:tx=&quot;http://www.springframework.org/schema/tx&quot; xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd&quot;&amp;gt;
// Here we specify where to find our property file
&amp;lt;context:property-placeholder location=&quot;classpath:META-INF/model.properties&quot; /&amp;gt;
&amp;lt;context:annotation-config /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Here, we tell Spring to see what the package contains &quot;org.intelligentsia.utility.jpa&quot; (and its sub-package), and instantiate all that moves ...&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;	// Where are your service and your class model ?
&amp;lt;context:component-scan base-package=&quot;org.intelligentsia.utility.jpa&quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;La partie de plaisir&amp;nbsp;: La déclaration de l'entity manager...&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;bean class=&quot;org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor&quot; /&amp;gt;
&amp;lt;bean class=&quot;org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor&quot; /&amp;gt;
&amp;lt;!-- ENTITY MANAGER --&amp;gt;
&amp;lt;bean id=&quot;modelEntityManagerFactory&quot; class=&quot;org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean&quot;&amp;gt;
&amp;lt;property name=&quot;persistenceUnitName&quot; value=&quot;my-model&quot; /&amp;gt;
&amp;lt;property name=&quot;persistenceXmlLocation&quot; value=&quot;classpath:META-INF/my-persistence.xml&quot; /&amp;gt;
&amp;lt;property name=&quot;dataSource&quot; ref=&quot;model-dataSource&quot; /&amp;gt;
&amp;lt;property name=&quot;jpaVendorAdapter&quot;&amp;gt;
&amp;lt;bean class=&quot;org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter&quot;&amp;gt;
&amp;lt;property name=&quot;databasePlatform&quot; value=&quot;${model.hibernate.dialect}&quot; /&amp;gt;
&amp;lt;property name=&quot;showSql&quot; value=&quot;${model.hibernate.showsql}&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;jpaPropertyMap&quot;&amp;gt;
&amp;lt;map&amp;gt;
&amp;lt;entry key=&quot;hibernate.dialect&quot; value=&quot;${model.hibernate.dialect}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.hbm2ddl.auto&quot; value=&quot;${model.hibernate.hbm2ddl.auto}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.format_sql&quot; value=&quot;${model.hibernate.format_sql}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_second_level_cache&quot; value=&quot;${model.hibernate.cache.use_second_level_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.provider_class&quot; value=&quot;${model.hibernate.cache.provider_class}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_query_cache&quot; value=&quot;${model.hibernate.cache.use_query_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_second_level_cache&quot; value=&quot;${model.hibernate.cache.use_second_level_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_structured_cache&quot; value=&quot;${model.hibernate.cache.use_structured_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.ejb.naming_strategy&quot; value=&quot;${model.hibernate.namingStrategy}&quot; /&amp;gt;
&amp;lt;/map&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;!--  TRANSACTION MANAGEMENT  --&amp;gt;
&amp;lt;bean id=&quot;modelTransactionManager&quot; class=&quot;org.springframework.orm.jpa.JpaTransactionManager&quot;&amp;gt;
&amp;lt;property name=&quot;entityManagerFactory&quot; ref=&quot;modelEntityManagerFactory&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;tx:annotation-driven transaction-manager=&quot;modelTransactionManager&quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Et maintenant, nous pouvons instancier nos Dao, et definir en une ligne la connection à la base de données.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;!-- DAO DECLARATION --&amp;gt;
&amp;lt;bean id=&quot;pageDao&quot; class=&quot;org.intelligentsia.utility.jpa.GenericJpaDao&quot;&amp;gt;
&amp;lt;constructor-arg value=&quot;org.intelligentsia.utility.jpa.model.Page&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;bean id=&quot;tagDao&quot; class=&quot;org.intelligentsia.utility.jpa.GenericJpaDao&quot;&amp;gt;
&amp;lt;constructor-arg value=&quot;org.intelligentsia.utility.jpa.model.Tag&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;bean id=&quot;model-dataSource&quot; class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;&amp;gt;
&amp;lt;property name=&quot;driverClassName&quot; value=&quot;org.h2.Driver&quot; /&amp;gt;
&amp;lt;property name=&quot;url&quot; value=&quot;jdbc:h2:~/test&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;/beans&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;4. The properties file to customize to your taste and color &lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;model.hibernate.dialect=org.hibernate.dialect.H2Dialect
model.hibernate.showsql=true
# validate | update | create | create-drop
model.hibernate.hbm2ddl.auto=update
model.hibernate.format_sql=true
model.hibernate.cache.use_second_level_cache=true
model.hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
model.hibernate.cache.use_query_cache=true
model.hibernate.cache.use_second_level_cache=true
model.hibernate.cache.use_structured_cache=true
#org.hibernate.cfg.DefaultNamingStrategy| org.intelligentsia.utility.jpa.DevTableNamingStrategy
model.hibernate.namingStrategy=org.intelligentsia.utility.jpa.DevTableNamingStrategy
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I hope that this can be util you, if you have any questions, comments, please do not hesitate!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
.</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/15/How-to-%3A-JPA%2C-Hibernate-Co-En-version#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/15/How-to-%3A-JPA%2C-Hibernate-Co-En-version#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/47</wfw:commentRss>
      </item>
    
  <item>
    <title>Winstone 1.0.2 - conteneur de servlet</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/15/Winstone-1.0.2-conteneur-de-servlet</link>
    <guid isPermaLink="false">urn:md5:ad1f2f6a38d0ec77f9a5763086e8a7c5</guid>
    <pubDate>Wed, 15 Feb 2012 11:56:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Winstone</category>
        <category>Java</category><category>Servlet container</category><category>Winstone</category>    
    <description>&lt;p&gt;Winstone 1.0.2 est (enfin) disponible &lt;img src=&quot;/themes/iia/smilies/love.png&quot; alt=&quot;:x&quot; class=&quot;smiley&quot; /&gt;  &lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/winstone/zhuFull.jpg&quot; alt=&quot;zhuFull.jpg&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;Winstone 1.0.2 est (enfin) disponible &lt;img src=&quot;/themes/iia/smilies/love.png&quot; alt=&quot;:x&quot; class=&quot;smiley&quot; /&gt;  &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Vous pourrez retrouvez toutes les informations n&amp;eacute;cessaire &amp;agrave; ce projet sur le site de &lt;a href=&quot;http://code.google.com/p/winstone/&quot; rel=&quot;external&quot;&gt;Google Code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Comment ca marche?&lt;/h2&gt;
&lt;p&gt;Utiliser directement la ligne de commande apr&amp;egrave;s avoir t&amp;eacute;l&amp;eacute;charg&amp;eacute;e l'archive (&lt;a href=&quot;http://code.google.com/p/winstone/downloads/detail?name=winstone-1.0.2-boot.jar&quot; rel=&quot;external&quot;&gt;winstone-1.0.2-boot.jar&lt;/a&gt;):&lt;/p&gt;
&lt;script type=&quot;syntaxhighlighter&quot; class=&quot;brush: shell&quot;&gt;&lt;![CDATA[
java -jar winstone-1.0.2.boot.jar --warfile=&lt;location of warfile&gt; (+ other options)
java -jar winstone-1.0.2.boot.jar --webappsDir=&lt;location of webapps directory&gt; (+ other options)
java -jar winstone-1.0.2.boot.jar --hostsDir=&lt;location of hosts directory&gt; (+ other options)
]]&gt;&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;La liste compl&amp;egrave;te de toute les &lt;a href=&quot;http://code.google.com/p/winstone/wiki/CmdLineOption&quot; rel=&quot;external&quot;&gt;options de la ligne de commande&lt;/a&gt; est encore en anglais (si vous insistez vraiment, je vous la traduirais...)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Quelques informations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Support des API Servlet jusqu'&amp;agrave; la version 2.5&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/winstone/wiki/JndiSupport&quot; rel=&quot;external&quot;&gt;Documentation JNDI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/winstone/wiki/CmdLineOption&quot; rel=&quot;external&quot;&gt;Options de la ligne de commande&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Projet construit via maven et disponible en Open source (LPGL) via Google Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/15/Winstone-1.0.2-conteneur-de-servlet#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/15/Winstone-1.0.2-conteneur-de-servlet#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/46</wfw:commentRss>
      </item>
    
  <item>
    <title>Bootstrap your application with Keystone</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/15/bootstrap-your-application-with-keystone</link>
    <guid isPermaLink="false">urn:md5:a5d3cc05ba5e73046bda816ac8aad093</guid>
    <pubDate>Wed, 15 Feb 2012 11:05:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Documentation</category>
        <category>Java</category><category>Keystone</category><category>Maven</category>    
    <description>&lt;p&gt;Everything you need to use the plugin that turns your jar in a standalone archive! &lt;img src=&quot;/themes/iia/smilies/happy.png&quot; alt=&quot;:p&quot; class=&quot;smiley&quot; /&gt;  &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The parameter list of keystone plugin for maven&lt;/li&gt;
&lt;li&gt;the XML fragment to integrate into your pom.xml&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/keystone/.card-keystone_s.jpg&quot; alt=&quot;keystone&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;This project is a bootstrap that loads your application and its dependencies into a single archive. With his maven plugin, its use is very easy!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Configure your pom&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;build&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugins&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;org.intelligentsia.keystone&amp;lt;/groupId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;plugin&amp;lt;/artifactId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;2.2&amp;lt;/version&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;make-assembly&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mainClass&amp;gt;your.class.Main&amp;lt;/mainClass&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goal&amp;gt;custom&amp;lt;/goal&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
Add plugin and bootstrap repository:
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;pluginRepositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&amp;lt;/pluginRepositories&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;repository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Keystone Maven Plugin Parameters&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Comment&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;mainClass&lt;/td&gt;&lt;td&gt;your class 'Main' which implements: public static void main(String[] args)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cleanUpLib&lt;/td&gt;&lt;td&gt;true | false (default true), clean up folder named “lib”  at startup before extraction of initial archive&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cleanUpBeforeShutdown&lt;/td&gt;&lt;td&gt;true | false (default is false),clean up folder named “lib”  at shutdown&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;info&lt;/td&gt;&lt;td&gt;true | false (default is false), level 'INFO' logs generated by the Keystone bootsrap&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;verbose&lt;/td&gt;&lt;td&gt;true | false (default is false), level ‘VERBOSE’ logs generated by the Keystone bootsrap&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;logFile&lt;/td&gt;&lt;td&gt;Log file path. Per default, all logs go on standard output.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;includeJavaHomeLib&lt;/td&gt;&lt;td&gt;true | false (default is true), Add to classpath application, archives from the JAVA_HOME / lib if it exists&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;includeSystemClassLoader&lt;/td&gt;&lt;td&gt;true | false (default is true).Adding the system classloader as a parent application class loaders&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;explodeDirectory&lt;/td&gt;&lt;td&gt;Root extracting archives embark with the bootstrap. By default, this directory is the current directory if write operations are allowed on it, otherwise it is a temporary folder that is used.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;finalName&lt;/td&gt;&lt;td&gt;Final artifact name. By default, this is the name of the original artefact suffix &quot;-boot&quot;. Example for &quot;sample.jar&quot;, it will be &quot;sample-boot.jar&quot;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;replaceProjectArtifact&lt;/td&gt;&lt;td&gt;true | false (default is false). If enabled, the archive packaged artifact replaces the current project&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;That's All&lt;br /&gt;Enjoy&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/15/bootstrap-your-application-with-keystone#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/15/bootstrap-your-application-with-keystone#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/45</wfw:commentRss>
      </item>
    
  <item>
    <title>Configuration du plugin maven pour Keystone 2.2</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/14/Configuration-du-plugin-maven-pour-Keystone-2.2</link>
    <guid isPermaLink="false">urn:md5:97e599a3cb32869592d6b9b99bf93d80</guid>
    <pubDate>Tue, 14 Feb 2012 16:59:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Documentation</category>
        <category>Java</category><category>Keystone</category><category>Maven</category>    
    <description>&lt;p&gt;Tout ce qu'il vous faut pour utiliser de suite le plugin qui transforme votre jar en une archive autonome! &lt;img src=&quot;/themes/iia/smilies/happy.png&quot; alt=&quot;:p&quot; class=&quot;smiley&quot; /&gt;  &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;La liste des paramètres du plugin keystone pour maven&lt;/li&gt;
&lt;li&gt;le fragment XML à intégrer à votre pom.xml&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/keystone/.card-keystone_s.jpg&quot; alt=&quot;keystone&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Liste des paramètres&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Nom&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;mainClass&lt;/td&gt;&lt;td&gt;votre classe “Main” qui implémente la méthode public static void main(String[] args) { … }&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cleanUpLib&lt;/td&gt;&lt;td&gt;true|false (par défaut true)&lt;br /&gt;nettoyage du dossier “lib” au démarrage avant l’extraction des librairies contenues dans l’archive initiale&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cleanUpBeforeShutdown&lt;/td&gt;&lt;td&gt;true|false (par défaut false)&lt;br /&gt;nettoyage du dossier “lib” à l’arrêt du programme&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;info&lt;/td&gt;&lt;td&gt;true|false (par défaut false)&lt;br /&gt;niveau ‘INFO’ des logs générés par le bootsrap Keystone&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;verbose&lt;/td&gt;&lt;td&gt;true|false (par défaut false)&lt;br /&gt;niveau ‘VERBOSE’ des logs générés par le bootsrap Keystone&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;logFile&lt;/td&gt;&lt;td&gt;chemin d’accès au fichier de log. Par défaut les logs se font sur la sortie standard.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;includeJavaHomeLib&lt;/td&gt;&lt;td&gt;true|false (par défaut true)&lt;br /&gt;Ajout au classpath de l’application, des archives issues du répertoire JAVA_HOME/lib si il existe&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;includeSystemClassLoader&lt;/td&gt;&lt;td&gt;true|false (par défaut true)&lt;br /&gt;Ajout du classloader système en tant que parent au classloader de l’application&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;explodeDirectory&lt;/td&gt;&lt;td&gt;Répertoire racine d’extraction des archives embarquer avec le bootstrap.&lt;br /&gt;
Par défaut, ce répertoire est le répertoire courant si les opération d’écritures sont permises sur celui-ci, sinon c’est un dossier temporaire qui est utilisé.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;finalName&lt;/td&gt;&lt;td&gt;Nom de l’artefact final&lt;br /&gt;
Par défaut, c’est le nom de l’artefact original suffixé par “-boot”.&lt;br /&gt;
Example pour “sample.jar”, cela sera: “sample-boot.jar”&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;replaceProjectArtifact&lt;/td&gt;&lt;td&gt;true|false (par défaut false)&lt;br /&gt;Si activé, l’archive packagé remplace l’artefact du projet courant&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Intégration à votre projet&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ajouter le repository du plugins&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;pluginRepositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&amp;lt;/pluginRepositories&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;repository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Et configurer le build de votre projet avec le plugin &quot;keystone-plugin&quot; (indiquer votre classe de démarrage) :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;build&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugins&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;org.intelligentsia.keystone&amp;lt;/groupId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;plugin&amp;lt;/artifactId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;2.2&amp;lt;/version&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;make-assembly&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mainClass&amp;gt;votre.class.Main&amp;lt;/mainClass&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goal&amp;gt;custom&amp;lt;/goal&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/14/Configuration-du-plugin-maven-pour-Keystone-2.2#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/14/Configuration-du-plugin-maven-pour-Keystone-2.2#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/44</wfw:commentRss>
      </item>
    
  <item>
    <title>Keystone 2.2 est sortie !</title>
    <link>http://intelligents-ia.com/index.php/post/2012/02/09/Keystone-2.2-est-sortie-%21</link>
    <guid isPermaLink="false">urn:md5:4634b9684be7e1a3737727a906813421</guid>
    <pubDate>Thu, 09 Feb 2012 17:18:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>News</category>
        <category>Java</category><category>Keystone</category><category>Maven</category>    
    <description>&lt;p&gt;la version 2.2 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;Beaucoup de correctif (ce qui explique l’absence de déclaration officiel du parti pour les version 1.4, 1.6, 1...., 2.0, ... &lt;/p&gt;
&lt;p&gt;Tout ceci a été rendue possible par l'adoption de ce projet/plugin dans d'autres projets d'entreprise&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/keystone/.card-keystone_s.jpg&quot; alt=&quot;keystone&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bonjour,&lt;br /&gt;
&lt;br /&gt;
la version 2.2 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Ce projet est un bootstrap qui embarque votre application et ses dépendances en une seule archive.&lt;br /&gt;
Accompagné de son plugin maven, son utilisation est des plus simple!
&lt;/p&gt;
&lt;p&gt;Cette nouvelle version 2.2 inclus :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;des corrections du plugin maven: gestion des paramètre de configuration (niveau de log, localisation du fichier de log, nettoyage des répertoires temporaires, ...)&lt;/li&gt;
&lt;li&gt;des correctifs du bootstrap:
&lt;ul&gt;
&lt;li&gt;correction de l'extraction des jar&lt;/li&gt;
&lt;li&gt;suppression de warning qui n'en etait pas&lt;/li&gt;
&lt;li&gt;refonte du mécanisme d'arrêt/mise à jour: plus simple et efficace&lt;/li&gt;
&lt;li&gt;ajout de log plus pertinent&lt;/li&gt;
&lt;li&gt;refonte du système de gestion de l'instanciation des classes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Intégration du plugin à votre POM&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ajouter le repository du plugins&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;pluginRepositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&amp;lt;/pluginRepositories&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;repository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Et configurer le build de votre projet avec le plugin &quot;keystone-plugin&quot; (indiquer votre classe de démarrage) :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;build&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugins&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;org.intelligentsia.keystone&amp;lt;/groupId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;plugin&amp;lt;/artifactId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;2.2&amp;lt;/version&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;make-assembly&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mainClass&amp;gt;votre.class.Main&amp;lt;/mainClass&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goal&amp;gt;custom&amp;lt;/goal&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Récupération des sources&lt;/h3&gt;
&lt;p&gt;Les sources du projets ont été déplacées pour cette occasion.&lt;/p&gt;
&lt;p&gt;Pour récupérer le code source et construire le projet (client svn et maven obligatoire) :&lt;/p&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;svn checkout https://intelligents-ia.googlecode.com/svn/trunk/keystone keystone --username yoursUserName
cd keystone
mvn clean package
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/02/09/Keystone-2.2-est-sortie-%21#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/02/09/Keystone-2.2-est-sortie-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/43</wfw:commentRss>
      </item>
    
  <item>
    <title>La terre vue de l'espace</title>
    <link>http://intelligents-ia.com/index.php/post/2012/01/09/La-terre-vue-de-l-espace</link>
    <guid isPermaLink="false">urn:md5:921f65f02289e90836b24be8b2d6b81a</guid>
    <pubDate>Thu, 09 Feb 2012 16:01:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Lecture</category>
        <category>Espace</category>    
    <description>&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/post/2012/01/09/La-terre-vue-de-l-espace&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/.earth_s.jpg&quot; alt=&quot;Earth&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; title=&quot;Earth&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Séquences de photographies prises par l'équipage des expéditions 28 &amp;amp; 29 à bord de la Station spatiale internationale d'Août à Octobre 2011.&lt;br /&gt;
Altitude d'environ 350 km.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Séquences de photographies prises par l'équipage des expéditions 28 &amp; 29 à bord de la Station spatiale internationale d'Août à Octobre 2011.&lt;/br&gt;
Altitude d'environ 350 km.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;http://player.vimeo.com/video/32001208?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;400&quot; height=&quot;225&quot; frameborder=&quot;0&quot; webkitAllowFullScreen allowFullScreen&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/32001208&quot;&gt;Terre | Prise de vue depuis l'espace | NASA, ISS&lt;/a&gt; de &lt;a href=&quot;http://vimeo.com/michaelkoenig&quot;&gt;Michael König&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lieux par ordre d'apparition:&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Aurore boréale au dessus des Etats-Unis de nuit&lt;/li&gt;
&lt;li&gt;Aurore boréale et de l'Est Etats-Unis de nuit&lt;/li&gt;
&lt;li&gt;Aurore australe de Madagascar au sud-ouest de l'Australie&lt;/li&gt;
&lt;li&gt;Aurore australe sud de l'Australie&lt;/li&gt;
&lt;li&gt;Côte nord-ouest des Etats-Unis d'Amérique du Sud centrale de nuit&lt;/li&gt;
&lt;li&gt;Aurore boréale du Sud à l'Océan Pacifique Nord&lt;/li&gt;
&lt;li&gt;Autre bout du monde&lt;/li&gt;
&lt;li&gt;Passage de nuit sur l'Afrique centrale et le Moyen-Orient&lt;/li&gt;
&lt;li&gt;Passage de nuit dans le désert du Sahara et du Moyen-Orient&lt;/li&gt;
&lt;li&gt;Survol du Canada et des États-Unis à Central Nuit&lt;/li&gt;
&lt;li&gt;Survol de la Californie du Sud à la baie d'Hudson&lt;/li&gt;
&lt;li&gt;Iles de la Mer des Philippines de nuit&lt;/li&gt;
&lt;li&gt;Survol de l'Asie orientale à la mer des Philippines et de Guam&lt;/li&gt;
&lt;li&gt;Vues de nuit au Proche-Orient&lt;/li&gt;
&lt;li&gt;Survol de nuit de la mer Méditerranée&lt;/li&gt;
&lt;li&gt;Aurore boréale et les États-Unis de nuit&lt;/li&gt;
&lt;li&gt;Aurore australe dans l'Océan Indien&lt;/li&gt;
&lt;li&gt;Europe de l'Est à l'Asie du Sud de nuit&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;J'adore ces images et en même temps une &quot;petite&quot; chose m'effraie: à quoi bon éclairer l'espace quand on dors ?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2012/01/09/La-terre-vue-de-l-espace#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2012/01/09/La-terre-vue-de-l-espace#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/41</wfw:commentRss>
      </item>
    
  <item>
    <title>Lambda-calcul, type et modèles</title>
    <link>http://intelligents-ia.com/index.php/post/2011/11/11/Lambda-calcul%2C-type-et-mod%C3%A8les</link>
    <guid isPermaLink="false">urn:md5:2d739ebf2b3ef0c3ad68158e578ec0c1</guid>
    <pubDate>Fri, 11 Nov 2011 17:46:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Science</category>
            
    <description>&lt;p&gt;De J.L Krivine aux éditions Masson.&lt;/p&gt;
&lt;p&gt;Un auteur qui fait rêver,  professeur à l'université Paris-VII, &lt;a href=&quot;http://www.pps.jussieu.fr/~krivine/&quot; rel=&quot;external&quot;&gt;~krivine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Krivine est le père du nouveau point de vue sur la théorie, notamment sur les correspondances entre informatique et mathématique.&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/book/.lambda_s.jpg&quot; alt=&quot;lambda.JPG&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;De J.L Krivine aux éditions Masson.&lt;/p&gt;
&lt;p&gt;Un auteur qui fait rêver,  professeur à l'université Paris-VII, &lt;a href=&quot;http://www.pps.jussieu.fr/~krivine/&quot; rel=&quot;external&quot;&gt;~krivine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Krivine est le père du nouveau point de vue sur la théorie, notamment sur les correspondances entre informatique et mathématique.&lt;/p&gt;
&lt;p&gt;Un très bon ouvrage, très complet mais qui n'explique pas assez les conséquences ses travaux à mon goûts, notamment la possible interprétation en psychologie ou en physiologie.&lt;/p&gt;
&lt;p&gt;Un livre qui mériterait une réédition avec un appendix dénotant les conséquences philosophiques des recherches de Krivine.&lt;/p&gt;
&lt;p&gt;Une mise à jour de ce livre est gratuitement disponible (en anglais) :&amp;nbsp;&lt;a href=&quot;http://www.pps.jussieu.fr/~krivine/articles/Lambda.pdf&quot; rel=&quot;external&quot;&gt;&lt;em&gt;Lambda-calculus, types and models&lt;/em&gt;&lt;/a&gt;&amp;nbsp;Ellis Horwood (1993) (mise à jour 3 novembre 2011)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2011/11/11/Lambda-calcul%2C-type-et-mod%C3%A8les#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2011/11/11/Lambda-calcul%2C-type-et-mod%C3%A8les#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/40</wfw:commentRss>
      </item>
    
  <item>
    <title>Spécifications algébriques, algorithmique et programmation</title>
    <link>http://intelligents-ia.com/index.php/post/2011/02/24/Sp%C3%A9cifications-alg%C3%A9briques%2C-algorithmique-et-programmation</link>
    <guid isPermaLink="false">urn:md5:7bdab42cb2b0d07c0cc9b80f8f68b252</guid>
    <pubDate>Fri, 11 Nov 2011 17:24:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Science</category>
        <category>Algorithmique</category><category>Lecture</category>    
    <description>&lt;p&gt;De Jean-François Dufourd, Dominique Bechmann et Yves Bertrand.&lt;/p&gt;
&lt;p&gt;Paru en 12/1997&lt;/p&gt;
&lt;p&gt;Il a été mon livre de chevet pendant le temps de mes études à la faculté de Dijon, une aide essentiel pour qui veut construire et comprendre l'essence des types
et des algorithmes qui jouent avec.&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/book/.specificationsalgebriques_s.jpg&quot; alt=&quot;specificationsalgebriques.jpg&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Spécification algébrique, algorithmique et programmation de Jean-François Dufourd, Dominique Bechmann et Yves Bertrand.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Paru en 12/1997&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Il a été mon livre de chevet pendant le temps de mes études à la faculté de Dijon, une aide essentiel pour qui veut construire et comprendre l'essence des types
et des algorithmes qui jouent avec.&lt;/p&gt;
&lt;p&gt;Jean-François Dufourd est professeur d'informatique à l'université Louis-Pasteur de Strasbourg.&lt;br /&gt;
Dominique Bechmann et Yves Bertrand y sont respectivement maître de conférences et chargé de recherches CNRS. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Extrait de la quatrième de couverture, car franchement je peux pas dire mieux:&lt;/p&gt;
&lt;p&gt;
L'ambition de cet ouvrage est de couvrir tout le processus allant de la spécification abstraite d'un problème à sa programmation en proposant des méthodes et outils réalistes et éprouvés.
&lt;/p&gt;
&lt;p&gt;
Il aborde ainsi la spécification des données et opérations, fondée sur les techniques algébriques, fournit des méthodes de transformation rigoureuses, conduisant à des algorithmes sûrs et bien documentés, et montre comment effectuer leur transcription en langage C.
&lt;/p&gt;
&lt;p&gt;
Il étudie en outre de manière systématique, avec des spécifications algébriques, les structures de données de base pour ranger, rechercher, trier des données et gérer un espace mémoire,
et introduit les notions liées à la complexité des algorithmes.&lt;br /&gt;
De nombreux sujets d'exercices, problèmes et projets complètent la présentation.
&lt;/p&gt;
&lt;p&gt;
L'ouvrage est destiné aux étudiants de licence maîtrise d'informatique, de MIAGE, des IUP d'informatique et des écoles d'ingénieurs.&lt;br /&gt;
Il sera aussi utile aux étudiants de DESS et aux développeurs de logiciel.
&lt;/p&gt;
&lt;h3&gt;Sommaire&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Construction de programmes&lt;/li&gt;
&lt;li&gt;Spécifications algébriques : le cas équationnel pur&lt;/li&gt;
&lt;li&gt;Spécifications algébriques : le cas général&lt;/li&gt;
&lt;li&gt;Implantation et programmation&lt;/li&gt;
&lt;li&gt;Spécifications étendues&lt;/li&gt;
&lt;li&gt;Piles, files et listes linéaires&lt;/li&gt;
&lt;li&gt;Suppression de la récursivité&lt;/li&gt;
&lt;li&gt;Complexité et optimalité&lt;/li&gt;
&lt;li&gt;Tables&lt;/li&gt;
&lt;li&gt;Graphes : spécification et implantation&lt;/li&gt;
&lt;li&gt;Graphes : algorithmes classiques&lt;/li&gt;
&lt;li&gt;Arbres et forêts : spécification et implantation&lt;/li&gt;
&lt;li&gt;Arbres et forêts : algorithmes et variétés d'arbres&lt;/li&gt;
&lt;li&gt;tris internes&lt;/li&gt;
&lt;li&gt;Fichiers&lt;/li&gt;
&lt;li&gt;Tris externes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Quand je vous disais que c'était la base... Lisez Le !!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2011/02/24/Sp%C3%A9cifications-alg%C3%A9briques%2C-algorithmique-et-programmation#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2011/02/24/Sp%C3%A9cifications-alg%C3%A9briques%2C-algorithmique-et-programmation#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/13</wfw:commentRss>
      </item>
    
  <item>
    <title>Keystone 1.4 est sortie !</title>
    <link>http://intelligents-ia.com/index.php/post/2011/11/11/Keystone-1.4-est-sortie-%21</link>
    <guid isPermaLink="false">urn:md5:acaf7e5515adf458b3b25ca7cf04ce9c</guid>
    <pubDate>Fri, 11 Nov 2011 15:56:00 +0100</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>News</category>
        <category>Keystone</category><category>Maven</category>    
    <description>&lt;p&gt;Bonjour,&lt;br /&gt;
&lt;br /&gt;
la version 1.4 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Pour rappel, ce projet est un bootstrap qui embarque votre application et ses dépendances en une seule archive.&lt;br /&gt;
Accompagné de son plugin maven, son utilisation est des plus simple!
&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/keystone/.card-keystone_s.jpg&quot; alt=&quot;keystone&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bonjour,&lt;br /&gt;
&lt;br /&gt;
la version 1.4 de keystone viens de sortir!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
Pour rappel, ce projet est un bootstrap qui embarque votre application et ses dépendances en une seule archive.&lt;br /&gt;
Accompagné de son plugin maven, son utilisation est des plus simple!
&lt;/p&gt;
&lt;p&gt;Cette nouvelle version 1.4 inclus :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;des corrections du plugin maven:
&lt;ul&gt;
&lt;li&gt;Le plugin ajoute un nouvel artifact au projet. Son Identifiant devient celui de votre projet suffixé par &quot;-boot&quot;&lt;/li&gt;
&lt;li&gt;les dépendances de scope compile et runtime sont désormais incluses&lt;/li&gt;
&lt;li&gt;les dépendances transitives sont désormais gérées (bug corrigé depuis la version 1.3)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;des correctifs du bootstrap:
&lt;ul&gt;
&lt;li&gt;les paramètres passé en lignes de commande sont désormais correctement redonner à la classe cible&lt;/li&gt;
&lt;li&gt;si le dossier d'extraction des archives n'a pas les droits d'écriture, les archives java seront extraites dans un dossier temporaires géré par la jvm &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;des évolutions autour des artifacts du projets:
&lt;ul&gt;
&lt;li&gt;ajout d'un artifact contenant les sources au projet &quot;org.intelligentsia.keystone:boot&quot; de façon à faciliter son utilisation avancée&lt;/li&gt;
&lt;li&gt;ajout d'un artifact contenant la javadoc&lt;/li&gt;
&lt;li&gt;les artifacts en &quot;release&quot; sont désormais signés&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Intégration du plugin à votre POM&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ajouter le repository du plugins&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;pluginRepositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&amp;lt;/pluginRepositories&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;repository&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Et configurer le build de votre projet avec le plugin &quot;keystone-plugin&quot; (indiquer votre classe de démarrage) :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;build&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugins&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;org.intelligentsia.keystone&amp;lt;/groupId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;plugin&amp;lt;/artifactId&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;1.4&amp;lt;/version&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;id&amp;gt;make-assembly&amp;lt;/id&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;mainClass&amp;gt;votre.class.Main&amp;lt;/mainClass&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;goal&amp;gt;custom&amp;lt;/goal&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/goals&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/execution&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/executions&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugin&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/plugins&amp;gt;
&amp;lt;/build&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Récupération des sources&lt;/h3&gt;
&lt;p&gt;Les sources du projets ont été déplacées pour cette occasion.&lt;/p&gt;
&lt;p&gt;Pour récupérer le code source et construire le projet (client svn et maven obligatoire) :&lt;/p&gt;
&lt;pre class=&quot;brush: bash&quot;&gt;svn checkout https://intelligents-ia.googlecode.com/svn/trunk/keystone keystone --username yoursUserName
cd keystone
mvn clean package
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2011/11/11/Keystone-1.4-est-sortie-%21#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2011/11/11/Keystone-1.4-est-sortie-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/39</wfw:commentRss>
      </item>
    
  <item>
    <title>Intéressé par la robotique ?</title>
    <link>http://intelligents-ia.com/index.php/post/2011/05/27/Int%C3%A9ress%C3%A9-par-la-robotique</link>
    <guid isPermaLink="false">urn:md5:ab9c9c910d4c6f7d224769f87fe09594</guid>
    <pubDate>Fri, 27 May 2011 12:53:00 +0200</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Technique</category>
        <category>Java</category><category>Méthodologie</category><category>Robotique</category>    
    <description>&lt;p&gt;Vous vous dites que “flasher la rom du pic” c’est comme de la tarte au chocolat fourée à la moutarde&amp;nbsp;?
Bonne nouvelle, vous pouvez utiliser Android comme base de votre futur Robot&amp;nbsp;!&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/ioio-logo.png&quot; title=&quot;IOIO&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/ioio-logo-small.jpg&quot; alt=&quot;IOIO&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;IOIO&quot; /&gt;&lt;/a&gt;Vous vous dites que “flasher la rom du pic” c’est comme de la tarte au chocolat fourée à la moutarde&amp;nbsp;? &lt;br /&gt;
Bonne nouvelle, vous pouvez utiliser Android comme base de votre futur Robot !&lt;br /&gt;
&lt;br /&gt;
Il y a &lt;a href=&quot;http://ytai-mer.blogspot.com/&quot; rel=&quot;external&quot;&gt;IOIO&lt;/a&gt; (prononcé yo-yo) un projet qui vous permet de connecter votre téléphone sous android à vos périphériques favoris.&lt;br /&gt;
&lt;br /&gt;
De cette manière vous bénéficié de l’environnement Java pour vos création :-)&lt;br /&gt;
&lt;br /&gt;
Vous n’aurez plus aucune excuse pour ne pas transpirez des neurones.&lt;br /&gt;
&lt;br /&gt;
Et si vous voulez aller un peu plus loin, aller donc faire un tour sur ce projet &lt;a href=&quot;http://www.ros.org/wiki/&quot; rel=&quot;external&quot;&gt;ROS&lt;/a&gt; (projet sous &lt;a href=&quot;http://code.google.com/p/rosjava/&quot; rel=&quot;external&quot;&gt;google code&lt;/a&gt;)&lt;br /&gt;
&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2011/05/27/Int%C3%A9ress%C3%A9-par-la-robotique#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2011/05/27/Int%C3%A9ress%C3%A9-par-la-robotique#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/37</wfw:commentRss>
      </item>
    
  <item>
    <title>Gestion des transactions Spring JPA</title>
    <link>http://intelligents-ia.com/index.php/post/2011/05/27/gestion-des-transaction-Spring-JPA</link>
    <guid isPermaLink="false">urn:md5:0b75daaa7f60757e89561e2ecbe085c4</guid>
    <pubDate>Fri, 27 May 2011 11:03:00 +0200</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Technique</category>
        <category>Hibernate</category><category>Java</category><category>JPA</category><category>Spring</category><category>Transaction</category>    
    <description>&lt;p&gt;Comment gérer les transactions quand on utilise Spring et JPA ?&lt;/p&gt;
&lt;p&gt;Ce n'est pas bien compliqué.... ou presque.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;    &lt;p&gt;&lt;img src=&quot;http://intelligents-ia.com/public/logo/dao-small.png&quot; alt=&quot;dao-small.png&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;Comment gérer les transactions quand on utilise Spring et JPA ?&lt;/p&gt;
&lt;p&gt;Ce n'est pas bien compliqué.... ou presque.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Il nous faut tout d'abord un projet avec des objets persités en base de données, quelques dao et les services d'interrogation ad hoc. Pour cela je vous propose de repartir du projet java de ce billet : &quot;&lt;a href=&quot;http://intelligents-ia.com/index.php/post/2011/04/28/How-to-%3A-JPA%2C-Hibernate-Co&quot;&gt;How to : JPA, Hibernate &amp;amp; Co&lt;/a&gt;&quot;.&lt;/p&gt;
&lt;p&gt;Si vous avez déjà lu ce billet, vous pouvez passer directement au chapitre suivant.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Presentation du projet&lt;/h2&gt;
&lt;p&gt;Voici le modèle de données de ce projet&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/jpa-utility/sample-model.jpg&quot; title=&quot;sample-model.jpg&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/jpa-utility/sample-model.jpg&quot; alt=&quot;sample-model.jpg&quot; style=&quot;margin-top: 0; margin-right: auto; margin-bottom: 0; margin-left: auto; display: block; &quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;1. Créations des entitées et attributs&lt;/h3&gt;
&lt;p&gt;Pour l'entité site&amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;/**
* Our Site entity.
*
* @author &amp;lt;a href=&quot;mailto:jguibert@intelligents-ia.com&quot;&amp;gt;Jérôme Guibert&amp;lt;/a&amp;gt;
* @version 1.0.0
*/
@Entity
@Table(name = &quot;SITE&quot;)
@NamedQueries({
@NamedQuery(name = &quot;selectAllSite&quot;, query = &quot;SELECT s FROM Site s&quot;)
})
public class Site implements Serializable, TimeStamped {
/**
* serialVersionUID
*/
private static final long serialVersionUID = -1823543375371695270L;
/**
* Automatic version number
*/
@Version
protected Long version;
/**
* Identity with an automatic sequence
*/
@Id
@GeneratedValue(generator = &quot;SEQ_SITE_ID&quot;)
@SequenceGenerator(name = &quot;SEQ_SITE_ID&quot;, sequenceName = &quot;SEQ_SITE_ID&quot;)
@Column(name = &quot;SITE_ID&quot;)
private Long id;
/**
* Name of site with an index
*/
@Column(name = &quot;NAME&quot;, length = 48, nullable = true)
@Index(name = &quot;SITE_NAME_INDEX&quot;, columnNames = {
&quot;NAME&quot;
})
private String name;
...
/**
*  all pages
*/
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = &quot;SITE_ID&quot;)
private List&amp;lt;page&amp;gt; pages = new ArrayList&amp;lt;page&amp;gt;();
/**
* Time stamp data embedded in this entity
*/
@Embedded
private TimeStamp timeStamp = new TimeStamp();
...
}
&lt;/pre&gt;
&lt;p&gt;Pour l'entité &lt;strong&gt;Page&lt;/strong&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;/**
* a page included in our site entity
*
* @author &amp;lt;a href=&quot;mailto:jguibert@intelligents-ia.com&quot;&amp;gt;Jérôme Guibert&amp;lt;/a&amp;gt;
* @version 1.0.0
*/
@Entity
@Table(name = &quot;PAGE&quot;)
public class Page implements  Serializable, TimeStamped{
private static final long serialVersionUID = -773904423928687747L;
/**
* Automatic version number
*/
@Version
protected Long version;
/**
* Identity with an automatic sequence
*/
@Id
@GeneratedValue(generator = &quot;SEQ_PAGE_ID&quot;)
@SequenceGenerator(name = &quot;SEQ_PAGE_ID&quot;, sequenceName = &quot;SEQ_PAGE_ID&quot;)
@Column(name = &quot;PAGE_ID&quot;)
private Long id;
/**
* Name of  page
*/
@Column(name = &quot;NAME&quot;, length = 48, nullable = false)
private String name;
/**
* Time stamp data embedded in this entity
*/
@Embedded
private TimeStamp timeStamp = new TimeStamp();
/**
* An example of many to many association
*/
@ManyToMany(cascade = {
CascadeType.PERSIST, CascadeType.MERGE
}, mappedBy = &quot;pages&quot;, targetEntity = org.intelligentsia.utility.jpa.model.Tag.class)
private List&amp;lt;tag&amp;gt; tags = new ArrayList&amp;lt;tag&amp;gt;();
...
}
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;2. Configuration du fichier &quot;my-persistence.xml&quot;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;persistence version=&quot;1.0&quot; xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd&quot;&amp;gt;
&amp;lt;persistence-unit name=&quot;my-model&quot; transaction-type=&quot;RESOURCE_LOCAL&quot;&amp;gt;
&amp;lt;description&amp;gt;
Unite du projet
&amp;lt;/description&amp;gt;
&amp;lt;class&amp;gt;org.intelligentsia.utility.jpa.model.Page&amp;lt;/class&amp;gt;
&amp;lt;class&amp;gt;org.intelligentsia.utility.jpa.model.Site&amp;lt;/class&amp;gt;
&amp;lt;class&amp;gt;org.intelligentsia.utility.jpa.model.Tag&amp;lt;/class&amp;gt;
&amp;lt;exclude-unlisted-classes /&amp;gt;
&amp;lt;/persistence-unit&amp;gt;
&amp;lt;/persistence&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;3. Configuration Spring &lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;La localisation du fichier de propriétées&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:jee=&quot;http://www.springframework.org/schema/jee&quot; xmlns:tx=&quot;http://www.springframework.org/schema/tx&quot; xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd&quot;&amp;gt;
// Here we specify where to find our property file
&amp;lt;context:property-placeholder location=&quot;classpath:META-INF/model.properties&quot; /&amp;gt;
&amp;lt;context:annotation-config /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Instanciation des objets du package &quot;org.intelligentsia.utility.jpa&quot;  (et ses sous-package)&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;	// Where are your service and your class model ?
&amp;lt;context:component-scan base-package=&quot;org.intelligentsia.utility.jpa&quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Déclaration de l'entity manager...&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;bean class=&quot;org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor&quot; /&amp;gt;
&amp;lt;bean class=&quot;org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor&quot; /&amp;gt;
&amp;lt;!-- ENTITY MANAGER --&amp;gt;
&amp;lt;bean id=&quot;modelEntityManagerFactory&quot; class=&quot;org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean&quot;&amp;gt;
&amp;lt;property name=&quot;persistenceUnitName&quot; value=&quot;my-model&quot; /&amp;gt;
&amp;lt;property name=&quot;persistenceXmlLocation&quot; value=&quot;classpath:META-INF/my-persistence.xml&quot; /&amp;gt;
&amp;lt;property name=&quot;dataSource&quot; ref=&quot;model-dataSource&quot; /&amp;gt;
&amp;lt;property name=&quot;jpaVendorAdapter&quot;&amp;gt;
&amp;lt;bean class=&quot;org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter&quot;&amp;gt;
&amp;lt;property name=&quot;databasePlatform&quot; value=&quot;${model.hibernate.dialect}&quot; /&amp;gt;
&amp;lt;property name=&quot;showSql&quot; value=&quot;${model.hibernate.showsql}&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;jpaPropertyMap&quot;&amp;gt;
&amp;lt;map&amp;gt;
&amp;lt;entry key=&quot;hibernate.dialect&quot; value=&quot;${model.hibernate.dialect}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.hbm2ddl.auto&quot; value=&quot;${model.hibernate.hbm2ddl.auto}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.format_sql&quot; value=&quot;${model.hibernate.format_sql}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_second_level_cache&quot; value=&quot;${model.hibernate.cache.use_second_level_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.provider_class&quot; value=&quot;${model.hibernate.cache.provider_class}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_query_cache&quot; value=&quot;${model.hibernate.cache.use_query_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_second_level_cache&quot; value=&quot;${model.hibernate.cache.use_second_level_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.cache.use_structured_cache&quot; value=&quot;${model.hibernate.cache.use_structured_cache}&quot; /&amp;gt;
&amp;lt;entry key=&quot;hibernate.ejb.naming_strategy&quot; value=&quot;${model.hibernate.namingStrategy}&quot; /&amp;gt;
&amp;lt;/map&amp;gt;
&amp;lt;/property&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;!--  TRANSACTION MANAGEMENT  --&amp;gt;
&amp;lt;bean id=&quot;modelTransactionManager&quot; class=&quot;org.springframework.orm.jpa.JpaTransactionManager&quot;&amp;gt;
&amp;lt;property name=&quot;entityManagerFactory&quot; ref=&quot;modelEntityManagerFactory&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;tx:annotation-driven transaction-manager=&quot;modelTransactionManager&quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Instanciation de nos Dao, et definission de la connection à la base de données.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;!-- DAO DECLARATION --&amp;gt;
&amp;lt;bean id=&quot;pageDao&quot; class=&quot;org.intelligentsia.utility.jpa.GenericJpaDao&quot;&amp;gt;
&amp;lt;constructor-arg value=&quot;org.intelligentsia.utility.jpa.model.Page&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;bean id=&quot;tagDao&quot; class=&quot;org.intelligentsia.utility.jpa.GenericJpaDao&quot;&amp;gt;
&amp;lt;constructor-arg value=&quot;org.intelligentsia.utility.jpa.model.Tag&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;bean id=&quot;model-dataSource&quot; class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;&amp;gt;
&amp;lt;property name=&quot;driverClassName&quot; value=&quot;org.h2.Driver&quot; /&amp;gt;
&amp;lt;property name=&quot;url&quot; value=&quot;jdbc:h2:~/test&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;/beans&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;4. Le fichier de propriétés&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;model.hibernate.dialect=org.hibernate.dialect.H2Dialect
model.hibernate.showsql=true
# validate | update | create | create-drop
model.hibernate.hbm2ddl.auto=update
model.hibernate.format_sql=true
model.hibernate.cache.use_second_level_cache=true
model.hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
model.hibernate.cache.use_query_cache=true
model.hibernate.cache.use_second_level_cache=true
model.hibernate.cache.use_structured_cache=true
#org.hibernate.cfg.DefaultNamingStrategy| org.intelligentsia.utility.jpa.DevTableNamingStrategy
model.hibernate.namingStrategy=org.intelligentsia.utility.jpa.DevTableNamingStrategy
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Gestion des transactions&lt;/h2&gt;
&lt;h3&gt;Transaction Manager&lt;/h3&gt;
&lt;p&gt;
Apres avoir déclarée notre &quot;entity manager factory&quot;, nous avons besoin d'un gestionnaire de transaction. Cela ce déclare comme suit :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;!--  TRANSACTION MANAGEMENT  --&amp;gt;
&amp;lt;bean id=&quot;modelTransactionManager&quot; class=&quot;org.springframework.orm.jpa.JpaTransactionManager&quot;&amp;gt;
&amp;lt;property name=&quot;entityManagerFactory&quot; ref=&quot;modelEntityManagerFactory&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;
&amp;lt;tx:annotation-driven transaction-manager=&quot;modelTransactionManager&quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Nous spécifions à Spring que nous allons configurer les transaction via des annotations.&lt;/p&gt;
&lt;h3&gt;Déclaration des services transactionels&lt;/h3&gt;
&lt;p&gt;La classe &quot;GenericJpaDao&quot; mère de nos autres DAO, ne déclare pas d'attribut de transaction. Ceci vous oblige à spécifier où et comment une transactions doit commencer.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ma méthode est la suivante&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajout du support des transactions (en lecture seulement) au service&lt;/li&gt;
&lt;li&gt;Ajout du support des transactions en écriture pour les méthodes qui en ont besoin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Concrétement pour impleménter le service :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;public interface BlogService {
public void createBlog(final String name);
public Iterable&amp;lt;Site&amp;gt; findAllSite();
}
&lt;/pre&gt;
&lt;p&gt;Cela donne :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: java&quot;&gt;@Service(&quot;blogService&quot;)
@Scope(BeanDefinition.SCOPE_SINGLETON)
@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
public class BlogServiceImpl implements BlogService {
@Autowired
private SiteDao siteDao;
@Autowired
private GenericJpaDao&amp;lt;Page, Long&amp;gt; pageDao;
@Autowired
private GenericJpaDao&amp;lt;Tag, Long&amp;gt; tagDao;
@Override
@Transactional(readOnly = false)
public void createBlog(final String name) {
/**
* Create a new site
*/
Site site = new Site();
site.setName(name);
siteDao.persist(site);
/**
* Add a default page
*/
Page page = new Page();
page.setName(&quot;home page&quot;);
pageDao.persist(page);
// associate
site.getPages().add(page);
siteDao.persist(site);
}
@Override
public Iterable&amp;lt;Site&amp;gt; findAllSite() {
return siteDao.findAll();
}
}
&lt;/pre&gt;
&lt;p&gt;La méthode &quot;findAllSite&quot; est bien en lecture seule, alors que &quot;createBlog&quot; doit pouvoir supporter l'écriture&lt;/p&gt;
&lt;p&gt;Et c'est tout!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Bien évidement, pour aller un peu plus loin dans la configuration et la gestion des transactions au sein de Spring, je vous invite à consulter la documentation à ce sujet.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
    
    
          <comments>http://intelligents-ia.com/index.php/post/2011/05/27/gestion-des-transaction-Spring-JPA#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2011/05/27/gestion-des-transaction-Spring-JPA#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/36</wfw:commentRss>
      </item>
    
  <item>
    <title>Configuration de Maven</title>
    <link>http://intelligents-ia.com/index.php/post/2011/05/24/Configuration-de-Maven</link>
    <guid isPermaLink="false">urn:md5:8d516539f0c00f6e4e515434a181d68c</guid>
    <pubDate>Tue, 24 May 2011 11:49:00 +0200</pubDate>
    <dc:creator>Jérôme Guibert</dc:creator>
        <category>Technique</category>
        <category>Java</category><category>Maven</category><category>Méthodologie</category>    
    <description>&lt;p&gt;Récemment, j'ai du ré-installer plusieurs environnement de développement, et je voulais partager avec vous ce petit guide de configuration de maven. &lt;br /&gt;
Car si l'installation est des plus simple, la configuration l'est beaucoup moins.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/public/java/apache-maven-project-2.png&quot; title=&quot;apache-maven-project-2.png&quot;&gt;&lt;img src=&quot;http://intelligents-ia.com/public/java/apache-maven-project-2.png&quot; alt=&quot;apache-maven-project-2.png&quot; style=&quot;float: left; margin-top: 0; margin-right: 1em; margin-bottom: 1em; margin-left: 0; &quot; /&gt;&lt;/a&gt;Récemment, j'ai du ré-installer plusieurs environnement de développement, et je voulais partager avec vous ce petit guide de configuration de maven. &lt;br /&gt;
Car si l'installation est des plus simple, la configuration l'est beaucoup moins.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://intelligents-ia.com/index.php/post/2012/02/15/Maven-configuration&quot; &gt;EnglishVersion&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sous ubuntu, l'installation se résume à :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;sudo apt-get install maven2
&lt;/pre&gt;
&lt;p&gt;Les fichiers sont installés dans le dossier /usr/share/maven2 et la configuration dans /etc/maven2.&lt;/p&gt;
&lt;p&gt;Sous windows, télécharger une archive de maven et dézippé la sous c:\maven2. Vous pouvez trouver cela sur &lt;a href=&quot;http://maven.apache.org/download.html&quot; rel=&quot;external&quot;&gt;Apache&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Les fichiers sont installés dans le dossier c:\maven2 et la configuration dansc:\maven2\conf.&lt;/p&gt;
&lt;p&gt;Toujours sous Windows, v&amp;amp;eactue;rifiez que vous avez bien les variables d'environnement: (echo %NOM_VARIABLE%)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JAVA_HOME: qui pointe vers un JDK et pas un JRE&lt;/li&gt;
&lt;li&gt;M2_HOME: qui pointe sur &quot;c:\maven2&quot;&lt;/li&gt;
&lt;li&gt;un PATH qui contient &quot;c:\maven2\bin&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ce n'est pas le cas, positionnez ces valeurs, ouvrez un nouveaux terminal, testez.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Création du repository local&lt;/h2&gt;
&lt;p&gt;Création du dossier dans /usr/local/m2-repository/ (ou c:\maven2\m2-repository) et on positionne les droits d'écriture pour tous le monde.&lt;/p&gt;
&lt;p&gt;C'est dans ce dossier que l'ensemble des libraries vont être copiée, selon les besoins de vos projets.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;cd /usr/local
sudo mkdir m2-repository
sudo chmod a+w  m2-repository/
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Configuration minimal&lt;/h2&gt;
&lt;p&gt;Edition du fichier de configuraton &quot;settings.xml&quot;, pour indiquer où se trouve le repository local et quel miroir utiliser.&lt;/p&gt;
&lt;p&gt;(Le repository officiel de maven est &quot;http://repo1.maven.org/&quot;, afin d'avoir des temps de réponse raisonnable nous utilisons un miroir)&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;!-- local repository diractory --&amp;gt;
&amp;lt;localRepository&amp;gt;/usr/local/m2-repository&amp;lt;/localRepository&amp;gt;
&amp;lt;mirrors&amp;gt;
&amp;lt;mirror&amp;gt;
&amp;lt;id&amp;gt;UK&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;UK Central&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://uk.maven.org/maven2&amp;lt;/url&amp;gt;
&amp;lt;mirrorOf&amp;gt;central, maven-central-repository&amp;lt;/mirrorOf&amp;gt;
&amp;lt;/mirror&amp;gt;
&amp;lt;/mirrors&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Vérification de l'installation&lt;/h2&gt;
&lt;p&gt;On saisie: &lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;mvn -version
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Et cela devrait vous donner quelque chose comme cela:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_17
Java home: /usr/local/jdk1.6.0_17/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: &quot;linux&quot; version: &quot;2.6.32-24-generic-pae&quot; arch: &quot;i386&quot; Family: &quot;unix&quot;
&lt;/pre&gt;
&lt;p&gt;A partir de ce moment, vous avez un système maven opérationnel.&lt;/p&gt;
&lt;p&gt;Je vous propose d'aller un tout petit peu plus loin avec les repository de façon à vous faire gagner beaucoup de temps.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Les Repository à connaître&lt;/h2&gt;
&lt;p&gt;L'idéal avec maven et d'utiliser un repository local type nexus/archiva qui va tenir lieu de miroir à tous les repository maven disséminés sur Internet. &lt;br /&gt;
Dans votre fichier settings.xml, vous aurez une configuration qui ressemble à cela :&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt; &amp;lt;mirrors&amp;gt;
&amp;lt;mirror&amp;gt;
&amp;lt;id&amp;gt;internal-repository&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Maven Repository Manager running on repo.mycompany.com&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repo.mycompany.com/proxy&amp;lt;/url&amp;gt;
&amp;lt;mirrorOf&amp;gt;*&amp;lt;/mirrorOf&amp;gt;
&amp;lt;/mirror&amp;gt;
&amp;lt;/mirrors&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Ici, l'url &quot;repo.mycompany.com&quot; est l'url du repository de votre compagnie.&lt;/p&gt;
&lt;p&gt;Comme l'installation d'un mirroir n'est pas toujours possible, ni même souhaité, voici un autre moyen de rajouter artificiellement une liste de repository à vos projets.&lt;/p&gt;
&lt;p&gt;L'idée est de créér un profile dans le fichier settings qui va lister l'ensemble des repository que vous souhaiter avoir par défaut dans vos projets. Ennsuite vous aurez le choix de l'activer par défaut ou à la demande.&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;      &amp;lt;profiles&amp;gt;
&amp;lt;profile&amp;gt;
&amp;lt;id&amp;gt;my-repository&amp;lt;/id&amp;gt;
&amp;lt;activation&amp;gt;
&amp;lt;!-- here we did not activate this profile by default --&amp;gt;
&amp;lt;activeByDefault&amp;gt;false&amp;lt;/activeByDefault&amp;gt;
&amp;lt;/activation&amp;gt;
&amp;lt;repositories&amp;gt;
&amp;lt;!-- list of standard repository --&amp;gt;
...
&amp;lt;/repositories&amp;gt;
&amp;lt;/profile&amp;gt;
&amp;lt;/profiles&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pour lancer un commande maven utilisant cette liste de repository, vous devrez rajouter &quot;-Pmy-repository&quot; comme parametre (car le profil n'est pas activé par défaut):&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: bash&quot;&gt;mvn -Pmy-repository clean install
&lt;/pre&gt;
&lt;p&gt;Maintenant, voici une petite liste de repository bien utile:&lt;/p&gt;
&lt;pre type=&quot;syntaxhighlighter&quot; class=&quot;brush: xml&quot;&gt;&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;javanet&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Repository for Maven2&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://download.java.net/maven/2&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;google&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Google repository for Maven2&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;https://oss.sonatype.org/content/repositories/google-releases/&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;jboss&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;JBoss repository for Maven2&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.jboss.org/maven2/&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.bundles.release&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/bundles/release&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.bundles.external&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - External Bundle Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/bundles/external&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.libraries.release&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - SpringSource Library Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/libraries/release&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;com.springsource.repository.libraries.external&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;SpringSource Enterprise Bundle Repository - External Library Releases&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://repository.springsource.com/maven/libraries/external&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&amp;lt;repository&amp;gt;
&amp;lt;id&amp;gt;intelligents-ia&amp;lt;/id&amp;gt;
&amp;lt;name&amp;gt;Intelligents-ia Repository&amp;lt;/name&amp;gt;
&amp;lt;url&amp;gt;http://intelligents-ia.com/maven2&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Vous pourrez trouver en pièce jointe à ce billet, le fichier &lt;a href=&quot;http://intelligents-ia.com/public/java/settings.xml&quot;&gt;settings.xml&lt;/a&gt; déjà configuré&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Si vous connaissez d'autre repository qu'il serait intéressant de rajouter, n'hésitez pas à me contacter :-)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
    
          <enclosure url="http://intelligents-ia.com/public/java/settings.xml"
      length="4727" type="application/xml" />
    
    
          <comments>http://intelligents-ia.com/index.php/post/2011/05/24/Configuration-de-Maven#comment-form</comments>
      <wfw:comment>http://intelligents-ia.com/index.php/post/2011/05/24/Configuration-de-Maven#comment-form</wfw:comment>
      <wfw:commentRss>http://intelligents-ia.com/index.php/feed/atom/comments/34</wfw:commentRss>
      </item>
    
</channel>
</rss>
