You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ch...@apache.org on 2007/02/24 17:04:25 UTC

svn commit: r511289 [2/2] - in /webservices/axis2/trunk/java: etc/ modules/clustering/ modules/clustering/conf/ modules/clustering/src/ modules/clustering/src/org/ modules/clustering/src/org/apache/ modules/clustering/src/org/apache/axis2/ modules/clus...

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceContext.java?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceContext.java Sat Feb 24 08:04:23 2007
@@ -780,4 +780,10 @@
             log.warn(logCorrelationIDString+":"+methodname+"(): ****WARNING**** "+myClassName+".activate(configurationContext) needs to be invoked.");
         }
     }
+
+	public ConfigurationContext getRootContext() {
+		return configContext;
+	}
+    
+    
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceGroupContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceGroupContext.java?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceGroupContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ServiceGroupContext.java Sat Feb 24 08:04:23 2007
@@ -18,6 +18,7 @@
 package org.apache.axis2.context;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.cluster.ClusterManager;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.AxisServiceGroup;
 import org.apache.axis2.engine.AxisConfiguration;
@@ -143,6 +144,12 @@
         if (serviceContext == null) {
             serviceContext = new ServiceContext(service, this);
             serviceContextMap.put(service.getName(), serviceContext);
+            
+            ClusterManager clusterManager = axisService.getAxisConfiguration().getClusterManager();
+            if (clusterManager!=null) {
+            	clusterManager.addContext(serviceContext);
+            }
+            
         }
         return serviceContext;
     }
@@ -575,4 +582,9 @@
             log.warn(myClassName+":"+methodname+"(): ****WARNING**** "+myClassName+".activate(configurationContext) needs to be invoked.");
         }
     }
+    
+	public ConfigurationContext getRootContext() {
+		//parent of the ServiceGroupContext is the ConfigurationContext
+		return (ConfigurationContext) this.getParent();
+	}
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/SessionContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/SessionContext.java?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/SessionContext.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/SessionContext.java Sat Feb 24 08:04:23 2007
@@ -324,5 +324,11 @@
 
     }
 
+	public ConfigurationContext getRootContext() {
+		// Session Context does not live within the hierarchy
+		return null;
+	}
+
+    
 
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java Sat Feb 24 08:04:23 2007
@@ -140,7 +140,14 @@
             if (defaultModuleVerionElement != null) {
                 processDefaultModuleVersions(defaultModuleVerionElement);
             }
