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 ng...@apache.org on 2007/03/13 05:44:52 UTC

svn commit: r517526 - in /webservices/axis2/trunk/java/modules/jaxws: src/org/apache/axis2/jaxws/client/proxy/ src/org/apache/axis2/jaxws/spi/ test/org/apache/axis2/jaxws/framework/ test/org/apache/axis2/jaxws/spi/

Author: ngallardo
Date: Mon Mar 12 21:44:52 2007
New Revision: 517526

URL: http://svn.apache.org/viewvc?view=rev&rev=517526
Log:
-Changed the JAXWSProxyHandler to allow SPI method invocations.
-Added new test for BindingProvider SPI.

Added:
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/BindingProviderTests.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/Sample.java
Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java?view=diff&rev=517526&r1=517525&r2=517526
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java Mon Mar 12 21:44:52 2007
@@ -396,7 +396,9 @@
 	
     private boolean isValidMethodCall(Method method){
         Class clazz = method.getDeclaringClass();
-        if(clazz.isAssignableFrom(javax.xml.ws.BindingProvider.class) || clazz.isAssignableFrom(seiClazz)){
+        if (clazz.isAssignableFrom(seiClazz) ||
+            clazz.isAssignableFrom(org.apache.axis2.jaxws.spi.BindingProvider.class) || 
+            clazz.isAssignableFrom(javax.xml.ws.BindingProvider.class)) {
             return true;
         }
         return false;

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java?view=diff&rev=517526&r1=517525&r2=517526
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java Mon Mar 12 21:44:52 2007
@@ -215,7 +215,7 @@
         
     	JAXWSProxyHandler proxyHandler = new JAXWSProxyHandler(this, sei, endpointDesc);
     	
-    	Class[] seiClazz = new Class[]{sei, BindingProvider.class};
+    	Class[] seiClazz = new Class[]{sei, org.apache.axis2.jaxws.spi.BindingProvider.class};
     	Object proxyClass = Proxy.newProxyInstance(getClassLoader(sei), seiClazz, proxyHandler);
     	return sei.cast(proxyClass);
     }

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java?view=diff&rev=517526&r1=517525&r2=517526
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java Mon Mar 12 21:44:52 2007
@@ -74,6 +74,7 @@
 import org.apache.axis2.jaxws.sample.WSGenTests;
 import org.apache.axis2.jaxws.sample.WrapTests;
 import org.apache.axis2.jaxws.security.BasicAuthSecurityTests;
+import org.apache.axis2.jaxws.spi.BindingProviderTests;
 import org.apache.axis2.jaxws.wsdl.schemareader.SchemaReaderTests;
 import org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.datasource.DispatchXMessageDataSource;
 import org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.jaxb.DispatchXPayloadJAXB;
@@ -171,6 +172,9 @@
         suite.addTestSuite(DispatchXPayloadJAXB.class);
         suite.addTestSuite(DispatchXMessageDataSource.class);
         suite.addTestSuite(SchemaReaderTests.class);
+        
+        suite.addTestSuite(BindingProviderTests.class);
+        
         // Start (and stop) the server only once for all the tests
         TestSetup testSetup = new TestSetup(suite) {
             public void setUp() {

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/BindingProviderTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/BindingProviderTests.java?view=auto&rev=517526
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/BindingProviderTests.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/BindingProviderTests.java Mon Mar 12 21:44:52 2007
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jaxws.spi;
+
+import javax.xml.namespace.QName;
+import javax.xml.transform.Source;
+import javax.xml.ws.Dispatch;
+import javax.xml.ws.Service;
+import javax.xml.ws.soap.SOAPBinding;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.jaxws.description.EndpointDescription;
+
+/**
+ * The client APIs should each implement the org.apache.axis2.jaxws.spi.BindingProvider
+ * interface.  This suite should be used for any client APIs to verify that they 
+ * maintain that behavior. 
+ */
+public class BindingProviderTests extends TestCase {
+    
+    public QName serviceQName;
+    public QName portQName;
+    
+    public BindingProviderTests(String name) {
+        super(name);
+        
+        serviceQName = new QName("http://test", "TestService");
+        portQName = new QName("http://test", "TestPort");
+    }
+    
+    /**
+     * A test to verify that the Dispatch objects implement the proper interface
+     */
+    public void testDisptachBindingProviderSPI() {
+        Service svc = Service.create(serviceQName);
+        svc.addPort(portQName, SOAPBinding.SOAP11HTTP_BINDING, "");
+        
+        Dispatch dsp = svc.createDispatch(portQName, Source.class, Service.Mode.MESSAGE);
+        
+        // Make sure we can cast the object to the right interfaces
+        assertTrue("The Dispatch object should also be a javax.xml.ws.BindingProvider", 
+                (dsp instanceof javax.xml.ws.BindingProvider));
+        assertTrue("The Dispatch object should also be a org.apache.axis2.jaxws.spi.BindingProvider", 
+                dsp instanceof org.apache.axis2.jaxws.spi.BindingProvider);
+        
+        org.apache.axis2.jaxws.spi.BindingProvider bp = (org.apache.axis2.jaxws.spi.BindingProvider) dsp;
+        
+        ServiceDelegate sd = bp.getServiceDelegate();
+        assertTrue("The ServiceDescription was null", sd != null);
+        
+        EndpointDescription ed = bp.getEndpointDescription();
+        assertTrue("The EndpointDescription was null", ed != null);
+    }
+
+    /**
+     * A test to verify that the proxy objects implement the proper interface.
+     */
+    public void testProxyBindingProviderSPI() {
+        Service svc = Service.create(serviceQName);
+        Sample s = svc.getPort(Sample.class);
+        
+        // Make sure we can cast the object to the right interfaces
+        assertTrue("The Proxy object should also be a javax.xml.ws.BindingProvider",
+                s instanceof javax.xml.ws.BindingProvider);
+        assertTrue("The Proxy object should also be a org.apache.axis2.jaxws.spi.BindingProvider",
+                s instanceof org.apache.axis2.jaxws.spi.BindingProvider);
+        
+        org.apache.axis2.jaxws.spi.BindingProvider bp = (org.apache.axis2.jaxws.spi.BindingProvider) s;
+        
+        ServiceDelegate sd = bp.getServiceDelegate();
+        assertTrue("The ServiceDescription was null", sd != null);
+        
+        EndpointDescription ed = bp.getEndpointDescription();
+        assertTrue("The EndpointDescription was null", ed != null);
+    }
+}

Added: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/Sample.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/Sample.java?view=auto&rev=517526
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/Sample.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/spi/Sample.java Mon Mar 12 21:44:52 2007
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.jaxws.spi;
+
+import javax.jws.WebService;
+
+@WebService(targetNamespace="http://test",
+            serviceName="TestService",
+            portName="TestPort")
+public interface Sample {
+    
+    public String echoString(String input);
+
+}



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