Nach Python unterstützt die GAP nun auch Java 6. Allerdings gibt es auch einige Besonderheiten:
- Kein Dateisystem (somit keine sinnvollen java.io.File-Operationen), da Zugriff über den App Engine Datastore
- Keine eigenen Threads
- Kein AWT- und Swing-Funktionalität/Pakete. Dass man kein Fenster aufmachen kann ist klar, aber es können auch keine Bilder skaliert werden und einige Web-Frameworks nutzen Swing-Modelle wie TableModel. (Für die Bild-Operationen bietet Google eine eigene API: http://code.google.com/intl/de/appengine/docs/java/images/overview.html)
- Eingeschränktes Reflection
- Besonderer Klassenlader
- (Natürlich) kein JNI
- Nicht unterstützte Dinge werfen eine SecurityException
Nichts desto trotz laufen auch dyn. Sprachen wie Groovy und JRuby. Und es gibt ein Eclipse-Plugin für das Deployment (Google Plugin for Eclipse). Datenzugriff der AppEngine gibt es mit der API von JPA/JDO über http://www.datanucleus.org/products/accessplatform/ (früher JPOX), IMHO eine recht unbekannte Implementierung der Standards.
Zum Weiterlesen:
- http://code.google.com/intl/de/appengine/docs/java/overview.html
- http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html
- http://www.infoq.com/news/2009/04/gae
- http://code.google.com/intl/de-DE/appengine/docs/java/jrewhitelist.html
- http://paulhammant.com/blog/google-app-engine-for-java-with-rich-ruby-clients.html
- http://www.vineetmanohar.com/2009/04/11/writing-java-hello-world-for-google-app-engine/
- http://broadcast.oreilly.com/2009/04/java-for-google-appengine-fina.html
- http://www.theserverside.com/news/thread.tss?thread_id=54256