As many of you know the new language supported at GAE now is Java, as officially announced on their blog. As a Ruby/Rails developer you might not be interested on it but here is a reason you should be: JRuby.
It was only a matter of time until we saw some people deploying JRuby on Rails apps on GAE, like Ola Bini’s mini blog app. Guess that was the first one really, as he was beta testing the service in secret. Google App Engine imposes a few catches to any java application deployed there and any JRuby app wouldn’t be different. For instance, your Java API access is limited to these classes - called JRE Class whitelist.
As you can see on his blog, you don’t need active record and in fact shouldn’t even be loading that on your app.
I felt compelled to try it and the timing was perfect. I am currently developing a JRuby on Rails app at the company I work for and it was a perfect fit, since we are not using ActiveRecord. The reason is that we get the data we need from other sources, such as web services and even text files.
Ola Bini’s tips were crucial here. He provides a small script you can use to prepare the jars you’re sending to your app. Another important piece was the Google App Engine SDK for Java. It ships with a server that emulates GAE’s behaviour locally so you’re less likely to have problems once you deploy it.
I did have a problem though with the number of files uploaded to my appspot. It’s currently limited to 1000 - a thousand - and a Rails app can easily exceed this limit. So before deploying, remove anything that is not crucial: activerecord - you should’ve done it already - , all tests directories - including the ones inside gems your app needs in order to work, fixtures and etc.
After that it was rewarding seeing a custom JRuby On Rails application working perfectly on GAE. And as much as I’d like to, I can’t really share the URL since it’s a private app but I encourage people to try it. I believe GAE will ultimately help the community improve JRuby even more.
And as a last tip, this time thanks to Fabio Akita, is this snippet. You should redirect your log so you can debug your app form GAE’s dashboard.
Have fun!


[...] Continue Reading [...]
Hi Leonardo, I wrote a template that applies all these stuff to a rails app. Enjoy it XD.
http://thinkincode.net/2009/4/9/rails-template-for-google-app-engine
Thanks for the write-up, Leonardo. We’re very excited about JRuby on GAE too, and have been working with several folks from the Ruby community to automate the process. We also have ideas for solving the 1000-file limit. Very soon, we should be able to announce some cool helper projects that make GAE just about the simplest way to deploy Rails apps.
Hi David! That does look really cool!
Tks for sharing!
Tks for dropping by Charles!
I’ll follow closely the revolution!
[...] of the Google App Engine, you don’t have access to a relational database, thing I found out when I first tried it. Instead you get a Big [...]