Viewing Category:   [clear category selection]

(displaying entries 1 - 10)

New Documentation Available for BuildUrl(), SES URLs and <redirect> command


I just finished typing out a draft of the Mach-II URL Management Enhancements documentation.  It's a very rough draft at this point, but I hope it covers some of the questions that have been coming up on the Google Group.  If you're intested in learning how to use the new BuildUrl() method, SES URLs and the improvements to the <redirect> command, this is the documentation to read.

1 Comment  |  0 Trackbacks  |  Announcements, Mach-II 1.5  |  Send
Posted 10/18/07 @ 10:41 PM by Peter J. Farrell

Mach-II 1.5 Final Released


The Mach-II team and GreatBizTools, LLC are pleased to announce the final release of Mach-II Version 1.5. Mach-II 1.5 has been available as a beta for several months, and as a release candidate since August 14, 2007. Numerous large-scale applications have been running on Mach-II 1.5 since its beta release and given the feedback we have received from beta users, we are confident that Mach-II 1.5 is ready for production use in all Mach-II applications.

Download Mach-II Version 1.5

Backwards Compatibility

Mach-II 1.5 is fully backwards-compatible with earlier versions of Mach-II. We have not received any reports of compatibility issues with existing Mach-II applications running on versions of Mach-II 1.5.

New Features

Mach-II 1.5 has numerous new features that are summarized below. For additional information on these features, please see "What's New in Mach-II 1.5: A Quick Start for Current Mach-II Developers."

  • XML Includes
    • Mach-II 1.5 now allows the inclusion of additional XML files in the main mach-ii.xml configuration file. This is accomplished through a simple <include> directive in the XML file.
  • Modules
    • Modules can be used to create sub- and peer-applications, or to easily integrate third-party functionality within Mach-II applications.
  • Subroutines
    • Subroutines allow for inline, immediate execution of "snippets" of XML. This allows for more granular reuse of and reduces redundancy in the XML, and is extremely handy for things such as executing layouts that previously required a new event announcement.
  • New Mach-II Property Datatype Support
    • Mach-II 1.5 introduces the ability to declare structs and arrays as properties in the mach-ii.xml configuration file.
    • Mach-II 1.5 introduces support for using CFCs as Mach-II properties through the new Property.cfc framework object, which previously required the use of the configure() method in a plugin to ensure the CFCs were placed in the Mach-II property manager when the application initialized.
  • <event-bean> Command Enhancements
    • New optional reinit parameter allows for reinitialization of beans as opposed to pulling a populated bean from the event object. This is useful in error situations when, for example, you want to use an empty bean on the initial load of a form page, but if validation fails on the server side, you want to repopulate the form with the data contained in the bean that was populated by the event-bean command.
  • <redirect> Command Enhancements
    • The <redirect> command now supports the persistence of complex objects across redirects, which previously required the use of a filter/plugin combination.
    • The <redirect> command now supports HTTP statuses 301 (moved permanently) and 303 (post redirect get, a.k.a. "PRG") in addition to 302 (moved temporarily). HTTP status 302 was previously the only status announced with the <redirect> command because this is the default behavior for <cflocation>.
  • New URL Management Features
    • Mach-II 1.5 introduces two new methods, BuildUrl() and BuildUrlToModule(), that allow for highly configurable control over URL formatting. These methods make the syntax for URLs within Mach-II applications much more compact, and also enable the creation of SES/friendly URLs
  • Bindable Property Placeholder Support with Parameters
    • Dynamic properties can be bound to specific values in the XML configuration file through the use of common data binding syntax, e.g. {$property}. One example of the use of bindable properties is in the deployment of an application to different servers that require server-specific parameters, such as when running an application on development, staging, and production servers.
  • Numerous bug fixes and other enhancements.
    • Improved initial application load time by approximately 10%.
    • Enhanced TracePlugin functionality.
    • See changelog in the framework core download for additional information on bug fixes.

Resources

To learn more about Mach-II 1.5, please refer to the following resources:

0 Trackbacks  |  Announcements, Mach-II 1.5  |  Send
Posted 10/8/07 @ 5:40 AM by Matt Woodward

Nightly Builds and Duck Typing


I've been on an ANT kick lately and tonight I decided to whip up a build file for Mach-II.  A couple things came of this...

  1. The ability to do nightly builds of the framework for everybody that does not want to use a bleeding edge release from SVN.  While they probably won't be nightly at the moment, the latest nightly builds can be found at http://www.mach-ii.com/nightly/
  2. The ability to create duck typed cores of the framework for production systems.  The ANT build file right now has a 'buildDuckTyped' target which will create a duck typed build for you by regexing the right stuff out of a typed core.  When Mach-II 1.5 goes stable, I suspect we will offer a duck typed core.  I haven't checked on what the speed improvments would be, but I would be curious for those who do load testing extensively.  Let us know if you want to do this testing for us.
  3. I've also been experimenting with Selenium Remote Control (UI functional testing) in addition to CFCUnit at my day job.  We have test harness application and I would like to create Selenium tests that would verify all of the test cases we have created.  There are many things that are easier to test by running a request through CF and much easier than creating CFCUnit test cases for the framework (anybody want to do this?).  So I can see use moving toward better testing of the framework through Selenium and CFCUnit when we start working on Mach-II 1.6.
0 Comments  |  0 Trackbacks  |  Announcements, Mach-II 1.5  |  Send
Posted 9/24/07 @ 8:26 PM by Peter J. Farrell

