cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <daniel.k...@iona.com>
Subject Re: svn commit: r441445 - in /incubator/cxf/trunk/tools: common/src/main/java/org/apache/cxf/tools/util/ wsdl2java/src/test/java/org/apache/cxf/tools/wsdl2java/processor/ wsdl2java/src/test/resources/wsdl2java_wsdl/
Date Fri, 08 Sep 2006 14:09:54 GMT

We already have a list of Java keywords in cxf-common:
org.apache.cxf.helpers.JavaUtils.

We definitely should not create another one, especially considering you missed 
some on your list. 


Dan



On Friday September 08 2006 5:10 am, ema@apache.org wrote:
> Author: ema
> Date: Fri Sep  8 02:10:25 2006
> New Revision: 441445
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=441445
> Log:
> Fixed tools compile issue when handle wsdl contains java keyword
>
> Added:
>    
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Ke
>yWords.java   (with props)
> incubator/cxf/trunk/tools/wsdl2java/src/test/resources/wsdl2java_wsdl/hello
>_world_with_keywords_operation.wsdl   (with props) Modified:
>    
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Pr
>ocessorUtil.java
> incubator/cxf/trunk/tools/wsdl2java/src/test/java/org/apache/cxf/tools/wsdl
>2java/processor/WSDLToJavaProcessorTest.java
>
> Added:
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Ke
>yWords.java URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java
>/org/apache/cxf/tools/util/KeyWords.java?view=auto&rev=441445
> ===========================================================================
>=== ---
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Ke
>yWords.java (added) +++
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Ke
>yWords.java Fri Sep  8 02:10:25 2006 @@ -0,0 +1,49 @@
> +/**
> + * 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.cxf.tools.util;
> +
> +import java.util.ArrayList;
> +import java.util.List;
> +
> +public final class KeyWords {
> +
> +    private static String[] keywords = {"abstract", "boolean", "byte",
> "case", "catch", "char", "class", +                                       
> "continue", "default", "do", "double", "else", "extends", "final", +       
>                                 "finally", "float", "for", "if",
> "implements", "import", +                                       
> "instanceof", "int", "interface", "long", "native", "new", "package", +    
>                                    "private", "protected", "public",
> "return", "short", "static", +                                       
> "super", "switch", "synchronized", "this", "throw", "throws", +            
>                            "transient", "try", "void", "volatile", "while",
> "false", "true", +                                        "null"};
> +
> +    private static List<String> keywordsList = new ArrayList<String>();
> +
> +    static {
> +        for (int i = 0; i < keywords.length; i++) {
> +            keywordsList.add(keywords[i]);
> +        }
> +    }
> +
> +    private KeyWords() {
> +
> +    }
> +    public static boolean isKeywords(String word) {
> +        return keywordsList.contains(word);
> +    }
> +}
>
> Propchange:
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Ke
>yWords.java
> ---------------------------------------------------------------------------
>--- svn:eol-style = native
>
> Propchange:
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Ke
>yWords.java
> ---------------------------------------------------------------------------
>--- svn:keywords = Rev Date
>
> Modified:
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Pr
>ocessorUtil.java URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java
>/org/apache/cxf/tools/util/ProcessorUtil.java?view=diff&rev=441445&r1=441444
>&r2=441445
> ===========================================================================
>=== ---
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Pr
>ocessorUtil.java (original) +++
> incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/Pr
>ocessorUtil.java Fri Sep  8 02:10:25 2006 @@ -47,6 +47,8 @@
>
>  public final class ProcessorUtil {
>      //private static final Logger LOG =
> LogUtils.getL7dLogger(ProcessorUtil.class); +    private static final
> String KEYWORDS_PREFIX = "_";
> +
>      private ProcessorUtil() {
>      }
>
> @@ -151,7 +153,12 @@
>      }
>
>      public static String mangleNameToVariableName(String vName) {
> -        return JAXBRIContext.mangleNameToVariableName(vName);
> +        String result  = JAXBRIContext.mangleNameToVariableName(vName);
> +        if (KeyWords.isKeywords(result)) {
> +            return KEYWORDS_PREFIX + result;
> +        } else {
> +            return result;
> +        }
>      }
>
>      public static String parsePackageName(String namespace, String
> defaultPackageName) { @@ -231,9 +238,15 @@
>          // if not found , findd the primitive type : int ,long
>          // if not found,  find in the generated class
>
> -        if (boxify) {
> +        if (boxify && dataBindingGenerator != null) {
>              jtype = dataBindingGenerator.getJavaType(xmlTypeName, true);
> -        } else {
> +        }
> +
> +        if (boxify && dataBindingGenerator == null) {
> +            jtype =
> BuiltInTypesJavaMappingUtil.getJType(xmlTypeName.getNamespaceURI(), +      
>                                                  
> xmlTypeName.getLocalPart()); +        }
> +        if (!boxify && dataBindingGenerator != null) {
>              jtype = dataBindingGenerator.getJavaType(xmlTypeName, true);
>          }
>          String namespace = xmlTypeName.getNamespaceURI();
>
> Modified:
> incubator/cxf/trunk/tools/wsdl2java/src/test/java/org/apache/cxf/tools/wsdl
>2java/processor/WSDLToJavaProcessorTest.java URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdl2java/src/test/j
>ava/org/apache/cxf/tools/wsdl2java/processor/WSDLToJavaProcessorTest.java?vi
>ew=diff&rev=441445&r1=441444&r2=441445
> ===========================================================================
>=== ---
> incubator/cxf/trunk/tools/wsdl2java/src/test/java/org/apache/cxf/tools/wsdl
>2java/processor/WSDLToJavaProcessorTest.java (original) +++
> incubator/cxf/trunk/tools/wsdl2java/src/test/java/org/apache/cxf/tools/wsdl
>2java/processor/WSDLToJavaProcessorTest.java Fri Sep  8 02:10:25 2006 @@
> -1017,6 +1017,18 @@
>          }
>
>      }
> +    public void testWSDLContainsJavaKeywords() throws Exception {
> +        try {
> +            env.put(ToolConstants.CFG_WSDLURL,
> +                   
> getLocation("/wsdl2java_wsdl/hello_world_with_keywords_operation.wsdl")); +
>            processor.setEnvironment(env);
> +            processor.process();
> +        } catch (Exception e) {
> +            e.printStackTrace();
> +        }
> +
> +    }
> +
>
>      private String getLocation(String wsdlFile) {
>          return
> WSDLToJavaProcessorTest.class.getResource(wsdlFile).getFile();
>
> Added:
> incubator/cxf/trunk/tools/wsdl2java/src/test/resources/wsdl2java_wsdl/hello
>_world_with_keywords_operation.wsdl URL:
> http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdl2java/src/test/r
>esources/wsdl2java_wsdl/hello_world_with_keywords_operation.wsdl?view=auto&r
>ev=441445
> ===========================================================================
>=== ---
> incubator/cxf/trunk/tools/wsdl2java/src/test/resources/wsdl2java_wsdl/hello
>_world_with_keywords_operation.wsdl (added) +++
> incubator/cxf/trunk/tools/wsdl2java/src/test/resources/wsdl2java_wsdl/hello
>_world_with_keywords_operation.wsdl Fri Sep  8 02:10:25 2006 @@ -0,0 +1,271
> @@
> +<?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 xmlns="http://schemas.xmlsoap.org/wsdl/"
> +    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> +    xmlns:tns="http://apache.org/hello_world_soap_http"
> +    xmlns:x1="http://apache.org/hello_world_soap_http/types"
> +    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> +    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> +    targetNamespace="http://apache.org/hello_world_soap_http"
> name="HelloWorld"> +    <wsdl:types>
> +        <schema
> targetNamespace="http://apache.org/hello_world_soap_http/types"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:x1="http://apache.org/hello_world_soap_http/types"
> elementFormDefault="qualified"> +            <element name="sayHi">
> +                <complexType/>
> +            </element>
> +            <element name="sayHiResponse">
> +                <complexType>
> +                    <sequence>
> +                        <element name="responseType" type="string"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="greetMe">
> +                <complexType>
> +                    <sequence>
> +                        <element name="requestType" type="string"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="greetMeResponse">
> +                <complexType>
> +                    <sequence>
> +                        <element name="responseType" type="string"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="greetMeSometime">
> +                <complexType>
> +                    <sequence>
> +                        <element name="requestType" type="string"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="greetMeSometimeResponse">
> +                <complexType>
> +                    <sequence>
> +                        <element name="responseType" type="string"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="greetMeOneWay">
> +                <complexType>
> +                    <sequence>
> +                        <element name="requestType" type="string"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="testDocLitFault">
> +                <complexType>
> +                    <sequence>
> +                        <element name="faultType" type="string"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="testDocLitFaultResponse">
> +                <complexType>
> +                    <sequence/>
> +                </complexType>
> +            </element>
> +            <complexType name="ErrorCode">
> +                <sequence>
> +                    <element name="minor" type="short"/>
> +                    <element name="major" type="short"/>
> +                </sequence>
> +            </complexType>
> +            <element name="NoSuchCodeLit">
> +                <complexType>
> +                    <sequence>
> +                        <element name="code" type="x1:ErrorCode"/>
> +                    </sequence>
> +                </complexType>
> +            </element>
> +            <element name="BadRecordLit" type="string"/>
> +            <complexType name="BadRecord">
> +                <sequence>
> +                    <element name="reason" type="string"/>
> +                    <element name="code" type="short"/>
> +                </sequence>
> +            </complexType>
> +            <complexType name="addNumbers">
> +                <sequence>
> +                    <element name="arg0" type="int"/>
> +                    <element name="arg1" type="int"/>
> +                </sequence>
> +            </complexType>
> +            <element name="addNumbers" type="x1:addNumbers"/>
> +            <complexType name="addNumbersResponse">
> +                <sequence>
> +                    <element name="return" type="int"/>
> +                </sequence>
> +            </complexType>
> +            <element name="addNumbersResponse"
> type="x1:addNumbersResponse"/> +            <element name="BareDocument"
> type="string"/>
> +            <element name="BareDocumentResponse">
> +                <complexType>
> +                    <sequence>
> +                        <element name="company" type="string"/>
> +                    </sequence>
> +                    <attribute name="id" type="int"/>
> +                </complexType>
> +            </element>
> +        </schema>
> +    </wsdl:types>
> +    <wsdl:message name="sayHiRequest">
> +        <wsdl:part name="in" element="x1:sayHi"/>
> +    </wsdl:message>
> +    <wsdl:message name="sayHiResponse">
> +        <wsdl:part name="out" element="x1:sayHiResponse"/>
> +    </wsdl:message>
> +    <wsdl:message name="greetMeRequest">
> +        <wsdl:part name="in" element="x1:greetMe"/>
> +    </wsdl:message>
> +    <wsdl:message name="greetMeResponse">
> +        <wsdl:part name="out" element="x1:greetMeResponse"/>
> +    </wsdl:message>
> +    <wsdl:message name="greetMeSometimeRequest">
> +        <wsdl:part name="in" element="x1:greetMeSometime"/>
> +    </wsdl:message>
> +    <wsdl:message name="greetMeSometimeResponse">
> +        <wsdl:part name="out" element="x1:greetMeSometimeResponse"/>
> +    </wsdl:message>
> +    <wsdl:message name="greetMeOneWayRequest">
> +        <wsdl:part name="in" element="x1:greetMeOneWay"/>
> +    </wsdl:message>
> +    <wsdl:message name="testDocLitFaultRequest">
> +        <wsdl:part name="in" element="x1:testDocLitFault"/>
> +    </wsdl:message>
> +    <wsdl:message name="testDocLitFaultResponse">
> +        <wsdl:part name="out" element="x1:testDocLitFaultResponse"/>
> +    </wsdl:message>
> +    <wsdl:message name="NoSuchCodeLitFault">
> +        <wsdl:part name="NoSuchCodeLit" element="x1:NoSuchCodeLit"/>
> +    </wsdl:message>
> +    <wsdl:message name="BadRecordLitFault">
> +        <wsdl:part name="BadRecordLit" element="x1:BadRecordLit"/>
> +    </wsdl:message>
> +    <wsdl:message name="testDocLitBareRequest">
> +        <wsdl:part name="in" element="x1:BareDocument"/>
> +    </wsdl:message>
> +    <wsdl:message name="testDocLitBareResponse">
> +        <wsdl:part name="out" element="x1:BareDocumentResponse"/>
> +    </wsdl:message>
> +    <wsdl:portType name="Greeter">
> +        <wsdl:operation name="do">
> +            <wsdl:input name="sayHiRequest" message="tns:sayHiRequest"/>
> +            <wsdl:output name="sayHiResponse"
> message="tns:sayHiResponse"/> +        </wsdl:operation>
> +        <wsdl:operation name="greetMe">
> +            <wsdl:input name="greetMeRequest"
> message="tns:greetMeRequest"/> +            <wsdl:output
> name="greetMeResponse" message="tns:greetMeResponse"/> +       
> </wsdl:operation>
> +       <wsdl:operation name="greetMeSometime">
> +            <wsdl:input name="greetMeSometimeRequest"
> message="tns:greetMeSometimeRequest"/> +            <wsdl:output
> name="greetMeSometimeResponse" message="tns:greetMeSometimeResponse"/> +   
>     </wsdl:operation>
> +        <wsdl:operation name="greetMeOneWay">
> +            <wsdl:input name="greetMeOneWayRequest"
> message="tns:greetMeOneWayRequest"/> +        </wsdl:operation>
> +        <wsdl:operation name="testDocLitFault">
> +            <wsdl:input name="testDocLitFaultRequest"
> message="tns:testDocLitFaultRequest"/> +            <wsdl:output
> name="testDocLitFaultResponse" message="tns:testDocLitFaultResponse"/> +   
>         <wsdl:fault name="NoSuchCodeLitFault"
> message="tns:NoSuchCodeLitFault"/> +            <wsdl:fault
> name="BadRecordLitFault" message="tns:BadRecordLitFault"/> +       
> </wsdl:operation>
> +        <wsdl:operation name="testDocLitBare">
> +            <wsdl:input name="testDocLitBareRequest"
> message="tns:testDocLitBareRequest"/> +            <wsdl:output
> name="testDocLitBareResponse" message="tns:testDocLitBareResponse"/> +     
>   </wsdl:operation>
> +    </wsdl:portType>
> +    <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
> +        <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/> +        <wsdl:operation
> name="do">
> +            <soap:operation style="document"/>
> +            <wsdl:input>
> +                <soap:body use="literal"/>
> +            </wsdl:input>
> +            <wsdl:output>
> +                <soap:body use="literal"/>
> +            </wsdl:output>
> +        </wsdl:operation>
> +        <wsdl:operation name="greetMe">
> +            <soap:operation style="document"/>
> +            <wsdl:input>
> +                <soap:body use="literal"/>
> +            </wsdl:input>
> +            <wsdl:output>
> +                <soap:body use="literal"/>
> +            </wsdl:output>
> +        </wsdl:operation>
> +        <wsdl:operation name="greetMeSometime">
> +            <soap:operation style="document"/>
> +            <wsdl:input>
> +                <soap:body use="literal"/>
> +            </wsdl:input>
> +            <wsdl:output>
> +                <soap:body use="literal"/>
> +            </wsdl:output>
> +        </wsdl:operation>
> +        <wsdl:operation name="greetMeOneWay">
> +            <soap:operation style="document"/>
> +            <wsdl:input>
> +                <soap:body use="literal"/>
> +            </wsdl:input>
> +        </wsdl:operation>
> +        <wsdl:operation name="testDocLitFault">
> +            <soap:operation style="document"/>
> +            <wsdl:input>
> +                <soap:body use="literal"/>
> +            </wsdl:input>
> +            <wsdl:output>
> +                <soap:body use="literal"/>
> +            </wsdl:output>
> +            <wsdl:fault name="NoSuchCodeLitFault">
> +                <soap:fault name="NoSuchCodeLitFault" use="literal"/>
> +            </wsdl:fault>
> +            <wsdl:fault name="BadRecordLitFault">
> +                <soap:fault name="BadRecordLitFault" use="literal"/>
> +            </wsdl:fault>
> +        </wsdl:operation>
> +        <wsdl:operation name="testDocLitBare">
> +            <soap:operation style="document"
> soapAction="http://apache.org/hello_world_soap_http/testDocLitBare"/> +    
>        <wsdl:input name="testDocLitBareRequest">
> +                <soap:body use="literal"/>
> +            </wsdl:input>
> +            <wsdl:output name="testDocLitBareResponse">
> +                <soap:body use="literal"/>
> +            </wsdl:output>
> +        </wsdl:operation>
> +    </wsdl:binding>
> +    <wsdl:service name="SOAPService">
> +        <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding">
> +            <soap:address
> location="http://localhost:9000/SoapContext/SoapPort"/> +           
> <wswa:UsingAddressing
> xmlns:wswa="http://www.w3.org/2005/08/addressing/wsdl"/> +       
> </wsdl:port>
> +    </wsdl:service>
> +    <wsdl:service name="SOAPService_Test1">
> +        <wsdl:port name="SoapPort_Test1"
> binding="tns:Greeter_SOAPBinding"> +            <soap:address
> location="http://localhost:9100"/>
> +        </wsdl:port>
> +        <wsdl:port name="SoapPort_Test2"
> binding="tns:Greeter_SOAPBinding"> +            <soap:address
> location="http://localhost:9101"/>
> +        </wsdl:port>
> +    </wsdl:service>
> +</wsdl:definitions>
> +
>
> Propchange:
> incubator/cxf/trunk/tools/wsdl2java/src/test/resources/wsdl2java_wsdl/hello
>_world_with_keywords_operation.wsdl
> ---------------------------------------------------------------------------
>--- svn:eol-style = native
>
> Propchange:
> incubator/cxf/trunk/tools/wsdl2java/src/test/resources/wsdl2java_wsdl/hello
>_world_with_keywords_operation.wsdl
> ---------------------------------------------------------------------------
>--- svn:keywords = Rev Date
>
> Propchange:
> incubator/cxf/trunk/tools/wsdl2java/src/test/resources/wsdl2java_wsdl/hello
>_world_with_keywords_operation.wsdl
> ---------------------------------------------------------------------------
>--- svn:mime-type = text/xml

-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194   F:781-902-8001
daniel.kulp@iona.com

Mime
View raw message