<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lunatix&#039;Blog &#187; Groovy</title>
	<atom:link href="https://blog.developpez.com/lunatix/pcategory/java/groovy/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/lunatix</link>
	<description></description>
	<lastBuildDate>Thu, 19 Apr 2012 09:16:45 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>google appengine Issue 1 : fixed ou java on the google cloud</title>
		<link>https://blog.developpez.com/lunatix/p7461/java/google_appengin_issue_1_fixed_ou_java_on</link>
		<comments>https://blog.developpez.com/lunatix/p7461/java/google_appengin_issue_1_fixed_ou_java_on#comments</comments>
		<pubDate>Wed, 08 Apr 2009 13:19:17 +0000</pubDate>
		<dc:creator><![CDATA[lunatix]]></dc:creator>
				<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Et oui, depuis le début du google appengine, une demande d&#8217;évolution était trackée : supporter java et Groovy (et pas scala :p ). voila qui est résolu posté ce matin (tôt) : Happy to announce that we added Java support http://code.google.com/appengine/ Le point d&#8217;entrée dans la doc est ici : http://code.google.com/intl/fr/appengine/docs/java/overview.html c&#8217;est du java6, un plugin eclipse est disponible avec le SDK, on peut utiliser des jsp, des servlets, du jpa pour accéder au datastore [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Et oui, depuis le début du google appengine, une demande d&rsquo;évolution était trackée :  <a href="http://code.google.com/p/googleappengine/issues/detail?id=1">supporter java et Groovy</a> (et pas scala :p ).<br />
voila qui est résolu</p>
<p>posté ce matin (tôt) :</p>
<blockquote><p>Happy to announce that we added Java support <img src="https://blog.developpez.com/lunatix/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> </p>
<p>http://code.google.com/appengine/</p></blockquote>
<p>Le point d&rsquo;entrée dans la doc est ici : </p>
<p>http://code.google.com/intl/fr/appengine/docs/java/overview.html</p>
<p>c&rsquo;est du java6, un plugin eclipse est disponible avec le SDK, on peut utiliser des <a href="http://code.google.com/intl/fr/appengine/docs/java/gettingstarted/usingjsps.html">jsp</a>, des <a href="http://code.google.com/intl/fr/appengine/docs/java/runtime.html">servlets</a>, du <a href="http://code.google.com/intl/fr/appengine/docs/java/datastore/usingjpa.html">jpa</a> pour accéder au datastore (un genre de base de données non relationnelle). Il semble que <a href="http://blog.springsource.com/2009/04/07/write-your-google-app-engine-applications-in-groovy/">groovy fonctionne aussi</a></p>
<p>Je pense que ça va faire décoller le google appengine (je n&rsquo;ai rien contre python, mais la visibilité de java et quand même largement plus forte).</p>
<p>Allez vous l&rsquo;utiliser ? <a href="http://www.developpez.net/forums/d721422/java/communaute-java/java-google-appengine/">venez en parler ici</a></p>
<p>Edit : <a href="http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1">Scala fonctionne aussi en fait</a>, ainsi que jruby et autres langages de script sur la jvm</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Groovy Beans : javaBeans au régime</title>
		<link>https://blog.developpez.com/lunatix/p5374/java/groovy_java_reloaded</link>
		<comments>https://blog.developpez.com/lunatix/p5374/java/groovy_java_reloaded#comments</comments>
		<pubDate>Tue, 01 Apr 2008 15:58:40 +0000</pubDate>
		<dc:creator><![CDATA[lunatix]]></dc:creator>
				<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Avec la même approche que pour le HelloWorld du billet précédent, nous allons voir un GroovyBean. Un Groovy bean, c&#8217;est un java Bean a la mode groovy. Prenons par exemple une classe Adresse pour java : Elle contient deux attributs, leurs geters et seters ainsi qu&#8217;une méthode de formatage getAdresseComplete et un petit main pour afficher les données. Et bien elle compile directement dans groovy mais nous allons bien sur voir comment elle peut être [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img src="http://media.xircles.codehaus.org/_projects/groovy/_logos/medium.png" class="rightmargin" alt="groovy logo"/><br />
