You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by mv...@apache.org on 2007/03/15 15:35:22 UTC

svn commit: r518666 - in /incubator/yoko/trunk/tools/src: main/java/org/apache/yoko/tools/processors/idl/ test/java/org/apache/yoko/tools/ test/resources/idl/

Author: mvescovi
Date: Thu Mar 15 08:35:21 2007
New Revision: 518666

URL: http://svn.apache.org/viewvc?view=rev&rev=518666
Log:
[YOKO-308] Implemented '-t <corba-type-map target-namespace>' idltowsdl option and added test

Added:
    incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl   (with props)
Modified:
    incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java
    incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java
    incubator/yoko/trunk/tools/src/test/java/org/apache/yoko/tools/IDLToWSDLTest.java

Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java?view=diff&rev=518666&r1=518665&r2=518666
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java Thu Mar 15 08:35:21 2007
@@ -94,13 +94,12 @@
         }
         // XmlSchema namespace
         String schemans = (String) env.get(ToolCorbaConstants.CFG_SCHEMA_NAMESPACE);
-        if (schemans == null) {
-            schemans = tns;
-        }
-
+        
+        // corba typemap namespace
+        String corbatypemaptns = (String) env.get(ToolCorbaConstants.CFG_CORBATYPEMAP_NAMESPACE);
         
         try {
-            WSDLASTVisitor visitor = new WSDLASTVisitor(tns, schemans);
+            WSDLASTVisitor visitor = new WSDLASTVisitor(tns, schemans, corbatypemaptns);
             if (env.optionSet(ToolCorbaConstants.CFG_SEQUENCE_OCTET_TYPE)) {
                 visitor.setSequenceOctetType((String) env.get(ToolCorbaConstants.CFG_SEQUENCE_OCTET_TYPE));
             }

Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java?view=diff&rev=518666&r1=518665&r2=518666
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java Thu Mar 15 08:35:21 2007
@@ -73,7 +73,7 @@
 
     XmlSchemaType sequenceOctetType;
     
-    public WSDLASTVisitor(String tns, String schemans)
+    public WSDLASTVisitor(String tns, String schemans, String corbatypemaptns)
         throws WSDLException, JAXBException {
         
         definition = createWsdlDefinition(tns);
@@ -83,7 +83,7 @@
         
         addAnyType();
         
-        createCorbaTypeMap();
+        createCorbaTypeMap(corbatypemaptns);
         
         // idl:sequence<octet> maps to xsd:base64Binary by default
         sequenceOctetType = schemas.getTypeByQName(Constants.XSD_BASE64);
@@ -181,17 +181,26 @@
     }
     
     private XmlSchema createSchema(String schemans) {
+        // if no XmlSchema target namespace was specified, default to the 
+        // definition target namespace
+        if (schemans == null) {
+            schemans = definition.getTargetNamespace();
+        }
         XmlSchema xmlSchema = new XmlSchema(schemans, schemas);
         return xmlSchema;
     }
     
-    private void createCorbaTypeMap() throws WSDLException { 
+    private void createCorbaTypeMap(String corbatypemaptns) throws WSDLException { 
         typeMap = (TypeMappingType)
             definition.getExtensionRegistry().createExtension(Definition.class,
                                                               CorbaConstants.NE_CORBA_TYPEMAPPING);
-        typeMap.setTargetNamespace(definition.getTargetNamespace()
-                                   + "/"
-                                   + CorbaConstants.NS_CORBA_TYPEMAP);
+        if (corbatypemaptns == null) {
+            typeMap.setTargetNamespace(definition.getTargetNamespace()
+                + "/"
+                + CorbaConstants.NS_CORBA_TYPEMAP);
+        } else {
+            typeMap.setTargetNamespace(corbatypemaptns);
+        }
         definition.addExtensibilityElement(typeMap);
     }
 

Modified: incubator/yoko/trunk/tools/src/test/java/org/apache/yoko/tools/IDLToWSDLTest.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/test/java/org/apache/yoko/tools/IDLToWSDLTest.java?view=diff&rev=518666&r1=518665&r2=518666
==============================================================================
--- incubator/yoko/trunk/tools/src/test/java/org/apache/yoko/tools/IDLToWSDLTest.java (original)
+++ incubator/yoko/trunk/tools/src/test/java/org/apache/yoko/tools/IDLToWSDLTest.java Thu Mar 15 08:35:21 2007
@@ -237,5 +237,19 @@
         IDLToWSDL.main(args);
         testGeneratedWsdl(expected, actual);
     }
-    
+
+    // test "-t <corba-type-map target-namespace>"
+    public void testCorbaTypeMapTargetNamespace() throws Exception {
+        File input = new File(getClass().getResource("/idl/sequence_octet.idl").getFile());
+        File actual = new File(output, "sequence_octet.wsdl");
+        File expected = new File(getClass().getResource("/idl/expected_sequence_octet_corba_typemap_tns.wsdl").getFile());
+        
+        String[] args = new String[] {"-t", "http://yoko.org/foobar/typemap",
+                                      "-o", output.toString(),
+                                      input.toString()
+                                      };
+        IDLToWSDL.main(args);
+        testGeneratedWsdl(expected, actual);
+    }
+
 }

Added: incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl?view=auto&rev=518666
==============================================================================
--- incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl (added)
+++ incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl Thu Mar 15 08:35:21 2007
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<wsdl:definitions targetNamespace="http://schemas.apache.org/yoko/idl/sequence_octet" xmlns:tns="http://schemas.apache.org/yoko/idl/sequence_octet" xmlns:corba="http://schemas.apache.org/yoko/bindings/corba" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <corba:typeMapping targetNamespace="http://yoko.org/foobar/typemap">
+    <corba:sequence xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://yoko.org/foobar/typemap" elemtype="corba:octet" bound="0" repositoryID="IDL:mySequenceOctet:1.0" name="mySequenceOctet" type="xs:base64Binary" />
+    <corba:anonsequence xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://yoko.org/foobar/typemap" elemtype="corba:octet" bound="0" name="_1_mySequenceSequenceOctet" type="xs:base64Binary" />
+    <corba:sequence xmlns:ns4="http://schemas.apache.org/yoko/idl/sequence_octet" xmlns="http://yoko.org/foobar/typemap" elemtype="_1_mySequenceSequenceOctet" bound="0" repositoryID="IDL:mySequenceSequenceOctet:1.0" name="mySequenceSequenceOctet" type="ns4:mySequenceSequenceOctet" />
+  </corba:typeMapping>
+  <wsdl:types>
+    <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://schemas.apache.org/yoko/idl/sequence_octet" xmlns="http://schemas.apache.org/yoko/idl/sequence_octet" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+      <xs:complexType name="mySequenceSequenceOctet">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="item" type="xs:base64Binary">
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+    </xs:schema>
+  </wsdl:types>
+</wsdl:definitions>

Propchange: incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/yoko/trunk/tools/src/test/resources/idl/expected_sequence_octet_corba_typemap_tns.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml