You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by sa...@apache.org on 2006/05/05 09:34:49 UTC
svn commit: r400001 - in /incubator/synapse/trunk/scratch/synapse2:
modules/core/src/org/apache/synapse/
modules/core/src/org/apache/synapse/axis2/
modules/core/src/org/apache/synapse/config/xml/
modules/core/src/org/apache/synapse/core/ modules/core/s...
Author: saminda
Date: Fri May 5 00:34:45 2006
New Revision: 400001
URL: http://svn.apache.org/viewcvs?rev=400001&view=rev
Log:
Introduce Synapse Config, Environment and Context.. and move axis2 code into core/axis2
Added:
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/SynapseEnvironment.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/
- copied from r399965, incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/axis2/
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessageContext.java
Removed:
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/axis2/
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseContext.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/ServiceMediatorMessageReceiver.java
Modified:
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/Constants.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseContext.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseMessage.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/AbstractListMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseConfigurationBuilder.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/TransformMediatorFactory.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseContextFinder.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessage.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/DynamicAxisOperation.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/EmptyMessageReceiver.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseDispatcher.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java
incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/ext/ClassMediator.java
incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/emptymediator/META-INF/services.xml
incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/synapse/META-INF/services.xml
incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/environmentaware-service.xml
incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/service-mediator.xml
incubator/synapse/trunk/scratch/synapse2/repository/conf/axis2.xml
incubator/synapse/trunk/scratch/synapse2/repository/services/emptymediator/META-INF/services.xml
incubator/synapse/trunk/scratch/synapse2/repository/services/synapse/META-INF/services.xml
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/Constants.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/Constants.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/Constants.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/Constants.java Fri May 5 00:34:45 2006
@@ -37,7 +37,9 @@
//this is for the synapse.config config
String SYNAPSE_CONFIGURATION = "SynapseConfiguration";
- String SYNAPSE_CONTEXT = "synapse.context";
+ String SYNAPSE_CONFIG = "synapse.config";
+
+ String SYNAPSE_ENV = "synapse.env";
String ADD_ADDRESSING = "synapse.send.useaddressing";
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseContext.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseContext.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseContext.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseContext.java Fri May 5 00:34:45 2006
@@ -17,36 +17,19 @@
import org.apache.synapse.config.SynapseConfiguration;
+import org.apache.synapse.core.SynapseEnvironment;
/**
* The Synapse Context is available to mediators through the SynapseMessage. It
- * allows one to call to the underlying SOAP engine (such as Axis2) where required.
- * e.g. send message, get classloader etc. It also holds a reference to the current
- * SynapseConfiguration.
+ * allows one to call to the underlying SynapseEnvironment (i.e. the SOAP engine
+ * - such as Axis2 - where required. It also allows one to access the current
+ * SynapseConfiguration. Additionally it holds per message properties (i.e. local
+ * properties valid for the lifetime of the message)
*/
public interface SynapseContext {
/**
- * This method injects a new message into the Synapse engine. This is used by
- * the underlying SOAP engine to inject messages into Synapse for mediation.
- * e.g. The SynapseMessageReceiver used by Axis2 invokes this to inject new messages
- */
- public void injectMessage(SynapseMessage smc);
-
- /**
- * Mediators may get access to the relevant classloader through this
- */
- public ClassLoader getClassLoader();
-
- /**
- * This method allows a message to be sent through the underlying SOAP engine.
- * <p/>
- * This will send request messages on (forward), and send the response messages back to the client
- */
- public void send(SynapseMessage smc);
-
- /**
* Get a reference to the current SynapseConfiguration
*
* @return the current synapse configuration
@@ -60,5 +43,43 @@
* @param cfg The new synapse configuration instance
*/
public void setConfiguration(SynapseConfiguration cfg);
+
+ /**
+ * Returns a reference to the host Synapse Environment
+ * @return the Synapse Environment
+ */
+ public SynapseEnvironment getSynapseEnvironment();
+
+ /**
+ * Sets the SynapseEnvironment reference to this context
+ * @param se the reference to the Synapse Environment
+ */
+ public void setSynapseEnvironment(SynapseEnvironment se);
+
+ /**
+ * Sets the associated Synapse message
+ * @param sm the synapse message associated with this context
+ */
+ public void setSynapseMessage(SynapseMessage sm);
+
+ /**
+ * Return the associated SynapseMessage
+ * @return the associated Synapse message
+ */
+ public SynapseMessage getSynapseMessage();
+
+ /**
+ * Get the value of a custom (local) property set on the message instance
+ * @param key key to look up property
+ * @return value for the given key
+ */
+ public Object getProperty(String key);
+
+ /**
+ * Set a custom (local) property with the given name on the message instance
+ * @param key key to be used
+ * @param value value to be saved
+ */
+ public void setProperty(String key, Object value);
}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseMessage.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseMessage.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseMessage.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/SynapseMessage.java Fri May 5 00:34:45 2006
@@ -60,7 +60,7 @@
public RelatesTo getRelatesTo();
- public void setRelatesTo(RelatesTo reference);
+ public void setRelatesTo(RelatesTo[] reference);
public EndpointReference getReplyTo();
@@ -83,20 +83,6 @@
public String getWSAAction();
/**
- * Get the value of a custom property set on the message instance
- * @param key key to look up property
- * @return value for the given key
- */
- public Object getProperty(String key);
-
- /**
- * Set a custom property with the given name on the message instance
- * @param key key to be used
- * @param value value to be saved
- */
- public void setProperty(String key, Object value);
-
- /**
* Returns the SOAPAction of the message
* @return the SOAPAction
*/
@@ -107,6 +93,18 @@
* @param string the SOAP Action
*/
public void setSoapAction(String string);
+
+ /**
+ * Set the message if
+ * @param messageID
+ */
+ public void setMessageId(String messageID);
+
+ /**
+ * Gets the message id
+ * @return the message id
+ */
+ public String getMessageId();
/**
* If this message using MTOM?
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/AbstractListMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/AbstractListMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/AbstractListMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/AbstractListMediatorFactory.java Fri May 5 00:34:45 2006
@@ -19,7 +19,6 @@
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.api.ListMediator;
import org.apache.synapse.api.Mediator;
@@ -35,12 +34,12 @@
private static final Log log = LogFactory.getLog(AbstractListMediatorFactory.class);
- public void addChildren(SynapseContext synCtx, OMElement el, ListMediator m)
+ public void addChildren(OMElement el, ListMediator m)
{
Iterator it = el.getChildElements();
while (it.hasNext()) {
OMElement child = (OMElement) it.next();
- Mediator med = MediatorFactoryFinder.getInstance().getMediator(synCtx, child);
+ Mediator med = MediatorFactoryFinder.getInstance().getMediator(child);
if (med != null) {
m.addChild(med);
} else {
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java Fri May 5 00:34:45 2006
@@ -18,7 +18,6 @@
import javax.xml.namespace.QName;
import org.apache.synapse.config.xml.Constants;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.ext.ClassMediator;
@@ -33,14 +32,15 @@
public class ClassMediatorFactory extends AbstractMediatorFactory {
private static final QName CLM_Q = new QName(Constants.SYNAPSE_NAMESPACE,
"classmediator");
- public Mediator createMediator(SynapseContext se, OMElement el) {
+ public Mediator createMediator(OMElement el) {
ClassMediator cmp = new ClassMediator();
OMAttribute clsName = el.getAttribute(new QName("class"));
if (clsName == null)
throw new SynapseException("missing class attribute on element"
+ el.toString());
try {
- Class clazz = se.getClassLoader().loadClass(clsName.getAttributeValue());
+ //TODO replace this hack to get the classloader from the synapse env - temp fix
+ Class clazz = getClass().getClassLoader().loadClass(clsName.getAttributeValue());
cmp.setClazz(clazz);
} catch (ClassNotFoundException e) {
throw new SynapseException("class loading error", e);
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java Fri May 5 00:34:45 2006
@@ -16,7 +16,6 @@
package org.apache.synapse.config.xml;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.config.xml.Constants;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.builtin.DropMediator;
@@ -33,7 +32,7 @@
private static final QName DROP_Q = new QName(Constants.SYNAPSE_NAMESPACE, "drop");
- public Mediator createMediator(SynapseContext se, OMElement el) {
+ public Mediator createMediator(OMElement el) {
return new DropMediator();
}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java Fri May 5 00:34:45 2006
@@ -17,7 +17,6 @@
import javax.xml.namespace.QName;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.config.xml.Constants;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.transform.FaultMediator;
@@ -49,7 +48,7 @@
private static final String SOAP11 = "soap11";
private static final String SOAP12 = "soap12";
- public Mediator createMediator(SynapseContext synMsg, OMElement elem) {
+ public Mediator createMediator(OMElement elem) {
FaultMediator faultMediator = new FaultMediator();
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java Fri May 5 00:34:45 2006
@@ -16,7 +16,6 @@
package org.apache.synapse.config.xml;
import org.apache.synapse.api.Mediator;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.mediators.filters.FilterMediator;
import org.apache.axiom.om.OMElement;
@@ -45,9 +44,9 @@
private static final QName FILTER_Q = new QName(Constants.SYNAPSE_NAMESPACE, "filter");
- public Mediator createMediator(SynapseContext synCtx, OMElement elem) {
+ public Mediator createMediator(OMElement elem) {
FilterMediator filter = new FilterMediator();
- super.addChildren(synCtx, elem, filter);
+ super.addChildren(elem, filter);
OMAttribute attXpath = elem.getAttribute(new QName(Constants.NULL_NAMESPACE, "xpath"));
OMAttribute attSource = elem.getAttribute(new QName(Constants.NULL_NAMESPACE, "source"));
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java Fri May 5 00:34:45 2006
@@ -17,12 +17,10 @@
import javax.xml.namespace.QName;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.config.xml.Constants;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.transform.HeaderMediator;
-import org.apache.synapse.mediators.transform.HeaderMediator;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.xpath.AXIOMXPath;
@@ -45,7 +43,7 @@
private static final QName HEADER_Q = new QName(Constants.SYNAPSE_NAMESPACE, "header");
- public Mediator createMediator(SynapseContext synCtx, OMElement elem) {
+ public Mediator createMediator(OMElement elem) {
HeaderMediator headerMediator = new HeaderMediator();
OMAttribute name = elem.getAttribute(new QName(Constants.NULL_NAMESPACE, "name"));
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java Fri May 5 00:34:45 2006
@@ -18,7 +18,6 @@
import javax.xml.namespace.QName;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.builtin.LogMediator;
@@ -53,7 +52,7 @@
return LOG_Q;
}
- public Mediator createMediator(SynapseContext synCtx, OMElement elem) {
+ public Mediator createMediator(OMElement elem) {
LogMediator logMediator = new LogMediator();
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java Fri May 5 00:34:45 2006
@@ -19,6 +19,7 @@
import javax.xml.namespace.QName;
import org.apache.synapse.SynapseContext;
+import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.api.Mediator;
import org.apache.axiom.om.OMElement;
@@ -29,11 +30,10 @@
public interface MediatorFactory {
/**
* Creates an instance of the mediator using the OMElement
- * @param se
* @param el
* @return the created mediator
*/
- public Mediator createMediator(SynapseContext se, OMElement el);
+ public Mediator createMediator(OMElement el);
/**
* The QName of this mediator element in the XML config
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java Fri May 5 00:34:45 2006
@@ -27,12 +27,10 @@
import org.apache.commons.logging.LogFactory;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.config.xml.MediatorFactory;
import org.apache.synapse.api.Mediator;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNamespace;
import sun.misc.Service;
@@ -110,11 +108,10 @@
* recursively by the elements which contain processor elements themselves
* (e.g. rules)
*
- * @param synapseCtx
* @param element
- * @return Processor
+ * @return Processor
*/
- public Mediator getMediator(SynapseContext synapseCtx, OMElement element) {
+ public Mediator getMediator(OMElement element) {
QName qName = new QName(element.getNamespace().getName(), element.getLocalName());
log.debug("getMediator(" + qName + ")");
@@ -128,7 +125,7 @@
try {
MediatorFactory mf = (MediatorFactory) cls.newInstance();
- return mf.createMediator(synapseCtx, element);
+ return mf.createMediator(element);
} catch (InstantiationException e) {
String msg = "Error initializing mediator factory : " + cls;
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java Fri May 5 00:34:45 2006
@@ -21,7 +21,6 @@
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.builtin.SendMediator;
-import org.apache.synapse.SynapseContext;
import org.apache.axiom.om.OMElement;
/**
@@ -60,7 +59,7 @@
private static final QName SEND_Q = new QName(Constants.SYNAPSE_NAMESPACE, "send");
- public Mediator createMediator(SynapseContext synMsg, OMElement el) {
+ public Mediator createMediator(OMElement el) {
SendMediator sm = new SendMediator();
return sm;
}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java Fri May 5 00:34:45 2006
@@ -16,7 +16,6 @@
package org.apache.synapse.config.xml;
import org.apache.synapse.api.Mediator;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.mediators.base.SequenceMediator;
import org.apache.axiom.om.OMElement;
@@ -47,15 +46,14 @@
return SEQUENCE_Q;
}
- public Mediator createMediator(SynapseContext synCtx, OMElement elem) {
+ public Mediator createMediator(OMElement elem) {
SequenceMediator seqMediator = new SequenceMediator();
OMAttribute n = elem.getAttribute(new QName(Constants.NULL_NAMESPACE, "name"));
if (n != null) {
seqMediator.setName(n.getAttributeValue());
- super.addChildren(synCtx, elem, seqMediator);
- synCtx.getConfiguration().addNamedMediator(n.getAttributeValue(), seqMediator);
+ super.addChildren(elem, seqMediator);
} else {
n = elem.getAttribute(new QName(Constants.NULL_NAMESPACE, "ref"));
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseConfigurationBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseConfigurationBuilder.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseConfigurationBuilder.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseConfigurationBuilder.java Fri May 5 00:34:45 2006
@@ -18,7 +18,6 @@
import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.mediators.base.SequenceMediator;
@@ -28,7 +27,6 @@
import javax.xml.stream.XMLStreamException;
import java.io.InputStream;
-import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
@@ -39,9 +37,11 @@
public SynapseConfigurationBuilder() {}
- public void setConfiguration(SynapseContext synCtx, InputStream is) {
+ public SynapseConfiguration getConfig() {
+ return config;
+ }
- synCtx.setConfiguration(config);
+ public void setConfiguration(InputStream is) {
OMElement root = null;
try {
@@ -58,7 +58,7 @@
Iterator iter = definitions.getChildrenWithName(Constants.SEQUENCE_ELT);
while (iter.hasNext()) {
OMElement elt = (OMElement) iter.next();
- defineSequence(synCtx, elt);
+ defineSequence(elt);
}
}
@@ -67,7 +67,7 @@
Iterator iter = endpoints.getChildrenWithName(Constants.ENDPOINT_ELT);
while (iter.hasNext()) {
OMElement elt = (OMElement) iter.next();
- //defineEndpoint(synCtx, elt); //TODO process Endpoints
+ //defineEndpoint(synCfg, elt); //TODO process Endpoints
}
}
@@ -76,7 +76,7 @@
Iterator iter = properties.getChildrenWithName(Constants.PROPERTY_ELT);
while (iter.hasNext()) {
OMElement elt = (OMElement) iter.next();
- //defineProperty(synCtx, elt); //TODO process Properties
+ //defineProperty(synCfg, elt); //TODO process Properties
}
}
@@ -86,7 +86,7 @@
log.error(msg);
throw new SynapseException(msg);
} else {
- SynapseMediator sm = (SynapseMediator) MediatorFactoryFinder.getInstance().getMediator(synCtx, elem);
+ SynapseMediator sm = (SynapseMediator) MediatorFactoryFinder.getInstance().getMediator(elem);
if (sm.getList().isEmpty()) {
String msg = "Invalid configuration, the main mediator specified by the <rules> element is empty";
log.error(msg);
@@ -103,16 +103,9 @@
}
}
- private void defineSequence(SynapseContext synCtx, OMElement ele) {
- SequenceMediator seq = (SequenceMediator) MediatorFactoryFinder.getInstance().getMediator(synCtx, ele);
+ private void defineSequence(OMElement ele) {
+ SequenceMediator seq = (SequenceMediator) MediatorFactoryFinder.getInstance().getMediator(ele);
config.addNamedMediator(seq.getName(), seq);
- }
-
- public static void main(String[] args) throws Exception {
- SynapseConfigurationBuilder scb = new SynapseConfigurationBuilder();
- InputStream is = new FileInputStream("/Temp/delete/simple.xml");
- SynapseContext se = new org.apache.synapse.axis2.Axis2SynapseContext(is,null);
- System.out.println(se.getConfiguration());
}
}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java Fri May 5 00:34:45 2006
@@ -18,7 +18,6 @@
import javax.xml.namespace.QName;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.config.xml.Constants;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.base.SynapseMediator;
@@ -39,9 +38,9 @@
return tagname;
}
- public Mediator createMediator(SynapseContext synCtx, OMElement elem) {
+ public Mediator createMediator(OMElement elem) {
SynapseMediator sm = new SynapseMediator();
- super.addChildren(synCtx, elem, sm);
+ super.addChildren(elem, sm);
return sm;
}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/TransformMediatorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/TransformMediatorFactory.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/TransformMediatorFactory.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/config/xml/TransformMediatorFactory.java Fri May 5 00:34:45 2006
@@ -18,7 +18,6 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.xpath.AXIOMXPath;
-import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.mediators.transform.TransformMediator;
import org.apache.synapse.api.Mediator;
@@ -46,7 +45,7 @@
return LOG_Q;
}
- public Mediator createMediator(SynapseContext synCtx, OMElement elem) {
+ public Mediator createMediator(OMElement elem) {
TransformMediator transformMediator = new TransformMediator();
Added: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/SynapseEnvironment.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/SynapseEnvironment.java?rev=400001&view=auto
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/SynapseEnvironment.java (added)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/SynapseEnvironment.java Fri May 5 00:34:45 2006
@@ -0,0 +1,44 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.synapse.core;
+
+import org.apache.synapse.SynapseContext;
+
+/**
+ * The SynapseEnvironment allows access into the the host SOAP engine. It allows
+ * the sending of messages, classloader access etc.
+ */
+public interface SynapseEnvironment {
+
+ /**
+ * This method injects a new message into the Synapse engine. This is used by
+ * the underlying SOAP engine to inject messages into Synapse for mediation.
+ * e.g. The SynapseMessageReceiver used by Axis2 invokes this to inject new messages
+ */
+ public void injectMessage(SynapseContext smc);
+
+ /**
+ * Mediators may get access to the relevant classloader through this
+ */
+ public ClassLoader getClassLoader();
+
+ /**
+ * This method allows a message to be sent through the underlying SOAP engine.
+ * <p/>
+ * This will send request messages on (forward), and send the response messages back to the client
+ */
+ public void send(SynapseContext smc);
+}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java Fri May 5 00:34:45 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axiom.soap.SOAPEnvelope;
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2Sender.java Fri May 5 00:34:45 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
@@ -23,19 +23,19 @@
import org.apache.synapse.Constants;
import org.apache.synapse.SynapseException;
import org.apache.synapse.SynapseMessage;
+import org.apache.synapse.SynapseContext;
/**
- * This class helps the Axis2SynapseContext implement the send method
+ * This class helps the Axis2SynapseEnvironment implement the send method
*/
public class Axis2Sender {
- public static void sendOn(SynapseMessage smc) {
+ public static void sendOn(SynapseContext smc) {
try {
- MessageContext messageContext = ((Axis2SynapseMessage) smc)
- .getMessageContext();
+ MessageContext messageContext = ((Axis2SynapseMessage) smc.getSynapseMessage()).getMessageContext();
// At any time any QOS is disengaged. It's engaged iff, a flag is
// set in execution chain.
// ex: addressing will be engage in outpath iff ADDRESSING_PROCESSED
@@ -61,7 +61,7 @@
// run all rules on response
- smc.setResponse(true);//
+ smc.getSynapseMessage().setResponse(true);//
outMsgContext.setServerSide(true);
@@ -72,20 +72,17 @@
outMsgContext.setTransportIn(ti);
- if (smc.getSynapseContext() == null) {
- throw new SynapseException("no Synapse Env set on message");
- }
- smc.getSynapseContext().injectMessage(new Axis2SynapseMessage(
- outMsgContext, smc.getSynapseContext()));
+ smc.setSynapseMessage(new Axis2SynapseMessage(outMsgContext, smc));
+ smc.getSynapseEnvironment().injectMessage(smc);
+
} catch (Exception e) {
e.printStackTrace();
throw new SynapseException(e);
}
}
- public static void sendBack(SynapseMessage smc) {
- MessageContext messageContext = ((Axis2SynapseMessage) smc)
- .getMessageContext();
+ public static void sendBack(SynapseContext smc) {
+ MessageContext messageContext = ((Axis2SynapseMessage) smc.getSynapseMessage()).getMessageContext();
AxisEngine ae =
new AxisEngine(messageContext.getConfigurationContext());
try {
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseContextFinder.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseContextFinder.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseContextFinder.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseContextFinder.java Fri May 5 00:34:45 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
@@ -25,6 +25,9 @@
import org.apache.synapse.Constants;
import org.apache.synapse.SynapseContext;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.core.SynapseEnvironment;
+import org.apache.synapse.config.xml.SynapseConfigurationBuilder;
+import org.apache.synapse.config.SynapseConfiguration;
import java.io.InputStream;
@@ -39,41 +42,86 @@
public static synchronized SynapseContext getSynapseContext(MessageContext mc) {
- AxisConfiguration ac = mc.getConfigurationContext().getAxisConfiguration();
- Parameter synapseCtxParam = ac.getParameter(SYNAPSE_CONTEXT);
+ SynapseConfiguration synCfg = getSynapseConfig(mc);
+ SynapseEnvironment synEnv = getSynapseEnvironment(mc);
- if (synapseCtxParam == null) {
+ if (synCfg == null || synEnv == null) {
+ initializeSynapse(mc);
+ synCfg = getSynapseConfig(mc);
+ synEnv = getSynapseEnvironment(mc);
+ }
- log.debug("Synapse Context not available. Creating...");
- Parameter param = ac.getParameter(SYNAPSE_CONFIGURATION);
+ if (synCfg == null || synEnv == null) {
+ String msg = "Synapse could/has not been properly initialized";
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
- if (param == null) {
- throw new SynapseException("Axis2 configuration does not specify a '" +
- SYNAPSE_CONFIGURATION + "' parameter");
- }
+ SynapseContext synCtx = new Axis2SynapseMessageContext();
+ synCtx.setSynapseEnvironment(synEnv);
+ synCtx.setConfiguration(synCfg);
+ synCtx.setSynapseMessage(new Axis2SynapseMessage(mc, synCtx));
+ return synCtx;
+ }
- String synapseConfig = (String) param.getValue();
- InputStream is = mc.getAxisService().getClassLoader().getResourceAsStream(synapseConfig.trim());
+ /**
+ * Create the SynapseConfiguration and SynapseEnvironment objects and set them into the Axis2 configuration
+ * for reuse
+ * @param mc the current Axis2 message context
+ */
+ private static synchronized void initializeSynapse(MessageContext mc) {
+
+ if (getSynapseConfig(mc) != null && getSynapseEnvironment(mc) != null) {
+ // is this a second thread which came in just after initialization?
+ return;
+ }
- Axis2SynapseContext synCtx = new Axis2SynapseContext(is, mc.getAxisService().getClassLoader());
- setSynapseContext(mc, synCtx);
+ log.debug("Synapse Config not available. Creating...");
+ AxisConfiguration ac = mc.getConfigurationContext().getAxisConfiguration();
+ Parameter param = ac.getParameter(SYNAPSE_CONFIGURATION);
+ if (param == null) {
+ throw new SynapseException(
+ "Axis2 configuration does not specify a '" + SYNAPSE_CONFIGURATION + "' parameter");
}
- return (SynapseContext) ac.getParameter(SYNAPSE_CONTEXT).getValue();
- }
+ InputStream is = mc.getAxisService().getClassLoader().getResourceAsStream(((String) param.getValue()).trim());
- public static synchronized void setSynapseContext(MessageContext mc, SynapseContext synCtx) {
+ SynapseConfigurationBuilder cfgBuilder = new SynapseConfigurationBuilder();
+ cfgBuilder.setConfiguration(is);
- AxisConfiguration ac = mc.getConfigurationContext().getAxisConfiguration();
- Parameter synapseCtxParam = new Parameter(SYNAPSE_CONTEXT, null);
- synapseCtxParam.setValue(synCtx);
+ Parameter synapseCtxParam = new Parameter(SYNAPSE_CONFIG, null);
+ synapseCtxParam.setValue(cfgBuilder.getConfig());
+
+ Parameter synapseEnvParam = new Parameter(SYNAPSE_ENV, null);
+ synapseEnvParam.setValue(new Axis2SynapseEnvironment(mc.getAxisService().getClassLoader()));
try {
ac.addParameter(synapseCtxParam);
+ ac.addParameter(synapseEnvParam);
+
} catch (AxisFault e) {
- String msg = "Could not add parameter '" + SYNAPSE_CONTEXT + "' to the Axis2 configuration";
+ String msg = "Could not set parameters '" + SYNAPSE_CONFIG + "' and/or '" + SYNAPSE_ENV +
+ "'to the Axis2 configuration";
log.error(msg);
throw new SynapseException(msg, e);
}
+ }
+
+ private static SynapseConfiguration getSynapseConfig(MessageContext mc) {
+ AxisConfiguration ac = mc.getConfigurationContext().getAxisConfiguration();
+ Parameter synConfigParam = ac.getParameter(SYNAPSE_CONFIG);
+ if (synConfigParam != null) {
+ return (SynapseConfiguration) synConfigParam.getValue();
+ }
+ return null;
+ }
+
+ private static SynapseEnvironment getSynapseEnvironment(MessageContext mc) {
+ AxisConfiguration ac = mc.getConfigurationContext().getAxisConfiguration();
+ Parameter synEnvParam = ac.getParameter(SYNAPSE_ENV);
+ if (synEnvParam != null) {
+ return (SynapseEnvironment) synEnvParam.getValue();
+ }
+ return null;
}
}
Added: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?rev=400001&view=auto
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java (added)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java Fri May 5 00:34:45 2006
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.synapse.core.axis2;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.SynapseContext;
+import org.apache.synapse.core.SynapseEnvironment;
+
+/**
+ * <p> This is the Axis2 implementation of the SynapseContext
+ */
+public class Axis2SynapseEnvironment implements SynapseEnvironment {
+
+ private ClassLoader cl = null;
+ private static final Log log = LogFactory.getLog(Axis2SynapseEnvironment.class);
+
+ public Axis2SynapseEnvironment(ClassLoader cl) {
+ super();
+ this.cl = cl;
+ }
+
+ public void injectMessage(SynapseContext synCtx) {
+ synCtx.setSynapseEnvironment(this);
+ synCtx.getConfiguration().getMainMediator().mediate(synCtx.getSynapseMessage());
+ }
+
+ public void send(SynapseContext synCtx) {
+ if (synCtx.getSynapseMessage().isResponse())
+ Axis2Sender.sendBack(synCtx);
+ else
+ Axis2Sender.sendOn(synCtx);
+ }
+
+ public ClassLoader getClassLoader() {
+ return cl;
+ }
+
+ public void setClassLoader(ClassLoader cl) {
+ this.cl = cl;
+ }
+
+}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessage.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessage.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessage.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessage.java Fri May 5 00:34:45 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.AxisFault;
@@ -35,17 +35,19 @@
*/
public class Axis2SynapseMessage implements SynapseMessage {
+ /** The Axis2 MessageContext reference */
private MessageContext mc = null;
- private Map props = new HashMap();
+ /** The Synapse Context reference*/
+ private SynapseContext synCtx = null;
private boolean response = false;
private boolean faultResponse = false;
- public Axis2SynapseMessage(MessageContext mc, SynapseContext se) {
+ public Axis2SynapseMessage(MessageContext mc, SynapseContext synCtx) {
setMessageContext(mc);
- setSynapseContext(se);
+ setSynapseContext(synCtx);
}
public EndpointReference getFaultTo() {
@@ -62,17 +64,14 @@
public void setFrom(EndpointReference reference) {
mc.setFrom(reference);
-
}
public SOAPEnvelope getEnvelope() {
-
return mc.getEnvelope();
}
public void setEnvelope(SOAPEnvelope envelope) throws AxisFault {
mc.setEnvelope(envelope);
-
}
public String getMessageID() {
@@ -81,119 +80,76 @@
public void setMessageID(String string) {
mc.setMessageID(string);
-
}
public RelatesTo getRelatesTo() {
return mc.getRelatesTo();
-
}
- public void setRelatesTo(RelatesTo reference) {
- //TODO mc.setRelatesTo(reference);
+ public void setRelatesTo(RelatesTo[] reference) {
+ mc.setRelationships(reference);
}
public EndpointReference getReplyTo() {
return mc.getReplyTo();
-
}
public void setReplyTo(EndpointReference reference) {
mc.setReplyTo(reference);
-
}
public EndpointReference getTo() {
return mc.getTo();
-
}
public void setTo(EndpointReference reference) {
mc.setTo(reference);
-
}
public void setWSAAction(String actionURI) {
mc.setWSAAction(actionURI);
-
}
public String getWSAAction() {
-
return mc.getWSAAction();
}
public void setMessageId(String messageID) {
mc.setWSAMessageId(messageID);
-
}
public String getMessageId() {
return mc.getMessageID();
}
- public Object getProperty(String key) {
- Object obj = props.get(key);
- if (obj == null) {
- obj = mc.getProperty(key);
- }
- return obj;
-
- }
-
- public void setProperty(String key, Object value) {
- props.put(key, value);
- }
-
- public Iterator getPropertyNames() {
- return props.keySet().iterator();
- }
-
public String getSoapAction() {
return mc.getSoapAction();
}
public void setSoapAction(String string) {
mc.setSoapAction(string);
-
}
public boolean isDoingMTOM() {
-
return mc.isDoingMTOM();
}
public void setDoingMTOM(boolean b) {
mc.setDoingMTOM(b);
-
}
public boolean isDoingREST() {
-
return mc.isDoingREST();
}
public void setDoingREST(boolean b) {
mc.setDoingREST(b);
-
}
public boolean isSOAP11() {
-
return mc.isSOAP11();
}
- public MessageContext getMessageContext() {
- return mc;
- }
-
- public void setMessageContext(MessageContext mc) {
- this.mc = mc;
- Boolean resp = (Boolean) mc.getProperty(Constants.ISRESPONSE_PROPERTY);
- if (resp != null)
- response = resp.booleanValue();
- }
-
public void setResponse(boolean b) {
response = b;
mc.setProperty(Constants.ISRESPONSE_PROPERTY, Boolean.valueOf(b));
@@ -212,13 +168,22 @@
}
public SynapseContext getSynapseContext() {
- return Axis2SynapseContextFinder.getSynapseContext(mc);
+ return synCtx;
}
public void setSynapseContext(SynapseContext synCtx) {
- Axis2SynapseContextFinder.setSynapseContext(mc, synCtx);
- return;
+ this.synCtx = synCtx;
+ }
+
+ public MessageContext getMessageContext() {
+ return mc;
}
+ public void setMessageContext(MessageContext mc) {
+ this.mc = mc;
+ Boolean resp = (Boolean) mc.getProperty(Constants.ISRESPONSE_PROPERTY);
+ if (resp != null)
+ response = resp.booleanValue();
+ }
}
Added: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessageContext.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessageContext.java?rev=400001&view=auto
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessageContext.java (added)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/Axis2SynapseMessageContext.java Fri May 5 00:34:45 2006
@@ -0,0 +1,64 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.synapse.core.axis2;
+
+import org.apache.synapse.SynapseContext;
+import org.apache.synapse.SynapseMessage;
+import org.apache.synapse.core.SynapseEnvironment;
+import org.apache.synapse.config.SynapseConfiguration;
+
+import java.util.Map;
+import java.util.HashMap;
+
+public class Axis2SynapseMessageContext implements SynapseContext {
+
+ private SynapseConfiguration cfg = null;
+ private SynapseEnvironment env = null;
+ private SynapseMessage msg = null;
+ private Map properties = new HashMap();
+
+ public SynapseConfiguration getConfiguration() {
+ return cfg;
+ }
+
+ public void setConfiguration(SynapseConfiguration cfg) {
+ this.cfg = cfg;
+ }
+
+ public SynapseEnvironment getSynapseEnvironment() {
+ return env;
+ }
+
+ public void setSynapseEnvironment(SynapseEnvironment env) {
+ this.env = env;
+ }
+
+ public void setSynapseMessage(SynapseMessage msg) {
+ this.msg = msg;
+ }
+
+ public SynapseMessage getSynapseMessage() {
+ return msg;
+ }
+
+ public Object getProperty(String key) {
+ return properties.get(key);
+ }
+
+ public void setProperty(String key, Object value) {
+ properties.put(key, value);
+ }
+}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/DynamicAxisOperation.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/DynamicAxisOperation.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/DynamicAxisOperation.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/DynamicAxisOperation.java Fri May 5 00:34:45 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axis2.AxisFault;
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/EmptyMessageReceiver.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/EmptyMessageReceiver.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/EmptyMessageReceiver.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/EmptyMessageReceiver.java Fri May 5 00:34:45 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseDispatcher.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseDispatcher.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseDispatcher.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseDispatcher.java Fri May 5 00:34:45 2006
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseMessageReceiver.java?rev=400001&r1=399965&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseMessageReceiver.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/core/axis2/SynapseMessageReceiver.java Fri May 5 00:34:45 2006
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.axis2;
+package org.apache.synapse.core.axis2;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
@@ -25,18 +25,18 @@
import org.apache.synapse.SynapseMessage;
/**
- * <p/>
- * <p/>
- * This is used to "catch" messages in Axis2 and pass them to Synapse for processing.
+ * This message receiver should be configured in the Axis2 configuration as the
+ * default message receiver, which will handle all incoming messages through the
+ * synapse mediation
*/
public class SynapseMessageReceiver implements MessageReceiver {
- private Log log = LogFactory.getLog(getClass());
+ private static final Log log = LogFactory.getLog(SynapseMessageReceiver.class);
public void receive(MessageContext mc) throws AxisFault {
+
log.debug("Synapse received message");
- SynapseContext synCtx = Axis2SynapseContextFinder
- .getSynapseContext(mc);
+ SynapseContext synCtx = Axis2SynapseContextFinder.getSynapseContext(mc);
////////////////////////////////////////////////////////////////////////
// SynapseContext is set as a property in MessageContext. This is due
// use we can expect in ServiceMediatorProcessor and many extensions yet to come
@@ -44,8 +44,7 @@
////////////////////////////////////////////////////////////////////////
SynapseMessage smc = new Axis2SynapseMessage(mc, synCtx);
- smc.setSynapseContext(synCtx);
- synCtx.injectMessage(smc);
+ synCtx.getSynapseEnvironment().injectMessage(synCtx);
///////////////////////////////////////////////////////////////////////
// Response handling mechanism for 200/202 and 5XX
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java Fri May 5 00:34:45 2006
@@ -43,7 +43,7 @@
log.debug(getType() + " mediate()");
log.debug("Sending To: " + (synMsg.getTo() != null ? synMsg.getTo().getAddress() : "null"));
log.debug("Body : \n" + synMsg.getEnvelope());
- synMsg.getSynapseContext().send(synMsg);
+ synMsg.getSynapseContext().getSynapseEnvironment().send(synMsg.getSynapseContext());
return false;
}
}
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/ext/ClassMediator.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/ext/ClassMediator.java?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/ext/ClassMediator.java (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/src/org/apache/synapse/mediators/ext/ClassMediator.java Fri May 5 00:34:45 2006
@@ -47,7 +47,7 @@
throw new SynapseException(e);
}
/*if (EnvironmentAware.class.isAssignableFrom(m.getClass())) {
- ((EnvironmentAware) m).setSynapseContext(se);
+ ((EnvironmentAware) m).initializeSynapse(se);
}*/
return m.mediate(smc);
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/emptymediator/META-INF/services.xml
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/emptymediator/META-INF/services.xml?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/emptymediator/META-INF/services.xml (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/emptymediator/META-INF/services.xml Fri May 5 00:34:45 2006
@@ -1,6 +1,6 @@
<service name="emptymediator">
<operation name="mediate" >
- <messageReceiver class="org.apache.synapse.axis2.EmptyMessageReceiver" />
+ <messageReceiver class="org.apache.synapse.core.axis2.EmptyMessageReceiver" />
</operation>
</service>
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/synapse/META-INF/services.xml
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/synapse/META-INF/services.xml?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/synapse/META-INF/services.xml (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/axis2/services/synapse/META-INF/services.xml Fri May 5 00:34:45 2006
@@ -1,7 +1,7 @@
<service name="synapse">
<operation name="mediate" >
- <messageReceiver class="org.apache.synapse.axis2.SynapseMessageReceiver" />
+ <messageReceiver class="org.apache.synapse.core.axis2.SynapseMessageReceiver" />
</operation>
</service>
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/environmentaware-service.xml
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/environmentaware-service.xml?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/environmentaware-service.xml (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/environmentaware-service.xml Fri May 5 00:34:45 2006
@@ -6,6 +6,6 @@
org.apache.axis2.test.EnvironmentAwareMediator</parameter>
<operation name="mediate">
<messageReceiver
- class="org.apache.synapse.axis2.ServiceMediatorMessageReceiver"/>
+ class="org.apache.synapse.core.axis2.axis2.ServiceMediatorMessageReceiver"/>
</operation>
</service>
Modified: incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/service-mediator.xml
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/service-mediator.xml?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/service-mediator.xml (original)
+++ incubator/synapse/trunk/scratch/synapse2/modules/core/test-resources/org/apache/axis2/META-INF/service-mediator.xml Fri May 5 00:34:45 2006
@@ -6,6 +6,6 @@
org.apache.axis2.test.TestMediator</parameter>
<operation name="mediate">
<messageReceiver
- class="org.apache.synapse.axis2.ServiceMediatorMessageReceiver"/>
+ class="org.apache.synapse.core.axis2.axis2.ServiceMediatorMessageReceiver"/>
</operation>
</service>
Modified: incubator/synapse/trunk/scratch/synapse2/repository/conf/axis2.xml
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/repository/conf/axis2.xml?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/repository/conf/axis2.xml (original)
+++ incubator/synapse/trunk/scratch/synapse2/repository/conf/axis2.xml Fri May 5 00:34:45 2006
@@ -91,7 +91,7 @@
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="SynapseDispatcher"
- class="org.apache.synapse.axis2.SynapseDispatcher">
+ class="org.apache.synapse.core.axis2.SynapseDispatcher">
<order phase="Dispatch"/>
</handler>
@@ -127,7 +127,7 @@
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="SynapseDispatcher"
- class="org.apache.synapse.axis2.SynapseDispatcher">
+ class="org.apache.synapse.core.axis2.SynapseDispatcher">
<order phase="Dispatch"/>
</handler>
Modified: incubator/synapse/trunk/scratch/synapse2/repository/services/emptymediator/META-INF/services.xml
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/repository/services/emptymediator/META-INF/services.xml?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/repository/services/emptymediator/META-INF/services.xml (original)
+++ incubator/synapse/trunk/scratch/synapse2/repository/services/emptymediator/META-INF/services.xml Fri May 5 00:34:45 2006
@@ -1,6 +1,6 @@
<service name="emptymediator">
<operation name="mediate" >
- <messageReceiver class="org.apache.synapse.axis2.EmptyMessageReceiver" />
+ <messageReceiver class="org.apache.synapse.core.axis2.EmptyMessageReceiver" />
</operation>
</service>
Modified: incubator/synapse/trunk/scratch/synapse2/repository/services/synapse/META-INF/services.xml
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/synapse2/repository/services/synapse/META-INF/services.xml?rev=400001&r1=400000&r2=400001&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/synapse2/repository/services/synapse/META-INF/services.xml (original)
+++ incubator/synapse/trunk/scratch/synapse2/repository/services/synapse/META-INF/services.xml Fri May 5 00:34:45 2006
@@ -1,7 +1,7 @@
<service name="synapse">
<operation name="mediate" >
- <messageReceiver class="org.apache.synapse.axis2.SynapseMessageReceiver" />
+ <messageReceiver class="org.apache.synapse.core.axis2.SynapseMessageReceiver" />
</operation>
</service>
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org