What's new in Swordfish (0.9.1)

Here are some of the more interesting and significant features of Swordfish for the 3.5 release of Eclipse, grouped into:


Swordfish Runtime


Swordfish SOA Runtime Framework

The goal of the Swordfish project is to provide an extensible SOA runtime framework based on the proven Eclipse Equinox runtime technology. The Swordfish framework includes these components:

  • a service registry
  • a messaging system
  • APIs

Together, these components form a comprehensive open source SOA runtime environment based on both established and emerging open standards.

Swordfish ESB


Build Your Own ESB Swordfish's distributed ESB is based on Apache ServiceMix 4.0 and Apache CXF. Application developers and system integrators alike can extend and customize this ESB. To help users do this, Swordfish provides an easily extensible framework and Enterprise-grade plug-ins.

Build ESB


Service Registry One of the most important features in Swordfish is its Service Registry. Swordfish Service Registry provides a comprehensive overview of the services that exist within an SOA and fosters service re-use.

Dynamically Bound Services In Swordfish the relationship between service provider and consumer is not static. Instead, service consumers and providers are dynamically bound at runtime. This is facilitated by Swordfish's Policy Based ServiceResolver plug-in.

Policy Based Messaging The Service Registry matches a provider to a particular service consumer request. It then calculates a policy that governs all future communication between this provider and consumer; consumers and providers are now loosely coupled, which means that non-functional characteristics can be easily changed without altering the business code.

Swordfish APIs The Swordfish framework currently provides four APIs for custom implementations:
  • General Interceptor
  • Service Resolver
  • Event
  • Configuration
General Interceptor API
Swordfish hooks into the Normalized Message Router in Servicemix, intercepts all messages flowing back and forth and feeds them into a dynamically built interceptor chain. The Interceptors in that chain can do (almost) anything with a message: read and modify payload, read and modify properties, or re-route the message.
Service Resolver API
Swordfish Service Resolver API builds upon the general interceptor API. It is a special kind of interceptor that is provided as part of the Swordfish core; ServiceResolverInterceptor translates the (logical) service interface name carried inside a message exchange into a physical endpoint address where the message exchange is ultimately dispatched.
Event API
The Swordfish Event system is the basis of Swordfish's monitoring capabilities. The Event API builds upon the OSGi EventAdmin Service. Swordfish core generates events of type, TrackingEvent for each MessageExchange flowing through the NMR.Other pre-defined event types include OperationEvent and ConfigurationEvent.
Configuration API
The Configuration API builds upon the OSGi ConfigurationAdmin service. A ConfigurationAgent receives configurations from a ConfigurationSource (possibly, a remote one) and provides them to other components through the OSGi ConfigurationAdmin service. A component that implements ConfigurationConsumer receives updated configurations as they become available.

Swordfish Tooling


Swordfish Target Platform

A template for the Swordfish target platform along with Swordfish runtime is now available. Using this template to create a new target definition, is the first step in using Swordfish.

Swordfish Target Platform


Wizard to Create a Simple Service

Creating a JAX-WS service is very simple using the Swordfish menu. Clicking File > New > Project... > Swordfish > JAX-WS Service from Java starts the process.

Create a simple JAX-WS Service


Wizard to Create a JAX-WS Service Using "WSDL First" Approach

The Swordfish menu helps to create a JAX-WS Service Provider or Consumer based on WSDL. Using the "WSDL First" approach, right-click the WSDL in your workspace and click Import.... Click Swordfish > JAX-WS Service Provider from WSDL or Swordfish > JAX-WS Service Consumer from WSDL.

Create a JAX-WS Service Provider based on WSDL


Interaction with Swordfish Service Registry

Uploading a WSDL to Swordfish Service Registry has been made easy using a Swordfish context menu item Upload to Service Registry.

Upload to Swordfish SR

You can configure the URL to Swordfish Service Registry by clicking Windows > Preferences > Swordfish > Service Registry.

Upload to Swordfish SR


Swordfish Cheat Sheet

The Swordfish composite cheat sheet helps the user through various steps to configure Eclipse for the Swordfish target platform. It also helps to perform additional steps like working with a simple JAX-WS service and creating a JAX-WS service provider based on WSDL.

The individual steps consist of commands and wizards that can be launched automatically from the cheat sheet.

Swordfish Cheat Sheet