Relative Paths for Include and Module Config Files


For the sake of it being a Monday, I thought I would post a short entry about the new relative path support for include and module configuration files in Mach-II 1.5 (available in RC1).  Yes, you heard it right - relative paths.  We added this support to make integration with third-party modules (such as MachBlog) easier.

Everybody knows the '../' (move up a directory) and ./' (same directory) syntax from HTML and *nix.  Our relative path notation for Mach-II uses the same syntax. I want to stress that all relative paths are relative from the configuration file that defines the path to the other configuration file - not relative to your webroot. For example, if you have a config file named mach-ii.xml in a directory named /appRoot/config/ and you want to include another config file that is located in the same directory as your mach-ii.xml file, it would look like this:

<include file="./other-mach-ii.xml"/>

However, you cannot just use "other-mach-ii.xml" as the path since ColdFusion's expandPath will try to expand from the webroot.  You must start a relative path with the './' or '../' syntax - which indicates to Mach-II that you are using a relativat path.

Keeping in the same style, if you have your mach-ii.xml file in the /appRoot/config/ and you want to define a module that lives in /appRoot/modules/machblog/config/mach-ii.xml, it would look like this:

<module name="blog" file="../modules/machblog/config/mach-ii.xml"/>

The example above uses the '../' syntax to move up a directory (from the /appRoot/config/), into the /appRoot directory and then in the directory path specified.  Simple!

0 Comments  |  0 Trackbacks  |  Mach-II 1.5  |  Send
Posted 8/20/07 @ 8:03 AM by Peter J. Farrell

Mach-II 1.5 RC1 Released


The Mach II team is proud to announce that Mach II 1.5 has reached release candidate status. Several enhancements and bug fixes have made it into RC1. The biggest change is that you can now use relative paths when using either the new include feature or when referencing a module include file. The plan is to have folks play around, I mean test out, RC1 in anticipation of a final release before MAX in October.

Download Mach-II Version 1.5 RC1

The Mach II team has also been working on Mach II 1.6. We have been working on a proof of concept for a new caching feature as well as a dashboard to make managing the the new cache and selectively reloading parts of your application easier. As you can see our goal with 1.6 is provide some of the most requested features by the Mach II community. The team has also started to brainstorm for 2.0 which we think will have some very exciting features that 1.5 and 1.6 will have laid the ground work for.

3 Comments  |  0 Trackbacks  |  Announcements, Mach-II 1.5  |  Send
Posted 8/14/07 @ 2:00 AM by Kurt Wiersma

CFC Documentation for Mach-II Now Available!


In our efforts to make the Mach-II framework even more accessible to developers, we have now published documentation for all CFCs that make up framework using the CFC.Doc tool created by Phil Cruz.  Using this tool, we have generated "Javadoc" style API documentation for the Mach-II 1.5 Beta1 release.  We would like to extend a big thank you to Phil for donating a license to the Mach-II project.  Take a look (and bookmark!) the docs:

Mach-II 1.5 Beta 1

Mach-II 1.1.1 Stable

1 Comment  |  0 Trackbacks  |  Announcements, Mach-II 1.5  |  Send
Posted 7/20/07 @ 2:00 PM by Dave Shuck

We Need Your Feedback on the 1.5 Beta 1


Now that many of you have had the Mach-II 1.5 Beta release in your hands for a while, we would like to hear  about your experience.

  • What new features have you found most beneficial?
  • How has 1.5 worked for you in your existing applications that you have upgraded?
  • Have you seen any positives or negatives?

If you have feedback that you would like to share, please contact us at info@mach-ii.com or feel free to share your experiences as a comment on this blog post.

0 Comments  |  0 Trackbacks  |  Mach-II 1.5  |  Send
Posted 7/18/07 @ 8:30 AM by Dave Shuck

Core Changes Since 1.5 Beta 1 Release


I wanted to blog about a few of the changes to the repository trunk since the we released the zip of beta 1:

  • Bug fixes to the methods driving buildUrl() and buildUrlToModule() - thanks to Alexander Grüneberg for pointing the bug out
  • Bug fix to SES urls when the cgi.path_info contains list nulls which is ignored by ColdFusion list functions
  • Removed BuildUrl(), BuildUrlToModule and savePersistEventData() methods from EventContext as they should not have been in there in the first place and can be accessed in better ways

We're also working on a solution to using '|' as a delimiter for the BuildUrl()'s url parameter list as brought on the Google Group by Tony Petruzzi last week.

Lastly, we've been working on CFC documentation and we'll have something for you soon.

0 Comments  |  0 Trackbacks  |  Mach-II 1.5  |  Send
Posted 7/14/07 @ 4:30 AM by Peter J. Farrell

Mach-II 1.5 - List of Officially Deprecated Elements


In Mach-II 1.5, we wanted to remind everyone about the elements that are officially deprecated.  Please take this list seriously as we plan to remove all of the elements in this list in Mach-II 2.0.  Unlike in Java, where elements remain in the virtual machine despite being deprecated many years ago, the items in this list will go away in Mach-II 2.0.

Read more to check out what is going  to removed from the framework core in Mach-II 2.0 which is slated for alpha release end of Q1 or early Q2 2008.

1 Comment  |  0 Trackbacks  |  Mach-II 1.5  |  Send
Posted 7/5/07 @ 5:10 PM by Peter J. Farrell

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  |  0 Trackbacks  |  Mach-II 1.5  |  Send
Posted 7/2/07 @ 5:00 AM by Kurt Wiersma
 

next >