Mach-II 1.5 Beta 1 is released and new website!
ColdFusionWell... all of the blood, sweat, and tears from the developers of Team Mach-II has paid off, with Peter, Kurt, and Matt going non-stop. Tonight, Mach-II 1.5 Beta is officially released and available for download from the brand spanking new website! Kyle Hays has done an absolutely spectacular job redesigning the project's home and there is now a blog incorporated as well so that the team well be able better communicate news about the project to the ColdFusion community at large.
So, why all the hype about Mach-II 1.5? Here is a list of the new features that are now available from the framework.
- XML includes
The Mach-II application is built around a common XML configuration file in which you can define Events, Filters, Plugins, Listeners and other components and specify how they work together to manage the flow of your application. In larger Mach-II applications, it is common for config files grow to several thousand lines, making them more difficult to maintain. With Mach-II 1.5, you can now break apart pieces of your main XML file into smaller XML documents and include them from the main configuration file using the new <include> tag.
- Modules (sub / peer applications)
Mach-II 1.5 ushers in a powerful new feature with the addition of Modules. Modules are stand-alone reusable sub-applications that you can plug into parent Mach-II applications, which then share the application scope of the parent. For example, if you have a common login application that you use throughout your application development, you can add that as a Module to an existing Mach-II application. With this feature, developers can easily create and share Modules for other developers to add to their own applications.
- Subroutines
Subroutines can be though of as a resusable block of configuration XML that you can define and then execute at various points in your Mach-II configuration file. If you have a series of listeners that are announced in multiple events, you may wish to create that series as a subroutine and include them where you need to with the new <execute/> tag in the configuration file.
- <redirect/> command enhancements
Until the release of Mach-II 1.5, the <redirect/> command has offered a way to perform a clientside redirect to a new URL by performing a <cflocation/> call under the covers. Due to the redirect being a clientside request, one challenge that has existed was the inability to copy complex arguments to the new event. With the new <redirect/> tag, you can add the attribute persist="true" which copies the current event arguments to the target event.
Additionally you can now define the status type of your redirect. By default, ColdFusion's <cflocation/> command does a 302 redirect ("moved temporary"). With the new redirect functionality you can specify the status type that you wish to return to the browser. For example you can set the statusType attribute to "Permanent", "Temporary" and "PRG" for post-redirect-get.
- Complex property datatypes
The release of Mach-II 1.5 also brings with it the ability to define complex data types as properties in your Mach-II configuration file. Until this release this was often managed through use of Plugins that existed only to set these properties. With 1.5, you can now define Properties in your XML of types Array, Structure, and even ColdFusion Components (CFCs) with the use of the new Property.cfc.
- URL management features
New to Mach-II with the 1.5 release is the ability to bind and manage URL formatting within the framework. With the new BuildUrl() and BuildUrlToModule() functions in the framework, the developer has the ability to format URLs in countless ways. This means no more having to use custom code outside the framework to apply SES URLs to your application.
- Bindable placeholder support
Another feature that is part of the Mach-II 1.5 release is the ability to have bindable placeholders. While Mach-II has long afforded the ability to define parameters to Plugins, Listeners, and Filters, the value had to be hardcoded in the XML which offered limited benefits. With 1.5, you can now define bindable parameters that can be assigned at runtime. For example a DSN parameter could be set like this: <parameter name="Dsn" value="${MyDsn}" /> where "MyDsn" is a Mach-II property.
- Other enhancements
Numerous other enhancements have also been added such as a more detailed Trace Plugin, optional "reinit" attribute for event-beans, enhancements to how defaultEvents and exceptionEvents are handled. Major performance enhancements have also been added in the initial loading of Mach-II applications, and several small bugs have been addressed.
With all these features it is important to note that none of these features came at the cost of backwards compatibility. As of the time of this blog posting, there has not been a single report of 1.5 breaking older Mach-II applications, and several large applications have been running on the 1.5 for the past few months.
What are you still doing here? Go download it now!





Loading....