Listing 1
<!---
Name: getCFMXVersion.cfm
Author: Charlie Arehart
Version: 3/26/03
Published in the May 2003 CFDJ
--->
<h2>CF Version Analysis:</h2>
<cfscript>
versinfo = arraynew(1);
versinfo[1] = structnew();
versinfo[1].name = "the base version, with no updater";
versinfo[1].number = 48097;
versinfo[2] = structnew();
versinfo[2].name = "Updater 1";
versinfo[2].number = 52311;
versinfo[3] = structnew();
versinfo[3].name = "Updater 2";
versinfo[3].number = 55693;
versinfo[4] = structnew();
versinfo[4].name = "Updater 3";
versinfo[4].number = 58500;
curversion = listlast(Server.ColdFusion.ProductVersion);
</cfscript>
<cfoutput>
This server is running <b>#Server.ColdFusion.ProductName#, #server.coldfusion.ProductLevel#</b>
<p>
The current version number is <b>#Server.ColdFusion.ProductVersion#</b>
<cfif left(Server.ColdFusion.ProductVersion,5) is "6,0,0" >
which means it's running with
<cfif server.coldfusion.appserver is "j2ee" and curversion is 58096>
Updater 3 on ColdFusion MX for J2EE.
<cfelse>
<cfloop from="1" to="#arraylen(versinfo)#" index="i">
<cfif curversion eq versinfo[i].number>
<b>#versinfo[i].name#</b>.
<cfbreak>
<cfelseif curversion lt versinfo[i].number>
<b>patches not yet up to the final release of
#versinfo[i].name#</b>
<cfbreak>
<cfelseif i is arraylen(versinfo)>
a version <b>greater than the final release of
#versinfo[arraylen(versinfo)].name#</b>.
This tool has not been updated yet to recognize that
version number.
</cfif>
</cfloop>
</cfif>
<cfelse>
<!--- there were no updaters for CF 5 or before, so there's no
reason to try to report on them prior to CFMX, and this program
will not report on any version greater than CFMX (productversion > 6) --->
</cfif>
<p>
There are updaters for CFMX available at http://www.macromedia.com/software/
coldfusion/special/updater/faq/
</cfoutput>