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 ba...@apache.org on 2008/08/25 19:53:34 UTC

svn commit: r688801 - /webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java

Author: barrettj
Date: Mon Aug 25 10:53:34 2008
New Revision: 688801

URL: http://svn.apache.org/viewvc?rev=688801&view=rev
Log:
Add test that uses a generated Service.

Modified:
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java?rev=688801&r1=688800&r2=688801&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java Mon Aug 25 10:53:34 2008
@@ -29,6 +29,7 @@
 import javax.jws.WebService;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Service;
+import javax.xml.ws.WebServiceClient;
 import javax.xml.ws.WebServiceException;
 
 import java.io.File;
@@ -133,8 +134,6 @@
                     svc1.addPort(portQN, bindingID1, epr1);
                 }
                 org.apache.axis2.jaxws.spi.ServiceDelegate.releaseService(svc1);
-                // Give the GC time to run
-                Thread.sleep(500);
             }
         } catch (Throwable t) {
             fail("Caught throwable " + t);
@@ -496,6 +495,59 @@
 
     }
 
+    static final String GENERATED_SERVICE_WSDL = "ClientMetadata.wsdl";
+    static final String GENERATED_SERVICE_NS = "http://description.jaxws.axis2.apache.org";
+    static final String GENERATED_SERVICE_LP = "svcLocalPart";
+    
+    public void testGeneratedServiceRelease() {
+        try {
+            ClientMetadataTest.installCachingFactory();
+            
+            ClientMetadataGeneratedService genSvc = new ClientMetadataGeneratedService();
+            assertNotNull(genSvc);
+            ClientMetadataPortSEI port = genSvc.getPort(ClientMetadataPortSEI.class);
+            assertNotNull(port);
+            
+            // User internal state to verify the port information before and after the close
+            ServiceDelegate delegate = DescriptionTestUtils2.getServiceDelegate(genSvc);
+            ServiceDescription svcDesc = delegate.getServiceDescription();
+            EndpointDescription[] epDescArray= svcDesc.getEndpointDescriptions();
+            assertNotNull(epDescArray);
+            assertEquals(1, epDescArray.length);
+            
+            AxisConfiguration axisConfig = svcDesc.getAxisConfigContext().getAxisConfiguration();
+            HashMap axisServices = axisConfig.getServices();
+            assertEquals(1, axisServices.size());
+
+            org.apache.axis2.jaxws.spi.ServiceDelegate.releaseService(genSvc);
+
+            axisServices = axisConfig.getServices();
+            assertEquals(0, axisServices.size());
+
+            epDescArray= svcDesc.getEndpointDescriptions();
+            assertEquals(0, epDescArray.length);                
+        } finally {
+            ClientMetadataTest.restoreOriginalFactory();
+        }
+    }
+    
+    public void testGeneratedServiceRelaseLoop() {
+        // Create a bunch of different services, make sure the service desc finalizer is called
+        try {
+            ClientMetadataTest.installCachingFactory();
+
+            for (int i = 0; i < 1000; i++) {
+                ClientMetadataGeneratedService genSvc = new ClientMetadataGeneratedService();
+                ClientMetadataPortSEI port = genSvc.getPort(ClientMetadataPortSEI.class);
+                org.apache.axis2.jaxws.spi.ServiceDelegate.releaseService(genSvc);
+            }
+        } catch (Throwable t) {
+            fail("Caught throwable " + t);
+        } finally {
+            ClientMetadataTest.restoreOriginalFactory();
+        }
+    }
+
     // =============================================================================================
     // Utility methods
     // =============================================================================================
@@ -530,7 +582,6 @@
         wsdlLocation = baseDir + "/test-resources/wsdl/" + wsdlFileName;
         return wsdlLocation;
     }
-
 }
 
 @WebService(name="EchoMessagePortType", targetNamespace="http://description.jaxws.axis2.apache.org")
@@ -538,3 +589,13 @@
     public String echoMessage(String string);
 }
 
+@WebServiceClient()
+class ClientMetadataGeneratedService extends javax.xml.ws.Service {
+    public ClientMetadataGeneratedService() {
+        super(ReleaseServiceTests.getWsdlURL(ReleaseServiceTests.GENERATED_SERVICE_WSDL),
+              new QName(ReleaseServiceTests.GENERATED_SERVICE_NS, ReleaseServiceTests.GENERATED_SERVICE_LP));
+    }
+    public ClientMetadataGeneratedService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+}