Author: ruwan
Date: Thu Mar 1 23:08:18 2007
New Revision: 513639
URL: http://svn.apache.org/viewvc?view=rev&rev=513639
Log:
Introduced Fault handling in Synapse
Added:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
Added:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java?view=auto&rev=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
(added)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java
Thu Mar 1 23:08:18 2007
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+public interface FaultHandler {
+
+ public void handleFault(MessageContext synCtx) throws SynapseException;
+}
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
Thu Mar 1 23:08:18 2007
@@ -28,6 +28,7 @@
import org.apache.synapse.core.SynapseEnvironment;
import java.util.Set;
+import java.util.Stack;
/**
@@ -257,5 +258,9 @@
* @param tracingState Set whether the tracing is enabled or not
*/
public void setTracingState(int tracingState);
+
+ public Stack getFaultStack();
+
+ public void pushFault(FaultHandler fault);
}
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
Thu Mar 1 23:08:18 2007
@@ -30,6 +30,7 @@
import org.apache.synapse.Constants;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.FaultHandler;
import org.apache.synapse.mediators.GetPropertyFunction;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.core.SynapseEnvironment;
@@ -48,6 +49,7 @@
private SynapseConfiguration cfg = null;
private SynapseEnvironment env = null;
private Map properties = new HashMap();
+ private Stack faultStack = new Stack();
/** The Axis2 MessageContext reference */
private org.apache.axis2.context.MessageContext axis2MessageContext = null;
@@ -99,6 +101,7 @@
setAxis2MessageContext(axisMsgCtx);
cfg = synCfg;
env = synEnv;
+ // todo: set the default fault sequence from the configuration to
context
}
public EndpointReference getFaultTo() {
@@ -232,6 +235,14 @@
public void setTracingState(int tracingState) {
this.tracingState= tracingState;
+ }
+
+ public Stack getFaultStack() {
+ return this.faultStack;
+ }
+
+ public void pushFault(FaultHandler fault) {
+ this.faultStack.push(fault);
}
public org.apache.axis2.context.MessageContext getAxis2MessageContext() {
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
Thu Mar 1 23:08:18 2007
@@ -78,8 +78,8 @@
"the proxy service " +
synCtx.getProperty(Constants.PROXY_SERVICE));
outSequence.mediate(synCtx);
} else {
- log.error("Unable to find the sequence specified by the
name " + sequenceName
- + " - [Message dropped]");
+ log.error("Unable to find the sequence specified by the
name " + sequenceName);
+ // TODO invoke a generic synapse error handler for this
message
}
} else if (synCtx.getConfiguration().getProxyService((String)
synCtx.getProperty(
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
Thu Mar 1 23:08:18 2007
@@ -319,6 +319,7 @@
PolicyInclude pi = proxyService.getPolicyInclude();
if (pi != null && svcEffectivePolicy != null) {
pi.addPolicyElement(PolicyInclude.AXIS_SERVICE_POLICY,
svcEffectivePolicy);
+ // todo: check whether the rm or sec is enabled
}
}
@@ -339,6 +340,7 @@
handleException("Unable to start the Proxy Service");
}
+ // todo: need to remove this and engage modules by looking at policies
// should RM be engaged on this service?
if (wsRMEnabled) {
try {
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
Thu Mar 1 23:08:18 2007
@@ -27,7 +27,10 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.Mediator;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.FaultHandler;
import org.apache.synapse.mediators.base.SequenceMediator;
+import org.apache.synapse.mediators.MediatorFaultHandler;
import org.apache.synapse.statistics.StatisticsUtils;
import org.apache.synapse.statistics.impl.EndPointStatisticsStack;
import org.apache.synapse.statistics.impl.ProxyServiceStatisticsStack;
@@ -56,61 +59,90 @@
}
MessageContext synCtx =
MessageContextCreatorForAxis2.getSynapseMessageContext(mc);
- synCtx.setProperty(org.apache.synapse.Constants.PROXY_SERVICE, name);
- ProxyService proxy = synCtx.getConfiguration().getProxyService(name);
- // Setting Required property to collect the proxy service statistics
- boolean statisticsEnable;
- if (proxy != null) {
- statisticsEnable = (org.apache.synapse.Constants.STATISTICS_ON ==
proxy.getStatisticsEnable());
- if (statisticsEnable) {
- ProxyServiceStatisticsStack proxyServiceStatisticsStack = new
ProxyServiceStatisticsStack();
- boolean isFault = synCtx.getEnvelope().getBody().hasFault();
- proxyServiceStatisticsStack.put(
- name, System.currentTimeMillis(),
!synCtx.isResponse(), statisticsEnable, isFault);
- synCtx.setProperty(
-
org.apache.synapse.Constants.PROXYSERVICE_STATISTICS_STACK,
proxyServiceStatisticsStack);
- }
+ try {
+ synCtx.setProperty(org.apache.synapse.Constants.PROXY_SERVICE,
name);
+ ProxyService proxy =
synCtx.getConfiguration().getProxyService(name);
+
+ // Setting Required property to collect the proxy service
statistics
+ boolean statisticsEnable;
+ if (proxy != null) {
+ statisticsEnable = (org.apache.synapse.Constants.STATISTICS_ON
== proxy.getStatisticsEnable());
+ if (statisticsEnable) {
+ ProxyServiceStatisticsStack proxyServiceStatisticsStack =
new ProxyServiceStatisticsStack();
+ boolean isFault =
synCtx.getEnvelope().getBody().hasFault();
+ proxyServiceStatisticsStack.put(
+ name, System.currentTimeMillis(),
!synCtx.isResponse(), statisticsEnable, isFault);
+ synCtx.setProperty(
+
org.apache.synapse.Constants.PROXYSERVICE_STATISTICS_STACK,
proxyServiceStatisticsStack);
+ }
- // Using inSequence for the incoming message mediation
- if (proxy.getTargetInSequence() != null) {
+ if (proxy.getTargetInSequence() != null) {
- Mediator inSequence =
synCtx.getConfiguration().getNamedSequence(proxy.getTargetInSequence());
- if (inSequence != null) {
- log.debug("Using the sequence named " +
proxy.getTargetInSequence() + " for message mediation");
- inSequence.mediate(synCtx);
- } else {
- // todo: what can we do ?????? throw an AxisFault /
mediate using the fault sequence
- log.error("Unable to find the in sequence for the proxy
service " +
- "specified by the name " +
proxy.getTargetInSequence() + " - [Message dropped]");
+ Mediator faultSequence =
synCtx.getConfiguration().getNamedSequence(proxy.getTargetInSequence());
+ if (faultSequence != null) {
+ log.debug("setting the fault sequence of the proxy to
context");
+ synCtx.pushFault(new MediatorFaultHandler(
+
synCtx.getConfiguration().getNamedSequence(proxy.getTargetFaultSequence())));
+ } else {
+ log.warn("Unable to find the fault sequence for the
proxy service " +
+ "specified by the name " +
proxy.getTargetInSequence());
+ }
+ } else if (proxy.getTargetInLineInSequence() != null) {
+ log.debug("Using the anonymous in sequence of the proxy
service for message mediation");
+ synCtx.pushFault(new
MediatorFaultHandler(proxy.getTargetInLineInSequence()));
+ }
+
+ // Using inSequence for the incoming message mediation
+ if (proxy.getTargetInSequence() != null) {
+
+ Mediator inSequence =
synCtx.getConfiguration().getNamedSequence(proxy.getTargetInSequence());
+ if (inSequence != null) {
+ log.debug("Using the sequence named " +
proxy.getTargetInSequence() + " for message mediation");
+ inSequence.mediate(synCtx);
+ } else {
+
+ log.error("Unable to find the in sequence for the
proxy service " +
+ "specified by the name " +
proxy.getTargetInSequence());
+ // TODO invoke a generic synapse error handler for
this message
+ }
+ } else if (proxy.getTargetInLineInSequence() != null) {
+ log.debug("Using the anonymous in sequence of the proxy
service for message mediation");
+ proxy.getTargetInLineInSequence().mediate(synCtx);
}
- } else if (proxy.getTargetInLineInSequence() != null) {
- log.debug("Using the anonymous in sequence of the proxy
service for message mediation");
- proxy.getTargetInLineInSequence().mediate(synCtx);
- }
- if (proxy.getTargetEndpoint() != null) {
- Endpoint endpoint =
synCtx.getConfiguration().getNamedEndpoint(proxy.getTargetEndpoint());
- if (endpoint != null) {
- log.debug("Forwarding message to the endpoint named "
- + proxy.getTargetEndpoint() + " after message
mediation");
- synCtx.setTo(new EndpointReference(endpoint.getAddress()));
- Axis2FlexibleMEPClient.send(endpoint, synCtx);
- } else {
- // todo: what can we do ?????? throw an AxisFault
- log.error("Unable to find the endpoint for the proxy
service " +
- "specified by the name " +
proxy.getTargetEndpoint() + " - [Message dropped]");
+ if (proxy.getTargetEndpoint() != null) {
+ Endpoint endpoint =
synCtx.getConfiguration().getNamedEndpoint(proxy.getTargetEndpoint());
+ if (endpoint != null) {
+ log.debug("Forwarding message to the endpoint named "
+ + proxy.getTargetEndpoint() + " after message
mediation");
+ synCtx.setTo(new
EndpointReference(endpoint.getAddress()));
+ Axis2FlexibleMEPClient.send(endpoint, synCtx);
+ } else {
+
+ log.error("Unable to find the endpoint for the proxy
service " +
+ "specified by the name " +
proxy.getTargetEndpoint());
+ throw new SynapseException("Unable to find the
endpoint for the proxy service " +
+ "specified by the name " +
proxy.getTargetEndpoint());
+ }
+ } else if (proxy.getTargetInLineEndpoint() != null) {
+ log.debug("Forwarding the message to the anonymous " +
+ "endpoint of the proxy service after message
mediation");
+ synCtx.setTo(new
EndpointReference(proxy.getTargetInLineEndpoint().getAddress()));
+
Axis2FlexibleMEPClient.send(proxy.getTargetInLineEndpoint(), synCtx);
}
- } else if (proxy.getTargetInLineEndpoint() != null) {
- log.debug("Forwarding the message to the anonymous " +
- "endpoint of the proxy service after message
mediation");
- synCtx.setTo(new
EndpointReference(proxy.getTargetInLineEndpoint().getAddress()));
- Axis2FlexibleMEPClient.send(proxy.getTargetInLineEndpoint(),
synCtx);
- }
- } else {
- log.error("Proxy Service with the name " + name + " does not
exists - [Message dropped]");
- throw new AxisFault("Proxy Service with the name " + name + " does
not exists");
+ } else {
+ log.error("Proxy Service with the name " + name + " does not
exists");
+ throw new SynapseException("Proxy Service with the name " +
name + " does not exists");
+ }
+ } catch (SynapseException syne) {
+ if(!synCtx.getFaultStack().empty()) {
+ ((FaultHandler)
synCtx.getFaultStack().pop()).handleFault(synCtx);
+ } else {
+ log.error("Synapse encountered an exception, " +
+ "No error handlers found - [Message Dropped]\n" +
syne.getMessage());
+ }
}
}
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
Thu Mar 1 23:08:18 2007
@@ -27,6 +27,8 @@
import org.apache.axis2.AxisFault;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.FaultHandler;
import java.util.Map;
import java.util.HashMap;
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
Thu Mar 1 23:08:18 2007
@@ -25,6 +25,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.FaultHandler;
import org.apache.synapse.statistics.StatisticsStack;
import org.apache.synapse.statistics.impl.ProxyServiceStatisticsStack;
@@ -47,16 +49,26 @@
}
MessageContext synCtx =
MessageContextCreatorForAxis2.getSynapseMessageContext(mc);
- StatisticsStack synapseServiceStack = (StatisticsStack)
synCtx.getProperty(org.apache.synapse.Constants.SYNAPSESERVICE_STATISTICS_STACK);
- if (synapseServiceStack== null) {
- synapseServiceStack= new ProxyServiceStatisticsStack();
-
synCtx.setProperty(org.apache.synapse.Constants.SYNAPSESERVICE_STATISTICS_STACK,
synapseServiceStack);
- }
- String name = "SynapseService";
- boolean isFault =synCtx.getEnvelope().getBody().hasFault();
- synapseServiceStack.put(name, System.currentTimeMillis(),
!synCtx.isResponse(), true,isFault);
- // invoke synapse message mediation
- synCtx.getEnvironment().injectMessage(synCtx);
+ try {
+ StatisticsStack synapseServiceStack = (StatisticsStack)
synCtx.getProperty(org.apache.synapse.Constants.SYNAPSESERVICE_STATISTICS_STACK);
+ if (synapseServiceStack == null) {
+ synapseServiceStack = new ProxyServiceStatisticsStack();
+
synCtx.setProperty(org.apache.synapse.Constants.SYNAPSESERVICE_STATISTICS_STACK,
synapseServiceStack);
+ }
+ String name = "SynapseService";
+ boolean isFault = synCtx.getEnvelope().getBody().hasFault();
+ synapseServiceStack.put(name, System.currentTimeMillis(),
!synCtx.isResponse(), true, isFault);
+
+ // invoke synapse message mediation
+ synCtx.getEnvironment().injectMessage(synCtx);
+ } catch (SynapseException syne) {
+ if(!synCtx.getFaultStack().empty()) {
+ ((FaultHandler)
synCtx.getFaultStack().pop()).handleFault(synCtx);
+ } else {
+ log.error("Synapse encountered an exception, " +
+ "No error handlers found - [Message Dropped]\n" +
syne.getMessage());
+ }
+ }
}
}
Added:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java?view=auto&rev=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java
(added)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/MediatorFaultHandler.java
Thu Mar 1 23:08:18 2007
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.mediators;
+
+import org.apache.synapse.FaultHandler;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Mediator;
+import org.apache.synapse.MessageContext;
+
+public class MediatorFaultHandler implements FaultHandler {
+
+ private Mediator faultMediator = null;
+
+ public MediatorFaultHandler(Mediator faultMediator) {
+ this.faultMediator = faultMediator;
+ }
+
+ public void handleFault(MessageContext synCtx) throws SynapseException {
+ this.faultMediator.mediate(synCtx);
+ }
+}
Modified:
webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
Thu Mar 1 23:08:18 2007
@@ -31,6 +31,7 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import java.util.Stack;
public class TestMessageContext implements MessageContext {
@@ -197,6 +198,13 @@
public void setTracingState(int tracingState) {
//Todo
+ }
+
+ public Stack getFaultStack() {
+ return null;
+ }
+
+ public void pushFault(FaultHandler fault) {
}
public MessageContext getSynapseContext() {
Modified:
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
(original)
+++
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
Thu Mar 1 23:08:18 2007
@@ -20,6 +20,7 @@
package org.apache.synapse.mediators.bsf;
import java.util.Set;
+import java.util.Stack;
import javax.xml.stream.XMLStreamException;
@@ -28,6 +29,7 @@
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.addressing.RelatesTo;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.FaultHandler;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.mediators.bsf.convertors.OMElementConvertor;
@@ -248,6 +250,14 @@
public void setTracingState(int tracingState) {
mc.setTracingState(tracingState);
+ }
+
+ public Stack getFaultStack() {
+ return mc.getFaultStack();
+ }
+
+ public void pushFault(FaultHandler fault) {
+ mc.pushFault(fault);
}
}
Modified:
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
(original)
+++
webservices/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
Thu Mar 1 23:08:18 2007
@@ -20,12 +20,14 @@
package org.apache.synapse.mediators.bsf;
import java.util.Set;
+import java.util.Stack;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.addressing.RelatesTo;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.FaultHandler;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.core.SynapseEnvironment;
@@ -171,6 +173,14 @@
public void setTracingState(int tracingState) {
getMC().setTracingState(tracingState);
+ }
+
+ public Stack getFaultStack() {
+ return getMC().getFaultStack();
+ }
+
+ public void pushFault(FaultHandler fault) {
+ getMC().pushFault(fault);
}
public void setDoingMTOM(boolean b) {
Modified:
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java?view=diff&rev=513639&r1=513638&r2=513639
==============================================================================
---
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
(original)
+++
webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
Thu Mar 1 23:08:18 2007
@@ -31,6 +31,7 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import java.util.Stack;
public class TestMessageContext implements MessageContext {
@@ -204,6 +205,13 @@
}
public void setTracingState(int tracingState) {
+ }
+
+ public Stack getFaultStack() {
+ return null;
+ }
+
+ public void pushFault(FaultHandler fault) {
}
public MessageContext getSynapseContext() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]