Our products contain a number of components which can be used as building blocks of an Enterprise Service Bus (ESB) with JMS messaging backbone. The diagram below shows Hammurapi Group ESB componentry. Green components are already available and white ones are under construction.
Hammurapi Group ESB components

Enterprise Extensions

JMS Adapter

JMS Adapter can act as a service container or as an endpoint which abstracts client code from low-level JMS plumbing. See JMS Adapter for more details.

MessageProcessor

This class is the foundation of service components. It handles JMS connectivity, connection failure recovery, performance metrics collection and distribution of work to multiple threads. Subclasses shall implement processMessage() method. MessageProcessor connects to two destinations (queues or topics) - request and reply.

Adapter

This class inherits from Message processor. It connects to four destinations - front-end request/reply and back-end request/reply. Subclasses shall implement two abstract methods process processRequest() and processReply().

StylingXmlMessageProcessor

Processor for text messages with XML payload. This class optionally applies an XSL stylesheet to the payload before it is passed to processing. This implementation simply applies the stylesheet (if any) and sends transformed XML to the reply destination.

DomMessageProcessor

Request message, after styling, is parsed using DOM API. Subclasses shall implement processDocument(Document doc) method.

XmlBeansMessageProcessor

Request message, after styling, is bound to Java objects using XMLBeans. Subclasses shall implement process(XmlObject xmlObj) method.

Hammurapi Rules

RulesMessageProcessor

This processor uses JSR-94 compatible rules engine to inspect XML documents.

Argun

Argun is an ESB front-end. With the help of  the service registry and ESB adapter, Java classes can easily consume ESB services.

CompositeServiceProcessor

This is a service which executes XML definitions of composite services created in Argun Composite Service diagram editor.

Service registry

Service registry stores information about ESB services such as request and reply destination, binding type (e.g. Object message, XmlBeans, remoting), e.t.c