Some of the later helper frameworks and tools for applications written for Google App Engine are: SimpleDS and Objectify - two persistence frameworks, Kotori – a JUnit runner, Apple Guice – a case study GWT application, and Engine Watch – a GAE monitoring application for Android devices.
SimpleDS
SimpleDS is a persistence framework for Java applications to transparently store their data on GAE's Datastore. It is not a full-blown framework, but rather a wrapper around Datastore API. Since GAE already has JDO and JPA, two persistency solutions, one might wonder why another framework? The project owners explain:
- The Datastore API is too much low-level, providing bare persistence of Map-style structures.
- The JDO and JPA APIs are too complex for even the simplest tasks, and hurt performance by adding lots of extra checks designed for relational databases.
Objectify
Objectify is yet another persistence framework that wants to address the shortcomings of JDO, allowing the user to store typed objects. Some of its features are:
- Objectify surfaces all native datastore features, including batch operations, queries, entity groups, and unindexed properties.
- Objectify provides type-safe key and query classes using Java generics.
- Objectify does not impact application cold-start time, adding a few milliseconds at most.
- Objectify can automatically cache your data in memcache for improved read performance.
- Objectify entities can be used in GWT without the need for Data Transfer Objects.
Kotori
Kotori is a JUnit runner for testing applications deployed on GAE. It supports JUnit 3 and 4 test cases. One limitation is the ability to run only short test cases taking less than 30 seconds.
Apple Guice
Apple Guice is a case study of a Google Web Toolkit (GWT) application running on GAE and using the Guice dependency injection framework for the server and GWT INjection (GIN), yet another DI framework built on Guice, for the client. Apple Guice demonstrates the implementation of the following patters: Model-View-Presenter based on GWT Presenter, Command-Pattern through GWT Dispatch, and a Sharded Counter.
Engine Watch
Engine Watch is a free monitoring application useful to check GAE utilization from an Android mobile phone. It displays statistics like: CPU Time, Request, Outgoing Bandwidth, Incoming Bandwidth, Secure Requests and others.