Getting sick of all these 0.x minor releases of SwitchYard?  Well good news ... we're getting all major up in here with a 1.0.0.Final release!  Truth be told, the bits have been available for weeks now, but we spent some quality time with the tooling and documentation after the runtime was done to make sure 1.0 was done right.


What is SwitchYard?

SwitchYard is a structured framework for developing integration applications using the design principles and best practices of Service Oriented Architecture.  It integrates really well with Apache Camel and JBoss Application Server, providing a runtime based on the best open source integration and application server options out there.  A slightly longer description can be found here.


What's in 1.0?

This was a monster release for the team, with 184 total issues resolved for 1.0.  Here are the most important updates for 1.0:

  • The project has changed from LGPL to the Apache License v2.0.
  • Camel components not distributed directly with the project can now be added as extension modules to the SwitchYard subsystem, allowing any Camel component, data format, etc. to be added to SwitchYard easily.
  • Camel routing services can now configure multiple routes per service.  This allows complex routing logic to be broken up into separate routes and also makes our XML routes play nicely with the Fuse Camel editor.
  • HTTP-based gateways (REST, SOAP, HTTP) added support for proxy configuration, basic authentication, and NTLM.
  • All gateways have been updated to include support for starting and stopping individual bindings.  This allows you to stop/restart processing on a given endpoint from our admin clients.
  • The SOAP Gateway now supports MTOM, SOAP w/ Attachments, and WS-Addressing.
  • Generating Java interfaces from WSDL is now supported in the visual editor for all the folks that like to design top-down.
  • The JCA gateway has been tested and documented for use with ActiveMQ for message inflow and outbound.
  • The SwitchYard admin API has been updated to include JMX support.
  • Multi-step transformation is now supported, so if you don't have a transformer to go from A -> C, but you have A -> B and B -> C, then we can get the job done.
  • BPM services now support customizable correlation keys so you don't have to pass the process instance id back into the process with each subsequent request.
  • Service throttling is now supported to govern throughput for any service.
  • We went through the public API with a fine-tooth comb to make it nice and clean.  There will be no backward incompatible changes made to APIs or configuration for 1.x.
  • Our tooling gets more beautiful with each release, and this one is no exception. 
  • An EAR deployment example has been added to our quickstarts and is now tested as part of our release test suite.
  • If you don't want to put clear text passwords in your switchyard.xml, you can use our properties support in combination with the AS 7 password vault to protect that sensitive info.
  • Security can now be configured on a global or per-service basis with the addition of named security configs to switchyard.xml.


A list of all the issues that went into 1.0 can be found in JIRA.


Where Do I Get This Goodness?

The SwitchYard Downloads page has all the SwitchYard bits and pieces.  I highly recommend following the Installation Guide to install the runtime and tooling.  The guides are short, moderately useful, and 67% free of spelling and grammatical errors.


How Do I Learn More?