tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From antel...@apache.org
Subject svn commit: r1303424 - in /tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen: JAXBWSDLGeneratorTestCase.java JAXB_Class2.java
Date Wed, 21 Mar 2012 15:04:33 GMT
Author: antelder
Date: Wed Mar 21 15:04:33 2012
New Revision: 1303424

URL: http://svn.apache.org/viewvc?rev=1303424&view=rev
Log:
Add testcase for creating wsdl from an interface with a type using JAXB @XmlType annotation.
This test fails presently due to a bug in Tuscany's wsdl generation

Added:
    tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXBWSDLGeneratorTestCase.java
    tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXB_Class2.java

Added: tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXBWSDLGeneratorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXBWSDLGeneratorTestCase.java?rev=1303424&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXBWSDLGeneratorTestCase.java
(added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXBWSDLGeneratorTestCase.java
Wed Mar 21 15:04:33 2012
@@ -0,0 +1,86 @@
+/*
+ * 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.tuscany.sca.binding.ws.wsdlgen;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.core.databinding.processor.DataBindingJavaInterfaceProcessor;
+import org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint;
+import org.apache.tuscany.sca.interfacedef.Compatibility;
+import org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
+import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
+import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
+import org.apache.tuscany.sca.interfacedef.java.jaxws.JAXWSFaultExceptionMapper;
+import org.apache.tuscany.sca.interfacedef.java.jaxws.JAXWSJavaInterfaceProcessor;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
+import org.apache.tuscany.sca.xsd.XSDFactory;
+import org.apache.tuscany.sca.xsd.xml.XSDModelResolver;
+import org.junit.Ignore;
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * Tests generating WSDL from a Java interface that uses types with JAXB @XmlType annotations
+ */
+@Ignore("Fails presently due to a bug in the generated wsdl where the Class2 type is in the
wrong namespace")
+public class JAXBWSDLGeneratorTestCase extends TestCase {
+
+    public void testCreateWSDLInterfaceContract() throws InvalidInterfaceException, IncompatibleInterfaceContractException
{
+        ExtensionPointRegistry registry = new DefaultExtensionPointRegistry();
+        org.apache.tuscany.sca.core.FactoryExtensionPoint modelFactories = new DefaultFactoryExtensionPoint(registry);
+        WSDLFactory wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
+        XSDFactory xsdFactory = modelFactories.getFactory(XSDFactory.class);
+        DocumentBuilderFactory documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class);
+        JavaInterfaceFactory factory = new DefaultJavaInterfaceFactory(registry);
+        JavaInterfaceContract javaIC = factory.createJavaInterfaceContract();
+
+        JavaInterface iface = factory.createJavaInterface(JaxbIface.class);
+        
+        DefaultDataBindingExtensionPoint dataBindings = new DefaultDataBindingExtensionPoint(registry);
+        JAXWSFaultExceptionMapper faultExceptionMapper = new JAXWSFaultExceptionMapper(dataBindings,
null);
+        new JAXWSJavaInterfaceProcessor(registry).visitInterface(iface);
+        new DataBindingJavaInterfaceProcessor(registry).visitInterface(iface);
+        javaIC.setInterface(iface);
+        WSDLInterfaceContract wsdlIC = BindingWSDLGenerator.createWSDLInterfaceContract(javaIC,
false, new XSDModelResolver(null, null), dataBindings, wsdlFactory, xsdFactory, documentBuilderFactory,
null);
+        assertNotNull(wsdlIC);
+        
+        UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+        InterfaceContractMapper interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class);
+
+        // TODO: this call fails with an IncompatibleInterfaceContractExcetpion
+        interfaceContractMapper.checkCompatibility(wsdlIC, javaIC, Compatibility.SUBSET,
true, false);
+    }
+
+}
+
+@Remotable
+interface JaxbIface {
+    String sayHello(JAXB_Class2 s);
+}
+

Added: tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXB_Class2.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXB_Class2.java?rev=1303424&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXB_Class2.java
(added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/JAXB_Class2.java
Wed Mar 21 15:04:33 2012
@@ -0,0 +1,37 @@
+/*
+ * 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.tuscany.sca.binding.ws.wsdlgen;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+* A JAXB annotated complex class that is used in a service interface
+*/
+@XmlType(name="Class2Type")
+public class JAXB_Class2 {
+	
+	String		stringData;
+	
+	public String getStringData() {
+		return stringData;
+	}
+	public void setStringData(String stringData) {
+		this.stringData = stringData;
+	}
+}



Mime
View raw message