The other overdue blog post on my Things to-do list covers what it was like to be a sponsor at CFUnited. A first for me (sort of). I've been attending (and speaking) at CFUnited since it was CFUN'04 (when I covered the use of Mach-II at Macromedia). Sure, Macromedia and Adobe have been regular sponsors but that is the ColdFusion product team and I was going independently as part of another team - the joys of a big company - so I never felt I was a sponsor (I never worked for the ColdFusion product team - even tho' a lot of people seem to think I did!). This year - 2009 - Railo was a silver sponsor of CFUnited and so I spent quite a bit of time around the Railo "booth" talking to attendees.
CFML2009 is intended to be a specification of what the language should be by the end of this year. Ben Forta just posted about some CFML enhancements coming soon in ColdFusion 9 but he didn't mention that many of these will be embodied in the CFML2009 spec.
I figured it was worth looking at some of the items in his blog post through the lens of the Advisory Committee. Where these features are deemed "core" by the Advisory Committee, expect all CFML engines to provide them fairly quickly. Some features are supported already by one or more vendor, some are new to all three vendors.
First off, you can always check out the CFML Advisory Committee website. We're updating it as we finalize our decisions but it can be a slow process since this is the first time any group has tried to agree on a specification for the ColdFusion Markup Language.
Over the last few weeks, the committee has been pretty active...
I've been using ColdFusion since 2001, back when I worked at Macromedia and my team of Java and C++ developers first encountered CFML in the form of very early builds of what went on to become CFMX (6.0). We were pretty skeptical at first.
With ColdFusion in multiserver configuration, you have:
Download the Railo 3.0.2 WAR file (at the bottom of the downloads page) and unpack the WAR file to a directory called railo-war. You can use jar xvf or rename the .war to .zip and just unzip it. Your railo-war/ directory should now contain WEB-INF/, index.cfm and License.txt.
Now move that railo-war/ directory into the cfusion-ear/ directory mentioned above (so it's next to the cfusion-war/ directory.
Finally, edit that application.xml file and copy the <module> definition for cfusion-war and change it to say railo-war for the web-uri and /railo for the context-root.
Start ColdFusion and you'll see it starts both application servers. http://localhost/index.cfm is Adobe ColdFusion and http://localhost/railo/index.cfm is Railo CFML.
If you write frameworks (like I do), this makes it easier to test across multiple engines.
I'll probably stick Open BlueDragon 1.0.1 in there next.
The same process works for the OpenBD WAR file.
Caveats:
1. For OpenBD, I had to add an Apache alias for /openbd to match the location of the exploded WAR so that images loaded correctly (in the shiny new OpenBD Administrator - nice job guys!).
2. For both Railo and OpenBD, I experienced some problems with xmlParse() - OpenBD in particular said "The configured XML parser does not support JAXP 1.3."
The solution to the second problem was to add the following to java.args in jvm.config:
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
Broadchoice Workspace is deployed on the cloud and whilst most of the machinery is Java/Groovy behind the Flex/AIR application, we also have the iPhone-compatible web version which is powered by CFML. It's a Model-Glue 3 / ColdSpring application that reuses the core Groovy services (via a Spring adapter that Joe Rinehart wrote).
So we've been running CFML in the cloud in production for nearly two months now and it's working out really well for us. We're using Railo 3.0, another option for cloud computing.
Adobe have said that cloud deployment is something they want to make possible with ColdFusion so at some point we'll have an embarrassment of riches in terms of choices for CFML in the cloud.
Who else is using CFML in the cloud today? Who is thinking about doing so?
I had expressed concerns about the CF community's negative feelings for New Atlanta affecting the perception of Open BlueDragon but Alan doesn't care about that because, well, Alan doesn't really care about the CF community. He cares about CFML and he cares about BlueDragon and OpenBD. But he has his sights set on the Java community - his "old neighborhood" - and views the people there as the "real rock stars". He's "sick and tired of hearing about the 'CF community'". He feels the "so called 'rock stars' within the CF community are just a lot of empty vessels".
I'm disappointed. I really hoped OpenBD was a fresh start and a clean break from New Atlanta (and it is - Alan was very emphatic that New Atlanta have had no influence over OpenBD and that it's driven entirely by TagServlet Ltd and the steering committee). But in light of Alan's feelings about the CF community, I feel I have no option but to step away from the project.
Vince Bonfanti just announced New Atlanta's "new ColdFusion-to-.NET and ColdFusion-to-Java migration services." and goes on to say "As experts in ColdFusion, ASP.NET, and Java technologies, New Atlanta is uniquely positioned to assist organizations that want to migrate their ColdFusion applications to either the ASP.NET or Java EE web application platforms."
Vince has said in the past that he sees BlueDragon.NET as a migration path from CFML to .NET so this isn't entirely surprising. His blog now has a sidebar that consolidates links to posts he's made in the past three years on this topic (the posts span July 2005 to January 2008 so they're not exactly "news").
It's clear that Vince and New Atlanta are going in a very different direction to Open BlueDragon. Vince is not involved with OpenBD and it is TagServlet, not New Atlanta, who are behind the open source project.
ColdFusion continues to thrive under Adobe's leadership - the hints around Centaur suggest that it will be a mind-blowing release. Open BlueDragon is available now for download - in several ready-2-run formats, as a simple WAR or even in source code form for you to use for free in pretty much any way you want. And at Scotch on the Rocks, Railo announced their partnership with Red Hat to move the Railo CFML engine to jboss.org as an open source project which should extend the reach of CFML into the Java community.
It's never been a better time to be a CF developer - more choices, more advances.
I'm hoping to get back to working on OpenBD more seriously over the next few weeks and several of the steering committee will be at Scotch on the Rocks next week.
Why freenode instead of dal.net (home of #coldfusion etc)?
Well, freenode is home to #ruby, #rubyonrails, #groovy as well as all the Smalltalk and Haskell channels. Given the nature of OpenBD, it seemed more appropriate to put the channels on freenode.
In src/com/naryx/tagfusion/cfm/engine/cfEngine.java, around line 607 at the start of setTempDirectory(), you'll see:
if (tempPath != null) {
tempDirectory = getResolvedFile(tempPath);
}
Hit http://localhost:8080/openbd/ (or whatever you set the context root to) and you should be rewarded with the BlueDragon CFML Test Page!
This post assumes you are carefully following the docs/BuildingDebugging.txt instructions (in the OpenBD source download).
First off, Java on Mac OS X does not have a tools.jar file so you can ignore the step in the OpenBD instructions about setting up the JDK_15_TOOLS class path variable (tools.jar is incorporated directly into the base JDK install on a Mac).
Second, when you import the OpenBD source project, it almost certainly won't let you attach it to a J2EE server (using the Servers view in Eclipse 3.3). This is because it does not have the correct project facets. Right click on your OpenBD project, select Properties, select Project Facets and then Modify Project... Add Java and Dynamic Web Module. Click Finish and then OK. Now you should be able to add the OpenBD project to your chosen server.
You may have duplicate libraries at this point (Vince did and I did but that may be due to attempting to build it without setting up the facets properly). Right click on your OpenBD project, select Properties, select Java Build Path and look at the Libraries tab - if you have duplicates, you'll get a red error message at the top, and you just need to delete the duplicates.
At that point, you'll need one source code change to get it to run. I'll cover that in a separate post.
Don't forget that cf.Objective() 2008 is the first place to get your hands on Open BlueDragon where Vince will launch the project to the public and a number of the OpenBD Steering Committee members will be present to answer your questions.
We've worked hard to make cf.Objective() 2008 a "must see" event. We have a number of firsts this year that we're very proud of:
- The public release of Open BlueDragon on May 3rd!
- The public unveiling - and Alpha - of Model-Glue 3: Gesture!
- The public unveiling of Mate, the new Flex framework from AsFusion!
- The first conference to feature the latest rising star in the frameworks world: ColdBox - with an introductory session and a two hour, hands-on advanced workshop!
- The first public information about Swiz, the new Flex framework from Chris Scott of ColdSpring fame!
- Speaking of Chris Scott, we're the first conference to feature a two-hour, hands-on workshop for ColdSpring!
- We're also the first conference to feature a two-hour, hands-on workshop on agile development for ColdFusion developers by the leading light in automated process & testing, John Paul Ashenfelter!
If you're a Mach-II user - or thinking of using Mach-II - you might also be interested in the pre-conference classes.
The release date for BlueDragon Open Source is May 3rd at cf.Objective(). Register for cf.Objective() and be one of the first to see the project "in the flesh"! Come along to the BOF and ask Vince all about the whys and wherefores of the project and New Atlanta's decision to go open source (assuming Dan's interview doesn't answer your questions).
Alan Williamson has also posted about the steering committee and the process for getting involved.
New Atlanta are working hard to make an initial source code drop available, especially for cf.Objective(), so that Vince can show how to download, install, build and configure the project - and field questions about New Atlanta's thinking behind open sourcing the J2EE edition of BlueDragon, as well as discussing with the community how the project can move forward, how the license works, how the steering committee operates and so on.
If you're excited about New Atlanta's recent announcement - or even just curious about how such a large open source project might work for the CF community - be sure to attend this Birds of a Feather session on Saturday evening at 7:30pm. The schedule shows it running an hour but I expect this will need more than an hour so I currently plan to keep the 8:30pm slot open immediately afterward to allow for an extended Q&A session.
Vince points folks to the new Open Source forum on the New Atlanta website which has a lot of good information about the details of dual licensing, the expected process for contributions and so on.
I strongly encourage folks to read Vince's post and then read all the threads in the forum.


