Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <api xmlns="http://ws.apache.org/ns/synapse" name="tririgaProxy" context="/services">
- <resource methods="GET" url-mapping="/employee">
- <inSequence>
- <sequence key="tririgaConf"/>
- <property name="triUser" expression="get-property('triUser')"/>
- <property name="triPass" expression="get-property('triPass')"/>
- <property name="triURL" expression="get-property('triURL')"/>
- <property name="triWfName" expression="get-property('triPeople.database.employee.wfName')"/>
- <class name="com.wso2.tririga.mediator.IncomingMediator"/>
- <payloadFactory media-type="text">
- <format><![CDATA[$1]</format>
- <args>
- <arg evaluator="xml" expression="/status/text()"/>
- </args>
- </payloadFactory>
- </inSequence>
- </resource>
- package com.wso2.tririga.mediator;
- import java.io.IOException;
- import java.net.URI;
- import java.net.URISyntaxException;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.ResponseHandler;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.client.methods.HttpRequestBase;
- import org.apache.http.client.utils.URIBuilder;
- import org.apache.http.impl.client.CloseableHttpClient;
- import org.apache.http.impl.client.HttpClients;
- import org.apache.http.util.EntityUtils;
- import org.apache.synapse.MessageContext;
- import org.apache.synapse.mediators.AbstractMediator;
- import org.apache.synapse.util.PayloadHelper;
- public class IncomingMediator extends AbstractMediator {
- private static final Log log = LogFactory.getLog(IncomingMediator.class);
- @Override
- public boolean mediate(MessageContext msgContext) {
- String triUser = String.valueOf(msgContext.getProperty("triUser"));
- String triPass = String.valueOf(msgContext.getProperty("triPass"));
- String triURL = String.valueOf(msgContext.getProperty("triURL"));
- String triWfName = String.valueOf(msgContext.getProperty("triWfName"));
- try {
- URI uri = new URIBuilder(triURL)
- .addParameter("USERNAME", triUser)
- .addParameter("PASSWORD", triPass)
- .addParameter("ioName", triWfName).build();
- log.info("URI: "+uri.toString());
- String response = execute(uri);
- PayloadHelper.setTextPayload(msgContext, convertToXML(response));
- } catch (URISyntaxException e) {
- log.error("Error while creating URI", e);
- }
- return true;
- }
- private static String execute(URI uri) {
- String responseBody = null;
- CloseableHttpClient httpclient = HttpClients.createDefault();
- try {
- HttpGet get = new HttpGet();
- ((HttpRequestBase) get).setURI(uri);
- ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
- @Override
- public String handleResponse(final HttpResponse response) throws ClientProtocolException, IOException {
- int status = response.getStatusLine().getStatusCode();
- if (status >= 200 && status < 300) {
- HttpEntity entity = response.getEntity();
- String responseStr = EntityUtils.toString(entity);
- return "Successful".equalsIgnoreCase(responseStr) ? "RetCode=C;Message=Success" : "RetCode=F;Message=Failed because Itegration Exception";
- } else {
- throw new ClientProtocolException("Unexpected response status: " + status);
- }
- }
- };
- try {
- responseBody = httpclient.execute(get, responseHandler);
- } catch (ClientProtocolException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- } finally {
- try {
- httpclient.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return responseBody;
- }
- private static String convertToXML(String response){
- return"<status>"+response+"</status>";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement