summaryrefslogtreecommitdiffstats
path: root/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools')
-rw-r--r--tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java142
-rw-r--r--tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java48
-rw-r--r--tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java319
3 files changed, 0 insertions, 509 deletions
diff --git a/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java b/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
deleted file mode 100644
index 518f070ce4..0000000000
--- a/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- *
- * Copyright 2005 BEA Systems Inc.
- * Copyright 2005 International Business Machines Corporation
- *
- * Licensed 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.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.wsdl.WSDLException;
-import javax.xml.namespace.QName;
-
-import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.util.FileWriter;
-import org.apache.axis2.wsdl.builder.WOMBuilderFactory;
-import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
-import org.apache.axis2.wsdl.codegen.CodeGenerationException;
-import org.apache.axis2.wsdl.codegen.emitter.JavaEmitter;
-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.codegen.writer.InterfaceWriter;
-import org.apache.axis2.wsdl.databinding.JavaTypeMapper;
-import org.apache.axis2.wsdl.i18n.CodegenMessages;
-import org.apache.tuscany.model.util.XMLNameUtil;
-import org.apache.wsdl.WSDLDescription;
-import org.w3c.dom.Document;
-
-public class JavaInterfaceGenerator {
-
- private List codegenExtensions = new ArrayList();
- private CodeGenConfiguration codegenConfiguration;
-
- public JavaInterfaceGenerator(String uri, String outputLocation, String packageName, Map<QName, String> typeMapping) throws CodeGenerationException {
- WSDLDescription wom;
- try {
- wom = WOMBuilderFactory.getBuilder(org.apache.wsdl.WSDLConstants.WSDL_1_1).build(uri).getDescription();
- } catch (WSDLException e) {
- throw new CodeGenerationException(CodegenMessages.getMessage("engine.wsdlParsingException"), e);
- }
-
- if (packageName==null)
- packageName=XMLNameUtil.getPackageNameFromNamespace(wom.getTargetNameSpace());
-
- JavaTypeMapper typeMapper=new JavaTypeMapper();
- for (Map.Entry<QName, String> e : typeMapping.entrySet() ) {
- typeMapper.addTypeMappingName(e.getKey(), e.getValue());
- }
-
- codegenConfiguration = new CodeGenConfiguration(wom, new HashMap());
- codegenConfiguration.setAdvancedCodeGenEnabled(false);
- codegenConfiguration.setAsyncOn(false);
- codegenConfiguration.setCodeGenerationStyle(0);
- 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(new HashMap());
- codegenConfiguration.setPortName(null);
- codegenConfiguration.setServerSide(false);
- codegenConfiguration.setServiceName(null);
- codegenConfiguration.setSyncOn(true);
- codegenConfiguration.setTypeMapper(typeMapper);
- codegenConfiguration.setWriteMessageReceiver(false);
- codegenConfiguration.setWriteTestCase(false);
-
- addExtension(new WSDLValidatorExtension());
- addExtension(new PackageFinder());
- addExtension(new SDODataBindingCodegenExtension(typeMapper));
- addExtension(new DefaultDatabindingExtension());
- }
-
- private void addExtension(CodeGenExtension ext) {
- ext.init(codegenConfiguration);
- codegenExtensions.add(ext);
- }
-
-
- public void generate() throws CodeGenerationException {
- try {
- for (int i = 0; i < codegenExtensions.size(); i++) {
- ((CodeGenExtension) codegenExtensions.get(i)).engage();
- }
-
- class JavaInterfaceEmitter extends JavaEmitter {
-
- protected void writeInterface(boolean writeDatabinders) throws Exception {
- Document interfaceModel = createDOMDocumentForInterface(writeDatabinders);
- if (!configuration.getOutputLocation().exists()) {
- configuration.getOutputLocation().mkdirs();
- }
- InterfaceWriter interfaceWriter =
- new InterfaceWriter(this.configuration.getOutputLocation(),
- this.configuration.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.configuration.getOutputLocation(), packageName, className, ".java");
- if (outputFile.exists())
- outputFile.delete();
-
- writeClass(interfaceModel, interfaceWriter);
- };
-
- };
-
- JavaInterfaceEmitter emitter=new JavaInterfaceEmitter();
- emitter.setCodeGenConfiguration(codegenConfiguration);
- emitter.setMapper(codegenConfiguration.getTypeMapper());
-
- emitter.writeInterface(false);
-
- } catch (Exception e) {
- throw new CodeGenerationException(e);
- }
- }
-
-
-}
diff --git a/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java b/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
deleted file mode 100644
index f310fe0f8a..0000000000
--- a/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *
- * Copyright 2005 BEA Systems Inc.
- * Copyright 2005 International Business Machines Corporation
- *
- * Licensed 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.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;
- }
-
- 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);
-
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java b/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java
deleted file mode 100644
index 0be15181fb..0000000000
--- a/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.FileInputStream;
-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 javax.xml.namespace.QName;
-
-import org.apache.tuscany.sdo.helper.XSDHelperImpl;
-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.XSDHelper;
-
-
-public class WSDL2JavaGenerator {
-
- /**
- * 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 targetDirectory = null;
- String wsdlJavaPackage = null;
- String xsdJavaPackage = null;
-
- int genOptions = 0;
-
- int index = 0;
- for (; index < args.length && args[index].startsWith("-"); ++index)
- {
- if (args[index].equalsIgnoreCase("-targetDirectory"))
- {
- targetDirectory = args[++index];
- }
- else if (args[index].equalsIgnoreCase("-javaPackage"))
- {
- wsdlJavaPackage = args[++index];
- }
- //else if (...)
- else
- {
- printUsage();
- return;
- }
- }
-
- String wsdlFileName = args[index];
- if (wsdlFileName==null || targetDirectory==null) {
- printUsage();
- return;
- }
-
- generateFromWSDL(wsdlFileName, targetDirectory, wsdlJavaPackage, xsdJavaPackage, 0);
-
- }
-
- public static void generateFromWSDL(String wsdlFileName, String targetDirectory, String wsdlJavaPackage, String xsdJavaPackage, int genOptions)
- {
- DataObjectUtil.initRuntime();
- EPackage.Registry packageRegistry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
- ExtendedMetaData extendedMetaData = new BasicExtendedMetaData(packageRegistry);
- XSDHelper xsdHelper = new XSDHelperImpl(extendedMetaData);
-
- try
- {
- File inputFile = new File(wsdlFileName).getAbsoluteFile();
- InputStream inputStream = new FileInputStream(inputFile);
- xsdHelper.define(inputStream, inputFile.toURI().toString());
-
- if (targetDirectory == null)
- {
- targetDirectory = new File(wsdlFileName).getCanonicalFile().getParent();
- }
- else
- {
- targetDirectory = new File(targetDirectory).getCanonicalPath();
- }
-
- Map<QName, String> typeMapping=new HashMap<QName, String>();
- if (!packageRegistry.values().isEmpty())
- {
- ResourceSet resourceSet = DataObjectUtil.createResourceSet();
-
- 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);
- }
-
- }
-
- for (GenPackage currentGenPackage : genPackages) {
- EPackage currentEPackage=currentGenPackage.getEcorePackage();
- for (GenClass genClass : (List<GenClass>)currentGenPackage.getGenClasses()) {
- QName qname=new QName(extendedMetaData.getNamespace(currentEPackage), extendedMetaData.getName(genClass.getEcoreClass()));
- String interfaceName=currentGenPackage.getInterfacePackageName()+'.'+genClass.getInterfaceName();
- typeMapping.put(qname, interfaceName);
- }
-
- EClass documentRoot=extendedMetaData.getDocumentRoot(currentEPackage);
- if (documentRoot!=null) {
- for (EStructuralFeature element : (List<EStructuralFeature>)extendedMetaData.getElements(documentRoot)) {
- EClassifier elementType=element.getEType();
- if (extendedMetaData.isAnonymous(elementType)) {
- EClass eClass=(EClass)elementType;
- EStructuralFeature feature=(EStructuralFeature)eClass.getEStructuralFeatures().get(0);
- elementType=feature.getEType();
- }
- if (elementType instanceof EClass) {
- GenClass genClass=genClasses.get(elementType);
- QName qname=new QName(extendedMetaData.getNamespace(currentEPackage), extendedMetaData.getName(element));
- String interfaceName=genClass.getGenPackage().getInterfacePackageName()+'.'+genClass.getInterfaceName();
- typeMapping.put(qname, interfaceName);
- } else if (elementType instanceof EClassifier) {
- QName qname=new QName(extendedMetaData.getNamespace(currentEPackage), extendedMetaData.getName(element));
- String interfaceName=elementType.getInstanceClass().getName();
- typeMapping.put(qname, interfaceName);
- }
- }
- }
- }
- }
-
- try {
- JavaInterfaceGenerator codeGenerator=new JavaInterfaceGenerator(wsdlFileName, targetDirectory, wsdlJavaPackage, typeMapping);
- codeGenerator.generate();
- } catch (Exception e) {
- throw new IllegalArgumentException(e);
- }
-
- }
- catch (IOException e)
- {
- throw new IllegalArgumentException(e);
- }
- }
-
- 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();
- }
-
- 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(" <wsdl-file>");
- System.out.println("");
- System.out.println("For example:");
- System.out.println("");
- System.out.println(" generate somedir/somefile.wsdl");
- }
-
-}