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, [EMAIL PROTECTED] 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 [EMAIL PROTECTED]
