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/15 19:35:23 UTC
svn commit: r289283 - in /webservices/axis2/trunk/java/modules/core:
src/org/apache/axis2/context/ test/org/apache/axis2/context/
Author: chamikara
Date: Thu Sep 15 10:34:02 2005
New Revision: 289283
URL: http://svn.apache.org/viewcvs?rev=289283&view=rev
Log:
A new test case was added to check the Context Hierarchy serialization-deserialization functionality.
Also did some corrections in the Context classes.
Added:
webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/ConfigurationContext.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.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
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=289283&r1=289282&r2=289283&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 Thu Sep 15 10:34:02 2005
@@ -27,7 +27,11 @@
import javax.xml.namespace.QName;
import java.io.File;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
/**
@@ -76,7 +80,7 @@
serviceContextMap.remove(name);
}
- /**
+
public void init(AxisConfiguration axisConfiguration) throws AxisFault {
this.axisConfiguration = axisConfiguration;
@@ -114,19 +118,6 @@
threadPool = new ThreadPool ();
}
- public ConfigurationContext(AxisConfiguration registry) {
- super(null);
- this.axisConfiguration = registry;
- //serviceContextMap = new HashMap();
- moduleContextMap = new HashMap();
- sessionContextMap = new HashMap();
-
- }
-
- public synchronized void removeService(QName name) {
- serviceContextMap.remove(name);
- }
-
/**
*/
public AxisConfiguration getAxisConfiguration() {
@@ -296,7 +287,4 @@
return "".equals(string) || string == null;
}
- public void init(AxisConfiguration axisConfiguration) throws AxisFault {
- this.axisConfiguration = axisConfiguration;
- }
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java?rev=289283&r1=289282&r2=289283&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java Thu Sep 15 10:34:02 2005
@@ -195,11 +195,22 @@
serviceGroupDescription = axisConfiguration.getServiceGroup(serviceGroupDescId);
if (serviceDescName != null)
serviceDescription = axisConfiguration.getService(serviceDescName.getLocalPart());
- if (serviceDescription != null)
+ if (operationDescName != null)
operationDescription = serviceDescription.getOperation(operationDescName);
}
private void writeObject(ObjectOutputStream out) throws IOException {
+ if (transportIn != null)
+ transportInName = transportIn.getName();
+ if (transportOut != null)
+ transportOutname = transportOut.getName();
+ if (serviceGroupDescription != null)
+ serviceGroupDescId = serviceGroupDescription.getServiceGroupName();
+ if (serviceDescription != null)
+ serviceDescName = serviceDescription.getName();
+ if (operationDescription != null)
+ operationDescName = operationDescription.getName();
+
out.defaultWriteObject();
}
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=289283&r1=289282&r2=289283&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 Thu Sep 15 10:34:02 2005
@@ -86,6 +86,11 @@
}
private void writeObject(ObjectOutputStream out) throws IOException {
+ if (axisOperation!=null)
+ operationDescName = axisOperation.getName();
+ if (axisOperation.getParent()!=null)
+ serviceDescName = axisOperation.getParent().getName();
+
out.defaultWriteObject();
}
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=289283&r1=289282&r2=289283&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 Thu Sep 15 10:34:02 2005
@@ -50,6 +50,9 @@
}
private void writeObject(ObjectOutputStream out) throws IOException {
+ if (serviceConfig!=null)
+ this.serviceDescName = serviceConfig.getName();
+
out.defaultWriteObject();
}
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=289283&r1=289282&r2=289283&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 Thu Sep 15 10:34:02 2005
@@ -48,6 +48,9 @@
}
private void writeObject(ObjectOutputStream out) throws IOException {
+ if (description!=null)
+ this.serviceGroupDescName = description.getServiceGroupName();
+
out.defaultWriteObject();
}
Added: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java?rev=289283&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java (added)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/context/ContextSerializationTest.java Thu Sep 15 10:34:02 2005
@@ -0,0 +1,184 @@
+/*
+ * 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.context;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.miheaders.RelatesTo;
+import org.apache.axis2.description.OperationDescription;
+import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.description.ServiceGroupDescription;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisConfigurationImpl;
+import org.apache.axis2.util.Utils;
+import org.apache.axis2.wsdl.builder.WSDLComponentFactory;
+import org.apache.wsdl.WSDLConstants;
+
+import junit.framework.TestCase;
+
+/**
+ * This TestCase check weather the context serialization and deserialization happens correctly.
+ */
+public class ContextSerializationTest extends TestCase {
+
+ final String SERVICE_NAME = "service1";
+ final String OPERATION_NAME = "operation1";
+ final String SERVICE_GROUP_NAME = "serviceGroupName";
+ final String SERVICE_GROUP_CONTEXT_ID = "serviceGroupCtxId";
+ final String MSG1_ID = "msgid1";
+ final String MSG2_ID = "msgid2";
+
+ File file = new File ("target/tempfile.tmp");
+
+ AxisConfiguration axisConfiguration;
+ ServiceGroupDescription serviceGroupDescription;
+ ServiceDescription serviceDescription;
+ OperationDescription operationDescription;
+
+ QName serviceDescQName = new QName (SERVICE_NAME);
+ QName operationDescName = new QName (OPERATION_NAME);
+
+
+ protected void setUp() throws Exception {
+ //Initializing descriptions
+ axisConfiguration = new AxisConfigurationImpl ();
+ serviceGroupDescription = new ServiceGroupDescription (axisConfiguration);
+ serviceGroupDescription.setServiceGroupName(SERVICE_GROUP_NAME);
+ serviceDescription = new ServiceDescription (serviceDescQName);
+ operationDescription = new OperationDescription (operationDescName);
+
+ //Creating links
+ axisConfiguration.addServiceGroup(serviceGroupDescription);
+ axisConfiguration.addService(serviceDescription);
+ serviceGroupDescription.addService(serviceDescription);
+ serviceDescription.addOperation(operationDescription);
+
+ if (file.exists()) {
+ file.delete();
+ }
+
+ //creating a temp file to serialize
+ File dir = new File ("target");
+ if (!dir.isDirectory())
+ throw new AxisFault ("Target diractory is not found");
+
+ file.createNewFile();
+ }
+
+ public void testSerialization ()throws AxisFault,IOException, ClassNotFoundException{
+
+ //Setting contexts.
+ ConfigurationContext configurationContext = new ConfigurationContext(axisConfiguration);
+ ServiceGroupContext serviceGroupContext = serviceDescription.getParent().getServiceGroupContext(configurationContext);
+ serviceGroupContext.setId(SERVICE_GROUP_CONTEXT_ID);
+ configurationContext.registerServiceGroupContext(serviceGroupContext);
+ ServiceContext serviceContext = serviceGroupContext.getServiceContext(serviceDescription.getName().getLocalPart());
+
+ //setting message contexts
+ MessageContext inMessage = new MessageContext(configurationContext);
+ MessageContext outMessage = new MessageContext(configurationContext);
+ inMessage.setMessageID(MSG1_ID);
+ outMessage.setMessageID(MSG2_ID);
+ outMessage.setRelatesTo(new RelatesTo (MSG1_ID));
+ inMessage.setServiceGroupContextId(SERVICE_GROUP_CONTEXT_ID);
+ outMessage.setServiceGroupContextId(SERVICE_GROUP_CONTEXT_ID);
+ inMessage.setServiceGroupContext(serviceGroupContext);
+ outMessage.setServiceGroupContext(serviceGroupContext);
+ inMessage.setServiceContext(serviceContext);
+ outMessage.setServiceContext(serviceContext);
+ inMessage.setOperationDescription(operationDescription);
+ outMessage.setOperationDescription(operationDescription);
+
+ OperationContext operationContext = operationDescription.findOperationContext(inMessage,serviceContext);
+ operationContext.addMessageContext(outMessage);
+ outMessage.setOperationContext(operationContext);
+
+ configurationContext.registerOperationContext(inMessage.getMessageID(),operationContext);
+ configurationContext.registerOperationContext(outMessage.getMessageID(),operationContext);
+
+
+ //serializing
+ ObjectOutputStream out = new ObjectOutputStream (
+ new FileOutputStream (file));
+
+ if (configurationContext==null)
+ throw new AxisFault ("Configuration Context is null");
+
+ out.writeObject(configurationContext);
+ out.close();
+
+
+
+ //deserializing
+ ObjectInputStream in = new ObjectInputStream (
+ new FileInputStream (file));
+
+ Object obj = in.readObject();
+ if (!(obj instanceof ConfigurationContext))
+ throw new AxisFault ("Invalid read");
+
+ configurationContext = null;
+ configurationContext = (ConfigurationContext) obj;
+
+ //calling 'init' to set descriptions
+ configurationContext.init(axisConfiguration);
+
+
+ //Assertions to check weather context hierarchy is set correctly.
+ assertFalse(configurationContext.getOperationContextMap().isEmpty());
+
+ ServiceGroupContext serviceGroupcontext1 = configurationContext.fillServiceContextAndServiceGroupContext(inMessage);
+ assertNotNull (serviceGroupcontext1);
+
+ serviceGroupcontext1 = configurationContext.fillServiceContextAndServiceGroupContext(outMessage);
+ assertNotNull (serviceGroupcontext1);
+
+ ServiceContext serviceContext1 = serviceGroupContext.getServiceContext(SERVICE_NAME);
+ assertNotNull(serviceContext1);
+
+ OperationContext operationContext1 = configurationContext.getOperationContext(MSG1_ID);
+ assertNotNull(operationContext1);
+
+ assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN));
+ assertNotNull(operationContext1.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT));
+
+
+ //Assertions to check weather description hierarchy is set correctly.
+ AxisConfiguration axisConfiguration1 = configurationContext.getAxisConfiguration();
+ assertNotNull(axisConfiguration1);
+
+ assertNotNull(operationContext1.getAxisOperation());
+ assertNotNull(serviceGroupcontext1.getDescription());
+ assertNotNull(serviceContext1.getServiceConfig());
+
+ }
+
+
+ protected void tearDown() throws Exception {
+ if (file.exists())
+ file.delete();
+ }
+
+
+}