Search

Wednesday, June 29, 2011

Google Application Engine (GAE) basic - Storing Data

Google Application Engine, GAE, is a web service set provided by Google. It is free for small web application - which is more than enough to start a web application.

Objective
Learn how to store data in Google Application Engine, using Java Persistence Annotation (JPA).

Storing Data in GAE
An application creates entities, with data values stored as properties of an entity. The app can perform queries over entities. All queries are pre-indexed for fast results over very large data sets.

Datastore entities are schemaless: Two entities of the same kind are not obligated to have the same properties, or use the same value types for the same properties. The application is responsible for ensuring that entities conform to a schema when needed.
The datastore provides a low-level API with simple operations on entities, including getputdelete, and query. You can use the low-level API to implement other interface adapters, or just use it directly in your applications.



source : http://code.google.com/appengine/docs/java/datastore/overview.html

Java Persistence Annotation - JPA

Java Persistence API (JPA) is a standard interface for storing objects containing data into a relational database. The standard defines interfaces for annotating Java objects, retrieving objects using queries, and interacting with a database using transactions. An application that uses the JPA interface can work with different databases without using any vendor-specific database code. JPA simplifies porting your application between different database vendors.
The App Engine Java SDK includes an implementation of JPA 1.0 for the App Engine datastore. The implementation is based on DataNucleus Access Platform. JPA presents a standard interface for interacting with relational databases, but the App Engine datastore is not a relational database. As a result, there are features of JPA that the App Engine implementation simply cannot support. We have done our best to call attention to these features wherever possible.


source : http://code.google.com/appengine/docs/java/datastore/jpa/overview.html

Starting JPA for GAE

  • Make sure JPA and Datastore JAR's available in build path, war/WEB-INF/lib/ directory.
  • Create persistence.xml file in war/WEB-INF/classes/META-INF/directory. persistence.xml is a configuration file to tell JPA to use GAE Datastore. Content of persistence.xml :
  • <?xml version="1.0" encoding="UTF-8" ?>
    <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">
    
        <persistence-unit name="transactions-optional">
          <provider>org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider</provider>
          <properties>
            <property name="datanucleus.NontransactionalRead" value="true"/>
            <property name="datanucleus.NontransactionalWrite" value="true"/>
            <property name="datanucleus.ConnectionURL" value="appengine"/>
          </properties>
        </persistence-unit>
    </persistence>
  • The project's build process must perform a post-compilation "enhancement" step on the compiled data classes to associate them with the JPA implementation.
Local Developement (DevAppServer)
GAE admin for development (local) server can be accessed by url http://localhost:8888/_ah/admin
This admin console can be used for managing Datastore, Task Queues, XMPP, and Inbound Mail.


source : http://code.google.com/appengine/docs/java/datastore/jpa/overview.html
http://www.vogella.de/articles/GoogleAppEngineJava/article.html

Monday, February 7, 2011

Common problems and updates on Eclipse

Common problems (and solutions if solved) and updates related to Eclipse installation and usage based on personal experience.

Environment : Linux Fedora 14. Java version "1.6.0_20".
OpenJDK Runtime Environment (IcedTea6 1.9.5)  (fedora-51.1.9.5.fc14-i386). OpenJDK Client VM (build 19.0-b09, mixed mode).
If not mentioned Eclipse Helios 3.6.1 instance is used, downloaded and installed from Fedora's default package (Add/Remove Software).

Friday, February 4, 2011

Python from zero

Personal log in learning python.
Environment : Linux Fedora 14, Python 2.7

Wednesday, January 26, 2011

Install SpringsSource Tool Suite Plugin for Eclipse Galileo / Helios

Eclipse is used in my machine to develop PHP, standard Java, GAE based, and Spring framework applications. In order to keep only one instance of Eclipse, I preferred to install Springsource Tool Suite as Eclipse plugin instead of downloading whole new STS package.

Environment : Fedora Eclipse Helios default installation. Fedora 14.

Tuesday, January 25, 2011

PHP : needed yet forgettable functions and statics

PHP : needed yet forgettable functions and statics

Set Default Timezone for PHP requirement (since PHP 5.1)

Since 5.1.0 PHP encouraged to set default time zone by generating WARNING whenever function like date() used while local timezone has not been set.


Problem installing Google App Engine (AE) plugin on Eclipse Helios

When installing Google Application Engine (AE) Eclipse plugin, missing dependencies message showed :

Cannot complete the install because one or more required items could not be found.
Software being installed: Google Plugin for Eclipse 3.6 1.4.2.v201012211742
(com.google.gdt.eclipse.suite.e36.feature.feature.group 1.4.2.v201012211742)
Missing requirement: Google Eclipse 3.6 Platform Plugin 1.4.2.v201012211742 (com.google.gdt.eclipse.platform.e36 1.4.2.v201012211742) 



Environment : Fedora 14, Eclipse Helios (3.6.1) installed using GNOME Add / Remove Software.
Add Eclipse Helios Update Site

Sunday, January 23, 2011

Saturday, January 22, 2011

SELinux denies access requested by httpd (Apache)


This post is listing denied access list requested by httpd (Apache) service and ways to fix them. Solved problems :
  • Database over network access
environment : Fedora 14,built in apache installation, add with yum PHP and MySQL installation.

Friday, January 21, 2011

Common Linux Problems and Answers

Common Linux problems and answers, written as write's experience
enviroment  : Fedora 14 minimum installation. GNOME desktop environment.


Setup Multiple Virtual Hosts on Apahe, Linux Fedora 14

objective : setup virtual hosts for http://test1.local and http://test2.local
environment : Linux Fedora 14 with Apache 2.2.16 web server built in