You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by ch...@apache.org on 2007/03/07 14:29:04 UTC

svn commit: r515559 - in /webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: ./ config/xml/endpoints/ core/axis2/ mediators/builtin/send/endpoints/

Author: chathura_ce
Date: Wed Mar  7 05:29:01 2007
New Revision: 515559

URL: http://svn.apache.org/viewvc?view=rev&rev=515559
Log:
Fixed some issues in the failover endpoints.

Modified:
    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/config/xml/endpoints/FailoverEndpointFactory.java
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.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/mediators/builtin/send/endpoints/AddressEndpoint.java

Modified: 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=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/FaultHandler.java Wed Mar  7 05:29:01 2007
@@ -29,9 +29,9 @@
 
     public void handleFault(MessageContext synCtx) {
         try {
-            handleFault(synCtx);
+            onFault(synCtx);
         } catch (SynapseException syne) {
-            ((FaultHandler)synCtx.getFaultStack().pop()).onFault(synCtx);
+            ((FaultHandler)synCtx.getFaultStack().pop()).handleFault(synCtx);
         }
     }
 

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java Wed Mar  7 05:29:01 2007
@@ -59,7 +59,7 @@
             }
 
             // set endpoints
-            ArrayList endpoints = getEndpoints(failoverElement);
+            ArrayList endpoints = getEndpoints(failoverElement, failoverEndpoint);
             failoverEndpoint.setEndpoints(endpoints);
 
             return failoverEndpoint;
@@ -77,7 +77,7 @@
         return null;
     }
 
-    private ArrayList getEndpoints(OMElement failoverElement) {
+    private ArrayList getEndpoints(OMElement failoverElement, Endpoint parent) {
 
         ArrayList endpoints = new ArrayList();
         Iterator iter = failoverElement.getChildrenWithName
@@ -88,6 +88,7 @@
 
             EndpointFactory epFac = EndpointAbstractFactory.getEndpointFactroy(endptElem);
             Endpoint endpoint = epFac.createEndpoint(endptElem, true);
+            endpoint.setParentEndpoint(parent);
             endpoints.add(endpoint);
         }
 

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java Wed Mar  7 05:29:01 2007
@@ -69,7 +69,7 @@
             }
 
             // set endpoints
-            ArrayList endpoints = getEndpoints(loadbalanceElement);
+            ArrayList endpoints = getEndpoints(loadbalanceElement, loadbalanceEndpoint);
             loadbalanceEndpoint.setEndpoints(endpoints);
 
             // set load balance algorithm
@@ -120,7 +120,7 @@
         return null;
     }
 
-    private ArrayList getEndpoints(OMElement loadbalanceElement) {
+    private ArrayList getEndpoints(OMElement loadbalanceElement, Endpoint parent) {
 
         ArrayList endpoints = new ArrayList();
         Iterator iter = loadbalanceElement.getChildrenWithName
@@ -131,6 +131,7 @@
 
             EndpointFactory epFac = EndpointAbstractFactory.getEndpointFactroy(endptElem);
             Endpoint endpoint = epFac.createEndpoint(endptElem, true);
+            endpoint.setParentEndpoint(parent);
             endpoints.add(endpoint);
         }
 

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=515559&r1=515558&r2=515559
==============================================================================
--- 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 Wed Mar  7 05:29:01 2007
@@ -26,6 +26,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.Constants;
+import org.apache.synapse.FaultHandler;
 
 import java.util.Map;
 import java.util.HashMap;
@@ -77,10 +78,9 @@
     private void handleMessage(MessageContext response,
         org.apache.synapse.MessageContext synapseOutMsgCtx) {
 
-        if (response.getEnvelope().getBody().hasFault()) {
-            // synapseOutMsgCtx.getFaultStack().pop(); and handle the
-            // response.getEnvelope().getBody().getFault().getException()
-            // TODO chathura
+        if (response.getEnvelope().getBody().hasFault()) {            
+            Object o = synapseOutMsgCtx.getFaultStack().pop();
+            ((FaultHandler) o).handleFault(synapseOutMsgCtx);
 
         } else {
 

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java?view=diff&rev=515559&r1=515558&r2=515559
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java Wed Mar  7 05:29:01 2007
@@ -65,7 +65,7 @@
 
     public void setActive(boolean active) {
         this.active = active;
-    }    
+    }
 
     public void send(MessageContext synCtx) {
 
@@ -97,7 +97,7 @@
                 EndPointStatisticsStack endPointStatisticsStack = new EndPointStatisticsStack();
                 boolean isFault =synCtx.getEnvelope().getBody().hasFault();
                 endPointStatisticsStack.put(endPointName, System.currentTimeMillis(), !synCtx.isResponse(), statisticsEnable,isFault);
-                synCtx.setProperty(org.apache.synapse.Constants.ENDPOINT_STATISTICS_STACK, endPointStatisticsStack);                
+                synCtx.setProperty(org.apache.synapse.Constants.ENDPOINT_STATISTICS_STACK, endPointStatisticsStack);
             }
             synCtx.setTo(new EndpointReference(eprAddress));
 
@@ -135,7 +135,7 @@
             if (endpoint.isAddressingOn()) {
                 synCtx.setProperty(Constants.OUTFLOW_ADDRESSING_ON, Boolean.TRUE);
             }
-            
+
             synCtx.pushFault(this);
             synCtx.getEnvironment().send(endpoint, synCtx);
         }
@@ -153,6 +153,11 @@
         // perform retries here
 
         // if this endpoint has actually failed, inform the parent.
-        parentEndpoint.onChildEndpointFail(this, synCtx);       
+        if (parentEndpoint != null) {
+            parentEndpoint.onChildEndpointFail(this, synCtx);
+        } else {
+            Object o = synCtx.getFaultStack().pop();
+            ((FaultHandler) o).handleFault(synCtx);
+        }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org