Version 1.2.1 of the App Engine SDK for Java is now available to download. This was the first update to our new Java language support and includes a number of bug fixes and feature additions including:
There are a host of updates for the JDO/JPA layer as well. The project wiki has a full list of fixes and new features.
As always, we're very interested in your feedback with the SDK, especially during this early look period -- please feel free to share your experiences in the Java runtime discussion group.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.
Posted by Jason Cooper, App Engine Team
It has been an exciting month and a half for App Engine since the last community update. In addition to two SDK updates, Cron support, new Java runtime, etc., there have been a host of noteworthy community developments as well, only a few of which are mentioned below.
web2py Python framework now supports App EngineWe are always interested in frameworks that natively support App Engine, and the web2py framework recently came to our attention. Completely written in Python, web2py is described as a "free and open source full-stack enterprise framework for agile development of fast, secure and portable database-driven web-based applications." If your framework has native App Engine support let us know and we'll include you in a future blog post.
Alternative datastore backend for App Engine applications releasedbdbdatastore is an alternative datastore backend for App Engine applications. Now at version 0.2, bdbdatastore has complete feature parity with the App Engine's production datastore, meaning you can run your App Engine application on your own hardware with bdbdatastore as the storage backend without having to change any of the code written previously to access App Engine's native datastore. Intended primarily for developers who want to host their own App Engine-based apps, bdbdatastore manages to be far more robust and scalable than the datastore included with the development server while being more manageable than larger backends like HBase and HyperTable.
App Engine supports White House town hall meetingIn late March, the White House hosted an online town hall meeting, soliciting questions from concerned citizens directly through its website. To manage the large stream of questions and votes, the White House used Google Moderator, which runs on App Engine. At its peak, the application received 700 hits per second, and across the 48-hour voting window, accepted over 104,000 questions and 3,600,000 votes. Despite this traffic, App Engine continued to scale and none of the other 50,000 hosted applications were impacted.
For more on this project, including a graph of the traffic and more details on how App Engine was able to cope with the load, see the Google Code blog.
App Engine "Sprint" held in TaipeiThe Taipei App Engine Sprint was a coding event at Google Taipei office in mid-March. Seventeen Python developers split into five teams and worked for 10 hours straight to build a new application from scratch. in 10 hours. The winning application, Sight History, is a Picasa search-based application which displays a time distribution chart, slide show links, and a Google Map for photos queried from Picasa Web Albums. Only one of the four developers on this team was an active web developer, which illustrates how easy it can be to turn a good idea into a working web application with App Engine and other Google APIs.
Earth Hour 2009 site hosted on App EngineEarth Hour, an initiative of WWF, encourages individuals, businesses, and governments to turn off their lights for one hour to show their support for action on climate change. The site aims to raise awareness of climate change and to show people and companies how easy it is to take action to avoid global warming. After launching this past December on App Engine, the site was able to scale seamlessly to handle over 450 hits per second during the Earth Hour event on March 28, making it one of the top App Engine applications served that day.
Posted by Jason Cooper, Google App Engine Team
We've released version 1.2.2 of the App Engine SDK for Python. Some highlights from the release notes:
For a full list see the SdkReleaseNotes wiki page.
Downloads for Windows, Mac, and Linux are available on the Downloads page. This SDK update was for the Python runtime, so please post your feedback in the Python runtime discussion group.
We've released version 1.2.1 of the SDK for the Python runtime. Here are some highlights from the release notes:
bulkloader.py
Have you signed up to try Google App Engine for Java yet? We were so overwhelmed with the response to our early look at Java support on App Engine that we decided to let more developers in now, without waiting. Thus, we're expanding the early look signups to 25,000 developers, in order to give more of you a chance to try it out. So please sign up, give it a try, and let us know what you think. We've already seen a number of interesting apps built and deployed. Stay tuned for us to point some of the cooler ones out in the coming weeks.
On another note, if you haven't delved down into the SDK and taken a look around, you may have missed the demo directory. Inside this directory you'll find a number of projects which demonstrate various features of Google App Engine for Java. These demos are a great place to start if you want to learn more about App Engine by example, or if you just want to get hacking on something quickly. Last but not least, we hope these demos are of practical value too, as we included example Ant build scripts and organized the code with standard directory layouts and naming conventions.
Looking to create an end-to-end Java AJAX application? Try out Sticky, the sticky note app written using Google Web Toolkit and App Engine. You'll find useful patterns you can use in your own code, the sample source itself is Apache licensed so feel free to use it directly.
Are your eyes set on a mobile app? Check out the source for Task Engine . Also built with GWT, this simple task app is written with the iPhone and Android in mind.
If scaling your infrastructure is more your cup of tea, you can check out the shardedcounter example. It demonstrates how to implement distributed incrementing counters, which are useful for understanding how to scale larger applications on App Engine.
Note: If you installed the App Engine SDK with the Google Plugin for Eclipse, the SDK and accompanying demos can be found in your Eclipse installation directory, under plugins/com.google.appengine.eclipse.sdkbundle_1.2.0.vXXX.
While working on App Engine's new Java runtime, we realized that we were missing something important. Something the Python runtime already had. Something sleek, yet powerful ... and approximately 80 characters wide and 25 characters tall. Yes, we're talking about the Python runtime's nifty shell demo app.
Naturally, we wanted to take the existing shell demo and extend its functionality for our new Java environment. Our idea was that we'd create one REPL to rule them all: a shell demo that supports several different JVM-based languages simultaneously. It was an easy decision to use GWT to build the user-interface, making the terminal interface a cinch. Once we had the basic shell framework, we then added some languages: Beanshell, Clojure, Groovy, JavaScript, Python, Ruby, Scala, and Scheme.
This helps us underscore two important compatibility features of Java App Engine:
Now, it must be said: please note that this is a demonstration app we developed to show off the power and flexibility of our new Java runtime; it's not a production service, and you shouldn't rely on it for anything important. Further, since this is a single shared instance of this application, running server code code from many users at once, you should exercise caution in entering any sensitive data like passwords into this demo. Finally, though we've worked to ensure rich functionality for as many languages as possible, this is still a proof of concept, and there is surely some language functionality missing from our environment.
But, without further ado, may we present to you, the Lord of the REPLS.
-- Google Software Engineers, Toby Reyelts and James Robinson.
Today, we're very excited to announce the availability of a new programming language for Google App Engine. Please welcome the Java runtime!
When the two of us first heard the promise of Google App Engine, we realized that the chance to bring this kind of simplicity to Java developers was too good of an opportunity to pass up. When App Engine launched publicly, we were excited to see that Java language support was both the first and the most popular request filed in the Issue Tracker. We were also thrilled to see that this enthusiasm extended beyond the Java language to all of the various programming languages that have been implemented on top of the Java virtual machine -- not to mention all of the popular web frameworks and libraries.
But we also knew that Java developers are choosy:
We wanted to give developers something that they could be ecstatic about, but we knew we would have to marry the simplicity of Google App Engine with the power and flexibility of the Java platform. We also wanted to leverage the App Engine infrastructure -- and by extension Google's infrastructure -- as much as possible, without giving up compatibility with existing Java standards and tools.
And so that's what we did. App Engine now supports the standards that make Java tooling great. (We're working on the tooling too, with Google Plugin for Eclipse). It provides the current App Engine API's and wraps them with standards where relevant, like the Java Servlet API, JDO and JPA, javax.cache, and javax.mail. It also provides a secure sandbox that's powerful enough to run your code safely on Google's servers, while being flexible enough for you to break abstractions at will.
There is a vast amount of Java code out there, much of it written without consideration of sandboxing, and we can't test it all. We know that there will be some rough edges when it comes to compatibility, but we're looking forward to working with you to smooth those out. To that end, we're giving the first 10,000 interested developers an early look at Java language support, so please sign up, give it a whirl, and give us lots of feedback.
The team has also been working on many other improvements to App Engine, which we're really excited to launch to you as well:
Last but not least, the App Engine team will be at the upcoming Google I/O developer event on May 27-28 in San Francisco, so please come meet us in person.
We look forward to seeing your applications. Get coding!
Posted by Don Schwarz and Toby Reyelts, Software Engineers, Google App Engine Team
Use promo code NEXT1720 to save $300 off general admission