Vince Bonfanti gets OpenBlueDragon CFML engine running on Google Apps

Posted by Dan on Apr 14, 2009 @ 10:40 AM

I thought this would hit the blogsphere a little harder, but Vince Bonfanti was able to get a heavily modified version of Open BlueDragon running on Google Apps. The announcement is a bit buried in a Google Group list for Open Blue Dragon, but the announcement is pretty exciting, because it opens up a new alternative for hosting a ColdFusion application and it's free for pageviews less than 5 million a month.

Here's what Vince had to say about what was required to get things running:

No, this wasn't done using precompiled CFML templates--it's running a
"raw" CFML page just as you normally would.

The Google App Engine (GAE) puts a number of restrictions on Java
servlets, the most significant for OpenBD are: (1) you can't write to
the file system (but you can read from it); (2) you can't create
"background" threads; (3) you can't use any of the java.net.* classes;
and, (4) you can't use any of the java.awt.* classes. There are a
number of other restrictions when accessing the Java class libraries.

Basically, I modified the OpenBD code to workaround these
restrictions. This meant things like not writing out the
bluedragon.xml configuration file, writing logs to System.out instead
of the bluedragon.log file, disabling runtime error logging, etc. It
also meant removing or disabling some features, such as CFCHART,
CFTHREAD, CFHTTP, CFLDAP, CFMAIL, CFSCHEDULE, etc., which won't run in
the GAE environment due to the Java class library restrictions.

We still have a bit of work to do to clean this up to make it ready
for public consumption. I've handed this off to Alan Williamson, who's
going to work on modifying CFQUERY to work with the datastore (GAE
does not support SQL datasources).

While we're working on this, I'd recommend becoming familiar with the
Google App Engine for Java:

http://code.google.com/appengine/docs/java/overview.html

I'd especially recommend becoming familiar with the Eclipse plug-in:

http://code.google.com/appengine/docs/java/tools/eclipse.html

As you can see, there's a lot of modifications that were required and some that may even be deal killers depending on your requirements, but there's still plenty of opportunities to build something exciting.

This would be an excellent way to put an idea to production without investing anything but your time.

Categories: HTML/ColdFusion

5 Comments

  • That is so cool!!! +1 for open source!
  • I actually find this really exciting. I've had such poor luck with shared CF hosting, with multiple vendors, I LOVE the idea of having my own CF instance running in the cloud and only I can break it. Now if they can only figure out that data storage thing we're golden!
  • I missed this news too. If they can find workarounds for the disabled tags then this could be a mini revolution for CFML. I just blogged about it... got to shout about these achievements!
  • @Gary:

    I suspect those tags will never work because of the Google App environment. While the lack of CFMAIL can be seen as limiting, the reason I'm sure Google is blocking the net packages is to prevent people from building SPAM tools, so it also makes a lot of sense.
  • Surely GAE allows apps to send emails? What web app doesn't send emails? When you register to use a website it sends you an email. When you complete a transaction (financial or otherwise) it sends you an email. If an alert condition is met it sends you an email. And so on. I don't think I've ever built an app where it hasn't needed to send email for one reason or another.

    I was thinking of workarounds such as posting a HTTP request to a 3rd party server to send an email, or using a 3rd party web service to send an email, but both tecniques require CFHTTP which Vince also had to disable. Hmm.

Comments for this entry have been disabled.