<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
> <channel><title>Commentaires sur : JUnit : Test unitaire hors conteneur J2EE avec Spring et JNDI</title> <atom:link href="http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi/feed" rel="self" type="application/rss+xml" /><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi</link> <description>La lettre &#34;J&#34; de JAVA EE à JEUX VIDÉOS</description> <lastBuildDate>Fri, 17 Feb 2012 21:57:39 +0000</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3</generator> <item><title>Par : Mimie</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-3137</link> <dc:creator>Mimie</dc:creator> <pubDate>Sat, 22 Jan 2011 12:14:21 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-3137</guid> <description>Merci omar, je vois que nous faisons la même chose, c&#039;est rassurant.</description> <content:encoded><![CDATA[<p>Merci omar, je vois que nous faisons la même chose, c&#8217;est rassurant.</p> ]]></content:encoded> </item> <item><title>Par : omar</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-3136</link> <dc:creator>omar</dc:creator> <pubDate>Sat, 22 Jan 2011 11:02:59 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-3136</guid> <description>Salut,
Je n&#039;a pas précisé ou était injecté le dataSource car l&#039;article lui-même ne le précisait pas comment
dbGeeks était injecté dans le UserService.
Sinon l&#039;alias dataSource est injecté ainsi :
[xml]
&lt;bean id=&quot;sessionFactory&quot; class=&quot;org.springframework.orm.hibernate3.LocalSessionFactoryBean&quot; depends-on=&quot;dataSource&quot;&gt;
&lt;description&gt;
Factory hibernate qui va nous permettre de récupérer des sessions.
On lui passe la &quot;underlying jdbc datasource&quot; (lien jdbc avec la base)
ainsi que le gestionnaire de transactions (pas besoin de JTA ici
puisqu&#039;on a une seule source de donnée, la base postgres).
&lt;/description&gt;
&lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;/&gt;
&lt;property name=&quot;configLocation&quot;&gt;
&lt;value&gt;classpath:hibernate.cfg.xml&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;
[/xml]
Enfin la sessionFactory est injecté dans le constructeur un kebabDao qui lui-même est utilisé dans un kebabService.
Une autre variante plus simple est au lieu d&#039;importer des fichiers de configuration différents (ici un dataSourceTest en test ), c&#039;est d&#039;importer le fichier utilisé par le serveur &amp; de redéfinir le bean du même nom.
Ceci est possible en important un autre fichier
qui possède un bean du même nom. Et le dernier qui est trouvé par Spring est retenu.
Exemple: un test unitaire importe :
- appplicationContext.xml qui lui importe tout (dont un bean appelé monSuperDataSource)
- plus un dataSourceTest.xml qui définit un bean appelé monSuperDataSource. Etant le dernier importé du meme nom, c&#039;est lui qui sera injecté par Spring.
C&#039;est aussi utile pour importer par redéfinition des beans mockés qui n&#039;attaquent pas un ldap, si externe etc. mais retourne des valeurs quelconques car hors scope du test.</description> <content:encoded><![CDATA[<p>Salut,<br
/> Je n&#8217;a pas précisé ou était injecté le dataSource car l&#8217;article lui-même ne le précisait pas comment<br
/> dbGeeks était injecté dans le UserService.</p><p>Sinon l&#8217;alias dataSource est injecté ainsi :<br
/> [xml]<br
/> &lt;bean id=&quot;sessionFactory&quot; class=&quot;org.springframework.orm.hibernate3.LocalSessionFactoryBean&quot; depends-on=&quot;dataSource&quot;&gt;<br
/> &lt;description&gt;<br
/> Factory hibernate qui va nous permettre de récupérer des sessions.<br
/> On lui passe la &quot;underlying jdbc datasource&quot; (lien jdbc avec la base)<br
/> ainsi que le gestionnaire de transactions (pas besoin de JTA ici<br
/> puisqu&#8217;on a une seule source de donnée, la base postgres).<br
/> &lt;/description&gt;<br
/> &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;/&gt;<br
/> &lt;property name=&quot;configLocation&quot;&gt;<br
/> &lt;value&gt;classpath:hibernate.cfg.xml&lt;/value&gt;<br
/> &lt;/property&gt;<br
/> &lt;/bean&gt;<br
/> [/xml]</p><p>Enfin la sessionFactory est injecté dans le constructeur un kebabDao qui lui-même est utilisé dans un kebabService.</p><p>Une autre variante plus simple est au lieu d&#8217;importer des fichiers de configuration différents (ici un dataSourceTest en test ), c&#8217;est d&#8217;importer le fichier utilisé par le serveur &amp; de redéfinir le bean du même nom.</p><p>Ceci est possible en important un autre fichier<br
/> qui possède un bean du même nom. Et le dernier qui est trouvé par Spring est retenu.</p><p>Exemple: un test unitaire importe :<br
/> &#8211; appplicationContext.xml qui lui importe tout (dont un bean appelé monSuperDataSource)<br
/> - plus un dataSourceTest.xml qui définit un bean appelé monSuperDataSource. Etant le dernier importé du meme nom, c&#8217;est lui qui sera injecté par Spring.</p><p>C&#8217;est aussi utile pour importer par redéfinition des beans mockés qui n&#8217;attaquent pas un ldap, si externe etc. mais retourne des valeurs quelconques car hors scope du test.</p> ]]></content:encoded> </item> <item><title>Par : Mimie</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-3135</link> <dc:creator>Mimie</dc:creator> <pubDate>Fri, 21 Jan 2011 20:10:42 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-3135</guid> <description>@omar: pour afficher du code il suffit d&#039;utiliser les balises suivantes :
[plain]
[xml] ... [/xml], [java] ... [/java], etc.
[/plain]
- Ton premier point est juste, seulement je pensais que tu n&#039;appréciais pas la seconde méthode parce que justement il fallait mettre en dur les paramètres, je voulais juste souligner qu&#039;un .properties pouvait palier à ce problème.
- Pour ta séparation des fichiers de config Spring je comprends mieux ce que tu fais, cependant à quoi te sert ton alias &quot;dataSource&quot; ? comment l&#039;exploites-tu dans ton appel Java ? peux-tu nous laisser un exemple de ton code Java ?
Merci d&#039;être repassé pour les précisions :)</description> <content:encoded><![CDATA[<p>@omar: pour afficher du code il suffit d&#8217;utiliser les balises suivantes :<br
/> [plain]<br
/> [xml] &#8230; [/xml], [java] &#8230; [/java], etc.<br
/> [/plain]<br
/> - Ton premier point est juste, seulement je pensais que tu n&#8217;appréciais pas la seconde méthode parce que justement il fallait mettre en dur les paramètres, je voulais juste souligner qu&#8217;un .properties pouvait palier à ce problème.<br
/> - Pour ta séparation des fichiers de config Spring je comprends mieux ce que tu fais, cependant à quoi te sert ton alias &laquo;&nbsp;dataSource&nbsp;&raquo; ? comment l&#8217;exploites-tu dans ton appel Java ? peux-tu nous laisser un exemple de ton code Java ?</p><p>Merci d&#8217;être repassé pour les précisions <img
src='http://desgeeksetdeslettres.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> </item> <item><title>Par : omar</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-3134</link> <dc:creator>omar</dc:creator> <pubDate>Fri, 21 Jan 2011 20:02:01 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-3134</guid> <description>Tu dis &quot;la classe Java peut faire appel à un fichier de propriétés (.properties) externe qui sera pour le coup équivalent à un fichier de configuration .xml de Spring.&quot;
Or mon commentaire faisait référence uniquement à la classe JndiDatasourceCreator
qui peut etre pourrait utiliser un properties mais ce n&#039;est pas le cas dans l&#039;exemple où les paramètres sont codés en static.
Mon jndi est défini dans un fichier datasourceContext.xml :
[xml]
&lt;bean id=&quot;tomcatDataSource&quot; class=&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;&gt;
&lt;property name=&quot;resourceRef&quot; value=&quot;true&quot;/&gt;
&lt;property name=&quot;jndiName&quot;&gt;
&lt;value&gt;java:comp/env/jdbc/ScribeDB&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;
&lt;alias alias=&quot;dataSource&quot; name=&quot;tomcatDataSource&quot;/&gt;
[/xml]
Et durant les tests unitaires, j&#039;importe en lieu et place de ce
dernier un dataSourceTest.xml au contenu suivant :
[xml]
&lt;!--
Création de la dataSource
ici une connexion jdbc vers la base données
--&gt;
&lt;bean id=&quot;testDataSource&quot;
class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;&gt;
&lt;property name=&quot;driverClassName&quot; value=&quot;org.postgresql.Driver&quot;/&gt;
&lt;property name=&quot;url&quot; value=&quot;%{dataSource.url}&quot;/&gt;
&lt;property name=&quot;username&quot; value=&quot;%{dataSource.username}&quot;/&gt;
&lt;property name=&quot;password&quot; value=&quot;%{dataSource.password}&quot;/&gt;
&lt;/bean&gt;
&lt;alias alias=&quot;dataSource&quot; name=&quot;testDataSource&quot;/&gt;
[/xml]
Voila.</description> <content:encoded><![CDATA[<p>Tu dis &laquo;&nbsp;la classe Java peut faire appel à un fichier de propriétés (.properties) externe qui sera pour le coup équivalent à un fichier de configuration .xml de Spring.&nbsp;&raquo;</p><p>Or mon commentaire faisait référence uniquement à la classe JndiDatasourceCreator<br
/> qui peut etre pourrait utiliser un properties mais ce n&#8217;est pas le cas dans l&#8217;exemple où les paramètres sont codés en static.</p><p>Mon jndi est défini dans un fichier datasourceContext.xml :<br
/> [xml]<br
/> &lt;bean id=&quot;tomcatDataSource&quot; class=&quot;org.springframework.jndi.JndiObjectFactoryBean&quot;&gt;<br
/> &lt;property name=&quot;resourceRef&quot; value=&quot;true&quot;/&gt;<br
/> &lt;property name=&quot;jndiName&quot;&gt;<br
/> &lt;value&gt;java:comp/env/jdbc/ScribeDB&lt;/value&gt;<br
/> &lt;/property&gt;<br
/> &lt;/bean&gt;<br
/> &lt;alias alias=&quot;dataSource&quot; name=&quot;tomcatDataSource&quot;/&gt;<br
/> [/xml]</p><p>Et durant les tests unitaires, j&#8217;importe en lieu et place de ce<br
/> dernier un dataSourceTest.xml au contenu suivant :<br
/> [xml]<br
/> &lt;!&#8211;<br
/> Création de la dataSource<br
/> ici une connexion jdbc vers la base données<br
/> &#8211;&gt;<br
/> &lt;bean id=&quot;testDataSource&quot;<br
/> class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;&gt;<br
/> &lt;property name=&quot;driverClassName&quot; value=&quot;org.postgresql.Driver&quot;/&gt;<br
/> &lt;property name=&quot;url&quot; value=&quot;%{dataSource.url}&quot;/&gt;<br
/> &lt;property name=&quot;username&quot; value=&quot;%{dataSource.username}&quot;/&gt;<br
/> &lt;property name=&quot;password&quot; value=&quot;%{dataSource.password}&quot;/&gt;<br
/> &lt;/bean&gt;<br
/> &lt;alias alias=&quot;dataSource&quot; name=&quot;testDataSource&quot;/&gt;<br
/> [/xml]</p><p>Voila.</p> ]]></content:encoded> </item> <item><title>Par : Mimie</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-3124</link> <dc:creator>Mimie</dc:creator> <pubDate>Thu, 20 Jan 2011 22:18:31 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-3124</guid> <description>@omar: ton argument sur la deuxième solution ne tient pas étant donné que la classe Java peut faire appel à un fichier de propriétés (.properties) externe qui sera pour le coup équivalent à un fichier de configuration .xml de Spring.
De plus je n&#039;ai pas très bien saisi ta solution personnelle, le fait d&#039;avoir 2 fichiers distinct change quoi réellement ? quel est le contenu de ces deux fichiers ?</description> <content:encoded><![CDATA[<p>@omar: ton argument sur la deuxième solution ne tient pas étant donné que la classe Java peut faire appel à un fichier de propriétés (.properties) externe qui sera pour le coup équivalent à un fichier de configuration .xml de Spring.<br
/> De plus je n&#8217;ai pas très bien saisi ta solution personnelle, le fait d&#8217;avoir 2 fichiers distinct change quoi réellement ? quel est le contenu de ces deux fichiers ?</p> ]]></content:encoded> </item> <item><title>Par : omar</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-3122</link> <dc:creator>omar</dc:creator> <pubDate>Thu, 20 Jan 2011 16:47:09 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-3122</guid> <description>Voici une autre solution que j&#039;utilise sur un projet :
Je configure le jndi dans un fichier disons &quot;datasourceContext.xml&quot; sans oublier de lui donner un alias.
Exemple :
&lt;code&gt;
java:comp/env/jdbc/AppDB
&lt;/code&gt;
Dans les tests unitaire j&#039;importe un autre fichier xml: dataSourceTest.xml à la palce du précédent
&lt;code&gt;
&lt;/code&gt;
Concernant la seconde solution proposée, elle a l&#039;inconvénient d&#039;internaliser la configuration dans du code java
java:comp/env/jdbc/appDB
Pour mes tests unitaires, je ne charge pas ce fichier mais un autre datasourceTest.xml</description> <content:encoded><![CDATA[<p>Voici une autre solution que j&#8217;utilise sur un projet :<br
/> Je configure le jndi dans un fichier disons &laquo;&nbsp;datasourceContext.xml&nbsp;&raquo; sans oublier de lui donner un alias.<br
/> Exemple :<br
/> <code></p><p> java:comp/env/jdbc/AppDB</p><p></code></p><p> Dans les tests unitaire j&#8217;importe un autre fichier xml: dataSourceTest.xml à la palce du précédent<br
/> <code></p><p></code></p><p>Concernant la seconde solution proposée, elle a l&#8217;inconvénient d&#8217;internaliser la configuration dans du code java</p><p> java:comp/env/jdbc/appDB</p><p>Pour mes tests unitaires, je ne charge pas ce fichier mais un autre datasourceTest.xml</p> ]]></content:encoded> </item> <item><title>Par : Mimie</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-700</link> <dc:creator>Mimie</dc:creator> <pubDate>Mon, 08 Feb 2010 08:55:50 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-700</guid> <description>Bonjour Rodrigo, comme toi la seconde solution me parait plus correcte en considérant la première solution plus comme une astuce qu&#039;autre chose :-) néanmoins les deux solutions sont viables c&#039;est pourquoi j&#039;ai voulu les présenter dans cet article, merci à toi d&#039;être passé, au plaisir.</description> <content:encoded><![CDATA[<p>Bonjour Rodrigo, comme toi la seconde solution me parait plus correcte en considérant la première solution plus comme une astuce qu&#8217;autre chose <img
src='http://desgeeksetdeslettres.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> néanmoins les deux solutions sont viables c&#8217;est pourquoi j&#8217;ai voulu les présenter dans cet article, merci à toi d&#8217;être passé, au plaisir.</p> ]]></content:encoded> </item> <item><title>Par : Rodrigo Hjort</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-699</link> <dc:creator>Rodrigo Hjort</dc:creator> <pubDate>Mon, 08 Feb 2010 01:35:36 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-699</guid> <description>Super ! Mais j&#039;ai eu l&#039;impression qu&#039;il fallait mieux introduire la classe &quot;com.sun.jndi.fscontext.RefFSContextFactory&quot; utilisée dans la deuxième solution.</description> <content:encoded><![CDATA[<p>Super ! Mais j&#8217;ai eu l&#8217;impression qu&#8217;il fallait mieux introduire la classe &laquo;&nbsp;com.sun.jndi.fscontext.RefFSContextFactory&nbsp;&raquo; utilisée dans la deuxième solution.</p> ]]></content:encoded> </item> <item><title>Par : Mimie</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-597</link> <dc:creator>Mimie</dc:creator> <pubDate>Thu, 21 Jan 2010 07:03:07 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-597</guid> <description>Article mis à jour, j&#039;avais oublié de vous présenter la classe Java permettant de réaliser l&#039;initialisation du contexte JNDI dans la seconde solution.
Néanmoins tout se trouve dans le source, ++</description> <content:encoded><![CDATA[<p>Article mis à jour, j&#8217;avais oublié de vous présenter la classe Java permettant de réaliser l&#8217;initialisation du contexte JNDI dans la seconde solution.<br
/> Néanmoins tout se trouve dans le source, ++</p> ]]></content:encoded> </item> <item><title>Par : Mimie</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-586</link> <dc:creator>Mimie</dc:creator> <pubDate>Tue, 19 Jan 2010 21:42:16 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-586</guid> <description>J&#039;y travaille :-) et ce sera un site sur magic the gathering ^^</description> <content:encoded><![CDATA[<p>J&#8217;y travaille <img
src='http://desgeeksetdeslettres.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> et ce sera un site sur magic the gathering ^^</p> ]]></content:encoded> </item> <item><title>Par : Greg</title><link>http://desgeeksetdeslettres.com/blog/programmation-java/junit-test-unitaire-hors-conteneur-j2ee-avec-spring-et-jndi#comment-584</link> <dc:creator>Greg</dc:creator> <pubDate>Tue, 19 Jan 2010 20:26:57 +0000</pubDate> <guid
isPermaLink="false">http://desgeeksetdeslettres.com/blog/?p=2019#comment-584</guid> <description>Avec tout ça c&#039;est quand que tu nous ponds un super site ?!</description> <content:encoded><![CDATA[<p>Avec tout ça c&#8217;est quand que tu nous ponds un super site ?!</p> ]]></content:encoded> </item> </channel> </rss>
