Version 4


    Thanks for stopping by to check out SwitchYard.  This article provides a brief summary of what's inside SwitchYard 0.5.  If you are completely new to SwitchYard and wondering what it is, this blog post provides some good background and pointers to additional information.


    Getting Started

    There a number of options for checking out what SwitchYard has to offer.  Listed in order of increasing time investment:

    Feature Highlights

    You can find a summary of the new features in the 0.5 release below.  For complete information on all SwitchYard features, check out the docs.

    Visual Application Editor

    The team has invested a huge amount of effort during 0.5 to enhance our Eclipse-based tooling centered around a visual model for your application.  Here's a peak at what the new editor looks like:





    There are two objectives with this new tooling:


    1. Provide a visual representation of a service-oriented application.  Integration and SOA apps can get quite sophisticated and it's easy to lose sight of the composition of your application without a visualization.  To demonstrate, we have updated the README files for our quickstarts to include a pic from the editor to help users quickly understand the composition of the application.  Here's an example from the orders demo README.
    2. Streamline the development process by making it quick and easy to create service-oriented applications from a visual representation.  Don't mistake this for a modeling tool alone.  When you create the composition and wiring on the canvas, we are generating service implementations, bindings, etc. under the hood so you can kickstart your development.  There are additional time savers like creating a unit test directly from a service interface, generating a WSDL from a Java-based service contract, and creating declarative data transformations using types defined in your application.


    Bottom line is that this tooling rocks and it will change your life for the better.  Installation is easy in JBDS or Eclipse, just follow these simple instructions.  Once that's done, follow this step-by-step guide for creating your first application.  If you're looking for a quick fix, here's a video that shows it in action.

    Security Policy

    We introduced a generic policy framework and support for transaction policy declarations back in 0.3.  In 0.5, we have added the ability to configure security policy using the same mechanism.  This allows you to specify that confidentiality and/or authentication are required on a service without specifying the details of how they are actually provided.  You can express security policy in Java:


    @Requires(security = SecurityPolicy.CONFIDENTIALITY)
    public class WorkServiceBean implements WorkService


    Or directly via our config model in cases like rules, BPM processes, Camel routes, etc. :


    <service name="WorkService" requires="confidentiality">
       < interface=""/>


    Next up is PicketLink integration, which will dial security policy up to 11.


    You can see this feature in action in the policy-security quickstart.   More detail can be found in the Policy section of the docs.

    Gateways Galore!

    At the end of our 0.4 release, there were a number of protocol options in JBoss ESB that were not present in SwitchYard.  We have shut that door in 0.5 by adding quite a few new gateways.  Keep in mind that gateways are bi-directional in SwitchYard, so you can use these protocols (in addition to the existing gateways) to expose a service to remote consumers or a consume a remote service from inside your application.



    JBoss WS Integration

    The SOAP Gateway has been based on JAX-WS since SwitchYard 0.1, which makes it quite flexibile in terms of prospective runtime environment : standalone, embedded, JBoss AS 7, OpenShift, etc.  The one drawback w/r/t AS 7 has been that our strict reliance on JAX-WS SPIs has meant that web services in SwitchYard required a distinct port from the HTTP listeners defined in AS 7 (8080, ...).  We now have a hook which registers directly with JBoss WS when deployed in AS 7 so that your SY-based SOAP endpoints can run on the same port as the rest of your web services.  This also means you can use the standard management and configuration support in AS 7 for those HTTP ports.  Integrated *and* independent - it's the best of both worlds!


    MVEL Expressions for Variable Mapping

    You can now use MVEL expressions to map data into variables for the BPM or Rules components, rooted from either the SwitchYard Exchange, Context or Message objects.

    • In the BPM Component, both process parameters and process results can be mapped via annotations or XML. Details can be found in the "Mapping Parameter/Result Variables" section of the BPM Services docs.
    • In the Rules Component, global variables can be mapped via annotations or XML. Details can be found in the "Mapping Global Variables" section of the Rules Services docs.


    Forge Bump

    The new Eclipse stuff isn't the only thing happening on the tools front.  We finally managed to move our Forge plugins to 1.0.x support in Forge, which gives users the option of using a Final version of Forge tooling for SwitchYard.  1.0.2.Final is the version we test with, but I've heard from folks that 1.0.5.Final works A-OK too.  Forge and Eclipse (with JBoss Tools) play incredibly well together and SwitchYard works across the spectrum.  Give it a shot!