<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dbsetup on Java &amp; Moi</title><link>https://javaetmoi.com/tags/dbsetup/</link><description>Recent content in Dbsetup on Java &amp; Moi</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Fri, 15 Nov 2013 19:35:01 +0000</lastBuildDate><atom:link href="https://javaetmoi.com/tags/dbsetup/feed.xml" rel="self" type="application/rss+xml"/><item><title>Elastifiez la base MusicBrainz sur OpenShift</title><link>https://javaetmoi.com/2013/11/musicbrainz-elasticsearch-angularjs-openshift/</link><pubDate>Fri, 15 Nov 2013 19:35:01 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=782</guid><description>&lt;p&gt;Pour les besoins d’un workshop sur Elasticsearch, je me suis amusé à &lt;strong&gt;indexer une encyclopédie musicale&lt;/strong&gt; et à mettre en ligne une petite &lt;strong&gt;application HTML 5&lt;/strong&gt; permettant de réaliser des &lt;strong&gt;recherches&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Comme source de données musicale, j’ai opté pour &lt;strong&gt;&lt;a href="http://musicbrainz.org/" title="MusicBrainz Home"&gt;MusicBrainz&lt;/a&gt;&lt;/strong&gt; qui est une plateforme ouverte collectant des méta-données sur les artistes, leurs albums et leurs chansons puis les mettant à disposition du publique.&lt;/p&gt;
&lt;p&gt;Pour indexer les données depuis une base PostgreSQL, j’ai privilégié &lt;strong&gt;Spring Batch&lt;/strong&gt; au détriment d&amp;rsquo;une river. Pour l’IHM, j’ai adapté un prototype basé sur &lt;strong&gt;AngularJS&lt;/strong&gt;, jQuery et Bootstrap qu’avait réalisé &lt;a href="https://twitter.com/lucianprecup"&gt;Lucian Precup&lt;/a&gt; pour la &lt;a href="http://agenda2013.scrumday.fr/event/149"&gt;Scrum Day 2013&lt;/a&gt;. La mise en ligne de l’index Elasticsearch m’aura permis de tester la plateforme Cloud &lt;strong&gt;OpenShift&lt;/strong&gt; de Redhat.&lt;/p&gt;
&lt;p&gt;Cet article a pour objectif de décrire les différentes étapes qui m’ont été nécessaires pour réaliser ma démo et d’expliquer ce que j’ai librement rendu accessible sur &lt;a href="https://github.com/arey/musicbrainz-elasticsearch/blob/musicbrainz-elasticsearch-1.0.0/src/main/java/com/javaetmoi/core/batch/item/EsDocumentWriter.java"&gt;GitHub&lt;/a&gt; et &lt;a href="http://musicsearch.javaetmoi.com/"&gt;Internet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="logo-musicbrainz"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2013/11/logo-musicbrainz.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>DbSetup, une alternative à DbUnit</title><link>https://javaetmoi.com/2013/09/dbsetup-spring-test-vs-dbunit/</link><pubDate>Fri, 06 Sep 2013 16:46:25 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=757</guid><description>&lt;p&gt;Lors du développement de &lt;strong&gt;tests d’intégration&lt;/strong&gt;, j’ai récemment eu besoin de charger une base de données à l’aide de jeux de données. Pour écrire mon premier test, j’ai simplement commencé par écrire un fichier SQL. En un appel de méthode (JdbcTestUtils::executeSqlScript) ou une ligne de déclaration XML (&amp;lt;jdbc:script location=&amp;quot;&amp;quot; /&amp;gt;), Spring m’aidait à charger mes données.&lt;br&gt;Pour tous ceux qui se sont déjà prêtés à l’exercice, maintenir des jeux de données est relativement fastidieux, qui plus en SQL. Cette solution n’était donc pas pérenne.&lt;/p&gt;
&lt;p&gt;Depuis une dizaine d’années, j’utilise régulièrement &lt;a href="http://www.dbunit.org/"&gt;DbUnit&lt;/a&gt; pour tester la couche de persistance des applications Java sur lesquelles j’interviens, qu’elle soit développée avec JDBC, Hibernate ou bien encore JPA. Cette librairie open source est également très appréciable pour tester unitairement des procédures stockées manipulant des données par lot. Pour mon besoin, j’aurais donc pu naturellement me tourner vers cet outil qui a fait ses preuves et dont je suis familier.&lt;/p&gt;
&lt;p&gt;Mais voilà, commençant à apprécier les avantages de la configuration en Java offerte par Spring et les &lt;strong&gt;APIs fluides&lt;/strong&gt; des frameworks FestAssert ou ElasticSearch utilisés sur l’application, l’idée d’ &lt;strong&gt;écrire des jeux de données en Java&lt;/strong&gt; me plaisait bien. Et justement, il y’a quelques temps, l’argumentaire de l’article &lt;a href="http://dbsetup.ninja-squad.com/approach.html"&gt;Why use DbSetup?&lt;/a&gt; ne m’avait pas laissé indifférent. C’était donc l’occasion d’utiliser cette jeune librairie développée par &lt;a href="http://ninja-squad.fr/team"&gt;les français de Ninja Squad&lt;/a&gt; et qui mérite de se faire connaitre, j’ai nommé &lt;strong&gt;&lt;a href="http://dbsetup.ninja-squad.com/"&gt;DbSetup&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Le &lt;a href="http://dbsetup.ninja-squad.com/user-guide.html"&gt;guide utilisateur de DbSetup&lt;/a&gt; étant particulièrement bien conçu, l&amp;rsquo;objectif de cet article n’est pas de vous en faire une simple traduction, mais de vous donner envie de l’essayer et de vous présenter la manière dont je l’ai mis en oeuvre. Celle-ci s’éloigne en effet quelque peu de celle présentée dans la documentation, la faute à mes vieux réflexes d’utilisateur de DbUnit et au bienheureux &lt;strong&gt;&lt;a href="http://xunitpatterns.com/Transaction%20Rollback%20Teardown.html"&gt;rollback pattern&lt;/a&gt;&lt;/strong&gt; de Spring.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="test-database"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2013/09/test-database.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item></channel></rss>