MeshCMS 4 On Google App Engine
Google App Engine is one of the best things that Java developers have got in the last years because it means free Java hosting. When I read about it for the first time, I thought to try MeshCMS on it, but the first limitation I learned was a no go: Google App Engine forbids writing to the filesystem, so a file based CMS can't work on it.
Recently I thought that maybe I discarded that option too early and that GAE is too good to be ignored. I constantly keep an eye on Java hosting and there are some nice offers, but none of them can compete with cheap PHP hosting. Sure, you get lot of resources with Java plans, but if you just have to host a CMS, there's no reason to use MeshCMS and pay ten times more than, say, use CMS Made Simple on a €10/year web hosting.
That's why I decided to experiment with a filesystem wrapper that redirects all writes to the GAE Data Store. There is a library named GaeVFS that already does this. I tried it, but unfortunately it didn't work. Not its fault though: Jericho HTML Parser can't read files passing through Apache Commons VFS, which is used by GaeVFS.
While reinventing the wheel is not a good practice, it's certainly fun, and since MeshCMS has become my place to enjoy programming and trying new stuff, I decided to implement my own filesystem wrapper. I've not uploaded my tests to the real thing, I'm just using the development server for now, but I must say I'm impressed: MeshCMS 4 is already able to use real files when they exist and redirect all other calls to the data store. Files are divided in chunks so they span across multiple data store entries and so the 1MB limitation doesn't apply: I was able to upload a 30MB file smoothly, while a 300MB one stopped at about 70MB due to an OutOfMemoryError, but I don't need to upload such big files.
I must also use the GAE Images service in place of custom thumbnail generation that won't work, but these are minor issues that are easy to fix. That's why I started to believe that MeshCMS will run on the App Engine and that I will stop paying for Java hosting.
Of course, all these new features are delaying MeshCMS 4 development further, but I think that it is worth it.
Feb 10, 2010 11:21 AM
I'm trying to write a version of MeshCMS 4 that can be run on Google App Engine. If I will succeed, I'll publish it. At the moment there is no way to run MeshCMS on Google App Engine, so if you want to use a CMS with GAE, you should use another one, like the one you linked.