To avoid writing another service or creating a full-blown WSO2 Data Services Server to overcome the lack of a database broker, I expanded the existing mediator but did not bring my code back into the community due to time constraints. Here is the code for the updated org.apache.synapse.mediators.db.DBLookupMediator.
Basically, it converts the ResultSet to XML format and sets the result to the DB_SEARCH_RESULT property. It will probably also require polishing and testing under race conditions.
package org.apache.synapse.mediators.db; import org.apache.synapse.MessageContext; import org.apache.synapse.SynapseException; import org.apache.synapse.SynapseLog; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import java.io.StringWriter; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Connection; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; public class DBLookupMediator extends AbstractDBMediator { public static final String DB_SEARCH_RESULTS_PROPERTY_NAME = "DB_SEARCH_RESULT"; protected void processStatement(Statement stmnt, MessageContext msgCtx) { SynapseLog synLog = getLog(msgCtx);
source share