All docs This doc

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


The parameters available for configuring the Property mediator are as follows: 

Parameter NameDescription

A name for the property.


For names of the generic properties that come by default, see Generic Properties. You can select them from the drop-down list if you are adding the Property Mediator via Tooling as shown below.

generic properties listImage Added


The action to be performed for the property.

  • Set: If this is selected, the property will be set in the message context.
  • Remove: If this is selected, the property will be removed from the message context.
Set Action As

The possible values for this parameter are as follows:

  • Value: If this is selected, a static value would be considered as the property value and this value should be entered in the Value parameter.
  • Expression: If this is selected, the property value will be determined during mediation by evaluating an expression. This expression should be entered in the Expression parameter.


The data type for the property. Property mediator will handle the property as a property of selected type. Available values are as follows.

  • LONG
  • OM

String is the default type.


The OM type is used to set xml property values on the message context. This is useful when the expression associated with the property mediator evaluates to an XML node during mediation. When the OM type is used, the XML is converted to an AXIOM OMElement before it is assigned to a property.

ValueIf the Value option is selected for the Set Action As parameter, the property value should be entered as a constant in this parameter.
If the Expression option is selected for the Set Action As parameter, the expression which determines the property value should be entered in this parameter. This expression can be an XPath expression or a JSONPath expression.  

When specifying a JSONPath, use the format json-eval(<JSON_PATH>), such as json-eval(getQuote.request.symbol). In both XPath and JSONPath expressions, you can return the value of another property by calling get-property(property-name). For example, you might create a property called JSON_PATH of which the value is json-eval(pizza.toppings), and then you could create another property called JSON_PRINT of which the value is get-property('JSON_PATH'), allowing you to use the value of the JSON_PATH property in the JSON_PRINT property. For more information on using JSON with the ESB, see JSON Support.


You can click NameSpaces to add namespaces if you are providing an expression. Then the Namespace Editor panel would appear where you can provide any number of namespace prefixes and URLs used in the XPath expression. 

PatternThis parameter is used to enter a regular expression that will be evaluated against the value of the property or result of the XPath/JSON Path expression.
GroupThe number (index) of the matching item evaluated using the regular expression entered in the Pattern parameter.

The scope at which the property will be set or removed from. Possible values are as follows.

  • Synapse: This is the default scope. The properties set in this scope last as long as the transaction (request-response) exists.
  • Transport: The properties set in this scope will be considered transport headers. For example, if it is required to send an HTTP header named 'CustomHeader' with an outgoing request, you can use the property mediator configuration with this scope.
  • Axis2: Properties set in this scope have a shorter life span than those set in the Synapse scope. They are mainly used for passing parameters to the underlying Axis2 engine
  • axis2-client: This is similar to the Synapse scope. The difference between the two scopes is that the axis2-client scope can beaccessed inside the mediate() method of a mediator via a customs mediator created using the Class mediator. See axis2-client for further information.
  • Operation: This scope is used to retrieve a property in the operation context level.
  • Registry: This scope is used to retrieve properties within the registry .  
  • System: This scope is used to retrieve Java system properties.

See XPath Extension Functions for a detailed explanation of each scope.



You can configure the mediator using XML. Click switch to source view in the Mediator window.



This example was added for the FAQ How can I send a fault message based on (with the contect-type of) 'Accept' http header?. If you edit this section, please edit the FAQ as well.

Example 3: Reading a property stored in the Registry

You can read a property that is stored in the Registry by using the get-property() method in your Synapse configuration. For example, the following Synapse configuration retrieves the abc property of the collection gov:/data/xml/collectionx, and stores it in the regProperty property.

Code Block
<property name="regProperty" expression="get-property('registry', 'gov:/data/xml/collectionx@abc')"/>

You can use the following syntaxes to read properties or resources stored in the gov or conf Registries. When specifying the path to the resource, do not give the absolute path. Instead, use the gov or conf prefixes.

Reading a property stored under a collection
  • get-property('registry','gov:<path to resource from governance>@<propertyname>')
  • get-property('registry','conf:<path to resource from config>@<propertyname>')
Reading a property stored under a resource
  • get-property('registry','gov:<path to resource from governance>/@<propertyname>')
  • get-property('registry','conf:<path to resource from config>/@<propertyname>')
Reading an XML resource
  • get-property('registry','gov:<path to resource from governance>')
  • get-property('registry','conf:<path to resource from config>')

Example 4: Reading a file stored in the Registry

Following is an example, in which you read an XML file that is stored in the registry using XPath, to retrieve a value from it. Assume you have the following XML file stored in the Registry (i.e., gov:/test.xml).

Code Block
  <book>A Song of Ice and Fire</book>
  <author>George R. R. Martin</author>

Your Synapse configuration should be as follows. This uses XPath to read XML.

Code Block
<property name="xmlFile" expression="get-property('registry','gov:/test.xml')" scope="default" type="OM"></property>
<log level="custom">
    <property name="Book_Name" expression="$ctx:xmlFile//book"></property>

Your output log will look like this.

Code Block
[2015-09-21 16:01:28,750]  INFO - LogMediator Book_Name = A Song of Ice and Fire