You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by az...@apache.org on 2007/07/08 18:38:47 UTC

svn commit: r554386 - in /webservices/axis2/trunk/java/modules: clustering/src/org/apache/axis2/clustering/tribes/ kernel/src/org/apache/axis2/clustering/ kernel/src/org/apache/axis2/description/

Author: azeez
Date: Sun Jul  8 09:38:43 2007
New Revision: 554386

URL: http://svn.apache.org/viewvc?view=rev&rev=554386
Log:
1. Introducing a new clustering constant
2. We should not calculate the cached eprs array when the AxisService is being built. This is 
because, at this point transport listeners may not be initialized, hence may have a null config 
ctx.


Modified:
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/RequestBlockingHandler.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java?view=diff&rev=554386&r1=554385&r2=554386
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java Sun Jul  8 09:38:43 2007
@@ -84,15 +84,17 @@
              iterator.hasNext();) {
             Phase phase = (Phase) iterator.next();
             if (phase instanceof DispatchPhase) {
-                PhaseRule rule = new PhaseRule("Dispatch");
-                rule.setAfter("SOAPMessageBodyBasedDispatcher");
-                rule.setBefore("InstanceDispatcher");
                 RequestBlockingHandler requestBlockingHandler = new RequestBlockingHandler();
-                HandlerDescription handlerDesc = requestBlockingHandler.getHandlerDesc();
-                handlerDesc.setHandler(requestBlockingHandler);
-                handlerDesc.setName("RequestBlockingHandler");
-                handlerDesc.setRules(rule);
-                phase.addHandler(requestBlockingHandler);
+                if (!phase.getHandlers().contains(requestBlockingHandler)) {
+                    PhaseRule rule = new PhaseRule("Dispatch");
+                    rule.setAfter("SOAPMessageBodyBasedDispatcher");
+                    rule.setBefore("InstanceDispatcher");
+                    HandlerDescription handlerDesc = requestBlockingHandler.getHandlerDesc();
+                    handlerDesc.setHandler(requestBlockingHandler);
+                    handlerDesc.setName(ClusteringConstants.REQUEST_BLOCKING_HANDLER);
+                    handlerDesc.setRules(rule);
+                    phase.addHandler(requestBlockingHandler);
+                }
                 break;
             }
         }
@@ -100,16 +102,18 @@
              iterator.hasNext();) {
             Phase phase = (Phase) iterator.next();
             if (phase instanceof DispatchPhase) {
-                PhaseRule rule = new PhaseRule("Dispatch");
-                rule.setAfter("SOAPMessageBodyBasedDispatcher");
-                rule.setBefore("InstanceDispatcher");
                 RequestBlockingHandler requestBlockingHandler = new RequestBlockingHandler();
-                HandlerDescription handlerDesc = requestBlockingHandler.getHandlerDesc();
-                handlerDesc.setHandler(requestBlockingHandler);
-                handlerDesc.setName("RequestBlockingHandler");
-                handlerDesc.setRules(rule);
-                phase.addHandler(requestBlockingHandler);
-                break;
+                if (!phase.getHandlers().contains(requestBlockingHandler)) {
+                    PhaseRule rule = new PhaseRule("Dispatch");
+                    rule.setAfter("SOAPMessageBodyBasedDispatcher");
+                    rule.setBefore("InstanceDispatcher");
+                    HandlerDescription handlerDesc = requestBlockingHandler.getHandlerDesc();
+                    handlerDesc.setHandler(requestBlockingHandler);
+                    handlerDesc.setName(ClusteringConstants.REQUEST_BLOCKING_HANDLER);
+                    handlerDesc.setRules(rule);
+                    phase.addHandler(requestBlockingHandler);
+                    break;
+                }
             }
         }
 

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java?view=diff&rev=554386&r1=554385&r2=554386
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/ClusteringConstants.java Sun Jul  8 09:38:43 2007
@@ -28,6 +28,7 @@
     public static final String AVOID_INITIATION_KEY = "AvoidInitiation";
     public static final String DOMAIN = "domain";
     public static final String NODE_MANAGER_SERVICE = "Axis2NodeManager";
+    public static final String REQUEST_BLOCKING_HANDLER = "RequestBlockingHandler";
     public static final String CLUSTER_INITIALIZED = "local_cluster.initialized";
     public static final String TIME_TO_SEND = "local_cluster.time.to.send";
     public static final String BLOCK_ALL_REQUESTS = "local_wso2wsas.block.requests";

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/RequestBlockingHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/RequestBlockingHandler.java?view=diff&rev=554386&r1=554385&r2=554386
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/RequestBlockingHandler.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/RequestBlockingHandler.java Sun Jul  8 09:38:43 2007
@@ -22,6 +22,7 @@
 import org.apache.axis2.description.AxisServiceGroup;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.HandlerDescription;
 
 /**
  *
@@ -77,5 +78,26 @@
                                 "Please try again in a few seconds.");
         }
         return InvocationResponse.CONTINUE;
+    }
+
+
+    public boolean equals(Object obj) {
+        if(obj instanceof RequestBlockingHandler){
+            RequestBlockingHandler that = (RequestBlockingHandler) obj;
+            HandlerDescription thisDesc = this.getHandlerDesc();
+            HandlerDescription thatDesc = that.getHandlerDesc();
+            if(thisDesc != null && thatDesc != null && thisDesc.getName().equals(thatDesc.getName())){
+                return true;
+            }
+        }
+        return false;
+    }
+
+
+    public int hashCode() {
+        if(this.handlerDesc != null){
+            return this.handlerDesc.hashCode();
+        }
+        return super.hashCode();
     }
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java?view=diff&rev=554386&r1=554385&r2=554386
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService.java Sun Jul  8 09:38:43 2007
@@ -1461,7 +1461,7 @@
     public void setExposedTransports(List transports) {
         enableAllTransports = false;
         this.exposedTransports = transports;
-        calculateEPRs();
+        eprs = null; //Do not remove this. We need to force EPR recalculation.
     }
 
     public void addExposedTransport(String transport) {



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