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;
+       }
+}


Reply via email to