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 2005/09/13 18:55:27 UTC
svn commit: r280587 - in
/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2: ./
context/ engine/
Author: chinthaka
Date: Tue Sep 13 09:55:12 2005
New Revision: 280587
URL: http://svn.apache.org/viewcvs?rev=280587&view=rev
Log:
More stuff coming in for service groups
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceGroupContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java?rev=280587&r1=280586&r2=280587&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/InstanceDispatcher.java Tue Sep 13 09:55:12 2005
@@ -1,11 +1,7 @@
package org.apache.axis2;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.context.OperationContextFactory;
+import org.apache.axis2.context.*;
import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.description.ServiceDescription;
-import org.apache.axis2.description.ServiceGroupDescription;
import org.apache.axis2.handlers.AbstractHandler;
/*
@@ -45,28 +41,25 @@
System.out.println("Instance Dispatcher invoked .........");
OperationDescription operationDesc = msgContext.getOperationDescription();
- ServiceDescription serviceDesc = msgContext.getServiceDescription();
- ServiceGroupDescription serviceGroupDesc = msgContext.getServiceGroupDescription();
- String serviceGroupContextId = msgContext.getServiceGroupContextId();
// 1. look up opCtxt using mc.addressingHeaders.relatesTo[0]
OperationContext operationContext = operationDesc.findForExistingOperationContext(msgContext);
if (operationContext != null) {
operationDesc.registerOperationContext(msgContext, operationContext);
+ ServiceContext serviceContext = (ServiceContext) operationContext.getParent();
+ ServiceGroupContext serviceGroupContext = (ServiceGroupContext) serviceContext.getParent();
+ msgContext.setServiceContext(serviceContext);
+ msgContext.setServiceGroupContext(serviceGroupContext);
+ return;
+
} else { // 2. if null, create new opCtxt
operationContext =
OperationContextFactory.createOperationContext(operationDesc.getAxisSpecifMEPConstant(), operationDesc);
operationDesc.registerOperationContext(msgContext, operationContext);
+ // fill the service group context and service context info
+ msgContext.getSystemContext().
+ fillServiceContextAndServiceGroupContext(msgContext);
}
-
-// 4. look up SGC using mc.getServiceGroupContextID() as the key
-// 5. if null create new sgc
-// 6. look up service ctxt as service name as the key
-// 7. if null create new
-// 8. set opCtxt.setServiceCtxt(sc)
-// 9. return
-
-
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java?rev=280587&r1=280586&r2=280587&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java Tue Sep 13 09:55:12 2005
@@ -22,6 +22,7 @@
import org.apache.axis2.description.ServiceDescription;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.storage.AxisStorage;
+import org.apache.axis2.util.UUIDGenerator;
import org.apache.axis2.util.threadpool.ThreadPool;
import javax.xml.namespace.QName;
@@ -31,7 +32,7 @@
/**
* This is the biggest memeber of the Axis2 information hierachy, and if this is serialized completly
- * the whole Axis2 is saved to the disc.
+ * the whole Axis2 is saved to the disc.
*/
public class ConfigurationContext extends AbstractContext {
@@ -52,6 +53,8 @@
private final Map serviceContextMap;
+ private final Map serviceGroupContextMap = new HashMap();
+
public ConfigurationContext(AxisConfiguration registry) {
super(null);
this.axisConfiguration = registry;
@@ -62,6 +65,7 @@
/**
* The method is used to do the intialization of the EngineContext
+ *
* @throws AxisFault
*/
@@ -86,19 +90,22 @@
public void setAxisConfiguration(AxisConfiguration configuration) {
axisConfiguration = configuration;
}
-
+
/**
* Register a OperationContext agienst a given Message ID.
+ *
* @param messageID
* @param mepContext
*/
public synchronized void registerOperationContext(
- String messageID,
- OperationContext mepContext) {
+ String messageID,
+ OperationContext mepContext) {
this.operationContextMap.put(messageID, mepContext);
}
+
/**
* get a OperationContext given a Message ID
+ *
* @param messageID
* @return OperationContext <code>OperationContext<code>
*/
@@ -109,18 +116,19 @@
public Map getOperationContextMap() {
return this.operationContextMap;
}
-
+
/**
* Register a ServiceContext agienst a given Message ID.
*/
public synchronized void registerServiceContext(
- String serviceInstanceID,
- ServiceContext serviceContext) {
+ String serviceInstanceID,
+ ServiceContext serviceContext) {
this.serviceContextMap.put(serviceInstanceID, serviceContext);
}
/**
* get the ServiceContext given a id
+ *
* @param serviceInstanceID
* @return
*/
@@ -129,7 +137,7 @@
}
public AxisStorage getStorage() {
- return axisConfiguration.getAxisStorage(); //storage;
+ return axisConfiguration.getAxisStorage(); //storage;
}
public void setStorage(AxisStorage storage) {
@@ -137,13 +145,13 @@
}
public ServiceContext createServiceContext(QName serviceName)
- throws AxisFault {
+ throws AxisFault {
ServiceDescription service = axisConfiguration.getService(serviceName);
if (service != null) {
return new ServiceContext(service, this);
} else {
throw new AxisFault(
- "Service not found service name = " + serviceName);
+ "Service not found service name = " + serviceName);
}
}
@@ -156,9 +164,11 @@
}
return threadPool;
}
+
/**
- * This method allows users to reolve the paths relative to the
+ * This method allows users to reolve the paths relative to the
* root diretory
+ *
* @param path
* @return
*/
@@ -177,4 +187,51 @@
rootDir = file;
}
+ /**
+ * This method should search for a SGC in the map with given id as the key.
+ * If(key != null && found)
+ * check for a service context for the intended service.
+ * if (!found)
+ * create one and hook up to SGC
+ * else
+ * create new sgc with the given key or if key is null with a new key
+ * create a new service context for the service
+ *
+ * @param messageContext
+ * @return
+ */
+ public ServiceGroupContext fillServiceContextAndServiceGroupContext(MessageContext messageContext) {
+ String serviceGroupContextId = messageContext.getServiceGroupContextId();
+
+ ServiceGroupContext serviceGroupContext = null;
+ ServiceContext serviceContext = null;
+ if (!isNull(serviceGroupContextId) && serviceGroupContextMap.get(serviceGroupContextId) != null) {
+ serviceGroupContext = (ServiceGroupContext) serviceGroupContextMap.get(serviceGroupContextId);
+ serviceContext = serviceGroupContext.getServiceContext(messageContext.getServiceDescription().getName().
+ getLocalPart());
+ if (serviceContext == null) {
+ serviceContext = messageContext.getServiceDescription().findServiceContext(messageContext);
+ serviceContext.setParent(serviceGroupContext);
+ }
+ } else {
+ // either the key is null or no SGC is found from the give key
+ if (isNull(serviceGroupContextId)) {
+ serviceGroupContextId = UUIDGenerator.getUUID();
+ messageContext.setServiceGroupContextId(serviceGroupContextId);
+ }
+ serviceGroupContext = new ServiceGroupContext(this);
+ serviceGroupContextMap.put(serviceGroupContextId, serviceGroupContext);
+ serviceContext = messageContext.getServiceDescription().findServiceContext(messageContext);
+ serviceContext.setParent(serviceGroupContext);
+ }
+
+ messageContext.getOperationContext().setParent(serviceContext);
+ messageContext.setServiceContext(serviceContext);
+ messageContext.setServiceGroupContext(serviceGroupContext);
+ return serviceGroupContext;
+ }
+
+ private boolean isNull(String string) {
+ return "".equals(string) || string == null;
+ }
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java?rev=280587&r1=280586&r2=280587&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/OperationContext.java Tue Sep 13 09:55:12 2005
@@ -77,8 +77,6 @@
super(null);
this.axisOperation = axisOperation;
this.operationMEP = axisOperation.getAxisSpecifMEPConstant();
- this.operationContextMap = getServiceContext().getEngineContext()
- .getOperationContextMap();
}
/**
@@ -196,5 +194,11 @@
// public MessageContext createMessageContext(AxisM){
//
// }
+
+ public void setParent(AbstractContext context) {
+ super.setParent(context);
+ this.operationContextMap = getServiceContext().getEngineContext()
+ .getOperationContextMap();
+ }
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceContext.java?rev=280587&r1=280586&r2=280587&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceContext.java Tue Sep 13 09:55:12 2005
@@ -62,7 +62,7 @@
}
public ConfigurationContext getEngineContext() {
- return (ConfigurationContext) parent;
+ return (ConfigurationContext) parent.getParent();
}
public OperationContext createOperationContext(QName name) {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceGroupContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceGroupContext.java?rev=280587&r1=280586&r2=280587&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceGroupContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ServiceGroupContext.java Tue Sep 13 09:55:12 2005
@@ -1,4 +1,7 @@
package org.apache.axis2.context;
+
+import java.util.HashMap;
+import java.util.Map;
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
@@ -19,8 +22,27 @@
/**
* Author: Deepal Jayasinghe
- * Date: Sep 13, 2005
- * Time: 9:54:22 AM
+ * : Eran Chinthaka
*/
-public class ServiceGroupContext {
+public class ServiceGroupContext extends AbstractContext{
+
+ private String id;
+ private Map serviceContextMap;
+
+ protected ServiceGroupContext(AbstractContext parent) {
+ super(parent);
+ serviceContextMap = new HashMap();
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ServiceContext getServiceContext(String serviceName){
+ return (ServiceContext) serviceContextMap.get(serviceName);
+ }
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java?rev=280587&r1=280586&r2=280587&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AbstractDispatcher.java Tue Sep 13 09:55:12 2005
@@ -60,8 +60,8 @@
*/
public final void invoke(MessageContext msgctx) throws AxisFault {
- ServiceDescription serviceDescription = null;
- if(msgctx.getServiceDescription() == null){
+ ServiceDescription serviceDescription = msgctx.getServiceDescription();
+ if(serviceDescription == null){
serviceDescription = findService(msgctx);
if (serviceDescription != null) {
msgctx.setServiceDescription(serviceDescription);