<?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 : Devoxx &#8211; Jour 2 &#8211; Google App Engine</title>
	<atom:link href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/</link>
	<description>J2EE, Agilité et SOA</description>
	<lastBuildDate>Wed, 10 Mar 2010 13:31:23 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Par : Sam Brodkin</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17145</link>
		<dc:creator>Sam Brodkin</dc:creator>
		<pubDate>Fri, 20 Nov 2009 18:18:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17145</guid>
		<description>Thanks Philippe that&#039;s gonna help a lot!</description>
		<content:encoded><![CDATA[<p>Thanks Philippe that&#8217;s gonna help a lot!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : philippe Voncken</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17144</link>
		<dc:creator>philippe Voncken</dc:creator>
		<pubDate>Fri, 20 Nov 2009 17:45:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17144</guid>
		<description>@Sam:
http://code.google.com/p/datanucleus-appengine/issues/detail?id=10 :)

@Bruno: 
précision juste, c&#039;était mon idée là: &quot;Ca n&#039;est pas Gilead qui ne fonctionne pas, mais c&#039;est l&#039;architecture qui à un problème.&quot;</description>
		<content:encoded><![CDATA[<p>@Sam:<br />
<a href="http://code.google.com/p/datanucleus-appengine/issues/detail?id=10" rel="nofollow">http://code.google.com/p/datanucleus-appengine/issues/detail?id=10</a> <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>@Bruno:<br />
précision juste, c&#8217;était mon idée là: &laquo;&nbsp;Ca n&#8217;est pas Gilead qui ne fonctionne pas, mais c&#8217;est l&#8217;architecture qui à un problème.&nbsp;&raquo;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Sam Brodkin</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17140</link>
		<dc:creator>Sam Brodkin</dc:creator>
		<pubDate>Fri, 20 Nov 2009 16:58:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17140</guid>
		<description>@philippe Voncken:
I don&#039;t think you can make a string attribute and have JDO save it as a BLOB in Appengine.  Correct me if I&#039;m wrong.

Making an abstract DAO with CRUD operations wouldn&#039;t have made it any simpler. Just more abstract.  Harder to explain in my talk.  But nice thought.</description>
		<content:encoded><![CDATA[<p>@philippe Voncken:<br />
I don&#8217;t think you can make a string attribute and have JDO save it as a BLOB in Appengine.  Correct me if I&#8217;m wrong.</p>
<p>Making an abstract DAO with CRUD operations wouldn&#8217;t have made it any simpler. Just more abstract.  Harder to explain in my talk.  But nice thought.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Bruno Marchesson</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17138</link>
		<dc:creator>Bruno Marchesson</dc:creator>
		<pubDate>Fri, 20 Nov 2009 16:49:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17138</guid>
		<description>Juste une précision : c&#039;est la sérialisation GWT qui empêche l&#039;envoi des entités du DataStore vers le coté client, et non Gilead ;)

Gilead modifie au contraire cette serialisation pour que le transfert se passe sans heurts. Mais en effet, la première version de la librairie ne prenait en charge que la partie sérialisation, et non les types spécifiques (Text, Blob, etc...)

Depuis, le support de ces derniers été ajoutée par émulation JS correspondante, et devrait, si tout va bien, simplifier la vie de Sam :)</description>
		<content:encoded><![CDATA[<p>Juste une précision : c&#8217;est la sérialisation GWT qui empêche l&#8217;envoi des entités du DataStore vers le coté client, et non Gilead <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Gilead modifie au contraire cette serialisation pour que le transfert se passe sans heurts. Mais en effet, la première version de la librairie ne prenait en charge que la partie sérialisation, et non les types spécifiques (Text, Blob, etc&#8230;)</p>
<p>Depuis, le support de ces derniers été ajoutée par émulation JS correspondante, et devrait, si tout va bien, simplifier la vie de Sam <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : philippe Voncken</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17135</link>
		<dc:creator>philippe Voncken</dc:creator>
		<pubDate>Fri, 20 Nov 2009 15:56:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17135</guid>
		<description>@Sam

1. Effectivement ton pojo n&#039;étend pas de classe Spring, mais l&#039;erreur sur laquel tu es tombé revient au même. 

Tu utilises en attribut de ton Pojo un objet Text qui vient de l&#039;API appEngine. C&#039;est normal que Text ne compile pas dans le côté client de GWT. Tu aurais dû utiliser un String avec une annotation pour dire que tu veux le persister de la manière que tu le souhaites.

Par exemple @Lob -&gt; javax.persistence.Lob

2. Vous auriez gagné du temps en utilisant un dao générique. Réimplémenter un dao pour chaque Pojo est fastidieux

#traduction pour Sam
#in English
1. The class Text come from appEngin API. It&#039;s normal that don&#039;t work in GWT client. you must used a String with @Lob annotation for obtain a Blob.

2. You would have saved time with a generic DAO.</description>
		<content:encoded><![CDATA[<p>@Sam</p>
<p>1. Effectivement ton pojo n&#8217;étend pas de classe Spring, mais l&#8217;erreur sur laquel tu es tombé revient au même. </p>
<p>Tu utilises en attribut de ton Pojo un objet Text qui vient de l&#8217;API appEngine. C&#8217;est normal que Text ne compile pas dans le côté client de GWT. Tu aurais dû utiliser un String avec une annotation pour dire que tu veux le persister de la manière que tu le souhaites.</p>
<p>Par exemple @Lob -&gt; javax.persistence.Lob</p>
<p>2. Vous auriez gagné du temps en utilisant un dao générique. Réimplémenter un dao pour chaque Pojo est fastidieux</p>
<p>#traduction pour Sam<br />
#in English<br />
1. The class Text come from appEngin API. It&#8217;s normal that don&#8217;t work in GWT client. you must used a String with @Lob annotation for obtain a Blob.</p>
<p>2. You would have saved time with a generic DAO.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Sam Brodkin</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17133</link>
		<dc:creator>Sam Brodkin</dc:creator>
		<pubDate>Fri, 20 Nov 2009 14:19:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17133</guid>
		<description>@philippe Voncken: We didn&#039;t extend Spring classes.  The POJOs have pure JDO annotations.  

Here&#039;s a SwagItem: http://code.google.com/p/swagswap/source/browse/trunk/src/main/java/com/swagswap/domain/SwagItem.java

I&#039;m extending a the Spring JdoDaoSupport in the DAO though.  

http://code.google.com/p/swagswap/source/browse/trunk/src/main/java/com/swagswap/dao/ItemDaoImpl.java

The Gilead problem is with the appengine datatypes we used in the domain objects.</description>
		<content:encoded><![CDATA[<p>@philippe Voncken: We didn&#8217;t extend Spring classes.  The POJOs have pure JDO annotations.  </p>
<p>Here&#8217;s a SwagItem: <a href="http://code.google.com/p/swagswap/source/browse/trunk/src/main/java/com/swagswap/domain/SwagItem.java" rel="nofollow">http://code.google.com/p/swagswap/source/browse/trunk/src/main/java/com/swagswap/domain/SwagItem.java</a></p>
<p>I&#8217;m extending a the Spring JdoDaoSupport in the DAO though.  </p>
<p><a href="http://code.google.com/p/swagswap/source/browse/trunk/src/main/java/com/swagswap/dao/ItemDaoImpl.java" rel="nofollow">http://code.google.com/p/swagswap/source/browse/trunk/src/main/java/com/swagswap/dao/ItemDaoImpl.java</a></p>
<p>The Gilead problem is with the appengine datatypes we used in the domain objects.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : philippe Voncken</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17130</link>
		<dc:creator>philippe Voncken</dc:creator>
		<pubDate>Fri, 20 Nov 2009 13:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17130</guid>
		<description>Je suis déçu de lire qu&#039;il a été plus long de développer avec GWT qu&#039;avec spring-mvc. J&#039;ai l&#039;impression que les développeurs qui se sont lancés là dedans n&#039;ont pas pris le temps d&#039;étudier GWT.

http://code.google.com/intl/fr-FR/webtoolkit/doc/1.6/DevGuideCodingBasics.html#DevGuideJavaCompatibility

Les Pojo doivent suivre quelques règles:
- ils doivent être serializable
  - constructeur par defaut
  - getter / setter
- ils doivent faire partie du runtime GWT (partie cliente)

Si vous étendez les classes Spring ca ne m&#039;étonne pas que cela ne marche pas. Ca n&#039;est pas Gilead qui ne fonctionne pas, mais c&#039;est l&#039;architecture qui à un problème.

Hibernate, avec ses annotations, n&#039;est pas intrusif dans le code des Pojo. C&#039;est pour ca que Gilead fonctionne bien dans ce cas. 

Si vous étendez des classes Spring sur vos Pojo, vos pojos ne sont plus de simple pojo, mais il y a du code intrusif qui n&#039;est pas compilable pour le côté client de GWT. Et donc la serialization de la réponse Rpc ne fonctionne pas.

Avec de simples Pojos, ça aurait fonctionné.</description>
		<content:encoded><![CDATA[<p>Je suis déçu de lire qu&#8217;il a été plus long de développer avec GWT qu&#8217;avec spring-mvc. J&#8217;ai l&#8217;impression que les développeurs qui se sont lancés là dedans n&#8217;ont pas pris le temps d&#8217;étudier GWT.</p>
<p><a href="http://code.google.com/intl/fr-FR/webtoolkit/doc/1.6/DevGuideCodingBasics.html#DevGuideJavaCompatibility" rel="nofollow">http://code.google.com/intl/fr-FR/webtoolkit/doc/1.6/DevGuideCodingBasics.html#DevGuideJavaCompatibility</a></p>
<p>Les Pojo doivent suivre quelques règles:<br />
- ils doivent être serializable<br />
  &#8211; constructeur par defaut<br />
  &#8211; getter / setter<br />
- ils doivent faire partie du runtime GWT (partie cliente)</p>
<p>Si vous étendez les classes Spring ca ne m&#8217;étonne pas que cela ne marche pas. Ca n&#8217;est pas Gilead qui ne fonctionne pas, mais c&#8217;est l&#8217;architecture qui à un problème.</p>
<p>Hibernate, avec ses annotations, n&#8217;est pas intrusif dans le code des Pojo. C&#8217;est pour ca que Gilead fonctionne bien dans ce cas. </p>
<p>Si vous étendez des classes Spring sur vos Pojo, vos pojos ne sont plus de simple pojo, mais il y a du code intrusif qui n&#8217;est pas compilable pour le côté client de GWT. Et donc la serialization de la réponse Rpc ne fonctionne pas.</p>
<p>Avec de simples Pojos, ça aurait fonctionné.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Sam Brodkin</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17120</link>
		<dc:creator>Sam Brodkin</dc:creator>
		<pubDate>Fri, 20 Nov 2009 08:54:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17120</guid>
		<description>@Romain thanks for the fantastic writeup of our talk!  

@Bruno I&#039;m sorry I didn&#039;t leave any feedback in the Gilead forums.  I should have.  When I tested Gilead, Blob types worked but not appengine type Text.  I&#039;ll check the nightly builds and see if I can get it working.</description>
		<content:encoded><![CDATA[<p>@Romain thanks for the fantastic writeup of our talk!  </p>
<p>@Bruno I&#8217;m sorry I didn&#8217;t leave any feedback in the Gilead forums.  I should have.  When I tested Gilead, Blob types worked but not appengine type Text.  I&#8217;ll check the nightly builds and see if I can get it working.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Bruno Marchesson</title>
		<link>http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/comment-page-1/#comment-17080</link>
		<dc:creator>Bruno Marchesson</dc:creator>
		<pubDate>Thu, 19 Nov 2009 09:08:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.fr/?p=3213#comment-17080</guid>
		<description>Marrant de lire qu&#039;il a été question de ma librairie (Gilead) lors de Devoxx :)
(même si c&#039;est pour dire que cela n&#039;a pas fonctionné...).

Pour info, le support des types spécifiques DataNucleus (Text, Blob, ...) a été rajouté depuis quelques semaines dans le trunk de l&#039;application et sera disponible dans la prochaine release 1.3.
(je ne sais pas si c&#039;est ce qui a fait que cela n&#039;a pas fonctionné : personne ne m&#039;a remonté de problème particulier sur les forums du projet :-/)</description>
		<content:encoded><![CDATA[<p>Marrant de lire qu&#8217;il a été question de ma librairie (Gilead) lors de Devoxx <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
(même si c&#8217;est pour dire que cela n&#8217;a pas fonctionné&#8230;).</p>
<p>Pour info, le support des types spécifiques DataNucleus (Text, Blob, &#8230;) a été rajouté depuis quelques semaines dans le trunk de l&#8217;application et sera disponible dans la prochaine release 1.3.<br />
(je ne sais pas si c&#8217;est ce qui a fait que cela n&#8217;a pas fonctionné : personne ne m&#8217;a remonté de problème particulier sur les forums du projet :-/)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