Avec la même approche que pour le <a href="http://blog.developpez.com/index.php?blog=39&amp;p=5380&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1#more5380">HelloWorld du billet précédent</a>, nous allons voir un GroovyBean. Un Groovy bean, c&rsquo;est un java Bean a la mode groovy.</p>
<p>Prenons par exemple une classe <b>Adresse</b> pour java : Elle contient deux attributs, leurs geters et seters ainsi qu&rsquo;une méthode de formatage <b>getAdresseComplete</b> et un petit <b>main</b> pour afficher les données.<br />
Et bien elle compile directement dans groovy mais nous allons bien sur voir comment elle peut être transformée pour une meilleure lisibilité.<br />
<span id="more-65"></span></p>
<p><img src="http://blog.developpez.com/media/groovyBean1.PNG" width="572" height="564" alt="Groovy beans 1" /></p>
<p>Tout d&rsquo;abord et comme la dernière fois : les <b>;</b> sont inutiles, et en groovy, les classes et méthodes sont par défaut public. On peut donc se passer de ces artefacts inutiles dans le code.</p>
<p><img src="http://blog.developpez.com/media/groovyBean2.PNG" width="568" height="569" alt="Groovy beans 2" /></p>
<p>Vous avez peut-être vu que pour java7, <a href="http://www.developpez.net/forums/showthread.php?t=461389">il est proposé un système déclaration des propriétés</a>, en groovy, c&rsquo;est déjà la. Un attribut sans aucun modificateur est considéré comme une propriété. Vous pouvez donc vous passer des geters et seters. Par contre le byte code généré comporte ces méthodes, donc si vous utilisez ce bean via java, vous pourrez bien utiliser les méthodes getVille() et autres.</p>
<p><img src="http://blog.developpez.com/media/groovyBean3.PNG" width="550" height="299" alt="Groovy beans 3" /></p>
<p>Dans groovy, dernier statement d&rsquo;une méthode est automatiquement retourné, on peut donc se passer du <b>return</b> de la méthode <b>getAdresseComplete()</b>. On en profite pour utiliser les possibilités de concaténation de variables des String groovy (GString de leur petit nom).</p>
<p><img src="http://blog.developpez.com/media/groovyBean4.PNG" width="530" height="70" alt="Groovy beans 4" /></p>
<p>Et comme On l&rsquo;a vu, il n&rsquo;est pas obligatoire de tout mettre dans une classe, ni de typer les variables. On utilise le raccourci println pour System.out.prinln() histoire d&rsquo;alleger au maximum.</p>
<p><img src="http://blog.developpez.com/media/groovyBean5.PNG" width="645" height="186" alt="Groovy beans 5" /></p>
<p>Au final, on a du code très simple, très expressif, et facile a lire pour un habitué de java. C&rsquo;est je crois le gros point fort de groovy, très expressif, tout en étant facile a appréhender.<br />
Par contre, je reste partagé sur le fait de typer ou non les variables, et je pense que ça dépends du type de code que l&rsquo;on produit. Si c&rsquo;est plutôt du script, <b>def</b> c&rsquo;est plutôt pratique. Sur un projet plus gros, le typage apporte quand même une sécurité a la compilation appréciable.</p>
<p>Et bien sur, vous disposez avec ce bean de Java et de toute ses api, comme par exemple JPA. Voila par exemple ce que donne ce bean rendu persistant via JPA. </p>
<p><img src="http://blog.developpez.com/media/groovyBeansJpa.PNG" width="748" height="240" alt="Groovy beans Jpa" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Groovy : helloWorld</title>
		<link>https://blog.developpez.com/lunatix/p5380/java/groovy_helloworld</link>
		<comments>https://blog.developpez.com/lunatix/p5380/java/groovy_helloworld#comments</comments>
		<pubDate>Fri, 28 Mar 2008 10:05:32 +0000</pubDate>
		<dc:creator><![CDATA[lunatix]]></dc:creator>
				<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Un classique, mais on doit y passer : le hello world ! Déjà, il faut installer groovy -> Downloads Il existe un plugin pour Eclipse, et un autre pour Netbeans est en approche. Sinon, la console groovy marche aussi Bon, nous venons de java, et un hello world java qui donnerait ceci fonctionne sans aucun changement sous groovy. Il faut savoir que par défaut dans groovy, une classe ou une méthode est public, donc on [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img src="http://blog.developpez.com/media/medium.png" class="leftmargin" width="203" height="100" alt="logo groovy" /><br />
Un classique, mais on doit y passer : le hello world !<br />
Déjà, il faut installer groovy -> <a href="http://groovy.codehaus.org/Download">Downloads</a></p>
<p>Il existe un <a href="http://groovy.codehaus.org/Eclipse+Plugin">plugin pour Eclipse</a>, et un autre pour <a href="http://groovy.codehaus.org/NetBeans+Plugin">Netbeans</a> est en approche. Sinon, la console groovy marche aussi <img src="https://blog.developpez.com/lunatix/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>Bon, nous venons de java, et un hello world java qui donnerait ceci fonctionne sans aucun changement sous groovy.</p>
<p> <img src="http://blog.developpez.com/media/groovy1.PNG" width="530" height="136" alt="groovy code 1" border="1" /><br />
<span id="more-67"></span></p>
<p>Il faut savoir que par défaut dans groovy, une classe ou une méthode est public, donc on peut se passer de ce mot clé, et que les <b> ; </b> sont optionnels.</p>
<p><img src="http://blog.developpez.com/media/groovy2.PNG" width="530" height="101" alt="grovvy code 2" /></p>
<p>De plus, comme on utilise souvent les sorties standards, la méthode println de System.out est disponible en permanence, et petit plus, si il n&rsquo;y a pas d&rsquo;ambiguïté, les accolades sont optionnelles.</p>
<p><img src="http://blog.developpez.com/media/groovy3.PNG" width="530" height="87" alt="groovy code 3" /></p>
<p>Enfin, en groovy, il n&rsquo;est pas obligatoire de tout inclure dans une classe : on arrive donc a un très simple. </p>
<p><img src="http://blog.developpez.com/media/groovy4.PNG" width="530" height="39" alt="groovy code 4" /></p>
<p>cet exemple bien sur un peu caricatural vous montre quand même bien la philosophie de Groovy ! Le code doit être utile et lisible. tout ce qui est inutile doit disparaitre ! On verra par la suite la même passe sur un java bean.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Groovy : java reloaded ?</title>
		<link>https://blog.developpez.com/lunatix/p5379/java/groovy_java_reloaded_1</link>
		<comments>https://blog.developpez.com/lunatix/p5379/java/groovy_java_reloaded_1#comments</comments>
		<pubDate>Thu, 27 Mar 2008 12:22:57 +0000</pubDate>
		<dc:creator><![CDATA[lunatix]]></dc:creator>
				<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Alors que mon camarade Djo.mos s&#8217;est tourné vers scala, j&#8217;ai préféré me tourner vers groovy. Pour ceux qui ne connaissent pas, groovy est un langage de la JVM, c&#8217;est-à-dire qu&#8217;il tourne sur la machine virtuelle java, et qui est compilé en .class (donc, il n&#8217;est pas interprété). Ce que j&#8217;apprécie dans groovy, c&#8217;est le fait qu&#8217;il soit proche de java, tout en amenant un nettoyage du langage très bien pensé. On peut passer facilement et [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img src="http://media.xircles.codehaus.org/_projects/groovy/_logos/medium.png" class="rightmargin" alt="groovy logo"/> Alors que mon camarade <a href="http://blog.developpez.com/index.php?blog=174&amp;p=5366&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1#more5366">Djo.mos s&rsquo;est tourné vers scala</a>, j&rsquo;ai préféré <a href="http://blog.developpez.com/index.php?blog=39&amp;title=scala_groovy_ou_autre&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">me tourner vers groovy</a>.<br />
Pour ceux qui ne connaissent pas, groovy est un langage de la JVM, c&rsquo;est-à-dire qu&rsquo;il tourne sur la machine virtuelle java, et qui est compilé en .class (donc, il n&rsquo;est pas interprété).</p>
<p>Ce que j&rsquo;apprécie dans groovy, c&rsquo;est le fait qu&rsquo;il soit proche de java, tout en amenant un nettoyage du langage très bien pensé. On peut passer facilement et naturellement vers ce langage en s&rsquo;appuyant sur ce qu&rsquo;on connait déjà de java et de ses API.</p>
<p>je vais dans les semaines qui suivent (si j&rsquo;ai le temps /o\ ) essayer de publier différents billets sur groovy et ses points forts.<br />
Par exemple son excellente interaction et intégration dans java, sur les Builders intégrés, sur les accès base de données etc&#8230;<br />
<span id="more-66"></span></p>
<p>Un premier gros point fort de groovy sur java, c&rsquo;est le fait qu&rsquo;il peut être compilé a la volée. c&rsquo;est-à-dire que le passage par l&rsquo;étape de compilation est optionnel. C&rsquo;est vraiment très agréable de pouvoir exécuter facilement et modifier du code comme en php (ou d&rsquo;autres). Le classpath peut contenir des .class (oui groovy se compile en .class, mais on y reviendra) ou des .groovy indifféremment.</p>
<p>Du coup, groovy peut être utilisé très facilement en langage de scripting. </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
