Here i have added class mediator code and sample synapse configuration to get carbon server home property. To test this create java project and add following class mediator code file to /repository/components/lib directory and add following synapse configuration to source view. Then you can invoke created proxy service.
Class mediator code.
package main.java.org.wso2.carbon.custommediator;
import org.apache.synapse.MessageContext;
import org.apache.synapse.core.axis2.Axis2MessageContext;
import org.apache.synapse.mediators.AbstractMediator;
public class SampleCustomMediator extends AbstractMediator {
public boolean mediate(MessageContext synapseMsgContext) {
String carbonHome = System.getProperty("carbon.home");
log.info("Carbon Home is : "+carbonHome);
synapseMsgContext.setProperty("CARBON_HOME", carbonHome);
return true;
}
Synapse configuration.
You can invoke create proxy service by calling following URL
https://130.76.202.98:9443/services/EchoProxyTest
Then you will get following response.
Class mediator code.
package main.java.org.wso2.carbon.custommediator;
import org.apache.synapse.MessageContext;
import org.apache.synapse.core.axis2.Axis2MessageContext;
import org.apache.synapse.mediators.AbstractMediator;
public class SampleCustomMediator extends AbstractMediator {
public boolean mediate(MessageContext synapseMsgContext) {
String carbonHome = System.getProperty("carbon.home");
log.info("Carbon Home is : "+carbonHome);
synapseMsgContext.setProperty("CARBON_HOME", carbonHome);
return true;
}
Synapse configuration.
<proxyname="EchoProxyTest"
transports="https http"
startOnLoad="true"
trace="disable">
<target>
<inSequence>
<classname="main.java.org.wso2.carbon.custommediator.SampleCustomMediator"/>
<sequencekey="responseTest"/>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
</proxy>
<sequencename="responseTest">
<scriptlanguage="js">var carbonHome = mc.getProperty("CARBON_HOME");
var carbonHomeTest = "sanjeewa";
mc.setPayloadXML(<serverHome>{carbonHome}</serverHome>);</script>
<headername="To"action="remove"/>
<propertyname="NO_ENTITY_BODY"scope="axis2"action="remove"/>
<propertyname="RESPONSE"value="true"/>
<send/>
<loglevel="full"/>
</sequence>
You can invoke create proxy service by calling following URL
https://130.76.202.98:9443/services/EchoProxyTest
Then you will get following response.
<serverHome>/home/sanjeewa/work/packs/wso2esb-4.8.0</serverHome>