Package com.sun.messaging.bridge.api
Class MessageTransformer<T,S>
java.lang.Object
com.sun.messaging.bridge.api.MessageTransformer<T,S>
The message transformer class to be extended by user. Its implementation must provide a public zero-argument
constructor.
The following is an example usage of this class for MQ STOMP bridge
import java.util.*; import jakarta.jms.*; import com.sun.messaging.bridge.api.MessageTransformer; public class MessageTran extends MessageTransformer <Message, Message> { public Message transform(Message message, boolean readOnly, String charsetName, String source, String target, Properties properties) throws Exception { Message m = message; if (source.equals(STOMP)) { //from STOMP client to Java Message Queue //convert any invalid headers from STOMP SEND frame if (properties != null) { ...... //convert key to valid JMS message property name, then call m.setStringProperty() ...... } } else if (source.equals(SUN_MQ)) { //from Java Message Queue to STOMP client if (message instanceof ObjectMessage) { //create a new BytesMessage for message to be transformed to BytesMessage bm = (BytesMessage)createJMSMessage(JMSMessageType.BYTESMESSAGE); //convert message to the BytesMessage ...... m = bm; } else { .... } } return m; }
- Author:
- amyk
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final void
To be called from the transform() method when needs to tell the bridge to branch the message that is to be returned by the transform() call to a different destination in the target providerprotected final jakarta.jms.Message
Create a JMS message object.protected final jakarta.jms.Queue
createQueue
(String queueName) To be called from the transform() method when needs to create a JMS Queue object to the target providerprotected final jakarta.jms.Topic
createTopic
(String topicName) To be called from the transform() method when needs to create a JMS Topic object to the target providerfinal Object
This method is called by the bridge service after transform() is returned for bridge types that support branchTo()final void
This method is called by the bridge service before transform() is called.final boolean
This method is called by the bridge service after transform() is returned for bridge types that support noTransfer()protected final void
To be called from the transform() method when needs to tell the bridge to consume from source and not transfer to target the message that is to be returned by the transform() callabstract T
transform
(S message, boolean readOnly, String charsetName, String source, String target, Properties properties) To be implemented by user
-
Field Details
-
SUN_MQ
The predefined provider name for JMS message to/from Sun Java Message Queue- See Also:
-
STOMP
The predefined provider name for JMS message to/from STOMP client- See Also:
-
-
Constructor Details
-
MessageTransformer
public MessageTransformer()
-
-
Method Details
-
init
This method is called by the bridge service before transform() is called. A message transformer object is initialized by init() each time before transform() is called. After transform() returns, it's back to uninitialized state. -
getBranchTo
This method is called by the bridge service after transform() is returned for bridge types that support branchTo() -
isNoTransfer
public final boolean isNoTransfer()This method is called by the bridge service after transform() is returned for bridge types that support noTransfer() -
createJMSMessage
protected final jakarta.jms.Message createJMSMessage(MessageTransformer.JMSMessageType type) throws Exception Create a JMS message object. This method is to be used in tranform() method implemenation when it needs to create a new JMS message- Parameters:
type
- the type of the JMS message to be created- Returns:
- a newly created uninitialized JMS message object
- Throws:
IllegalStateException
- if this MessageTransfomer object is not initializedException
- if fails to create the JMS Message
-
createQueue
To be called from the transform() method when needs to create a JMS Queue object to the target provider- Parameters:
queueName
- the name of the Queue- Returns:
- a jakarta.jms.Queue object
- Throws:
IllegalStateException
- if this MessageTransfomer object is not initializedException
- if fails to create the Queue object
-
createTopic
To be called from the transform() method when needs to create a JMS Topic object to the target provider- Parameters:
topicName
- the name of the Topic- Returns:
- a jakarta.jms.Topic object
- Throws:
IllegalStateException
- if this MessageTransfomer object is not initializedException
- if fails to create the Topic object
-
branchTo
To be called from the transform() method when needs to tell the bridge to branch the message that is to be returned by the transform() call to a different destination in the target provider- Parameters:
d
- a java.lang.String or jakarta.jms.Destination object that specifies the destination in target provider to branch the message to- Throws:
IllegalStateException
- if this MessageTransfomer object is not initializedIllegalArgumentException
- if null or unexpected object type passed inUnsupportedOperationException
- if the operation is not supported for the bridge typeException
- if fails to create the JMS Message
-
noTransfer
To be called from the transform() method when needs to tell the bridge to consume from source and not transfer to target the message that is to be returned by the transform() call- Throws:
IllegalStateException
- if this MessageTransfomer object is not initializedUnsupportedOperationException
- if the operation is not supported for the bridge typeException
-
transform
public abstract T transform(S message, boolean readOnly, String charsetName, String source, String target, Properties properties) throws Exception To be implemented by user- Parameters:
message
- the message object to be tranformed.readOnly
- if the message is in read-only modecharsetName
- the charset name for message if applicable, null if not availablesource
- the source provider nametarget
- the target provider nameproperties
- any properties for the transform() call, null if none- Returns:
- a message object that is transformed from the passed in message
- Throws:
Exception
- if unable to transform message
-