You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by su...@apache.org on 2011/02/02 13:19:23 UTC

svn commit: r1066443 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: config/xml/endpoints/EndpointFactory.java config/xml/endpoints/EndpointSerializer.java endpoints/AbstractEndpoint.java endpoints/Endpoint.java

Author: supun
Date: Wed Feb  2 12:19:22 2011
New Revision: 1066443

URL: http://svn.apache.org/viewvc?rev=1066443&view=rev
Log:
changing the endpoints to have a sequence as a fault handler

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/Endpoint.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java?rev=1066443&r1=1066442&r2=1066443&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java Wed Feb  2 12:19:22 2011
@@ -60,7 +60,7 @@ public abstract class EndpointFactory im
 
     private static final String ENDPOINT_NAME_PREFIX = "endpoint_";
 
-    public static final QName ON_FAULT_Q = new QName(XMLConfigConstants.NULL_NAMESPACE, "onFault");
+    public static final QName ON_FAULT_Q = new QName(XMLConfigConstants.NULL_NAMESPACE, "onError");
 
     private static final QName DESCRIPTION_Q
             = new QName(SynapseConstants.SYNAPSE_NAMESPACE, "description");
@@ -138,7 +138,7 @@ public abstract class EndpointFactory im
 
         OMAttribute onFaultAtt = epConfig.getAttribute(ON_FAULT_Q);
         if (onFaultAtt != null) {
-            ep.setOnFaultMessageStore(onFaultAtt.getAttributeValue());
+            ep.setErrorHandler(onFaultAtt.getAttributeValue());
         }
         return ep;
     }

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java?rev=1066443&r1=1066442&r2=1066443&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java Wed Feb  2 12:19:22 2011
@@ -344,7 +344,7 @@ public abstract class EndpointSerializer
         }
 
         //serialize the message stores
-        String messageStore = endpoint.getOnFaultMessageStore();
+        String messageStore = endpoint.getErrorHandler();
         if (messageStore != null) {
             element.addAttribute(EndpointFactory.ON_FAULT_Q.getLocalPart(),
                     messageStore, null);

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java?rev=1066443&r1=1066442&r2=1066443&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java Wed Feb  2 12:19:22 2011
@@ -27,6 +27,7 @@ import org.apache.axis2.util.JavaUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.*;
+import org.apache.synapse.mediators.MediatorFaultHandler;
 import org.apache.synapse.message.store.StorableMessage;
 import org.apache.synapse.mediators.MediatorProperty;
 import org.apache.synapse.aspects.ComponentType;
@@ -84,7 +85,7 @@ public abstract class AbstractEndpoint e
     protected boolean anonymous = false;
 
     /** The Message store name associated with the endpoint*/
-    protected String onFaultMessageStore = null;
+    protected String errorHandler = null;
 
     protected AbstractEndpoint() {
         log = LogFactory.getLog(this.getClass());
@@ -236,10 +237,20 @@ public abstract class AbstractEndpoint e
             }
         }
 
-        if (onFaultMessageStore != null &&
-                synCtx.getConfiguration().getMessageStore(onFaultMessageStore) != null) {
-            //building the SOAP XML
-            synCtx.getEnvelope().build();
+        // push the errorHandler sequence into the current message as the fault handler
+        if (errorHandler != null) {
+            Mediator errorHandlerMediator = synCtx.getSequence(errorHandler);
+            if (errorHandlerMediator != null) {
+                if (traceOrDebugOn) {
+                    traceOrDebug(traceOn, "Setting the onError handler : " +
+                            errorHandler + " for the endpoint : " + endpointName);
+                }
+                synCtx.pushFaultHandler(
+                        new MediatorFaultHandler(errorHandlerMediator));
+            } else {
+                log.warn("onError handler : " + errorHandler + " for sequence : " +
+                        endpointName + " cannot be found");
+            }
         }
 
         // register this as the immediate fault handler for this message.
@@ -397,17 +408,7 @@ public abstract class AbstractEndpoint e
      * @param synCtx the message at hand
      */
     public void onFault(MessageContext synCtx) {
-        if (onFaultMessageStore != null &&
-                synCtx.getConfiguration().getMessageStore(onFaultMessageStore) != null) {
-            StorableMessage storableMessage = new StorableMessage(this, synCtx);
-            synCtx.getConfiguration().getMessageStore(onFaultMessageStore).schedule(storableMessage);
-            if (log.isDebugEnabled()) {
-                log.debug("Message with ID: " + synCtx.getMessageID() + " directed to the " +
-                        "message store" );
-            }
-        } else {
-            invokeNextFaultHandler(synCtx);
-        }
+        invokeNextFaultHandler(synCtx);
     }
 
     /**
@@ -620,12 +621,12 @@ public abstract class AbstractEndpoint e
         }
     }
 
-    public String getOnFaultMessageStore() {
-        return onFaultMessageStore;
+    public String getErrorHandler() {
+        return errorHandler;
     }
 
-    public void setOnFaultMessageStore(String onFaultMessageStore) {
-        this.onFaultMessageStore = onFaultMessageStore;
+    public void setErrorHandler(String errorHandler) {
+        this.errorHandler = errorHandler;
     }
 
     /**

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/Endpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/Endpoint.java?rev=1066443&r1=1066442&r2=1066443&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/Endpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/Endpoint.java Wed Feb  2 12:19:22 2011
@@ -116,12 +116,12 @@ public interface Endpoint extends Manage
      * Get the MessageStore name associated with the Endpoint
      * @return String message store name
      */
-    public String getOnFaultMessageStore();
+    public String getErrorHandler();
 
     /**
      * Set the Message Store name associated with the Endpoint
      * @param onFaultMessageStore, name of the message store
      */
-    public void setOnFaultMessageStore(String onFaultMessageStore);
+    public void setErrorHandler(String onFaultMessageStore);
 
 }