Last night Google announced Java support on Google App Engine.
After a bit of toying around, here are my findings.
The Eclipse plugin is pretty slick. Deploying and build is simple.
The dev server that you spin up locally looks to be jetty under the hood.
Objects intended for storage are JDO annotated and after compiling, you run the .class files through the DataNucleus Enhancer which adds additional metadata so Google can map it to BigTable. The Eclipse plugin automatically performs this step for you after compiling. The examples provide a bunch of ant macros to help facilitate building/deploying.
One issue that I had was that the project was building with Java 1.6 and I would get an error after compiling:
Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file
Even though they say they support Java 1.5 and 1.6, I guess this doesn’t work on the Java 1.6 for the Mac. Switching the build to 1.5 allows the DataNucleus Enhancer to run successfully.
Even though they are using JPA, some features have not yet been implemented or supported ( see http://code.google.com/appengine/docs/java/datastore/usingjpa.html#Unsupported_Features_of_JPA)
Overall, I like what I see so far and think this would be great for quick prototypes of web apps/services.
Going through the tutorial, my awesome Guestbook application has been created and deployed.