This documentation is for WSO2 ESB version 4.5.0. View documentation for the latest release.

Spring Mediator

The Spring Mediator exposes a spring bean as a mediator. The Spring Mediator creates an instance of a mediator, which is managed by Spring. This Spring bean must implement the Mediator interface for it to act as a Mediator.



Syntax

<spring:spring bean="exampleBean" key="string"/>

The attributes of the <spring> element:

  • key - References the Spring ApplicationContext/Configuration (i.e. spring configuration XML) used for the bean. This key can be a registry key or local entry key.
  • bean - Is used for looking up a Spring bean from the spring Application Context. Therefore, a bean with the same name must be in the given spring configuration. In addition, bean must implement the Mediator interface.

UI Configuration

These are the options for the Spring Mediator:

  • Bean - Is used for looking up a Spring bean from the spring Application Context.
  • Key - The registry reference to the spring Application-Context/Configuration used for the bean. You can select it by clicking the "Configuration Registry" or "Governance Registry" links. Refer to more information about Registry Browser in Namespace.

Note

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


Example

<spring:spring bean="springtest" key="conf/sample/resources/spring/springsample.xml"/>

In the above configuration, the spring XML is in the registry and it can be looked up using the registry key conf/sample/resources/spring/springsample.xml. This spring XML (i.e springsample.xml) must contain a bean with the name springtest. The following figure shows an example that can be used as the registry resource - springsample.xml.

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
   <beans>
      <bean id="springtest" class="org.apache.synapse.mediators.spring.SpringTestBean" singleton="false">
         <property name="testProperty" value="100"/>
      </bean>
   </beans>

Also, you need to build the JAR file of the following Spring Bean class and place it in the <ESB_HOME>/repository/components/lib/ directory.

package org.apache.synapse.mediators.spring;

import org.apache.synapse.MessageContext;
import org.apache.synapse.mediators.AbstractMediator;

public class SpringTestBean extends AbstractMediator{
   private String testProperty;

   public void setTestProperty(String testProperty){
      this.testProperty = testProperty;
   }

   public boolean mediate(MessageContext mc) {
            // Do somthing useful..
            // Note the access to the Synapse Message context
            return true;
   }
}

For more examples, see Mediating with Spring.