Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Using the JMS Binding Component
Connecting applications using JMS
Copyright © 2013 Red Hat, Inc. and/or its affiliates.
Abstract
Chapter 1. Introduction to the Red Hat JBoss Fuse JMS Binding Component Copy linkLink copied to clipboard!
Abstract
Overview Copy linkLink copied to clipboard!
- Consumer Endpoints
- A Consumer endpoint's primary roll is to listen for messages on an external JMS destination and pass them into to the NMR for delivery to endpoints inside of the Red Hat JBoss Fuse container. Consumer endpoints can send responses if one is required.
- Provider Endpoints
- A Provider endpoint's primary roll is to take messages from the NMR and send them to an external JMS destination.
xbean.xml file. There are some instances where you will need to develop your own Java classes to supplement the basic functionality provided by the binding components default implementations. These cases are discussed at the end of this guide.
Key features Copy linkLink copied to clipboard!
- Support for JMS 1.0.2 and JMS 1.1
- JMS transactions
- XA transactions
- Support of all MEP patterns
- SOAP support
- MIME support
- Customizable message marshaling
Contents of a JMS service unit Copy linkLink copied to clipboard!
xbean.xml- The
xbean.xmlfile contains the XML configuration for the endpoint defined by the service unit. The contents of this file are the focus of this guide.NoteThe service unit can define more than one endpoint. meta-inf/jbi.xml- The
jbi.xmlfile is the JBI descriptor for the service unit. Example 1.1, “JBI Descriptor for a JMS Service Unit” shows a JBI descriptor for a JMS service unit.Example 1.1. JBI Descriptor for a JMS Service Unit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The elements shown in Example 1.1, “JBI Descriptor for a JMS Service Unit” do the following:- 1
- The
serviceelement is the root element of all service unit descriptors. The value of thebinding-componentattribute is alwaysfalse. - 2
- The
serviceelement contains namespace references for all of the namespaces defined in thexbean.xmlfile'sbeanelement. - 3
- The
provideselement corresponds to a JMS provider endpoint. Theservice-nameattribute derives its value from theserviceattribute in the JMS provider's configuration.NoteThis attribute can also appear on aconsumeselement. - 4
- The
endpoint-nameattribute derives its value from theendpointattribute in the JMS provider's configuration.NoteThis attribute can also appear on aconsumeselement. - 5
- The
consumeselement corresponds to a JMS consumer endpoint. Theinterface-nameattribute derives its value from theinterfaceNameattribute in the JMS consumer's configuration.NoteThis attribute can also appear on aprovideselement.
Using the Maven JBI tooling Copy linkLink copied to clipboard!
- servicemix-jms-consumer-endpoint
- The servicemix-jms-consumer-endpoint archetype creates a project that results in a service unit that configures a JMS consumer endpoint.TipYou can use the smx-arch command to in place of typing the entire Maven command.
smx-arch su jms-consumer ["-DgroupId=my.group.id"] ["-DartifactId=my.artifact.id"]
smx-arch su jms-consumer ["-DgroupId=my.group.id"] ["-DartifactId=my.artifact.id"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - servicemix-jms-provider-endpoint
- The servicemix-jms-provider-endpoint archetype creates a project that results in a service unit that configures a JMS provider endpoint.TipYou can use the smx-arch command to in place of typing the entire Maven command.
smx-arch su jms-provider ["-DgroupId=my.group.id"] ["-DartifactId=my.artifact.id"]
smx-arch su jms-provider ["-DgroupId=my.group.id"] ["-DartifactId=my.artifact.id"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- a
pom.xmlfile containing the metadata needed to generate and package the service unit - a
src/main/resources/xbean.xmlfile containing the configuration for the endpointImportantThe endpoint configuration generated by the archetype is for the deprecated JMS endpoints. While this configuration will work, it is not recommended for new projects and is not covered in this guide.
java folder to the generated src folder. You also need to modify the generated pom.xml file to compile the code and package it with the service unit.
OSGi Packaging Copy linkLink copied to clipboard!
- include an OSGi bundle manifest in the
META-INFfolder of the bundle - add the following to your service unit's configuration file:
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Namespace Copy linkLink copied to clipboard!
http://servicemix.apache.org/jms/1.0 namespace. You will need to add a namespace declaration similar to the one in Example 1.2, “Namespace Declaration for Using JMS Endpoints” to your xbeans.xml file's beans element.
Example 1.2. Namespace Declaration for Using JMS Endpoints
<beans ...
xmlns:jms="http://servicemix.apache.org/jms/1.0"
... >
...
</beans>
<beans ...
xmlns:jms="http://servicemix.apache.org/jms/1.0"
... >
...
</beans>
beans element's xsi:schemaLocation as shown in Example 1.3, “Schema Location for Using JMS Endpoints”.
Example 1.3. Schema Location for Using JMS Endpoints
Chapter 2. Configuring the Connection Factory Copy linkLink copied to clipboard!
Abstract
ConnectionFactory object to create connections to the broker. The ConnectionFactory object is a JMS object that is provided along with the JMS broker. Each JMS provider has a unique ConnectionFactory object that uses properties specific to a particular JMS implementation.
ConnectionFactory object. Often the ConnectionFactory object is looked up through JNDI. However, the information needed depends on the JMS provider you are using.
ConnectionFactory objects for each of these platforms.
2.1. Using Apache ActiveMQ Connection Factories Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
InstallDir\lib folder.
Namespace Copy linkLink copied to clipboard!
beans element:
xmlns:amqpool="http://jencks.org/amqpool/2.0"
xmlns:amqpool="http://jencks.org/amqpool/2.0"
Simple pool Copy linkLink copied to clipboard!
amqpool:pool element. The attributes used to configure the simple pooled connection factory are described in Table 2.1, “Attributes for Configuring the Simple AMQPool Connection Factory”.
Example 2.1. Configuring a Simple AMQPool Connection Factory
XA pool Copy linkLink copied to clipboard!
amqpool:xa-pool element. The attributes used to configure the XA pooled connection factory are described in Table 2.2, “Attributes for Configuring the XA AMQPool Connection Factory”.
Example 2.2. Configuring an XA AMQPool Connection Factory
JCA pool Copy linkLink copied to clipboard!
amqpool:jca-pool element. The attributes used to configure the JCA pooled connection factory are described in Table 2.3, “Attributes for Configuring the JCA AMQPool Connection Factory”.
Example 2.3. Configuring a JCA AMQPool Connection Factory
2.2. Using JNDI Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Spring JEE JNDI lookup Copy linkLink copied to clipboard!
- Add the following namespace declaration to your
beanselement in your service unit's configuration.xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:jee="http://www.springframework.org/schema/jee"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Add a
jee:jndi-lookupelement to your service unit's configuration.Thejee:jndi-lookupelement has two attributes. They are described in Table 2.4, “Attributes for Using Spring's JEE JNDI Lookup”. - Add a
jee:environmentchild element to thejee:jndi-lookupelement.Thejee:environmentelement contains a collection of Java properties that are used to access the JNDI provider. These properties will be provided by your JNDI provider's documentation.
Example 2.4. Getting the WebLogic Connection Factory Using Spring's JEE JNDI Look-up
Spring JNDI Templates Copy linkLink copied to clipboard!
JndiTemplate bean. Using this approach, you configure an instance of the JndiTemple bean and then use the bean to perform all of your JNDI look-ups using a JndiObjectFactoryBean bean.
- Add a
beanelement to your configuration for the JNDI template.- Set the
beanelement'sidattribute to a unique identifier. - Set the
beanelement'sclassattribute toorg.springframework.jndi.JndiTemplate. - Add a
propertychild element to thebeanelement.Thepropertyelement will contain the properties for accessing the JNDI provider. - Set the
propertyelement'snameattribute toenvironment. - Add a
propschild to thepropertyelement. - Add a
propchild element to thepropselement for each Java property needed to connect to the JNDI provider.Apropelement has a single attribute calledkeywhose value is the name of the Java property being set. The value of the element is the value of the Java property being set. Example 2.5, “Setting a Java Property” shows apropelement for setting the java.naming.factory.initial property.Example 2.5. Setting a Java Property
<prop key="java.naming.factory.initial"> com.sun.jndi.fscontext.RefFSContextFactory </prop>
<prop key="java.naming.factory.initial"> com.sun.jndi.fscontext.RefFSContextFactory </prop>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteThe properties you need to set will be determined by your JNDI provider. Check its documentation.
- Add a
beanelement to your configuration to retrieve the JMS connection factory using the JNDI template.- Set the
beanelement'sidattribute to a unique identifier. - Set the
beanelement'sclassattribute toorg.springframework.jndi.JndiObjectFactoryBean. - Add a
propertychild element to thebeanelement.Thispropertyelement loads the JNDI template to be used for the look-up. You must set itsnameattribute tojndiTemplate. The value of itsrefattribute is taken from thenameattribute of thebeanelement that configured the JNDI template. - Add a second
propertychild element to thebeanelement.Thispropertyelement specifies the JNDI name of the connection factory. You must set itsnameattribute tojndiTemplate. - Add a
valuechild element to thepropertyelement.The value of the element is the JNDI name of the connection factory.
Example 2.6. Using a JNDI Template to Look Up a Connection Factory
2.3. Using a Spring Bean Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
ConnectionFactory for your JMS provider.
Example Copy linkLink copied to clipboard!
Example 2.7. Configuring a Connection Factory with a Spring Bean
Chapter 3. Creating a Consumer Endpoint Copy linkLink copied to clipboard!
Abstract
MessageListener interface.
3.1. Introduction to Consumer Endpoints Copy linkLink copied to clipboard!
Where does a consumer fit into a solution? Copy linkLink copied to clipboard!
Figure 3.1. Consumer Endpoint
Types of consumer endpoints Copy linkLink copied to clipboard!
- Generic
- The generic consumer endpoint can handle any type of message data. It is configured using the
jms:consumerelement. - SOAP
- The SOAP consumer endpoint is specifically tailored to receive SOAP messages. It uses a WSDL document to define the structure of the messages. It is configured using the
jms:soap-consumerelement.TipThe Apache CXF binding component's JMS transport is better adapted to handling SOAP messages, but offers less control over the JMS connection. - JCA
- The JCA consumer endpoint uses JCA to connect to the JMS provider. It is configured using the
jms:jca-consumerelement. For more information on using the JCA consumer endpoint, see Section 3.3, “Using the JCA Consumer Endpoint”.
3.2. Using the Generic Endpoint or the SOAP Endpoint Copy linkLink copied to clipboard!
3.2.1. Basic Configuration Copy linkLink copied to clipboard!
Procedure Copy linkLink copied to clipboard!
- Decide what type of consumer endpoint to use.
- Specify the name of the service for which this endpoint is acting as a proxy.This is specified using the
serviceattribute.TipIf you are using a SOAP consumer and your WSDL file only has one service defined, you do not need to specify the service name. - Specify the name of the endpoint for which this endpoint is acting as a proxy.This is specified using the
endpointattribute.TipIf you are using a SOAP consumer and your WSDL file only has one endpoint defined, you do not need to specify the endpoint name. - Specify the connection factory the endpoint will use.The endpoint's connection factory is configured using the endpoint's
connectionFactoryattribute. TheconnectionFactoryattribute's value is a reference to the bean that configures the connection factory. For example, if the connection factory configuration bean is namedwidgetConnectionFactory, the value of theconnectionFactoryattribute would be#widgetConnectionFactory.For information on configuring a connection factory see Chapter 2, Configuring the Connection Factory. - Specify the destination onto which the endpoint will place messages.For more information see the section called “Configuring a destination”.
- Specify the ESB endpoint to which incoming messages are targeted.For more information see the section called “Specifying the target endpoint”.
- If you are using a JMS SOAP consumer, specify the location of the WSDL defining the message exchange using the
wsdlattribute. - If your JMS destination is a topic, set the
pubSubDomaimattribute totrue. - If your endpoint is interacting with a broker that only supports JMS 1.0.2, set the
jms102attribute totrue.
Configuring a destination Copy linkLink copied to clipboard!
- The endpoint will check to see if you configured the destination explicitly.You configure a destination using a Spring bean. You can add the bean directly to the endpoint by wrapping it in a
jms:destinationchild element. You can also configure the bean separately and refer the bean using the endpoint'sdestinationattribute as shown in Example 3.1, “Configuring a Consumer's Destination”.Example 3.1. Configuring a Consumer's Destination
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - If you did not explicitly configure a destination, the endpoint will use the value of the
destinationNameattribute to choose its destination.The value of thedestinationNameattribute is a string that will be used as the name for the JMS destination. The binding component's default behavior when you provide a destination name is to resolve the destination using the standard JMSSession.createTopic()andSession.createQueue()methods.NoteYou can override the binding component's default behavior by providing a customDestinationResolverimplementation. See Section 7.2, “Using a Custom Destination Resolver”.
Specifying the target endpoint Copy linkLink copied to clipboard!
- If you explicitly specify an endpoint using both the
targetServiceattribute and thetargetEndpointattribute, the ESB will use that endpoint.ThetargetServiceattribute specifies the QName of a service deployed into the ESB. ThetargetEndpointattribute specifies the name of an endpoint deployed by the service specified by thetargetServiceattribute. - If you only specify a value for the
targetServiceattribute, the ESB will attempt to find an appropriate endpoint on the specified service. - If you do not specify a service name or an endpoint name, you must specify an the name of an interface that can accept the message using the
targetInterfaceattribute. The ESB will attempt to locate an endpoint that implements the specified interface and direct the messages to it.Interface names are specified as QNames. They correspond to the value of thenameattribute of either a WSDL 1.1serviceTypeelement or a WSDL 2.0interfaceelement.
Examples Copy linkLink copied to clipboard!
Example 3.2. Basic Configuration for a Generic Consumer Endpoint
Example 3.3. Basic Configuration for a SOAP Consumer Endpoint
3.2.2. Listener Containers Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Types of listener containers Copy linkLink copied to clipboard!
- Simple
- The simple listener container creates a fixed number of JMS sessions at startup and uses them throughout the lifespan of the container. It cannot dynamically adapt to runtime conditions nor participate in externally managed transactions.
- Default
- The default listener container provides the best balance between placing requirements on the JMS provider and features. Because of this, it is the default listerner container for Red Hat JBoss Fuse JMS consumer endpoints. The default listener container can adapt to changing runtime demands. It is also capable of participating in externally managed transactions.
- Server session
- The server session listener container leverages the JMS
ServerSessionPoolSPI to allow for dynamic management of JMS sessions. It provides the best runtime scaling and supports externally managed transactions. However, it requires that your JMS provider supports the JMSServerSessionPoolSPI.
Specifying an endpoint's listener container Copy linkLink copied to clipboard!
listenerType attribute. Table 3.1, “Values for Configuring a Consumer's Listener Container” lists the values for the listenerType attribute.
Example 3.4. Configuring a SOAP Consumer to Use the Simple Listener Container
Performace tuning using the listener container Copy linkLink copied to clipboard!
Example 3.5. Tuning a Generic Consumer Endpoint
Configuring the server session listener container's session factory Copy linkLink copied to clipboard!
ServerSessionPool SPI to tune an endpoint's performance. In order for the listener container to function,k it uses a ServerSessionFactory object. By default, the Red Hat JBoss Fuse JMS BC uses the Spring framework's SimpleServerSessionFactory object. This server session factory creates a new JMS ServerSession object with a new JMS session everytime it is called.
serverSessionFactory attribute. This attribute provides a reference to the bean configuring the ServerSessionFactory object.
ServerSessionFactory object by adding a serverSessionFactory child element to the endpoint's configuration. This element would wrap the ServerSessionFactory object's configuration bean.
CommonsPoolServerSessionFactory object as a session factory.
Example 3.6. Configuring a Consumer to Use a Pooled Session Factory
3.2.3. Advanced Configuration Copy linkLink copied to clipboard!
Using transactions Copy linkLink copied to clipboard!
transacted attribute to specify the type of transactions to use. Table 3.3, “Consumer Transaction Support” describes the possible values for the transacted attribute.
| Value | Description |
|---|---|
none | Specifies that message exchanges are not wrapped in a transaction. This is the default setting. |
jms | Specifies that message exchanges are wrapped in local JMS transactions. |
xa | Specifies that message exchanges will be wrapped in an externally managed XA transaction. You must also provide a transaction manager when using XA transactions. |
Using message selectors Copy linkLink copied to clipboard!
messageSelector attribute. The value of the attribute is the string value of the selector. For more information on the syntax used to specify message selectors, see the JMS 1.1 specification.
Using durable subscriptions Copy linkLink copied to clipboard!
subscriptionDurable attribute to true. You specify the name used to register the durable subscription using the durableSubscriberName attribute.
Example 3.7. Consumer using a Durable Subscription
3.2.4. SOAP Specific Configuration Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Using the JBI wrapper Copy linkLink copied to clipboard!
useJbiWrapper attribute to true.
Example 3.8. Configuring a SOAP Consumer to Use the JBI Wrapper
WSDL verification Copy linkLink copied to clipboard!
validateWsdl attribute to false.
3.3. Using the JCA Consumer Endpoint Copy linkLink copied to clipboard!
Procedure Copy linkLink copied to clipboard!
- Specify the name of the service for which this endpoint is acting as a proxy.This is specified using the
serviceattribute. - Specify the name of the endpoint for which this endpoint is acting as a proxy.This is specified using the
endpointattribute. - Specify the connection factory the endpoint will use.The endpoint's connection factory is configured using the endpoint's
connectionFactoryattribute. TheconnectionFactoryattribute's value is a reference to the bean that configures the connection factory. For example if the connection factory configuration bean is namedwidgetConnectionFactory, the value of theconnectionFactoryattribute would be#widgetConnectionFactory.For information on configuring a connection factory see Chapter 2, Configuring the Connection Factory. - Specify the destination onto which the endpoint will place messages.For more information see the section called “Configuring a destination”.
- Configure the JCA resource adapter that the consumer will use.You configure the endpoint's resource adapter using the
resourceAdapterattribute. The attribute's value is a reference to the bean that configures the resource adapter. - Configure the
ActivationSpecobject that will be used by the endpoint.You configure the endpoint's resource adapter using theactivationSpecattribute. The attribute's value is a reference to the bean that configures theActivationSpecobject. - Specify the ESB endpoint to which incoming messages are targeted.For more information see the section called “Specifying the target endpoint”.
- If your JMS destination is a topic, set the
pubSubDomaimattribute totrue.
Configuring a destination Copy linkLink copied to clipboard!
- The endpoint will check to see if you configured the destination explicitly.You configure a destination using a Spring bean. You can add the bean directly to the endpoint by wrapping it in a
jms:destinationchild element. You can also configure the bean separately and refer the bean using the endpoint'sdestinationattribute as shown in Example 3.9, “Configuring a JCA Consumer's Destination”.Example 3.9. Configuring a JCA Consumer's Destination
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - If you did not explicitly configure a destination, the endpoint will use the value of the
destinationNameattribute to choose its destination.The value of thedestinationNameattribute is a string that corresponds to the name of the JMS destination. The binding component's default behavior when you provide a destination name is to resolve the destination using the standard JMSSession.createTopic()andSession.createQueue()methods.NoteYou can override the binding component's default behavior by providing a customDestinationResolverimplementation. See Section 7.2, “Using a Custom Destination Resolver”.
Specifying the target endpoint Copy linkLink copied to clipboard!
- If you explicitly specify an endpoint using both the
targetServiceattribute and thetargetEndpointattribute, the ESB will use that endpoint.ThetargetServiceattribute specifies the QName of a service deployed into the ESB. ThetargetEndpointattribute specifies the name of an endpoint deployed by the service specified by thetargetServiceattribute. - If you only specify a value for the
targetServiceattribute, the ESB will attempt to find an appropriate endpoint on the specified service. - If you do not specify a service name or an endpoint name, you must specify an the name of an interface that can accept the message using the
targetInterfaceattribute. The ESB will attempt to locate an endpoint that implements the specified interface and direct the messages to it.Interface names are specified as QNames. They correspond to the value of thenameattribute of either a WSDL 1.1serviceTypeelement or a WSDL 2.0interfaceelement.
Example Copy linkLink copied to clipboard!
Example 3.10. Basic Configuration for a JCA Consumer Endpoint
3.4. Configuring How Replies are Sent Copy linkLink copied to clipboard!
- the reply message's priority
- the reply message's persistence
- the reply message's lifespan
3.4.1. Configuring the Reply Destination Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Determining the reply destination Copy linkLink copied to clipboard!
- If the in message of the exchange includes a value for the JMSReplyTo property, that value is used as the reply destination.
- If the JMSReplyTo is not specified, the endpoint looks for a destination chooser implementation to use.If you have configured your endpoint with a destination chooser, the endpoint will use the destination chooser to select the reply destination.For more information on using destination choosers see Section 7.1, “Using a Custom Destination Chooser”.
- If the JMSReplyTo is not specified and there is no configured destination chooser, the endpoint checks its
replyDestinationattribute for a destination.You configure a destination using a Spring bean. The recommend method to configure the destination is to configure the bean separately and refer the bean using the endpoint'sreplyDestinationattribute as shown in Example 3.11, “Configuring a Consumer's Reply Destination”. You can also add the bean directly to the endpoint by wrapping it in ajms:replyDestinationchild element. - As a last resort, the endpoint will use the value of the
replyDestinationNameattribute to determine the reply destination.ThereplyDestinationNameattribute takes a string that is used as the name of the destination to use. The binding component's default behavior when you provide a destination name is to resolve the destination using the standard JMSSession.createTopic()andSession.createTopic()methods to resolve the JMS destination.NoteYou can override the binding component's default behavior by providing a customDestinationResolverimplementation. See Section 7.2, “Using a Custom Destination Resolver”.
Example Copy linkLink copied to clipboard!
Example 3.11. Configuring a Consumer's Reply Destination
3.4.2. Configuring the Qualities of Service Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
- the reply message's priority
- the reply message's persistence
- the reply message's lifespan
Setting the reply message's priority Copy linkLink copied to clipboard!
replyPriority attribute. The value is used to set the reply message's JMSPriority property.
Setting the reply message's persistence Copy linkLink copied to clipboard!
replyDeliveryMode attribute. The value you provide for the replyDeliveryMode attribute is used to set the reply message's JMSDeliveryMode property.
deliveryMode attribute to 2. This setting corresponds to DeliveryMode.PERSISTENT.
deliveryMode attribute to 1. This setting corresponds to DeliveryMode.NON_PERSISTENT.
Setting a reply message's lifespan Copy linkLink copied to clipboard!
replyTimeToLive attribute. The value is the number of milliseconds you want the message to be available from the time it is sent.
replyTimeToLive attribute is used to compute the value for the reply message's JMSExpirary property. The value is computed by adding the specified number of milliseconds to the time the message is created.
Enforcing the configured values Copy linkLink copied to clipboard!
replyExplicitQosEnabled to true. Doing so instructs the consumer to always use the values provided in the configuration.
Example Copy linkLink copied to clipboard!
Example 3.12. Consumer with Reply QoS Properties
3.4.3. Setting Custom JMS Properties Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
map element. You can configure one static map that will be applied to every reply message generated by the consumer.
Setting custom JMS header properties Copy linkLink copied to clipboard!
Defining the property map Copy linkLink copied to clipboard!
java.util.Map object. You define that map object using the Spring util:map element.
util:map element is defined in the http://www.springframework.org/schema/util namespace. In order to use the element you will need to add the following namespace alias to your beans element:
xmlns:util="http://www.springframework.org/schema/util"
xmlns:util="http://www.springframework.org/schema/util"
entry child element's to the util:map element. Each entry element takes two attributes. The key entry is the map key and corresponds to the properties name. The value attribute is the value of the property.
entry element's ref attribute instead of the value attribute. The ref attribute points to another bean element that defines a Java object.
Example Copy linkLink copied to clipboard!
Example 3.13. Adding Custom Properties to a Reply Message
Chapter 4. Creating a Provider Endpoint Copy linkLink copied to clipboard!
Abstract
JMSTemplate interface.
4.1. Introduction to Provider Endpoints Copy linkLink copied to clipboard!
Where does a provider fit into a solution? Copy linkLink copied to clipboard!
Figure 4.1. Provider Endpoint
Types of providers Copy linkLink copied to clipboard!
- Generic
- The generic provider endpoint can handle any type of message data. It is configured using the
jms:providerelement. - SOAP
- The SOAP provider endpoint is specifically tailored to receive SOAP messages. It uses a WSDL document to define the structure of the messages. It is configured using the
jms:soap-providerelement.TipThe Apache CXF binding component's JMS transport is better adapted to handling SOAP messages, but offers less control over the JMS connection.
4.2. Basic Configuration Copy linkLink copied to clipboard!
Procedure Copy linkLink copied to clipboard!
- Decide what type of provider endpoint to use.
- Specify the name of the service for which this endpoint is acting as a proxy.This is specified using the
serviceattribute.TipIf you are using a SOAP provider and your WSDL file only has one service defined, you do not need to specify the service name. - Specify the name of the endpoint for which this endpoint is acting as a proxy.This is specified using the
endpointattribute.TipIf you are using a SOAP provider and your WSDL file only has one endpoint defined, you do not need to specify the endpoint name. - Specify the connection factory the endpoint will use.The endpoint's connection factory is configured using the endpoint's
connectionFactoryattribute. TheconnectionFactoryattribute's value is a reference to the bean that configures the connection factory. For example, if the connection factory configuration bean is namedwidgetConnectionFactory, the value of theconnectionFactoryattribute would be#widgetConnectionFactory.For information on configuring a connection factory see Chapter 2, Configuring the Connection Factory. - Specify the destination onto which the endpoint will place messages.For more information see the section called “Configuring a destination”.
- If you are using a JMS SOAP provider, specify the location of the WSDL defining the message exchange using the
wsdlattribute. - If your JMS destination is a topic, set the
pubSubDomaimattribute totrue. - If your endpoint is interacting with a broker that only supports JMS 1.0.2, set the
jms102attribute totrue.
Configuring a destination Copy linkLink copied to clipboard!
- If you provided a custom
DestinationChooserimplementation, the endpoint will use that to choose it's endpoint.For more information about providing customDestinationChooserimplementations see Section 7.1, “Using a Custom Destination Chooser”. - If you did not provide a custom
DestinationChooserimplementation, the endpoint will use its defaultDestinationChooserimplementation to choose an endpoint.The default destination chooser checks the message exchange received from the NMR for a DESTINATION_KEY property. If the message exchange has that property set, it returns that destination. - If the destination chooser does not return a destination, the endpoint will check to see if you configured the destination explicitly.You configure a destination using a Spring bean. The recommend way to configure the destination is to configure the bean separately and refer the bean using the endpoint's
destinationattribute as shown in Example 4.1, “Configuring a Provider's Destination”. You can also add the bean directly to the endpoint by wrapping it in ajms:destinationchild element.Example 4.1. Configuring a Provider's Destination
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - If the destination chooser does not return a destination and you did not explicitly configure a destination, the endpoint will use the value of the
destinationNameattribute to choose its destination.ThedestinationNameattribute takes a string that is used as the name of the destination to use. The binding component's default behavior when you provide a destination name is to resolve the destination using the standard JMSSession.createTopic()andSession.createQueue()methods to resolve the JMS destination.NoteYou can override the binding component's default behavior by providing a customDestinationResolverimplementation. See Section 7.2, “Using a Custom Destination Resolver”.
Examples Copy linkLink copied to clipboard!
Example 4.2. Basic Configuration for a Generic Provider Endpoint
Example 4.3. Basic Configuration for a SOAP Provider Endpoint
4.3. Configuring How Responses are Received Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Configuring the response destination Copy linkLink copied to clipboard!
- If you provided a custom
DestinationChooserimplementation, the endpoint will use that to choose it's endpoint.For more information about providing customDestinationChooserimplementations see Section 7.1, “Using a Custom Destination Chooser”. - If you did not provide a custom
DestinationChooserimplementation, the endpoint will use its defaultDestinationChooserimplementation to choose an endpoint.The default destination chooser checks the message exchange received from the NMR for a DESTINATION_KEY property. If the message exchange has that property set, it returns that destination. - If the destination chooser does not return a destination, the endpoint will check to see if you configured the destination explicitly.You configure a response destination using a Spring bean. The recommend way to configure the destination is to configure the bean separately and refer the bean using the endpoint's
replyDestinationattribute as shown in Example 4.1, “Configuring a Provider's Destination”. You can also add the bean directly to the endpoint by wrapping it in ajms:replyDestinationchild element. - If the destination chooser does not return a destination and you did not explicitly configure a destination, the endpoint will use the value of the
replyDestinationNameattribute to choose its destination.ThereplyDestinationNameattribute takes a string that is used as the name of the destination to use. The binding component's default behavior when you provide a destination name is to resolve the destination using the standard JMSSession.createTopic()andSession.createTopic()methods to resolve the JMS destination.NoteYou can override the binding component's default behavior by providing a customDestinationResolverimplementation. See Section 7.2, “Using a Custom Destination Resolver”.
Configuring the timeout interval Copy linkLink copied to clipboard!
recieveTimeout attribute. The recieveTimeout attribute specifies the number of milliseconds the provider endpoint will wait for a response before timing out.
Example Copy linkLink copied to clipboard!
Example 4.4. JMS Provider Endpoint with a Response Destination
4.4. Advanced Provider Configuration Copy linkLink copied to clipboard!
4.4.1. JMS Message Qualities of Service Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
- the message's relative priority
- the message's persistence
- the message's lifespan
Setting a message's priority Copy linkLink copied to clipboard!
priority attribute. The value you provide for the priority attribute is used to set the JMS message's JMSPriority property.
Setting a message's persistence Copy linkLink copied to clipboard!
deliveryMode attribute. The value you provide for the deliveryMode attribute is used to set the JMS message's JMSDeliveryMode property.
deliveryMode attribute to 2. This setting corresponds to DeliveryMode.PERSISTENT.
deliveryMode attribute to 1. This setting corresponds to DeliveryMode.NON_PERSISTENT.
Setting a message's life span Copy linkLink copied to clipboard!
timeToLive attribute. The value is the number of milliseconds you want the message to be available from the time it is sent. The default behavior is to allow messages to persist forever.
timeToLive attribute is used to compute the value for the message's JMSExpirary property. The value is computed by adding the specified number of milliseconds to the time the message is created.
Enforcing configured values Copy linkLink copied to clipboard!
explicitQosEnabled attribute to true.
Example Copy linkLink copied to clipboard!
Example 4.5. Setting JMS Provider Endpoint Message Properties
4.4.2. JMS Message Optimization Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Message IDs Copy linkLink copied to clipboard!
messageIdEnabled attribute to false.
messageIdEnabled attribute to false causes the endpoint to call its message producer's setDisableMessageID() method with a value of true. The JMS broker is then given a hint that it does not need to generate message IDs or add them to the messages from the endpoint. The JMS broker can choose to accept the hint or ignore it.
Time stamps Copy linkLink copied to clipboard!
messageTimeStampEnabled attribute to false.
messageTimeStampEnabled attribute to false causes the endpoint to call its message producer's setDisableMessageTimestamp() method with a value of true. The JMS broker is then given a hint that it does not need to generate message IDs or add them to the messages from the endpoint. The JMS broker can choose to accept the hint or ignore it.
4.4.3. SOAP Specific Configuration Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Using the JBI wrapper Copy linkLink copied to clipboard!
useJbiWrapper attribute to true.
Example 4.6. Configuring a SOAP Provider to Use the JBI Wrapper
WSDL verification Copy linkLink copied to clipboard!
validateWsdl attribute to false.
Chapter 5. Making Endpoints Stateful Copy linkLink copied to clipboard!
Abstract
Overview Copy linkLink copied to clipboard!
Activating statefullness Copy linkLink copied to clipboard!
stateless attribute to false.
Configuring the datastore Copy linkLink copied to clipboard!
storeFactory attribute to reference a bean configuring an instance of the org.apache.servicemix.store.jdbc.JdbcStoreFactory class. Table 5.1, “Properties Used to Configure a JDBC Store Factory” list the properties you can set for the JDBC store factory.
| Name | Description |
|---|---|
| clustered | Specifies if a datastore can be accessed by the members of an endpoint cluster. |
| transactional | Specifies if the datastore can be enlisted in transactions. |
| dataSource | Specifies the configuration for the data source to be used when creating the store. |
| adapter | Specifies the configuration for the JDBC adapter used to connect to the data source. |
Example Copy linkLink copied to clipboard!
Example 5.1. Configuring a Statefull JMS Provider Endpoint
- 1
- Configures the endpoint's store factory by providing a reference to the bean configuring the factory.
- 2
- Configures the endpoint to store a copy of the current message in the datastore.
- 3
- Configures the JDBC factory store to create a datastore that can be accessed by a cluster of endpoints.
- 4
- Configures the MySQL JDBC driver.
Chapter 6. Working with Message Marshalers Copy linkLink copied to clipboard!
Abstract
6.1. Consumer Marshalers Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
org.apache.servicemix.jms.endpoints.JmsConsumerMarshaler interface to process the incoming JMS messages and convert them into normalized messages. Consumer marshalers also convert fault messages and response messages into JMS messages that can be returned to the remote endpoint. The JMS binding component comes with two consumer marshaler implementations:
DefaultConsumerMarshaler- The
DefaultConsumerMarshalerclass provides the marshaler used by generic consumer endpoints and the JCA consumer endpoints. JmsSoapConsumerMarshaler- The
JmsSoapConsumerMarshalerclass provides the marshaler used by SOAP consumer endpoints.NoteThe default SOAP marshaler does not support the full range of SOAP messages nor does it support marshaling map based messages into JMS messages.
JmsConsumerMarshaler interface.
Implementing the marshaler Copy linkLink copied to clipboard!
org.apache.servicemix.jms.endpoints.JmsConsumerMarshaler interface. The JmsConsumerMarshaler interface, shown in Example 6.1, “The Consumer Marshaler Interface”, has five methods that need implementing:
Example 6.1. The Consumer Marshaler Interface
createContext()- The
createContext()method takes the JMS message and returns an object that implements theJmsContextinterface. createExchange()- The
createExchange()creates a message exchange using the JMS message and the JBI context. Creating a message exchange entails the creation of the exchange, populating the exchange's in message, specifying the message exchange pattern to use, and setting any other required properties. createOut()- The
createOut()method takes the response message from the message exchange and converts it into a JMS message. The method takes the message exchange, the outgoing message, the active JMS session, and the JMS context. createFault()- The
createFault()method is called if a fault message is returned. It takes the message exchange, the fault message, the active JMS session, and the JMS context and returns a JMS message that encapsulates the fault message. createError()- The
createError()method is called if an exception is thrown while the message exchange is being processed. It takes the message exchange, the exception, the active JMS session, and the JMS context and returns a JMS message that encapsulates the exception.
JmsContext interface. The JmsContext interface has a single method called getMessage() which returns the JMS message contained in the context.
Example 6.2. Consumer Marshaler Implementation
Configuring the consumer Copy linkLink copied to clipboard!
marshaler attribute. The marshaler attribute's value is a reference to a bean element specifying the class of your custom marshaler implementation.
Example 6.3. Configuring a Consumer to Use a Customer Marshaler
marshaler element to the consumer's configuration. The marshaler element simply wraps the bean element that configures the marshaler.
6.2. Provider Marshalers Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
org.apache.servicemix.jms.endpoints.JmsProviderMarshaler interface to convert normalized messages into JMS messages. The marshaler also converts the incoming reply from a JMS message into a normalized message. The JMS binding component comes with two provider marshaler implementations:
DefaultProviderMarshaler- The
DefaultProviderMarshalerclass provides the marshaler used by generic provider endpoints. JmsSoapProviderMarshaler- The
JmsSoapProviderMarshalerclass provides the marshaler used by SOAP provider endpoints.NoteThe default SOAP marshaler does not support the full range of SOAP messages nor does it support marshaling map based messages into JMS messages.
JmsProviderMarshaler interface.
Implementing the marshaler Copy linkLink copied to clipboard!
org.apache.servicemix.jms.endpoints.JmsProviderMarshaler interface. The JmsProviderMarshaler interface, shown in Example 6.4, “The Provider Marshaler Interface”, has two methods you need to implement:
Example 6.4. The Provider Marshaler Interface
createMessage()- The
createMessage()method uses information from the Red Hat JBoss Fuse core to generate a JMS message. Its parameters include the message exchange, the normalized message that is received by the provider, and the active JMS session. populateMessage()- The
populateMessage()method takes a JMS message and adds it to a message exchange for use by the Red Hat JBoss Fuse core.
Example 6.5. Provider Marshaler Implementation
Configuring the provider Copy linkLink copied to clipboard!
marshaler attribute. The marshaler attribute's value is a reference to a bean element specifying the class of your custom marshaler implementation.
Example 6.6. Configuring a Provider to Use a Customer Marshaler
marshaler element to the provider's configuration. The marshaler element simply wraps the bean element that configures the marshaler.
Chapter 7. Implementing Destination Resolving Logic Copy linkLink copied to clipboard!
Abstract
DestinationChooser interface or the DestinationResolver interface.
- destination choosers
- Destination choosers are specific to the Red Hat JBoss Fuse JMS binding component. They are the first mechanism used by an endpoint when it trys to pick a JMS destination.Destination choosers implement the
org.apache.servicemix.jms.endpoints.DestinationChooserinterface. - destination resolvers
- Destination resolvers are part of the Spring JMS framework. They are used when the JMS destination is specified using a string. This can happen if either the destination chooser returns a string or if the endpoint's destination is configured using the
destinationNameattribute.Destination resolvers implement theorg.springframework.jms.support.destination.DestinationResolverinterface.
7.1. Using a Custom Destination Chooser Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
org.apache.servicemix.jms.endpoints.DestinationChooser interface and configure the endpoint to load it. The configured destination chooser will be used in place of the default destination chooser.
Implementing a destination chooser Copy linkLink copied to clipboard!
org.apache.servicemix.jms.endpoints.DestinationChooser interface. This interface has a single method: chooseDestination().
chooseDestination(), whose signature is shown in Example 7.1, “Destination Chooser Method”, takes the JBI message exchange and a copy of the message. It returns either a JMS Destination object or a string representing the destination name.
Example 7.1. Destination Chooser Method
Object chooseDestination(MessageExchange exchange,
Object message);message parameter can be either of the following type of object:
javax.jbi.messaging.NormalizedMessagejavax.jbi.messaging.FaultException
Example 7.2. Simple Destination Chooser
Configuring an endpoint to use a destination chooser Copy linkLink copied to clipboard!
- Configure a
beanelement for your destination chooser. - Add a
destinationChooserattribute that references the destination chooser's bean to your endpoint.
Example 7.3. Configuring a Destination Chooser with a Bean Reference
jms:destinationChooser element. This method is less flexible than the recommended method because other endpoints cannot reuse the destination chooser's configuration.
Example 7.4. Explicitly Configuring a Destination Chooser
7.2. Using a Custom Destination Resolver Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Destination objects. For example, if you specify an endpoint's destination using the destinationName attribute, the endpoint will use a destination resolver to get the appropriate JMS Destination object. Destination resolvers are also used if a destination chooser returns a string and not a JMS Destination object.
DynamicDestinationResolver destination resolver provided by the Spring Framework. This destination resolver uses the standard JMS Session.createTopic() and Session.createQueue() methods to resolve destination names.
JndiDestinationResolver destination resolver. This destination resolver uses the string destination name to perform a JNDI lookup for the JMS destination. If JMS destination is not returned from the JNDI lookup, the resolver resorts to dynamically resolving the destination name. For information on configuring and endpoint to use the JndiDestinationResolver destination resolver. See the section called “Configuring an endpoint to use a destination resolver”.
Implementing a destination resolver Copy linkLink copied to clipboard!
org.springframework.jms.support.destination.DestinationResolver interface. The interface has a single method: resolveDestinationName().
resolveDestinationName() method, whose signature shown in Example 7.5, “Destination Resolver Method”, takes three parameters: a JMS session, a destination name, and a boolean specifying if the destination is a JMS topic.[1] It returns a JMS destination that correlates to the provided destination name.
Example 7.5. Destination Resolver Method
Destination resolveDestinationName(Session session,
String destinationName,
boolean pubSubDomain)
throws JMSException;Example 7.6. Simple Destination Resolver
Configuring an endpoint to use a destination resolver Copy linkLink copied to clipboard!
- Configure a
beanelement for your destination resolver. - Add a
destinationResolverattribute that references the destination resolver's bean to your endpoint.
Example 7.7. Configuring a Destination Resolver with a Bean Reference
jms:destinationResolver element. This method is less flexible than the recommended method because other endpoints cannot reuse the destination resolver's configuration.
Example 7.8. Explicitly Configuring a Destination Resolver
Appendix A. Consumer Endpoint Properties Copy linkLink copied to clipboard!
A.1. Common Properties Copy linkLink copied to clipboard!
Attributes Copy linkLink copied to clipboard!
| Name | Type | Description | Required |
|---|---|---|---|
connectionFactory | string | Specifies a reference to the bean configuring the connection factory which is to be used by the endpoint. | yes |
service | QName | Specifies the service name of the proxied endpoint. | yes |
endpoint | string | Specifies the endpoint name of the proxied endpoint. | yes |
interfaceName | QName | Specifies the interface name of the proxied endpoint. | no |
jms102 | boolean | Specifies if the consumer uses JMS 1.0.2 compliant APIs. | no (defaults to false) |
pubSubDomaim | boolean | Specifies if the destination is a topic. | no |
replyDeliveryMode | int | Specifies the JMS delivery mode used for the reply. | no (defaults to PERSISTENT(2)) |
replyDestinationName | string | Specifies the name of the JMS destination to use for the reply. | no (if not set replyDestination or destinationChooser is used) |
replyExplicitQosEnabled | boolean | Specifies if the QoS values specified for the endpoint are explicitly used when the reply is sent. | no (default is false) |
replyPriority | int | Specifies the JMS message priority of the reply. | no (defaults to 4) |
replyTimeToLive | long | Specifies the number of milliseconds the reply message is valid. | no (defaults to unlimited) |
stateless | boolean | Specifies if the consumer retains state information about the message exchange while it is in process. | no |
synchronous | boolean | Specifies if the consumer will block while waiting for a response. This means the consumer can only process one message at a time. | no (defaults to true) |
targetEndpoint | string | Specifies the endpoint name of the target endpoint. | no (defaults to the endpoint attribute) |
targetInterface | QName | Specifies the interface name of the target endpoint. | no |
targetService | QName | Specifies the service name of the target endpoint. | no (defaults to the service attribute) |
targetUri | string | Specifies the URI of the target endpoint. | no |
useMessageIdInResponse | boolean | Specifies if the request message's ID is used as the reply's correlation ID. | no (defaults to false meaning the request's correlation ID is used) |
Beans Copy linkLink copied to clipboard!
| Name | Type | Description | Required |
|---|---|---|---|
marshaler | JmsConsumerMarshaler | Specifies the class implementing the message marshaler. | no (defaults to DefaultConsumerMarshaler) |
destinationChooser | DestinationChooser | Specifies a class implementing logic for choosing reply destinations. | no |
destinationResolver | DestinationResolver | Specifies the class implementing logic for converting strings into destination IDs. | no (defaults to DynamicDestinationResolver) |
replyDestination | Destination | Specifies the JMS destination for the replies. | no (if not set either the replyDestinationName or the destinationChooser is used) |
replyProperties | Map | Specifies custom properties to be placed in the reply's JMS header. | no |
storeFactory | StoreFactory | Specifies the factory class used to create the data store for state information. | no (defaults to MemoryStoreFactory) |
store | Store | Specifies the data store used to store state information. | no |
A.2. Properties Specific to Generic Consumers and SOAP Consumers Copy linkLink copied to clipboard!
Common Attributes Copy linkLink copied to clipboard!
jms:consumer element and the jms:soap-consumer elements.
| Attribute | Type | Listener(s) | Description | Required |
|---|---|---|---|---|
listenerType | string | all | Specifies the type of Spring JMS message listener to use. Valid values are default, simple, and server. | no (defaults to default) |
transacted | string | all | Specifies the type of transaction used to wrap the message exchanges. Valid values are none, xa, and jms. | no (defaults to none) |
clientId | string | all | Specifies the JMS client id for a shared Connection created and used by this listener. | no |
destinationName | string | all | Specifies the name of the destination used to receive messages. | no |
durableSubscriptionName | string | all | Specifies the name used to register the durable subscription. | no |
messageSelector | string | all | Specifies the message selector string to use. | no |
sessionAcknowlegeMode | int | all | Specifies the acknowledgment mode that is used when creating a Session to send a message. | no (defaults to Session.AUTO_ACKNOWLEDGE) |
subscriptionDurable | boolean | all | Specifies if the listener uses a durable subscription to listen form messages. | no (defaults to false) |
pubSubNoLocal | boolean |
default
simple
| Specifies if messages published by the listener's Connection are suppressed. | no (defaults to false) |
concurrentConsumers | int |
default
simple
| Specifies the number of concurrent consumers created by the listener. | no (defaults to 1) |
cacheLevel | int | default | Specifies the level of caching allowed by the listener. | no (defaults to 0) |
receiveTimeout | long | default | Specifies the timeout for receiving a message in milliseconds. | no (default is 1000) |
recoveryInterval | long | default | Specifies the interval, in milliseconds, between attempts to recover after a failed listener set-up. | no (defaults to 5000) |
maxMessagesPerTask | int |
default
server
| Specifies the number of attempts to receive messages per task. | no (defaults to -1) |
Common Beans Copy linkLink copied to clipboard!
jms:consumer element and the jms:soap-consumer elements.
| Element | Type | Listener(s) | Description | Required |
|---|---|---|---|---|
destination | Destination | all | Specifies the destination used to receive messages. | no |
exceptionListener | ExceptionListener | all | Specifies an ExceptionListener to notify in case of a JMSException is thrown by the registered message listener or the invocation infrastructure. | no |
serverSessionFactory | ServerSessionFactory | server | Specifies the ServerSessionFactory to use. | no (defaults to SimpleServerSessionFactory) |
SOAP consumer specific attributes Copy linkLink copied to clipboard!
jms:soap-consumer element.
| Attribute | Type | Description | Required |
|---|---|---|---|
wsdl | string | Specifies the WSDL describing the service. | yes |
useJbiWrapper | boolean | Specifies if the JBI wrapper is sent in the body of the message. | no (defaults to true) |
validateWsdl | boolean | Specifies if the WSDL is checked WSI-BP compliance. | no (defaults to true) |
policies | Policy[] | Specifies a list of interceptors used to process the message. | no |
A.3. Properties Specific to a JCA Consumer Copy linkLink copied to clipboard!
jms:jca-consumer element.
| Element | Type | Description | Required |
|---|---|---|---|
resourceAdapter | ResourceAdapter | Specifies the resource adapter used for the endpoint. | yes |
activationSpec | ActivationSpec | Specifies the activation information needed by the endpoint. | yes |
bootstrapContext | BootstrapContext | Specifies the bootstrap context used when starting the resource adapter. | no (a default one will be created) |
Appendix B. Provider Endpoint Properties Copy linkLink copied to clipboard!
B.1. Common Properties Copy linkLink copied to clipboard!
Attributes Copy linkLink copied to clipboard!
| Attribute | Type | Description | Required |
|---|---|---|---|
connectionFactory | string | Specifies a reference to the bean which configure the connection factory to be used by the endpoint. | yes |
deliveryMode | int | Specifies the JMS delivery mode. | no (defaults to persistent) |
destinationName | string | Specifies the JNDI name of the destination used to send messages. | no |
endpoint | string | Specifies the endpoint name of the proxied endpoint. | yes |
explicitQosEnabled | boolean | Specifies if the JMS messages have the specified properties explicitly applied. | no (defaults to false) |
interfaceName | QName | Specifies the interface name of the proxied endpoint. | no |
jms102 | boolean | Specifies if the provider is to be JMS 1.0.2 compatible. | no (defaults to false) |
messageIdEnabled | boolean | Specifies if JMS message IDs are enabled. | no (defaults to true) |
messageTimeStampEnabled | boolean | Specifies if JMS messages are time stamped. | no (defaults to true) |
priority | int | Specifies the priority assigned to the JMS messages. | no (defaults to 4) |
pubSubDomain | boolean | Specifies if the destination is a topic. | no (defaults to false |
pubSubNoLocal | boolean | Specifies if messages published by the listener's Connection are suppressed. | no (defaults to false) |
recieveTimeout | long | Specifies the timeout for receiving a message in milliseconds. | no (defaults to unlimited) |
replyDestinationName | string | Specifies the JNDI name of the destination used to receive messages. | no |
service | QName | Specifies the service name of the proxied endpoint. | yes |
stateless | boolean | Specifies if the consumer retains state information about the message exchange while it is in process. | no (defaults to false) |
timeToLive | long | Specifies the number of milliseconds the message is valid. | no (defaults to unlimited) |
Beans Copy linkLink copied to clipboard!
| Element | Type | Description | Required |
|---|---|---|---|
destination | Destination | Specifies the JMS destination used to send messages. | no |
destinationChooser | DestinationChooser | Specifies a class implementing logic for choosing the JMS destinations. | no (defaults to SimpleDestinationChooser) |
destinationResolver | DestinationResolver | Specifies a class implementing logic for converting strings into destination IDs. | no (defaults to DynamicDestinationResolver) |
marshaler | JmsProviderMarshaler | Specifies the class implementing the message marshaler. | no (defaults to DefaultProviderMarshaler or JmsSoapProviderMarshaler) |
replyDestination | Destination | Specifies the JMS destination used to receive messages. | no |
replyDestinationChooser | DestinationChooser | Specifies a class implementing logic for choosing the destination used to receive replies. | no (defaults to SimpleDestinationChooser) |
storeFactory | StoreFactory | Specifies the factory class used to create the data store for state information. | no (defaults to MemoryStoreFactory) |
store | Store | Specifies the data store used to store state information. | no |
B.2. Properties Specific to SOAP Providers Copy linkLink copied to clipboard!
Attributes Copy linkLink copied to clipboard!
jms:soap-provider elements.
| Attribute | Type | Description | Required |
|---|---|---|---|
useJbiWrapper | boolean | Specifies if the JBI wrapper is sent in the body of the message. | no (defaults to true) |
validateWsdl | boolean | Specifies if the WSDL is checked for WSI-BP compliance. | no (defaults to true) |
wsdl | string | Specifies the location of the WSDL describing the service. | yes |
Beans Copy linkLink copied to clipboard!
jms:soap-provider elements.
| Element | Type | Description | Required |
|---|---|---|---|
policies | Policy[] | Specifies a list of interceptors that will process the message. | no |
Appendix C. Using the Maven JBI Tooling Copy linkLink copied to clipboard!
Abstract
- automatic generation of JBI descriptors
- dependency checking
- Set up a top-level project to build all of the service units and the final service assembly.
- Create a project for each of your service units..
- Create a project for the service assembly.
C.1. Setting up a Red Hat JBoss Fuse JBI project Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
- It allows you to control the dependencies for all of the parts of an application in a central location.
- It limits the number of times you need to specify the proper repositories to load.
- It provides you a central location from which to build and deploy the application.
Directory structure Copy linkLink copied to clipboard!
- A source directory containing the information required for the Maven assembly plug-in
- A directory to store the service assembly project
- At least one directory containing a service unit projectTipYou will need a project folder for each service unit that is to be included in the generated service assembly.
Setting up the Maven tools Copy linkLink copied to clipboard!
Example C.1. POM elements for using Red Hat JBoss Fuse Maven tooling
Listing the sub-projects Copy linkLink copied to clipboard!
modules element. The modules element contains one module element for each service unit in the assembly. You also need a module element for the service assembly.
Example JBI project pOM Copy linkLink copied to clipboard!
Example C.2. Top-level POM for a Red Hat JBoss Fuse JBI project
- 1
- Configures Maven to use the FuseSource repositories for loading the JBoss Fuse plug-ins.
- 2
- Lists the sub-projects used for this application. The
wsdl-first-cxfse-sumodule is the module for the service unit. Thewsdl-first-cxf-samodule is the module for the service assembly - 3
- Configures the Maven assembly plug-in.
- 4
- Loads the JBoss Fuse JBI plug-in.
C.2. A service unit project Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Seeding a project using a Maven artifact Copy linkLink copied to clipboard!
groupId value and the artifactId values correspond to the project's group ID and artifact ID.
Example C.3. Maven archetype command for service units
smx-arch
su suArchetypeName
[
"-DgroupId=my.group.id"
] [
"-DartifactId=my.artifact.id"
]
") are required when using the -DgroupId argument and the -DartifactId argument.
| Name | Description |
|---|---|
| camel | Creates a project for using the Apache Camel service engine |
| cxf-se | Creates a project for developing a Java-first service using the Apache CXF service engine |
| cxf-se-wsdl-first | Creates a project for developing a WSDL-first service using the Apache CXF service engine |
| cxf-bc | Creates an endpoint project targeted at the Apache CXF binding component |
| http-consumer | Creates a consumer endpoint project targeted at the HTTP binding component |
| http-provider | Creates a provider endpoint project targeted at the HTTP binding component |
| jms-consumer | Creates a consumer endpoint project targeted at the JMS binding component (see Using the JMS Binding Component) |
| jms-provider | Creates a provider endpoint project targeted at the JMS binding component (see Using the JMS Binding Component) |
| file-poller | Creates a polling (consumer) endpoint project targeted at the file binding component (see chapter "Using Poller Endpoints" in "Using the File Binding Component") |
| file-sender | Creates a sender (provider) endpoint project targeted at the file binding component (see chapter "Using Sender Endpoints" in "Using the File Binding Component") |
| ftp-poller | Creates a polling (consumer) endpoint project targeted at the FTP binding component |
| ftp-sender | Creates a sender (provider) endpoint project targeted at the FTP binding component |
| jsr181-annotated | Creates a project for developing an annotated Java service to be run by the JSR181 service engine [a] |
| jsr181-wsdl-first | Creates a project for developing a WSDL generated Java service to be run by the JSR181 service engine [a] |
| saxon-xquery | Creates a project for executing xquery statements using the Saxon service engine |
| saxon-xslt | Creates a project for executing XSLT scripts using the Saxon service engine |
| eip | Creates a project for using the EIP service engine. [b] |
| lwcontainer | Creates a project for deploying functionality into the lightweight container [c] |
| bean | Creates a project for deploying a POJO to be executed by the bean service engine |
| ode | Create a project for deploying a BPEL process into the ODE service engine |
[a]
The JSR181 has been deprecated. The Apache CXF service engine has superseded it.
[b]
The EIP service engine has been deprecated. The Apache Camel service engine has superseded it.
[c]
The lightweight container has been deprecated.
| |
Contents of a project Copy linkLink copied to clipboard!
- a POM file that configures the JBI plug-in to create a service unit
- an XML configuration file stored in
src/main/resourcesFor many of the components, the XML configuration file is calledxbean.xml. The Apache Camel component uses a file calledcamel-context.xml.
Configuring the Maven plug-in Copy linkLink copied to clipboard!
packaging element to jbi-service-unit as shown in Example C.4.
Example C.4. Configuring the maven plug-in to build a service unit
Specifying the target components Copy linkLink copied to clipboard!
- List the targeted component as a dependency
- Add a
componentNameproperty specifying the targeted component
- Add a
componentNameproperty specifying the targeted component. - Add the remaining components to the list dependencies.
Example C.5. Specifying the target components for a service unit
componentName element. This element is added to the standard Maven properties block and it specifies the name of a targeted component, as specified in Example C.6.
Example C.6. Specifying a target component for a service unit
... <properties> <componentName>servicemix-bean</componentName> </properties> ...
...
<properties>
<componentName>servicemix-bean</componentName>
</properties>
...
componentName element, Maven does not check to see if the component is installed, nor does it download the required component.
Example Copy linkLink copied to clipboard!
Example C.7. POM file for a service unit project
- 1
- Specifies that it is a part of the top-level project shown in Example C.2, “Top-level POM for a Red Hat JBoss Fuse JBI project”
- 2
- Specifies that this project builds a service unit
- 3
- Specifies that the service unit targets the Apache CXF binding component
- 4
- Specifies to use the Red Hat JBoss Fuse Maven plug-in
C.3. A service assembly project Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Seeding a project using a Maven artifact Copy linkLink copied to clipboard!
groupId value and the artifactId values, which correspond to the project's group ID and artifact ID.
Example C.8. Maven archetype command for service assemblies
smx-arch
sa
[
"-DgroupId=my.group.id"
] [
"-DartifactId=my.artifact.id"
]
-DgroupId argument and the -DartifactId argument.
Contents of a project Copy linkLink copied to clipboard!
Configuring the Maven plug-in Copy linkLink copied to clipboard!
packaging element to jbi-service-assembly, as shown in Example C.9.
Example C.9. Configuring the Maven plug-in to build a service assembly
Specifying the target components Copy linkLink copied to clipboard!
dependencies element. Add a dependency child element for each service unit. Example C.10 shows the configuration for a service assembly that bundles two service units.
Example C.10. Specifying the target components for a service unit
Example Copy linkLink copied to clipboard!
Example C.11. POM for a service assembly project
- 1
- Specifies that it is a part of the top-level project shown in Example C.2, “Top-level POM for a Red Hat JBoss Fuse JBI project”
- 2
- Specifies that this project builds a service assembly
- 3
- Specifies the service units being bundled by the service assembly
- 4
- Specifies to use the JBoss Fuse Maven plug-in
Appendix D. Using the Maven OSGi Tooling Copy linkLink copied to clipboard!
Abstract
D.1. Setting up a Red Hat JBoss Fuse OSGi project Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
Directory structure Copy linkLink copied to clipboard!
src folder. As in all Maven projects, you place all Java source code in the src/java folder, and you place any non-Java resources in the src/resources folder.
beans.xml file located in the src/resources/META-INF/spring folder.
Adding a bundle plug-in Copy linkLink copied to clipboard!
Example D.1. Adding an OSGi bundle plug-in to a POM
- 1
- Adds the dependency on Apache Felix
- 2
- Adds the bundle plug-in to your project
- 3
- Configures the plug-in to use the project's artifact ID as the bundle's symbolic name
- 4
- Configures the plug-in to include all Java packages imported by the bundled classes; also imports the org.apache.camel.osgi package
- 5
- Configures the plug-in to bundle the listed class, but not to include them in the list of exported packages
Activating a bundle plug-in Copy linkLink copied to clipboard!
packaging element to bundle.
Useful Maven archetypes Copy linkLink copied to clipboard!
Spring OSGi archetype Copy linkLink copied to clipboard!
org.springframework.osgi/spring-bundle-osgi-archetype/1.1.2
org.springframework.osgi/spring-bundle-osgi-archetype/1.1.2
mvn archetype:create -DarchetypeGroupId=org.springframework.osgi -DarchetypeArtifactId=spring-osgi-bundle-archetype -DarchetypeVersion=1.12 -DgroupId=groupId -DartifactId=artifactId -Dversion=version
mvn archetype:create -DarchetypeGroupId=org.springframework.osgi -DarchetypeArtifactId=spring-osgi-bundle-archetype -DarchetypeVersion=1.12 -DgroupId=groupId -DartifactId=artifactId -Dversion=version
Apache CXF code-first archetype Copy linkLink copied to clipboard!
org.apache.servicemix.tooling/servicemix-osgi-cxf-code-first-archetype/2008.01.0.3-fuse
org.apache.servicemix.tooling/servicemix-osgi-cxf-code-first-archetype/2008.01.0.3-fuse
mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=spring-osgi-bundle-archetype -DarchetypeVersion=2008.01.0.3-fuse -DgroupId=groupId -DartifactId=artifactId -Dversion=version
mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=spring-osgi-bundle-archetype -DarchetypeVersion=2008.01.0.3-fuse -DgroupId=groupId -DartifactId=artifactId -Dversion=version
Apache CXF wsdl-first archetype Copy linkLink copied to clipboard!
org.apache.servicemix.tooling/servicemix-osgi-cxf-wsdl-first-archetype/2008.01.0.3-fuse
org.apache.servicemix.tooling/servicemix-osgi-cxf-wsdl-first-archetype/2008.01.0.3-fuse
mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-cxf-wsdl-first-archetype -DarchetypeVersion=2008.01.0.3-fuse -DgroupId=groupId -DartifactId=artifactId -Dversion=version
mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-cxf-wsdl-first-archetype -DarchetypeVersion=2008.01.0.3-fuse -DgroupId=groupId -DartifactId=artifactId -Dversion=version
Apache Camel archetype Copy linkLink copied to clipboard!
org.apache.servicemix.tooling/servicemix-osgi-camel-archetype/2008.01.0.3-fuse
org.apache.servicemix.tooling/servicemix-osgi-camel-archetype/2008.01.0.3-fuse
mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-camel-archetype -DarchetypeVersion=2008.01.0.3-fuse -DgroupId=groupId -DartifactId=artifactId -Dversion=version
mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-osgi-camel-archetype -DarchetypeVersion=2008.01.0.3-fuse -DgroupId=groupId -DartifactId=artifactId -Dversion=version
D.2. Configuring the Bundle Plug-In Copy linkLink copied to clipboard!
Overview Copy linkLink copied to clipboard!
instructions element.
Configuration properties Copy linkLink copied to clipboard!
Setting a bundle's symbolic name Copy linkLink copied to clipboard!
+ "." + artifactId, with the following exceptions:
- If groupId has only one section (no dots), the first package name with classes is returned.For example, if the group Id is
commons-logging:commons-logging, the bundle's symbolic name isorg.apache.commons.logging. - If artifactId is equal to the last section of groupId, then groupId is used.For example, if the POM specifies the group ID and artifact ID as
org.apache.maven:maven, the bundle's symbolic name isorg.apache.maven. - If artifactId starts with the last section of groupId, that portion is removed.For example, if the POM specifies the group ID and artifact ID as
org.apache.maven:maven-core, the bundle's symbolic name isorg.apache.maven.core.
Bundle-SymbolicName child in the plug-in's instructions element, as shown in Example D.2.
Example D.2. Setting a bundle's symbolic name
Setting a bundle's name Copy linkLink copied to clipboard!
${project.name}.
Bundle-Name child to the plug-in's instructions element, as shown in Example D.3.
Example D.3. Setting a bundle's name
Setting a bundle's version Copy linkLink copied to clipboard!
${project.version}. Any dashes (-) are replaced with dots (.) and the number is padded up to four digits. For example, 4.2-SNAPSHOT becomes 4.2.0.SNAPSHOT.
Bundle-Version child to the plug-in's instructions element, as shown in Example D.4.
Example D.4. Setting a bundle's version
Specifying exported packages Copy linkLink copied to clipboard!
Export-Package list is populated by all of the packages in your local Java source code (under src/main/java), except for the deault package, ., and any packages containing .impl or .internal.
Private-Package element in your plug-in configuration and you do not specify a list of packages to export, the default behavior includes only the packages listed in the Private-Package element in the bundle. No packages are exported.
Export-Package child to the plug-in's instructions element.
Export-Package element specifies a list of packages that are to be included in the bundle and that are to be exported. The package names can be specified using the * wildcard symbol. For example, the entry com.fuse.demo.* includes all packages on the project's classpath that start with com.fuse.demo.
!. For example, the entry !com.fuse.demo.private excludes the package com.fuse.demo.private.
!com.fuse.demo.private,com.fuse.demo.*
!com.fuse.demo.private,com.fuse.demo.*
Specifying private packages Copy linkLink copied to clipboard!
Private-Package instruction to the bundle plug-in configuration. By default, if you do not specify a Private-Package instruction, all packages in your local Java source are included in the bundle.
Private-Package element and the Export-Package element, the Export-Package element takes precedence. The package is added to the bundle and exported.
Private-Package element works similarly to the Export-Package element in that you specify a list of packages to be included in the bundle. The bundle plug-in uses the list to find all classes on the project's classpath that are to be included in the bundle. These packages are packaged in the bundle, but not exported (unless they are also selected by the Export-Package instruction).
Example D.5. Including a private package in a bundle
Specifying imported packages Copy linkLink copied to clipboard!
Import-Package property with a list of all the packages referred to by the contents of the bundle.
Import-Package child to the plug-in's instructions element. The syntax for the package list is the same as for the Export-Package element and the Private-Package element.
Import-Package element, the plug-in does not automatically scan the bundle's contents to determine if there are any required imports. To ensure that the contents of the bundle are scanned, you must place an * as the last entry in the package list.
Example D.6. Specifying the packages imported by a bundle
More information Copy linkLink copied to clipboard!
Index Copy linkLink copied to clipboard!
A
- AMQPool, Using Apache ActiveMQ Connection Factories
- JCA, JCA pool
- simple, Simple pool
- XA, XA pool
- amqpool:jca-pool, JCA pool
- amqpool:pool, Simple pool
- id, Simple pool
- maxConnections, Simple pool
- maximumActive, Simple pool
- url, Simple pool
- amqpool:xa-pool, XA pool
B
- Bundle-Name, Setting a bundle's name
- Bundle-SymbolicName, Setting a bundle's symbolic name
- Bundle-Version, Setting a bundle's version
- bundles
- exporting packages, Specifying exported packages
- importing packages, Specifying imported packages
- name, Setting a bundle's name
- private packages, Specifying private packages
- symbolic name, Setting a bundle's symbolic name
- version, Setting a bundle's version
C
- componentName, Specifying the target components
- connection factory
- AMQPool (see AMQPool)
- Apache ActiveMQ, Using Apache ActiveMQ Connection Factories
- pooled (see AMQPool)
- ConnectionFactory, Procedure, Procedure, Procedure
- consumer, Types of consumer endpoints
- cacheLevel, Performace tuning using the listener container
- clientId, Performace tuning using the listener container
- concurrentConsumers, Performace tuning using the listener container
- connectionFactory, Procedure
- destination, Configuring a destination
- destinationChooser, Determining the reply destination, Configuring an endpoint to use a destination chooser
- destinationName, Configuring a destination
- destinationResolver, Configuring an endpoint to use a destination resolver
- durableSubscriberName, Using durable subscriptions
- endpoint, Procedure
- generic, Types of consumer endpoints
- JCA, Types of consumer endpoints
- jms102, Procedure
- listenerType, Specifying an endpoint's listener container
- marshaler, Configuring the consumer
- maxMessagesPerTask, Performace tuning using the listener container
- messageSelector, Using message selectors
- pubSubDomaim, Procedure
- receiveTimeout, Performace tuning using the listener container
- recoveryInterval, Performace tuning using the listener container
- replyDeliveryMode, Setting the reply message's persistence
- replyDestination, Determining the reply destination
- replyDestinationName, Determining the reply destination
- replyExplicitQosEnabled, Enforcing the configured values
- replyPriority, Setting the reply message's priority
- replyProperties, Setting custom JMS header properties
- replyTimeToLive, Setting a reply message's lifespan
- serverSessionFactory, Configuring the server session listener container's session factory
- service, Procedure
- soap, Types of consumer endpoints
- stateless, Activating statefullness
- storeFactory, Configuring the datastore
- subscriptionDurable, Using durable subscriptions
- targetEndpoint, Specifying the target endpoint
- targetInterface, Specifying the target endpoint
- targetService, Specifying the target endpoint
- transacted, Using transactions
- consumer endpoint
D
- DefaultConsumerMarshaler, Overview
- DefaultProviderMarshaler, Overview
- delivery mode, Setting the reply message's persistence, Setting a message's persistence
- destination chooser, Determining the reply destination
- implementing, Implementing a destination chooser
- destination resolver
- configuration, Configuring an endpoint to use a destination resolver
- implementing, Implementing a destination resolver
- DestinationChooser, Configuring a destination, Configuring the response destination, Implementing a destination chooser
- destinationChooser, Configuring an endpoint to use a destination chooser
- DestinationResolver, Implementing a destination resolver
- destinationResolver, Configuring an endpoint to use a destination resolver
- durable subscriptions, Using durable subscriptions
E
- Export-Package, Specifying exported packages
I
- Import-Package, Specifying imported packages
J
- java.util.Map, Defining the property map
- JBI wrapper, Using the JBI wrapper, Using the JBI wrapper
- jbi.xml, Contents of a JMS service unit
- jca-consumer, Types of consumer endpoints
- activationSpec, Procedure
- connectionFactory, Procedure
- destination, Configuring a destination
- destinationChooser, Determining the reply destination, Configuring an endpoint to use a destination chooser
- destinationName, Configuring a destination
- destinationResolver, Configuring an endpoint to use a destination resolver
- endpoint, Procedure
- marshaler, Configuring the consumer
- pubSubDomaim, Procedure
- replyDeliveryMode, Setting the reply message's persistence
- replyDestination, Determining the reply destination
- replyDestinationName, Determining the reply destination
- replyExplicitQosEnabled, Enforcing the configured values
- replyPriority, Setting the reply message's priority
- replyProperties, Setting custom JMS header properties
- replyTimeToLive, Setting a reply message's lifespan
- resourceAdapter, Procedure
- service, Procedure
- stateless, Activating statefullness
- storeFactory, Configuring the datastore
- targetEndpoint, Specifying the target endpoint
- targetInterface, Specifying the target endpoint
- targetService, Specifying the target endpoint
- JdbcStore, Configuring the datastore
- JdbcStoreFactory, Configuring the datastore
- jee:environment, Spring JEE JNDI lookup
- jee:jndi-lookup, Spring JEE JNDI lookup
- id, Spring JEE JNDI lookup
- jndi-name, Spring JEE JNDI lookup
- Jencks AMQPool (see AMQPool)
- JmsConsumerMarshaler, Implementing the marshaler
- JMSDeliveryMode, Setting the reply message's persistence, Setting a message's persistence
- JMSExpirary, Setting a reply message's lifespan, Setting a message's life span
- JMSPriority, Setting the reply message's priority, Setting a message's priority
- JmsProviderMarshaler, Implementing the marshaler
- JmsSoapConsumerMarshaler, Overview
- JmsSoapProviderMarshaler, Overview
- JndiObjectFactoryBean, Spring JNDI Templates
- JndiTemplate, Spring JNDI Templates
L
- listener container
M
- map, Defining the property map
- marshaler, Configuring the consumer
- Maven archetypes, Useful Maven archetypes
- Maven tooling
- adding the bundle plug-in, Adding a bundle plug-in
- servicemix-jms-consumer-endpoint, Using the Maven JBI tooling
- servicemix-jms-provider-endpoint, Using the Maven JBI tooling
- set up, Setting up the Maven tools
- MemoryStore, Configuring the datastore
- message persistence, Setting the reply message's persistence, Setting a message's persistence
- message priority, Setting a message's priority
- message selectors, Using message selectors
P
- persistence, Setting the reply message's persistence, Setting a message's persistence
- priority, Setting a message's priority
- Private-Package, Specifying private packages
- provider, Types of providers
- connectionFactory, Procedure
- deliveryMode, Setting a message's persistence
- destination, Configuring a destination
- destinationChooser, Configuring a destination, Configuring the response destination, Configuring an endpoint to use a destination chooser
- destinationName, Configuring a destination
- destinationResolver, Configuring an endpoint to use a destination resolver
- endpoint, Procedure
- explicitQosEnabled, Enforcing configured values
- generic, Types of providers
- jms102, Procedure
- marshaler, Configuring the provider
- messageIdEnabled, Message IDs
- messageTimeStampEnabled, Time stamps
- priority, Setting a message's priority
- pubSubDomaim, Procedure
- recieveTimeout, Configuring the timeout interval
- replyDestination, Configuring the response destination
- replyDestinationName, Configuring the response destination
- service, Procedure
- soap, Types of providers
- stateless, Activating statefullness
- storeFactory, Configuring the datastore
- timeToLive, Setting a message's life span
- provider endpoint
- connection factory, Procedure
R
- replyProperties, Setting custom JMS header properties
S
- service assembly
- seeding, Seeding a project using a Maven artifact
- specifying the service units, Specifying the target components
- service unit
- seeding, Seeding a project using a Maven artifact
- specifying the target component, Specifying the target components
- smx-arch, Seeding a project using a Maven artifact, Seeding a project using a Maven artifact
- soap-consumer, Types of consumer endpoints
- cacheLevel, Performace tuning using the listener container
- clientId, Performace tuning using the listener container
- concurrentConsumers, Performace tuning using the listener container
- connectionFactory, Procedure
- destination, Configuring a destination
- destinationChooser, Determining the reply destination, Configuring an endpoint to use a destination chooser
- destinationName, Configuring a destination
- destinationResolver, Configuring an endpoint to use a destination resolver
- durableSubscriberName, Using durable subscriptions
- endpoint, Procedure
- jms102, Procedure
- listenerType, Specifying an endpoint's listener container
- marshaler, Configuring the consumer
- maxMessagesPerTask, Performace tuning using the listener container
- messageSelector, Using message selectors
- pubSubDomaim, Procedure
- receiveTimeout, Performace tuning using the listener container
- recoveryInterval, Performace tuning using the listener container
- replyDeliveryMode, Setting the reply message's persistence
- replyDestination, Determining the reply destination
- replyDestinationName, Determining the reply destination
- replyExplicitQosEnabled, Enforcing the configured values
- replyPriority, Setting the reply message's priority
- replyProperties, Setting custom JMS header properties
- replyTimeToLive, Setting a reply message's lifespan
- serverSessionFactory, Configuring the server session listener container's session factory
- service, Procedure
- stateless, Activating statefullness
- storeFactory, Configuring the datastore
- subscriptionDurable, Using durable subscriptions
- targetEndpoint, Specifying the target endpoint
- targetInterface, Specifying the target endpoint
- targetService, Specifying the target endpoint
- transacted, Using transactions
- useJbiWrapper, Using the JBI wrapper
- validateWsdl, WSDL verification
- wsdl, Procedure
- soap-provider, Types of providers
- connectionFactory, Procedure
- deliveryMode, Setting a message's persistence
- destination, Configuring a destination
- destinationChooser, Configuring a destination, Configuring the response destination, Configuring an endpoint to use a destination chooser
- destinationName, Configuring a destination
- destinationResolver, Configuring an endpoint to use a destination resolver
- endpoint, Procedure
- explicitQosEnabled, Enforcing configured values
- jms102, Procedure
- marshaler, Configuring the provider
- messageIdEnabled, Message IDs
- messageTimeStampEnabled, Time stamps
- priority, Setting a message's priority
- pubSubDomaim, Procedure
- recieveTimeout, Configuring the timeout interval
- replyDestination, Configuring the response destination
- replyDestinationName, Configuring the response destination
- service, Procedure
- stateless, Activating statefullness
- storeFactory, Configuring the datastore
- timeToLive, Setting a message's life span
- useJbiWrapper, Using the JBI wrapper
- validateWsdl, WSDL verification
- wsdl, Procedure
- Spring map, Defining the property map
T
- time to live, Setting a message's life span
- transactions, Using transactions
U
- util:map, Defining the property map
W
- WS-I basic profile, WSDL verification, WSDL verification
X
- xbean.xml, Contents of a JMS service unit
Legal Notice Copy linkLink copied to clipboard!
Trademark Disclaimer
Legal Notice Copy linkLink copied to clipboard!
Third Party Acknowledgements
- JLine (http://jline.sourceforge.net) jline:jline:jar:1.0License: BSD (LICENSE.txt) - Copyright (c) 2002-2006, Marc Prud'hommeaux
mwp1@cornell.eduAll rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of JLine nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - Stax2 API (http://woodstox.codehaus.org/StAX2) org.codehaus.woodstox:stax2-api:jar:3.1.1License: The BSD License (http://www.opensource.org/licenses/bsd-license.php)Copyright (c) <YEAR>, <OWNER> All rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - jibx-run - JiBX runtime (http://www.jibx.org/main-reactor/jibx-run) org.jibx:jibx-run:bundle:1.2.3License: BSD (http://jibx.sourceforge.net/jibx-license.html) Copyright (c) 2003-2010, Dennis M. Sosnoski.All rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of JiBX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - JavaAssist (http://www.jboss.org/javassist) org.jboss.javassist:com.springsource.javassist:jar:3.9.0.GA:compileLicense: MPL (http://www.mozilla.org/MPL/MPL-1.1.html)
- HAPI-OSGI-Base Module (http://hl7api.sourceforge.net/hapi-osgi-base/) ca.uhn.hapi:hapi-osgi-base:bundle:1.2License: Mozilla Public License 1.1 (http://www.mozilla.org/MPL/MPL-1.1.txt)