About
The official blog of Team Mach-II and is the best place to stay up to date on all things Mach-II.
Blog Search
More Details On 1.5 Beta 1
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 with support for only outputting when a user has debugging enabled, 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.
4 Comments
|
1 Trackback
|
Mach-II 1.5 |
Send
Posted 7/2/07
@ 5:00 AM by Kurt Wiersma
Comments
Thanks Kurt. This gives a good overview I can provide upper management with. They are concerned about stability, while with these points I can make the case for productivity.
Posted by Sami Hoda at 7/2/07 1:00 PM
In regards to stability, 1.5 BER has been running a few of my client's websites since the beginning of the year. Most notably is www.greatbiztools.com which uses all the new features extensively. So far, no errors from Mach-II -- we've only received emails from our exception service about errors in our model. Then again, since Kurt and I wrote all of the new stuff, I'm very comfortable running a BER on a production server.
Posted by Peter J. Farrell at 7/2/07 1:14 PM
Special thanks go to Dave Shuck for writing this up. I just happened to post it to the blog while at CFUnited. :)
Posted by Kurt Wiersma at 7/2/07 1:23 PM
I'm definitely working towards getting the beta into prod... We also capture errors so I can report back. But the benefits here definitely outweigh any risks I perceive at this point. I trust Peter having worked with him. :D And we have pretty good QA to test to make sure nothing happens out of the ordinary. I'll keep you guys updated.
Posted by Sami Hoda at 7/2/07 1:56 PM
