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 SummaryNested Classes
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected final voidTo 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.MessageCreate a JMS message object.protected final jakarta.jms.QueuecreateQueue(String queueName) To be called from the transform() method when needs to create a JMS Queue object to the target providerprotected final jakarta.jms.TopiccreateTopic(String topicName) To be called from the transform() method when needs to create a JMS Topic object to the target providerfinal ObjectThis method is called by the bridge service after transform() is returned for bridge types that support branchTo()final voidThis method is called by the bridge service before transform() is called.final booleanThis method is called by the bridge service after transform() is returned for bridge types that support noTransfer()protected final voidTo 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 Ttransform(S message, boolean readOnly, String charsetName, String source, String target, Properties properties) To be implemented by user
- 
Field Details- 
SUN_MQThe predefined provider name for JMS message to/from Sun Java Message Queue- See Also:
 
- 
STOMPThe predefined provider name for JMS message to/from STOMP client- See Also:
 
 
- 
- 
Constructor Details- 
MessageTransformerpublic MessageTransformer()
 
- 
- 
Method Details- 
initThis 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.
- 
getBranchToThis method is called by the bridge service after transform() is returned for bridge types that support branchTo()
- 
isNoTransferpublic final boolean isNoTransfer()This method is called by the bridge service after transform() is returned for bridge types that support noTransfer()
- 
createJMSMessageprotected 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 initialized
- Exception- if fails to create the JMS Message
 
- 
createQueueTo 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 initialized
- Exception- if fails to create the Queue object
 
- 
createTopicTo 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 initialized
- Exception- if fails to create the Topic object
 
- 
branchToTo 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 initialized
- IllegalArgumentException- if null or unexpected object type passed in
- UnsupportedOperationException- if the operation is not supported for the bridge type
- Exception- if fails to create the JMS Message
 
- 
noTransferTo 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 initialized
- UnsupportedOperationException- if the operation is not supported for the bridge type
- Exception
 
- 
transformpublic 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 mode
- charsetName- the charset name for message if applicable, null if not available
- source- the source provider name
- target- the target provider name
- properties- 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
 
 
-