<?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>by Leandro Milmanda Perez &#187; App Engine</title>
	<atom:link href="http://www.lemil.com.ar/blog/index.php/tag/app-engine/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lemil.com.ar/blog</link>
	<description>about IT, software &#38; trends.</description>
	<lastBuildDate>Tue, 02 Aug 2011 21:04:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Java @ Google App Engine</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 01:19:34 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[App Engine]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/</guid>
		<description><![CDATA[As I twitted last week I am testing an early version of Google&#8217;s App Engine in Java flavor. If you never got the chance to try it, or you are just curious about it, I wrote a few tutorials about how to do regular things, including: java patters, servlets, data access, etc. Use this command [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://code.google.com/appengine/images/appengine_lowres.jpg" alt="" width="142" height="109" /><img class="alignright" src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png" alt="" width="48" height="48" /></p>
<p style="text-align: center;"><a href="http://code.google.com"><img class="aligncenter" title="Google Code" src="http://www.gstatic.com/codesite/ph/images/code_sm.png" alt="" width="153" height="55" /></a></p>
<p>As I twitted last week I am testing an early version of Google&#8217;s App Engine in Java flavor. If you never got the chance to try it, or you are just curious about it, I wrote a few tutorials about how to do regular things, including: java patters, servlets, data access, etc.</p>
<p>Use this command to anonymously check out the latest project source code:</p>
<div class="bubble_wrapper">
<div class="pmeta_bubble_bg">
<div class="box-inner"><tt># Non-members may check out a read-only working copy anonymously over HTTP.</tt><br />
<tt id="checkoutcmd">svn checkout <strong><em>http</em></strong>://gae-java-tutorial1.googlecode.com/svn/trunk/ gae-java-tutorial1-read-only</tt></div>
</div>
</div>
<p><strong>Example 1</strong> &#8211; Using DataStore nad JPA</p>
<p>I created a POJO calle SimplePojo and stored un DS using JPA. Below is a copy of the persistance.xml file I am using&#8230;</p>
<pre style="background-color:#f0f0f0; border-top: 1 solid #c0c0c0; border-right: 1 solid #c0c0c0; border-left: 1 solid #c0c0c0; border-bottom: 1 solid #c0c0c0; border: 1 solid #c0c0c0; padding-left: 30px;"><span style="color: #000080;">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"&gt;

    &lt;persistence-unit name="transactions-optional"&gt;
        &lt;provider&gt;org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider&lt;/provider&gt;
        &lt;class&gt;com.gae.tutorial.pojo.SimplePojo&lt;/class&gt;
        &lt;properties&gt;
            &lt;property name="datanucleus.NontransactionalRead" value="true"/&gt;
            &lt;property name="datanucleus.NontransactionalWrite" value="true"/&gt;
            &lt;property name="datanucleus.ConnectionURL" value="appengine"/&gt;
        &lt;/properties&gt;
    &lt;/persistence-unit&gt;
&lt;/persistence&gt;</span></pre>
<p>Note the the hardcoded appengie value from the connection URL. Below the Poj file&#8230;</p>
<div style=" background-color:#f0f0f0; border-top: 1 solid #c0c0c0; border-right: 1 solid #c0c0c0; border-left: 1 solid #c0c0c0; border-bottom: 1 solid #c0c0c0; border: 1 solid #c0c0c0; padding-left: 30px;">
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.jdo.annotations.Column;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.Entity;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.GeneratedValue;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.GenerationType;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.Id;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.NamedQueries;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.NamedQuery;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.Table;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">
</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">@Entity</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">@Table(name = "simple_pojo")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">@NamedQueries( {</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @NamedQuery(name = "getLast", query = "SELECT p FROM SimplePojo p ORDER BY p.id DESC")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">})</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">
</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">public class SimplePojo {</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">
    @Id</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @GeneratedValue(generator="generador",strategy=GenerationType.IDENTITY)</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @Column(name="ID")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    private Long id;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    </span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @Column(name="VALOR")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    private String valor;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    </span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    </span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    public Long getId() {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        return id;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">
    public void setId(Long id) {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        this.id = id;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">
    public String getValor() {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        return valor;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">
    public void setValor(String valor) {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        this.valor = valor;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">}</span></pre>
</div>
<p>To fully understand this example I recommend you to checkout the SVN source repo and open it on eclipse. One important thing is that you need to install the App Engine SDK for Java and the eclipse plugins from App Engine too.</p>
<p>Also recommend you to get an account and start uusing it.!</p>
<p>Cheers!</p>
<p>Leandro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

