Retrieve the Properties inside ESB 4.9.0 Synapse Engine for API Invoke using Class Mediator

Ajanthan Eliyathamby 🇱🇰
2 min readDec 12, 2023

--

[Article moved from ajanthane.blogspot.com]

To retrieve the list of properties available inside the Synapse Engine, follow the below:

Create a class mediator as below:

package com.custom.urlmapping;

import java.util.Set;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.MessageContext;
import org.apache.synapse.mediators.AbstractMediator;

public class RetrieveURLMappingMediator extends AbstractMediator {

private static final Log log = LogFactory
.getLog(RetrieveURLMappingMediator.class);

public boolean mediate(MessageContext context) {

log.info("RetrieveURLMappingMediator Invoked.");

Set propertySet = context.getPropertyKeySet();
for (Object propertyKey : propertySet) {

log.info("Key: " + propertyKey.toString() + "| value: "
+ context.getProperty(propertyKey.toString()));
}

return true;
}
}

Create a API as below:

<api xmlns="http://ws.apache.org/ns/synapse" name="RetriveURLMapping" context="/retrieve">
<resource methods="GET" uri-template="/view/{symbol}">
<inSequence>
<log level="custom">
<property name="STATUS" value="------------------RetriveURLMapping Invoked--------------------"></property>
</log>
<class name="com.custom.urlmapping.RetrieveURLMappingMediator"></class>
<log level="custom">
<property name="STATUS" value="------------------RetriveURLMapping Invoked END--------------------"></property>
</log>
</inSequence>
</resource>
</api>

Output log will be:

[2017-03-08 15:16:14,713]  INFO - LogMediator STATUS = ------------------RetriveURLMapping Invoked--------------------
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator RetrieveURLMappingMediator Invoked.
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: REST_API_CONTEXT| value: /retrieve
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: REST_URL_PREFIX| value: http://172.17.0.1:8280
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: SYNAPSE_REST_API_VERSION| value:
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: REST_METHOD| value: GET
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: REST_SUB_REQUEST_PATH| value: /view/12345
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: REST_FULL_REQUEST_PATH| value: /retrieve/view/12345
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: uri.var.symbol| value: 12345
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: TRANSPORT_IN_NAME| value: http
[2017-03-08 15:16:14,714] INFO - RetrieveURLMappingMediator Key: SYNAPSE_RESOURCE| value: e056039cf63ab475f60c7bcc490e27bd50789e56c10dc453
[2017-03-08 15:16:14,715] INFO - RetrieveURLMappingMediator Key: SYNAPSE_REST_API| value: RetriveURLMapping
[2017-03-08 15:16:14,715] INFO - LogMediator STATUS = ------------------RetriveURLMapping Invoked END--------------------

--

--

Ajanthan Eliyathamby 🇱🇰
Ajanthan Eliyathamby 🇱🇰

Written by Ajanthan Eliyathamby 🇱🇰

Associate Architect — Enterprise Integration | 14x WSO2 | 1x HashiCorp | 1× Azure | Runner-Up WCPY 2020 | https://ajanthane.blogspot.com

No responses yet