You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by ru...@apache.org on 2007/03/02 08:08:20 UTC

svn commit: r513639 - in /webservices/synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/ core/src/main/java/org/apache/synapse/core/axis2/ core/src/main/java/org/apache/synapse/mediators/ core/src/test/java/org/apache/synapse/ extension...

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: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org