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.