I gave a talk last night at the Atlanta Ruby Users Group meetup about using JRuby on Google App Engine. It was more of an overview about what App Engine is, and how to get started with a Sinatra app. The Github repository for the application is located here, and you can see the application in action here.
The application demonstrates a few app engine concepts. In models.rb you’ll see a sharded counter implementation using the direct Datastore API, and a traditional model using Datamapper as your ORM (ODM?) to Datastore. The counter also demonstrates usage of the Memcache API. Inside app.rb you can see some simple usage of the Users API, including how to check to see if a user is logged in, present a user with a login screen, and interacting with the object. Lastly, you will find an example of how to determine your app’s name and version in config.ru.
Following the presentation I received a number of requests for my slides, so they are included below. Slide 13 illustrates pushing your own app to App Engine. As I mentioned in the talk, I strongly suggest setting aside one of your app ids for testing new ideas, since you only get 10 ids total.