-
+            
+            OMElement clusterElement = config_element
+					.getFirstChildWithName(new QName(TAG_CLUSTER));
+			if (clusterElement != null) {
+				ClusterBuilder clusterBuilder = new ClusterBuilder(axisConfig);
+				clusterBuilder.buildCluster(clusterElement);
+			}
+            
             // process MessageBuilders
             OMElement messageBuildersElement = config_element.getFirstChildWithName(new QName(TAG_MESSAGE_BUILDERS));
             if (messageBuildersElement != null) {

Added: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java?view=auto&rev=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java Sat Feb 24 08:04:23 2007
@@ -0,0 +1,72 @@
+/**
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.axis2.deployment;
+
+import java.io.InputStream;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.cluster.ClusterManager;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.i18n.Messages;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+
+/**
+ * Builds a service description from OM
+ */
+public class ClusterBuilder extends DescriptionBuilder {
+    private static final Log log = LogFactory.getLog(ClusterBuilder.class);
+    private AxisService service;
+
+    public ClusterBuilder(AxisConfiguration axisConfig) {
+        this.axisConfig = axisConfig;
+    }
+
+    public ClusterBuilder(InputStream serviceInputStream, AxisConfiguration axisConfig) {
+        super(serviceInputStream, axisConfig);
+    }
+
+    /**
+     * Populates service from corresponding OM.
+     */
+    public void buildCluster(OMElement clusterElement)
+			throws DeploymentException {
+    	
+		String className = clusterElement.getAttribute(
+				new QName(TAG_CLASS_NAME)).getAttributeValue();
+		ClusterManager clusterManager;
+		try {
+			Class clazz = Class.forName(className);
+			clusterManager = (ClusterManager) clazz.newInstance();
+			axisConfig.setClusterManager(clusterManager);
+			return;
+		} catch (ClassNotFoundException e) {
+			throw new DeploymentException (Messages.getMessage("clusterImplNotFound"));
+		} catch (InstantiationException e) {
+			throw new DeploymentException (Messages.getMessage("cannotLoadClusterImpl"));
+		} catch (IllegalAccessException e) {
+			throw new DeploymentException (e);
+		}
+
+	}
+
+}

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java Sat Feb 24 08:04:23 2007
@@ -69,6 +69,7 @@
     String TAG_TRANSPORT = "transport";
     String TAG_MEP = "mep";
     String TAG_DEFAULT_MODULE_VERSION = "defaultModuleVersions";
+    String TAG_CLUSTER = "cluster"; 
     String TAG_MESSAGE_BUILDERS = "messageBuilders"; //used to add pluggable support for diffrent wire formats
     String TAG_MESSAGE_BUILDER = "messageBuilder";
     String TAG_CONTENT_TYPE = "contentType";

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java Sat Feb 24 08:04:23 2007
@@ -17,6 +17,7 @@
 package org.apache.axis2.engine;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.cluster.ClusterManager;
 import org.apache.axis2.builder.OMBuilder;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.dataretrieval.AxisDataLocator;
@@ -137,6 +138,8 @@
     private boolean start;
 
     private ArrayList targetResolvers;
+    
+    private ClusterManager clusterManager;
 
     /**
      * Constructor AxisConfigurationImpl.
@@ -876,6 +879,14 @@
                     + defualtModuleVersion));
         }
     }
+    
+    public ClusterManager getClusterManager() {
+		return clusterManager;
+	}
+
+	public void setClusterManager(ClusterManager clusterManager) {
+		this.clusterManager = clusterManager;
+	}
 
     public Object getKey() {
         return toString();

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/i18n/resource.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/i18n/resource.properties?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/i18n/resource.properties (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/i18n/resource.properties Sat Feb 24 08:04:23 2007
@@ -85,6 +85,7 @@
 threadpoolset=The thread pool is already set.
 transportiniterror=A transport-OUT initialization error: {0}
 invalidserviceinagroup=The {0} service, which is not valid, does not belong to the {1} service group.
+cannotFlushRootNull=Cannot flush the context since the root context is null
 
 #     Deployment Errors
 invalidWSDLFound=The WSDL file found in the service archive file is not valid. The WSDL file must have either \ 
@@ -202,6 +203,9 @@
 outmsgctxnull=The out message context is null. Set the out message context before calling this method.
 cannotreset=The message exchange pattern (MEP) is not complete. Cannot reset
 cannotaddmsgctx=The system cannot add the message context again until client runs.
+clusterImplNotFound=Cluster implementation class not found
+cannotLoadClusterImpl=Cannot load Cluster implementation
+
 #Policy
 emptypolicy=The Policy ID is either null or empty.
 #outMessageNull=The out message is null.

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java?view=diff&rev=511289&r1=511288&r2=511289
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java Sat Feb 24 08:04:23 2007
@@ -28,6 +28,7 @@
 import org.apache.axiom.soap.SOAPFault;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
+import org.apache.axis2.cluster.ClusterManager;
 import org.apache.axis2.context.*;
 import org.apache.axis2.description.AxisModule;
 import org.apache.axis2.description.AxisOperation;
@@ -132,8 +133,15 @@
 
         serviceGroupContext.setId(serviceGroupContextId);
         configurationContext.registerServiceGroupContextintoSoapSessionTable(serviceGroupContext);
-
-        return new ServiceContext(axisService, serviceGroupContext);
+        ServiceContext serviceContext = new ServiceContext(axisService, serviceGroupContext);
+        
+        ClusterManager clusterManager = configurationContext.getAxisConfiguration().getClusterManager();
+        if (clusterManager!=null) {
+        	clusterManager.addContext(serviceGroupContext);
+        	clusterManager.addContext(serviceContext);
+        }
+        
+        return serviceContext;
     }
 
     /**



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