Working with the message context
You can work with the message properties to affect the way a message is mediated.
Before you begin
About this task
Interface SIMessageContext has a superinterface MessageContext. Methods in MessageContext allow you to manage a set of message properties, which enable handlers in a handler chain to share processing-related state. Most importantly, you can get the value of a specific property from the MessageContext by using the method getProperty, and you can set the name and value of a property associated with the MessageContext by using the method setProperty. You can also view the names of the properties in this MessageContext and remove a property (that is, a name-value pair) from the MessageContext.
At mediation runtime, all of the user-defined properties that have been set during configuration for the current mediation (see Configuring mediation context properties) are applied to the MediationContext property set.
Procedure
- Locate the point in your mediation handler where you insert the functional mediation code, in the method handle (MessageContext context). As you are working with the MessageContext methods that give you access to message properties, you do not have to cast the interface to SIMessageContext unless you are also interested in the methods provided by SIMessageContext.
- Get the SIMessage from the MessageContext object. For example, SIMessage message = ((SIMessageContext)context).getSIMessage();
- Retrieve or set properties, by using the MessageContext methods. For instance, if a property has been defined during configuration with the name streetName, the type String, and the value "Main Street" your code to retrieve and print the street name might look like this:
Example
public boolean handle(MessageContext context) throws MessageContextException {
........
{
/* Retrieve the street name property */
String myStreetName;
myStreetName = (String) getProperty(streetName);
/* Display property value */
System.out.println(myStreetName);
}
}