Google has just released App Engine 1.4.3 with additions to both the Python and Java runtimes. Python gets the inclusion of a test library and an experimental Prospective Search API. Java gets support concurrent requests and Remote API and Deferred API.
Both Java and Python have updates to the File API, allowing developers to read and write data using Blobstore, useful for large objects.
Speaking on the Prospective Search API, Sean Lynch (Product Manager) says:
“It's a new service available to App Engine applications that allows them to build services that function like Google Alerts. This means you can send massive amounts of data at Prospective Search and it will alert you when that data matches. For example, your application could include a simple web crawler which visits all sites on the web and passes them to Prospective Search. At the same time, you can set subscriptions on terms to watch for, such as "App Engine". When your crawler finds a page that contains App Engine, Prospective Search will execute code you specify that allows you to take action: send an email, record something in the database, etc.”
Google also preannounced a feature that will be available in 1.4.4 : the ability for owners of a project to be able to download code that has been deployed.
The following is the detail on the new additions for the Python and Java APIs
- Prospective Search API: The experimental Prospective Search APIallows Python runtime users to detect and take action on datastore entities that match certain criteria when they are written. For the experimental release, users will be allowed 10,000 subscriptions with the Prospective Search API. Pricing will be announced once the feature is fully launched.
- Testbed Unit Test Framework: The Testbed suite for Python provides an easy interface for using App Engine API stubs in integration tests similar to the previously existing Java Testing Framework. You can create tests for your application that do not rely on calling App Engine production services, which speeds up the time your tests take to complete, and eliminates dependencies for your test on external services. Here at Google, we’re well known for our testing culture, and we hope that this API will allow you to develop more stable code more quickly.
- Concurrent Requests: Until now, Java applications relied on starting additional instances to dynamically scale up for higher traffic levels. Now with support for concurrent requests, each application instance may serve multiple user requests at the same time. To start, ensure your application’s code is threadsafe, then enable concurrent requests by adding the <threadsafe> flag to your appengine-web.xml.
- Java Remote API and Deferred API support: The Remote API andDeferred API libraries have been supported in Python for awhile, and now they can be used with Java, too! The Remote API allows you to perform operations on your application’s datastore from your local machine. This is particularly useful for work that is not well-suited to App Engine’s request/response model. The Deferred API allows users to more easily write and execute ad hoc tasks. Our docs contain more information and examples on how to use the Remote API and Deferred API in Java App Engine.