diff options
Diffstat (limited to 'branches/sca-equinox/tools/wsdl2java/src/main/java/org')
7 files changed, 0 insertions, 1390 deletions
diff --git a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceEmitter.java b/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceEmitter.java deleted file mode 100644 index 08c7131208..0000000000 --- a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceEmitter.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - * 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.tools.wsdl2java.generate; - -import static org.apache.tuscany.tools.wsdl2java.util.XMLNameUtil.getJavaNameFromXMLName; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.namespace.QName; - -import org.apache.axis2.description.AxisBindingOperation; -import org.apache.axis2.description.AxisMessage; -import org.apache.axis2.description.AxisOperation; -import org.apache.axis2.util.FileWriter; -import org.apache.axis2.wsdl.WSDLConstants; -import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; -import org.apache.axis2.wsdl.codegen.emitter.JavaEmitter; -import org.apache.axis2.wsdl.codegen.writer.InterfaceWriter; -import org.apache.axis2.wsdl.databinding.TypeMapper; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -/** - * Overrides the Axis2 JavaEmitter to generate unwrapped methods. - */ -public class JavaInterfaceEmitter extends JavaEmitter { - - private CodeGenConfiguration codegenConfiguration; - private TypeMapper typeMapper; - - @Override - public void setCodeGenConfiguration(CodeGenConfiguration configuration) { - super.setCodeGenConfiguration(configuration); - codegenConfiguration = configuration; - } - - @Override - public void setMapper(TypeMapper typeMapper) { - super.setMapper(typeMapper); - this.typeMapper = typeMapper; - } - - private List getParameterElementList(Document doc, AxisMessage message, boolean wrapped) { - List parameterElementList = new ArrayList(); - - if (message != null && message.getElementQName() != null) { - - SDODataBindingTypeMappingEntry typeMappingEntry = - (SDODataBindingTypeMappingEntry)this.typeMapper.getTypeMappingObject(message.getElementQName()); - List typeMappings; - if (wrapped) { - typeMappings = typeMappingEntry.getPropertyClassNames(); - if(typeMappings == null) { - typeMappings = new ArrayList(); - typeMappings.add(typeMappingEntry.getClassName()); - } - } else { - typeMappings = new ArrayList(); - typeMappings.add(typeMappingEntry.getClassName()); - } - - for (int i = 0; i < typeMappings.size(); i++) { - Element param = doc.createElement("param"); - parameterElementList.add(param); - - String typeMapping = (String)typeMappings.get(i); - - addAttribute(doc, "name", this.typeMapper.getParameterName(message.getElementQName()), param); - addAttribute(doc, "type", (typeMapping == null) ? "" : typeMapping, param); - - // add an extra attribute to say whether the type mapping is the - // default - // if (TypeMapper.DEFAULT_CLASS_NAME.equals(typeMapping)) { - if (typeMapper.getDefaultMappingName().equals(typeMapping)) { - - addAttribute(doc, "default", "yes", param); - } - - addAttribute(doc, "value", null, param); - - // add this as a body parameter - addAttribute(doc, "location", "body", param); - - } - } - - return parameterElementList; - } - - @Override - public List getParameterElementList(Document doc, List parameters, String location) { - List parameterElementList = new ArrayList(); - - if ((parameters != null) && !parameters.isEmpty()) { - int count = parameters.size(); - - for (int i = 0; i < count; i++) { - Element param = doc.createElement("param"); - QName name = (QName)parameters.get(i); - - addAttribute(doc, "name", this.typeMapper.getParameterName(name), param); - - String typeMapping = this.typeMapper.getTypeMappingName(name); - String typeMappingStr = (typeMapping == null) ? "" : typeMapping; - - addAttribute(doc, "type", typeMappingStr, param); - addAttribute(doc, "location", location, param); - parameterElementList.add(param); - } - } - - return parameterElementList; - } - - @Override - protected Element getInputElement(Document doc, AxisBindingOperation operation, List headerParameterQNameList) { - return getElement(doc, - "input", - operation.getAxisOperation().getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE), - operation.getAxisOperation().getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE).isWrapped(), - headerParameterQNameList); - } - - @Override - protected Element getOutputElement(Document doc, AxisBindingOperation operation, List headerParameterQNameList) { - return getElement(doc, - "output", - operation.getAxisOperation().getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE), - operation.getAxisOperation().getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE).isWrapped(), - headerParameterQNameList); - } - - protected Element getElement(Document doc, - String elementName, - AxisMessage message, - boolean wrapped, - List headerParameterQNameList) { - Element element = doc.createElement(elementName); - - List parameterElementList = getParameterElementList(doc, message, wrapped); - for (int i = 0; i < parameterElementList.size(); i++) { - element.appendChild((Element)parameterElementList.get(i)); - } - - List outputElementList = getParameterElementList(doc, headerParameterQNameList, "header"); - - for (int i = 0; i < outputElementList.size(); i++) { - element.appendChild((Element)outputElementList.get(i)); - } - - return element; - } - - @Override - protected void writeInterface(boolean writeDatabinders) throws Exception { - Document interfaceModel = createDOMDocumentForInterface(writeDatabinders); - if (!codegenConfiguration.getOutputLocation().exists()) { - codegenConfiguration.getOutputLocation().mkdirs(); - } - InterfaceWriter interfaceWriter = - new RemotableInterfaceWritter(this.codegenConfiguration.getOutputLocation(), this.codegenConfiguration - .getOutputLanguage()); - - String packageName = interfaceModel.getDocumentElement().getAttribute("package"); - String className = interfaceModel.getDocumentElement().getAttribute("name"); - - System.out.println(">> Generating Java class " + packageName + "." + className); - File outputFile = - FileWriter.createClassFile(this.codegenConfiguration.getOutputLocation(), packageName, className, ".java"); - if (outputFile.exists()) { - outputFile.delete(); - } - -// JIRA TUSCANY-1561 Port to Axis2 1.3 -// writeClass(interfaceModel, interfaceWriter); - - writeFile(interfaceModel, interfaceWriter); - } - - @Override - protected String makeJavaClassName(String word) { - // return XMLNameUtil.getJavaNameFromXMLName(word, true); - return getJavaNameFromXMLName(word, true); - } - - @Override - protected Element[] getFaultParamElements(Document doc, AxisOperation operation) { - ArrayList params = new ArrayList(); - ArrayList faultMessages = operation.getFaultMessages(); - - if (faultMessages != null && !faultMessages.isEmpty()) { - Element paramElement; - AxisMessage msg; - for (int i = 0; i < faultMessages.size(); i++) { - paramElement = doc.createElement("param"); - msg = (AxisMessage)faultMessages.get(i); - String msgClassName = WSDL2JavaGenerator.normalizeClassName(msg.getName()); - addAttribute(doc, "name", msgClassName, paramElement); - params.add(paramElement); - } - - return (Element[])params.toArray(new Element[params.size()]); - } else { - return new Element[] {};// return empty array - } - } -} diff --git a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java b/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java deleted file mode 100644 index 8e0c3683a3..0000000000 --- a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java +++ /dev/null @@ -1,327 +0,0 @@ -/* - * 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.tools.wsdl2java.generate; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.WSDLException; -import javax.wsdl.factory.WSDLFactory; -import javax.wsdl.xml.WSDLReader; -import javax.xml.namespace.QName; -import javax.xml.parsers.ParserConfigurationException; - -import org.apache.axis2.AxisFault; -import org.apache.axis2.description.AxisService; -import org.apache.axis2.description.WSDL11ToAxisServiceBuilder; -import org.apache.axis2.util.FileWriter; -import org.apache.axis2.util.XMLUtils; -import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; -import org.apache.axis2.wsdl.codegen.CodeGenerationException; -import org.apache.axis2.wsdl.codegen.extension.CodeGenExtension; -import org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension; -import org.apache.axis2.wsdl.codegen.extension.PackageFinder; -import org.apache.axis2.wsdl.codegen.extension.WSDLValidatorExtension; -import org.apache.axis2.wsdl.databinding.JavaTypeMapper; -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -import com.sun.tools.xjc.api.XJC; - -public class JavaInterfaceGenerator { - - private List codegenExtensions = new ArrayList(); - private List<CodeGenConfiguration> codegenConfigurations= new LinkedList<CodeGenConfiguration>(); - private String outputLocation; - - - - public JavaInterfaceGenerator(String uri, String ports[], String outputLocation, String packageName, - Map<QName, SDODataBindingTypeMappingEntry> typeMapping) throws CodeGenerationException { - this.outputLocation = outputLocation; - - Definition definition; - try { - definition = readWSDL(uri); - } catch (WSDLException e) { - throw new CodeGenerationException(e); - } - - HashSet<String> interestedPorts = ports == null ? null : new HashSet<String>(Arrays.asList(ports)); - - // Service service=(Service)definition.getServices().values().().next(); - - HashSet<QName> donePortTypes= new HashSet<QName>(); - - for (Iterator sIter = definition.getServices().values().iterator(); sIter.hasNext(); ) { - Service service = (Service) sIter.next(); - - QName serviceQname = service.getQName(); - for (Iterator pIter= service.getPorts().values().iterator(); pIter.hasNext(); ) { - Port port= (Port) pIter.next(); - if(interestedPorts != null && ! interestedPorts.contains(port.getName())) continue;//not iterested. - PortType portType= getPortType(port); - if(null == portType) continue; // not connected. - QName pQName= portType.getQName(); - if(donePortTypes.contains(pQName)) continue; //allready did it. - donePortTypes.add(pQName); - - if (packageName == null) { - //use JAXWS/JAXB NS->package default algorithm, not the SDO/EMF one - packageName = XJC.getDefaultPackageName(definition.getTargetNamespace()); - } - // - // Use WSDL4J object to generate exception classes - // - generateFaults(packageName, portType, typeMapping); - JavaTypeMapper typeMapper = new JavaTypeMapper(); - for (Map.Entry<QName, SDODataBindingTypeMappingEntry> e : typeMapping.entrySet()) { - typeMapper.addTypeMappingObject(e.getKey(), e.getValue()); - // Added for generation of exceptions from faults - typeMapper.addTypeMappingName(e.getKey(), e.getValue().getClassName()); - } - - - AxisService axisService; - WSDL11ToAxisServiceBuilder builder; - try { - // - // Added since at a newer level of Axis2, this doesn't work - // without the setCodegen(true) - // - builder = new WSDL11ToAxisServiceBuilder(definition, serviceQname, port.getName()); - builder.setCodegen(true); - axisService = builder.populateService(); - } catch (AxisFault e) { - throw new CodeGenerationException(e); - } - - axisService.setName(port.getBinding().getPortType().getQName().getLocalPart()); - CodeGenConfiguration codegenConfiguration = new CodeGenConfiguration(Collections.EMPTY_MAP); - codegenConfigurations.add(codegenConfiguration); - codegenConfiguration.setAxisService(axisService); - codegenConfiguration.setAdvancedCodeGenEnabled(false); - codegenConfiguration.setAsyncOn(false); - codegenConfiguration.setDatabindingType("sdo"); - codegenConfiguration.setGenerateAll(true); - codegenConfiguration.setGenerateDeployementDescriptor(false); - codegenConfiguration.setOutputLanguage("java"); - codegenConfiguration.setOutputLocation(new File(outputLocation)); - codegenConfiguration.setPackageName(packageName); - codegenConfiguration.setPackClasses(false); - codegenConfiguration.setPolicyMap(Collections.EMPTY_MAP); - codegenConfiguration.setPortName(port.getName()); - codegenConfiguration.setServerSide(false); - codegenConfiguration.setServiceName(service.getQName().getLocalPart()); - // This lines up with the sync/async variable from the XSL template - codegenConfiguration.setSyncOn(true); - codegenConfiguration.setTypeMapper(typeMapper); - -// JIRA TUSCANY-1561 Port to Axis2 1.3 -// codegenConfiguration.setWriteMessageReceiver(false); - codegenConfiguration.setSkipMessageReceiver(true); - - codegenConfiguration.setWriteTestCase(false); - addExtension(new WSDLValidatorExtension(), codegenConfiguration); - addExtension(new PackageFinder(), codegenConfiguration); - addExtension(new SDODataBindingCodegenExtension(typeMapper), codegenConfiguration); - addExtension(new DefaultDatabindingExtension(), codegenConfiguration); - } - } - } - - - private PortType getPortType(Port port) { - Binding binding = port.getBinding(); - if(null != binding){ - return binding.getPortType(); - } - return null; - - } - - - @SuppressWarnings("unchecked") - private void addExtension(CodeGenExtension ext, CodeGenConfiguration codegenConfiguration) { - //ext.init(codegenConfiguration); - codegenExtensions.add(new Object[]{ext, codegenConfiguration}); - } - - public void generate() throws CodeGenerationException { - try { - for (int i = 0; i < codegenExtensions.size(); i++) { - // CodeGenExtension - Object[] pair = (Object[])codegenExtensions.get(i); - - CodeGenExtension cge = (CodeGenExtension)pair[0]; - CodeGenConfiguration cgf = (CodeGenConfiguration)pair[1]; - - cge.engage(cgf); - } - - for (CodeGenConfiguration codegenConfiguration : codegenConfigurations) { - JavaInterfaceEmitter emitter = new JavaInterfaceEmitter(); - emitter.setCodeGenConfiguration(codegenConfiguration); - emitter.setMapper(codegenConfiguration.getTypeMapper()); - - emitter.writeInterface(false); - } - - } catch (Exception e) { - throw new CodeGenerationException(e); - } - } - - /** - * Read the WSDL file - * - * @param uri - * @return - * @throws WSDLException - */ - private Definition readWSDL(String uri) throws WSDLException { - - WSDLReader reader = WSDLFactory.newInstance().newWSDLReader(); - reader.setFeature("javax.wsdl.importDocuments", true); - - File file = new File(uri); - String baseURI; - - if (uri.startsWith("http://")) { - baseURI = uri; - } else { - if (file.getParentFile() == null) { - try { - baseURI = new File(".").getCanonicalFile().toURI().toString(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } else { - baseURI = file.getParentFile().toURI().toString(); - } - } - - Document doc; - try { - doc = XMLUtils.newDocument(uri); - } catch (ParserConfigurationException e) { - throw new WSDLException(WSDLException.PARSER_ERROR, "Parser Configuration Error", e); - } catch (SAXException e) { - throw new WSDLException(WSDLException.PARSER_ERROR, "Parser SAX Error", e); - - } catch (IOException e) { - throw new WSDLException(WSDLException.INVALID_WSDL, "IO Error", e); - } - - return reader.readWSDL(baseURI, doc); - } - - private void generateFaults(String packageName, PortType portType, Map<QName, SDODataBindingTypeMappingEntry> typeMapping) - throws CodeGenerationException{ - - for (Object o: portType.getOperations()) { - Operation op = (Operation)o; - Map messageMap = op.getFaults(); - Iterator iter = messageMap.values().iterator(); - while (iter.hasNext()) { - Fault fault = (Fault)iter.next(); - Message faultMsg = fault.getMessage(); - Iterator iter2 = faultMsg.getParts().values().iterator(); - Part faultMsgPart = (Part)iter2.next(); - // TODO - if other parts throw exc - QName faultMsgQName = faultMsg.getQName(); - QName faultMsgPartElementQName = faultMsgPart.getElementName(); - String faultClassName = typeMapping.get(faultMsgPartElementQName).getClassName(); - writeException(packageName, faultMsgQName, faultClassName, faultMsgPartElementQName); - } - } - } - - private void writeException(String packageName, QName faultMsgQName, String faultClassName, QName faultMsgPartElementQName) - throws CodeGenerationException{ - - try { - String faultWrapperClassName = - WSDL2JavaGenerator.normalizeClassName(faultMsgQName.getLocalPart()); - - File outputDir = new File(this.outputLocation); - - if (!outputDir.exists()) { - outputDir.mkdirs(); - } - File outputFile = FileWriter.createClassFile(outputDir, - packageName, faultWrapperClassName, ".java"); - - FileOutputStream fileStream = new FileOutputStream(outputFile); - PrintStream stream = new PrintStream(fileStream); - - System.out.println(">> Generating Java exception class " + packageName + "." + faultWrapperClassName); - - stream.println(); - stream.println("package " + packageName + ";"); - stream.println(); - stream.println("import javax.xml.ws.WebFault;"); - stream.println(); - stream.println("@WebFault(name=\"" + faultMsgPartElementQName.getLocalPart() - + "\", targetNamespace=\"" - + faultMsgPartElementQName.getNamespaceURI() - + "\")"); - stream.println("public class " + faultWrapperClassName + " extends Exception {"); - stream.println(); - stream.println(" private " + faultClassName + " fault;"); - stream.println(); - stream.println(" public " + faultWrapperClassName + "(String message, " + faultClassName + " fault) {"); - stream.println(" super(message);"); - stream.println(" this.fault = fault;"); - stream.println(" }"); - stream.println(); - stream.println(" public " + faultWrapperClassName + "(String message, " + faultClassName + " fault, Throwable cause) {"); - stream.println(" super(message, cause);"); - stream.println(" this.fault = fault;"); - stream.println(" }"); - stream.println(); - stream.println(" public " + faultClassName + " getFaultInfo() {"); - stream.println(" return this.fault;"); - stream.println(" }"); - stream.println("}"); - stream.println(); - } catch (Exception e) { - throw new CodeGenerationException(e); - } - } -} diff --git a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/RemotableInterfaceWritter.java b/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/RemotableInterfaceWritter.java deleted file mode 100644 index 0c4f42633a..0000000000 --- a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/RemotableInterfaceWritter.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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.tools.wsdl2java.generate; - -import java.io.File; - -import org.apache.axis2.wsdl.codegen.CodeGenerationException; -import org.apache.axis2.wsdl.codegen.writer.InterfaceWriter; - -/** - * - */ -public class RemotableInterfaceWritter extends InterfaceWriter { - private static final String REMOTABLE_INTERFACE_TEMPLATE="/RemotableInterfaceTemplate.xsl"; - - public RemotableInterfaceWritter(String outputFileLocation) { - super(outputFileLocation); - } - - public RemotableInterfaceWritter(File outputFileLocation, String language) { - super(outputFileLocation, language); - } - - /** - * Loads the template. - */ - @Override - public void loadTemplate() throws CodeGenerationException { - // the default behavior for the class writers is to use the property map from the language specific types - // The properties are arranged in the following order - // <lang-name>.* .template=<write-class>,<template-name> - - //override original behaviour to always load the template we specified - this.xsltStream = this.getClass().getResourceAsStream(REMOTABLE_INTERFACE_TEMPLATE); - - } -} diff --git a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java b/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java deleted file mode 100644 index 4ab152fb90..0000000000 --- a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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.tools.wsdl2java.generate; - -import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; -import org.apache.axis2.wsdl.codegen.CodeGenerationException; -import org.apache.axis2.wsdl.codegen.extension.AbstractDBProcessingExtension; -import org.apache.axis2.wsdl.databinding.TypeMapper; - -/** - * SDO data binding codegen extension. - */ -public class SDODataBindingCodegenExtension extends AbstractDBProcessingExtension { - - private TypeMapper typeMapper; - - public SDODataBindingCodegenExtension(TypeMapper typeMapper) { - this.typeMapper=typeMapper; - } - - @Override - protected boolean testFallThrough(String dbFrameworkName) { - return !dbFrameworkName.equals("sdo"); - } - -// public void engage() { -// if (testFallThrough(configuration.getDatabindingType())) { -// return; -// } -// -// // Set the type mapper into the config -// configuration.setTypeMapper(typeMapper); -// -// } - - public void engage(CodeGenConfiguration configuration) throws CodeGenerationException { - if (testFallThrough(configuration.getDatabindingType())) { - return; - } - - // Set the type mapper into the config - configuration.setTypeMapper(typeMapper); - - - } - -} diff --git a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingTypeMappingEntry.java b/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingTypeMappingEntry.java deleted file mode 100644 index 2d81ef12bf..0000000000 --- a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingTypeMappingEntry.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.tools.wsdl2java.generate; - -import java.util.List; - -/** - * This represents a type mapping entry, used by the JavaInterfaceEmitter to generate - * method signatures. - */ -public class SDODataBindingTypeMappingEntry { - - private final boolean anonymous; - private final List<String> propertyClassNames; - private final String className; - - public SDODataBindingTypeMappingEntry(String className, boolean anonymous, List<String> propertyClassNames) { - this.className = className; - this.anonymous = anonymous; - this.propertyClassNames = propertyClassNames; - } - - public boolean isAnonymous() { - return anonymous; - } - - public String getClassName() { - return className; - } - - public List<String> getPropertyClassNames() { - return propertyClassNames; - } - -} diff --git a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java b/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java deleted file mode 100644 index f6d1f3a64a..0000000000 --- a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java +++ /dev/null @@ -1,529 +0,0 @@ -/* - * 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.tools.wsdl2java.generate; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.Vector; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.sdo.generate.XSD2JavaGenerator; -import org.apache.tuscany.sdo.helper.HelperContextImpl; -import org.apache.tuscany.sdo.util.DataObjectUtil; -import org.eclipse.emf.codegen.ecore.genmodel.GenClass; -import org.eclipse.emf.codegen.ecore.genmodel.GenModel; -import org.eclipse.emf.codegen.ecore.genmodel.GenModelFactory; -import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; -import org.eclipse.emf.codegen.util.CodeGenUtil; -import org.eclipse.emf.common.util.Diagnostic; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.impl.EPackageRegistryImpl; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.util.BasicExtendedMetaData; -import org.eclipse.emf.ecore.util.ExtendedMetaData; - -import commonj.sdo.helper.HelperContext; -import commonj.sdo.helper.XSDHelper; - -public class WSDL2JavaGenerator { - //Note: Dynamic SDO is defined as 0x4000 to avoid conflict with XSD2Java genOptions - static protected final int DYNAMIC_SDO = 0x1; - static protected final int GENERATE_SDO = 0x2; - static protected final int VERBOSE_MODE = 0x4; - static protected final String NO_GEN_PARM = "-noGenerate"; - static protected final String TARGET_DIR_PARM = "-targetDirectory"; - static protected final String JAVA_PACKAGE_PARM = "-javaPackage"; - static protected final String ALL_NAMESPACES_PARM = "-schemaNamespace all"; - - /** - * Generate Java interfaces from WSDL Usage arguments: [ -targetDirectory - * <target-root-directory> ] [ -javaPackage <java-package-name> ] - * <wsdl-file> For example: generate somedir/somefile.wsdl Basic options: - * -targetDirectory Generates the Java source code in the specified - * directory. By default, the code is generated in the same directory as the - * input WSDL file. -javaPackage Overrides the Java package for the - * generated classes. By default the package name is derived from the - * targetNamespace of the WSDL definition being generated. For example, if - * the targetNamespace is "http://www.example.com/simple", the default - * package will be "com.example.simple". - */ - public static void main(String args[]) { - if (args.length == 0) { - printUsage(); - return; - } - - String portName = null; - String targetDirectory = null; - String wsdlJavaPackage = null; - String xsdJavaPackage = null; - String sdoGenArgs = null; - String sdoGenArgsString = null; - int genOptions = 0; - - int index = 0; - for (; index < args.length && args[index].startsWith("-"); ++index) { - if (args[index].equalsIgnoreCase("-port")) { - portName = args[++index]; - } else if (args[index].equalsIgnoreCase("-targetDirectory")) { - targetDirectory = args[++index]; - } else if (args[index].equalsIgnoreCase("-javaPackage")) { - wsdlJavaPackage = args[++index]; - } else if (args[index].equalsIgnoreCase("-dynamicSDO")) { - genOptions |= DYNAMIC_SDO; - } else if (args[index].equalsIgnoreCase("-generateSDO")){ - genOptions |= GENERATE_SDO; - } else if (args[index].equalsIgnoreCase("-sdoGenArgs")){ - sdoGenArgs = args[++index]; - } else if (args[index].equalsIgnoreCase("-verbose")){ - genOptions |= VERBOSE_MODE; - } - // else if (...) - else { - printUsage(); - return; - } - } - if (sdoGenArgs!=null && (GENERATE_SDO & genOptions)== 0){ - genOptions |= GENERATE_SDO; - } - - if (targetDirectory == null) { - targetDirectory = "."; - } - String wsdlFileName = args[index]; - if (wsdlFileName == null || ((DYNAMIC_SDO & genOptions)!=0 && (GENERATE_SDO & genOptions)!= 0)) { - printUsage(); - return; - } - if (sdoGenArgs !=null){ - try { - File inFile = new File(sdoGenArgs).getAbsoluteFile(); - FileReader inputFile = new FileReader(inFile); - BufferedReader bufRead = new BufferedReader(inputFile); - StringBuffer fileContents= new StringBuffer(); - String line; - while ((line = bufRead.readLine())!=null){ - fileContents.append(line + " "); - } - sdoGenArgsString = fileContents.toString(); - } catch (IOException e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - } else { - sdoGenArgsString = null; - } - - if ((DYNAMIC_SDO & genOptions) != 0){ - generateDynamicFromWSDL(wsdlFileName, portName!=null? new String[]{portName}:null, targetDirectory, wsdlJavaPackage, xsdJavaPackage, genOptions); - } else { - generateFromWSDL(wsdlFileName, portName!=null? new String[]{portName}:null, targetDirectory, wsdlJavaPackage, genOptions, sdoGenArgsString); - } - - } - - @SuppressWarnings("unchecked") - public static void generateFromWSDL(String wsdlFileName, String[] ports, String targetDirectory, String wsdlJavaPackage, int genOptions, String sdoGenArgsString) - { - try { - if (targetDirectory == null) { - targetDirectory = new File(wsdlFileName).getCanonicalFile().getParent(); - } else { - targetDirectory = new File(targetDirectory).getCanonicalPath(); - } - - // Populate the typeMapping table that will be given to the Axis2 WSDL2Java - Map<QName, SDODataBindingTypeMappingEntry> typeMapping = - new HashMap<QName, SDODataBindingTypeMappingEntry>(); - StringBuffer buildCommand = new StringBuffer(); - //build XSD command lines - //build generic command for simple case & dynamic SDO - buildCommand.append(ALL_NAMESPACES_PARM); - if (sdoGenArgsString == null){ - buildCommand.append(" " + TARGET_DIR_PARM + " " + targetDirectory); - if (wsdlJavaPackage != null && (genOptions & GENERATE_SDO)!=0){ - buildCommand.append(" " + JAVA_PACKAGE_PARM + " " + wsdlJavaPackage); - } - if ((genOptions & GENERATE_SDO)==0){ - buildCommand.append(" "); - buildCommand.append(NO_GEN_PARM); - } - } else { - buildCommand.append(" "); - buildCommand.append(sdoGenArgsString); - } - - //TUSCANY-1642 - We shouldn't split the wsdlFileName as it my contain a filename with spaces - Vector sdoCommand = new Vector(java.util.Arrays.asList(buildCommand.toString().split("\\s+"))); - sdoCommand.add(wsdlFileName); - - String[] sdoGenCommand = new String[sdoCommand.size()]; - sdoCommand.toArray(sdoGenCommand); - - if ((genOptions & VERBOSE_MODE)!=0){ - System.out.println("Options passed to XSD2Java: "); - for (int i=0; i<sdoGenCommand.length; i++){ System.out.println("\"" + sdoGenCommand[i] + "\"");} - } - - XSD2JavaGenerator codeGen = new XSD2JavaGenerator(); - try { - codeGen.generateFromXMLSchema( sdoGenCommand ); - } catch (IllegalArgumentException e) { - System.out.println("Specified Invalid XSD2Java Arguments.\nFollow the XSD2Java usage, omitting the wsdl/xsd file argument."); - throw new IllegalArgumentException(e); - } - - List packages = codeGen.getGeneratedPackageInfo(); - - for (Iterator iter = packages.iterator(); iter.hasNext();) - { - XSD2JavaGenerator.GeneratedPackage packageInfo = (XSD2JavaGenerator.GeneratedPackage)iter.next(); - for (Iterator iterClass = packageInfo.getClasses().iterator(); iterClass.hasNext();) - { - XSD2JavaGenerator.GeneratedPackage.PackageClassInfo classInfo = (XSD2JavaGenerator.GeneratedPackage.PackageClassInfo)iterClass.next(); - SDODataBindingTypeMappingEntry typeMappingEntry; - if ((genOptions & DYNAMIC_SDO)==0){ - - typeMappingEntry = new SDODataBindingTypeMappingEntry(classInfo.getClassName(), classInfo.getAnonymous(), classInfo.getProperties()); - } else { - // TO DO implement dynamic sdo case - typeMappingEntry = null; - System.out.println(); - } - QName qname = new QName(packageInfo.getNamespace(),classInfo.getName()); - - //FIXME Workaround for JIRA TUSCANY-1673 - // Do not overwrite a typemapping entry describing a element typed by an anonymous - // complex type with a typemapping entry describing a complex type named like the - // element - SDODataBindingTypeMappingEntry existingTypeMapping = typeMapping.get(qname); - if (existingTypeMapping == null || !existingTypeMapping.isAnonymous()) { - typeMapping.put(qname, typeMappingEntry); - } - } - } - - JavaInterfaceGenerator codeGenerator = new JavaInterfaceGenerator(wsdlFileName, - ports, - targetDirectory, - wsdlJavaPackage, - typeMapping); - codeGenerator.generate(); - } catch (Exception e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - } - - @SuppressWarnings("unchecked") - public static void generateFromWSDL(String wsdlFileName, String targetDirectory, - String wsdlJavaPackage, - String xsdJavaPackage, int genOptions){ - String sdoGenArgsString = null; - if (xsdJavaPackage != null){ - sdoGenArgsString = JAVA_PACKAGE_PARM + " " + xsdJavaPackage; - } - generateFromWSDL( wsdlFileName, null, targetDirectory, wsdlJavaPackage, genOptions, sdoGenArgsString); - - } - - public static void generateFromWSDL(String wsdlFileName, String[] ports, - String targetDirectory, String wsdlJavaPackage, - String xsdJavaPackage, int genOptions) { - String sdoGenArgsString = null; - if (xsdJavaPackage != null){ - sdoGenArgsString = JAVA_PACKAGE_PARM + " " + xsdJavaPackage; - } - generateFromWSDL( wsdlFileName, null, targetDirectory, wsdlJavaPackage, genOptions, sdoGenArgsString); - } - - @SuppressWarnings("unchecked") - public static void generateDynamicFromWSDL(String wsdlFileName, String[] ports, - String targetDirectory, String wsdlJavaPackage, - String xsdJavaPackage, int genOptions) - { - - // Initialize the SDO runtime - DataObjectUtil.initRuntime(); - EPackage.Registry packageRegistry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE); - ExtendedMetaData extendedMetaData = new BasicExtendedMetaData(packageRegistry); - HelperContext context = new HelperContextImpl(extendedMetaData, false); - XSDHelper xsdHelper = context.getXSDHelper(); - - try { - - // Load the WSDL file - File inputFile = new File(wsdlFileName).getAbsoluteFile(); - InputStream inputStream = new FileInputStream(inputFile); - - // Define SDO metadata - xsdHelper.define(inputStream, inputFile.toURI().toString()); - - if (targetDirectory == null) { - targetDirectory = new File(wsdlFileName).getCanonicalFile().getParent(); - } else { - targetDirectory = new File(targetDirectory).getCanonicalPath(); - } - - // Populate the typeMapping table that will be given to the Axis2 WSDL2Java - Map<QName, SDODataBindingTypeMappingEntry> typeMapping = - new HashMap<QName, SDODataBindingTypeMappingEntry>(); - if (!packageRegistry.values().isEmpty()) { - ResourceSet resourceSet = DataObjectUtil.createResourceSet(); - - // Populate list of GenPackages and a map of GenClasses keyed by EClass - List<GenPackage> genPackages = new ArrayList<GenPackage>(); - Map<EClass, GenClass> genClasses = new HashMap<EClass, GenClass>(); - for (Iterator iter = packageRegistry.values().iterator(); iter.hasNext();) { - EPackage currentEPackage = (EPackage)iter.next(); - String currentBasePackage = extractBasePackageName(currentEPackage, xsdJavaPackage); - String currentPrefix = CodeGenUtil.capName(currentEPackage.getName()); - - GenPackage currentGenPackage = createGenPackage(currentEPackage, currentBasePackage, - currentPrefix, genOptions, resourceSet); - genPackages.add(currentGenPackage); - for (GenClass genClass : (List<GenClass>)currentGenPackage.getGenClasses()) { - genClasses.put(genClass.getEcoreClass(), genClass); - } - - } - - // Process all the SDO packages - // Populate the QName -> interfaceName typeMapping table - for (GenPackage currentGenPackage : genPackages) { - EPackage currentEPackage = currentGenPackage.getEcorePackage(); - - // Populate the type mappings for all the complex types - for (GenClass genClass : (List<GenClass>)currentGenPackage.getGenClasses()) { - QName qname = new QName(extendedMetaData.getNamespace(currentEPackage), - extendedMetaData.getName(genClass.getEcoreClass())); - String interfaceName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject" : currentGenPackage - .getInterfacePackageName() - + '.' + genClass.getInterfaceName(); - SDODataBindingTypeMappingEntry typeMappingEntry = - new SDODataBindingTypeMappingEntry(interfaceName, false, null); - typeMapping.put(qname, typeMappingEntry); - } - - // Process all the global XSD elements - EClass documentRoot = extendedMetaData.getDocumentRoot(currentEPackage); - if (documentRoot != null) { - for (EStructuralFeature element : (List<EStructuralFeature>)extendedMetaData - .getElements(documentRoot)) { - EClassifier elementType = element.getEType(); - - // Handle a complex type - if (elementType instanceof EClass) { - EClass eClass = (EClass)elementType; - - GenClass genClass = genClasses.get(elementType); - QName qname = new QName(extendedMetaData.getNamespace(currentEPackage), - extendedMetaData.getName(element)); - String interfaceName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject" : genClass - .getGenPackage().getInterfacePackageName() - + '.' + genClass.getInterfaceName(); - boolean anonymous = extendedMetaData.isAnonymous(eClass); - - // Build list of property class names - List<String> propertyClassNames=new ArrayList<String>(); - for (EStructuralFeature feature : (List<EStructuralFeature>)eClass.getEStructuralFeatures()) { - EClassifier propertyType = feature.getEType(); - if (propertyType instanceof EClass) { - GenClass propertyGenClass = genClasses.get(propertyType); - String propertyClassName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject" - : propertyGenClass.getGenPackage().getInterfacePackageName() + '.' - + '.' + propertyGenClass.getInterfaceName(); - propertyClassNames.add(propertyClassName); - } else if (propertyType instanceof EClassifier) { - String propertyClassName = propertyType.getInstanceClass().getName(); - propertyClassNames.add(propertyClassName); - } - } - - SDODataBindingTypeMappingEntry typeMappingEntry = - new SDODataBindingTypeMappingEntry(interfaceName, anonymous, propertyClassNames); - typeMapping.put(qname, typeMappingEntry); - - } else { - - // Handle a simple type - QName qname = new QName(extendedMetaData.getNamespace(currentEPackage), - extendedMetaData.getName(element)); - String className = elementType.getInstanceClass().getName(); - SDODataBindingTypeMappingEntry typeMappingEntry = - new SDODataBindingTypeMappingEntry(className, false, null); - typeMapping.put(qname, typeMappingEntry); - } - } - } - } - } - - try { - JavaInterfaceGenerator codeGenerator = new JavaInterfaceGenerator(wsdlFileName, - ports, - targetDirectory, - wsdlJavaPackage, - typeMapping); - codeGenerator.generate(); - } catch (Exception e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - - } catch (IOException e) { - e.printStackTrace(); - throw new IllegalArgumentException(e); - } - } - - @SuppressWarnings("unchecked") - public static GenPackage createGenPackage(EPackage ePackage, String basePackage, String prefix, - int genOptions, ResourceSet resourceSet) { - GenModel genModel = ecore2GenModel(ePackage, basePackage, prefix, genOptions); - - URI ecoreURI = URI.createURI("file:///" + ePackage.getName() + ".ecore"); - URI genModelURI = ecoreURI.trimFileExtension().appendFileExtension("genmodel"); - - Resource ecoreResource = resourceSet.createResource(ecoreURI); - ecoreResource.getContents().add(ePackage); - - Resource genModelResource = resourceSet.createResource(genModelURI); - genModelResource.getContents().add(genModel); - - return (GenPackage)genModel.getGenPackages().get(0); - } - - public static GenModel ecore2GenModel(EPackage ePackage, String basePackage, - String prefix, int genOptions) { - GenModel genModel = GenModelFactory.eINSTANCE.createGenModel(); - genModel.initialize(Collections.singleton(ePackage)); - - genModel.setRootExtendsInterface(""); - genModel.setRootImplementsInterface("commonj.sdo.DataObject"); - genModel.setRootExtendsClass("org.apache.tuscany.sdo.impl.DataObjectImpl"); - genModel.setFeatureMapWrapperInterface("commonj.sdo.Sequence"); - genModel.setFeatureMapWrapperInternalInterface("org.apache.tuscany.sdo.util.BasicSequence"); - genModel.setFeatureMapWrapperClass("org.apache.tuscany.sdo.util.BasicSequence"); - genModel.setSuppressEMFTypes(true); - genModel.setSuppressEMFMetaData(true); - genModel.setSuppressEMFModelTags(true); - genModel.setCanGenerate(true); - // FIXME workaround java.lang.NoClassDefFoundError: - // org/eclipse/jdt/core/jdom/IDOMNode with 02162006 build - genModel.setFacadeHelperClass("Hack"); - genModel.setForceOverwrite(true); - - GenPackage genPackage = (GenPackage)genModel.getGenPackages().get(0); - - if (basePackage != null) { - genPackage.setBasePackage(basePackage); - } - if (prefix != null) { - genPackage.setPrefix(prefix); - } - - return genModel; - } - - public static String extractBasePackageName(EPackage ePackage, String javaPackage) { - String qualifiedName = javaPackage != null ? javaPackage : ePackage.getName(); - String name = /* CodeGenUtil. */shortName(qualifiedName); - String baseName = qualifiedName.substring(0, qualifiedName.length() - name.length()); - if (javaPackage != null || !name.equals(qualifiedName)) { - ePackage.setName(name); - } - return baseName != null ? /* CodeGenUtil. */safeQualifiedName(baseName) : null; - } - - public static String shortName(String qualifiedName) { - int index = qualifiedName.lastIndexOf("."); - return index != -1 ? qualifiedName.substring(index + 1) : qualifiedName; - } - - public static String safeQualifiedName(String qualifiedName) { - StringBuffer safeQualifiedName = new StringBuffer(); - for (StringTokenizer stringTokenizer = new StringTokenizer(qualifiedName, "."); - stringTokenizer.hasMoreTokens();) { - String name = stringTokenizer.nextToken(); - safeQualifiedName.append(CodeGenUtil.safeName(name)); - if (stringTokenizer.hasMoreTokens()) { - safeQualifiedName.append('.'); - } - } - return safeQualifiedName.toString(); - } - /* - * Converts myClassName to MyClassName - */ - public static String normalizeClassName(String className) { - - StringBuffer normalizedClassName = new StringBuffer(); - - String beginPart = className.substring(0,1); - String endPart = className.substring(1); - - normalizedClassName.append(beginPart.toUpperCase()); - normalizedClassName.append(endPart); - - return normalizedClassName.toString(); - } - - protected static void printDiagnostic(Diagnostic diagnostic, String indent) { - System.out.print(indent); - System.out.println(diagnostic.getMessage()); - for (Iterator i = diagnostic.getChildren().iterator(); i.hasNext();) { - printDiagnostic((Diagnostic)i.next(), indent + " "); - } - } - - protected static void printUsage() { - System.out.println("Usage arguments:"); - System.out.println(" [ -targetDirectory <target-root-directory> ]"); - System.out.println(" [ -javaPackage <java-package-name> ]"); - System.out.println(" [ -dynamicSDO | -generateSDO [ -sdoGenArgs <command-file-name> ]]"); - System.out.println(" [ -verbose ]"); - System.out.println(" <wsdl-file>"); - System.out.println(""); - System.out.println("Where <command-file-name> is a text file containing valid XSD2Java command\narguments (w/o the wsdl/xsd file name)"); - System.out.println("For example:"); - System.out.println(""); - System.out.println(" WSDL2JavaGenerator -targetDirectory myDir somedir/somefile.wsdl"); - } - - -} diff --git a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/util/XMLNameUtil.java b/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/util/XMLNameUtil.java deleted file mode 100644 index d0b325982c..0000000000 --- a/branches/sca-equinox/tools/wsdl2java/src/main/java/org/apache/tuscany/tools/wsdl2java/util/XMLNameUtil.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * 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.tools.wsdl2java.util; - -import java.util.ArrayList; -import java.util.List; - -public class XMLNameUtil { - - /** - * Returns a valid Java name from an XML Name. - * - * @param name - * @param isUpperCase - * @return a valid Java name from an XML Name - */ - public static String getJavaNameFromXMLName(String name, boolean isUpperCase) { - List<String> parsedName = parseName(name, '_'); - StringBuilder result = new StringBuilder(64 * parsedName.size()); - for (String nameComponent: parsedName) { - if (nameComponent.length() > 0) { - if (result.length() > 0 || isUpperCase) { - result.append(Character.toUpperCase(nameComponent.charAt(0))); - result.append(nameComponent.substring(1)); - } else { - result.append(nameComponent); - } - } - } - - if (result.length() == 0) { - return "_"; - } - if (Character.isJavaIdentifierStart(result.charAt(0))) { - return isUpperCase ? result.toString() : decapitalizeName(result.toString()); - } - return "_" + result; - } - - /** - * Decapitalize a name. - * @param name - * @return a decapitalized name - */ - public static String decapitalizeName(String name) { - if (name.length() == 0) { - return name; - } else { - String lowerName = name.toLowerCase(); - int i; - for (i = 0; i < name.length(); i++) { - if (name.charAt(i) == lowerName.charAt(i)) { - break; - } - } - if (i > 1 && i < name.length()) { - --i; - } - return name.substring(0, i).toLowerCase() + name.substring(i); - } - } - - /** - * Parse the given name. - * - * @param sourceName - * @param separator - * @return some stuff parsed from the name - */ - private static List<String> parseName(String sourceName, char separator) { - List<String> result = new ArrayList<String>(); - if (sourceName != null) { - StringBuilder currentWord = new StringBuilder(64); - boolean lastIsLower = false; - int index; - int length; - for (index = 0, length = sourceName.length(); index < length; ++index) { - char curChar = sourceName.charAt(index); - if (!Character.isJavaIdentifierPart(curChar)) { - curChar = separator; - } - if (Character.isUpperCase(curChar) - || (!lastIsLower && Character.isDigit(curChar)) - || curChar == separator) { - - if (lastIsLower && currentWord.length() > 1 - || curChar == separator && currentWord.length() > 0) { - result.add(currentWord.toString()); - currentWord = new StringBuilder(64); - } - lastIsLower = false; - } else { - if (!lastIsLower) { - int currentWordLength = currentWord.length(); - if (currentWordLength > 1) { - char lastChar = currentWord.charAt(--currentWordLength); - currentWord.setLength(currentWordLength); - result.add(currentWord.toString()); - currentWord = new StringBuilder(64); - currentWord.append(lastChar); - } - } - lastIsLower = true; - } - - if (curChar != separator) { - currentWord.append(curChar); - } - } - - result.add(currentWord.toString()); - } - return result; - } - - /** - * Return an EPackage name for the given namespace. - * - * @param namespace - * @return an EPackage name for the given namespace - */ - public static String getPackageNameFromNamespace(String namespace) { - return org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.getDefaultPackageName(namespace); - } - - -} |