Author: bimargulies
Date: Thu Dec 15 02:32:28 2011
New Revision: 1214599

URL: http://svn.apache.org/viewvc?rev=1214599&view=rev
Log:
[CXF-3972] Revert "Hide wsdl2js mojo because it introduces a dependency loop."

This reverts commit 8de9a1db837c973eea15f5e32cd4682eb19377d3.

Added:
    
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/ForkOnceWSDL2Javascript.java
   (with props)
    
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/Option.java
   (with props)
    
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java
   (with props)
    
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlArtifact.java
   (with props)
    
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlOption.java
   (with props)
Modified:
    cxf/trunk/maven-plugins/codegen-plugin/pom.xml

Modified: cxf/trunk/maven-plugins/codegen-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/pom.xml?rev=1214599&r1=1214598&r2=1214599&view=diff
==============================================================================
--- cxf/trunk/maven-plugins/codegen-plugin/pom.xml (original)
+++ cxf/trunk/maven-plugins/codegen-plugin/pom.xml Thu Dec 15 02:32:28 2011
@@ -104,6 +104,13 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-tools-wsdlto-frontend-javascript</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+
+        <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-core</artifactId>
             <optional>true</optional>

Added: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/ForkOnceWSDL2Javascript.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/ForkOnceWSDL2Javascript.java?rev=1214599&view=auto
==============================================================================
--- 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/ForkOnceWSDL2Javascript.java
 (added)
+++ 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/ForkOnceWSDL2Javascript.java
 Thu Dec 15 02:32:28 2011
@@ -0,0 +1,55 @@
+/**
+ * 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.maven_plugin.wsdl2js;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+
+import org.apache.cxf.tools.common.ToolContext;
+import org.apache.cxf.tools.wsdlto.javascript.WSDLToJavaScript;
+
+/**
+ * 
+ */
+public final class ForkOnceWSDL2Javascript {
+    private ForkOnceWSDL2Javascript() {
+        //utility
+    }
+    public static void main(String args[]) throws Exception {
+        File file = new File(args[0]);
+        BufferedReader reader = new BufferedReader(new FileReader(file));
+        String line = reader.readLine();
+        while (line != null) {
+            int i = Integer.parseInt(line);
+            if (i == -1) {
+                return;
+            }
+            String wargs[] = new String[i];
+            for (int x = 0; x < i; x++) {
+                wargs[x] = reader.readLine();
+            }
+            
+            new WSDLToJavaScript(wargs).run(new ToolContext());
+            
+            line = reader.readLine();
+        }
+    }
+}

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/ForkOnceWSDL2Javascript.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/ForkOnceWSDL2Javascript.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/Option.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/Option.java?rev=1214599&view=auto
==============================================================================
--- 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/Option.java
 (added)
+++ 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/Option.java
 Thu Dec 15 02:32:28 2011
@@ -0,0 +1,197 @@
+/**
+ * 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.maven_plugin.wsdl2js;
+
+import java.io.File;
+
+public class Option {
+
+    /**
+     * Since an arbitrary URI can't be an XML element name,
+     * these pairs are used to specify a mapping from URI
+     * to prefix.
+     */
+    public static class UriPrefixPair {
+        /**
+         * The namespace URI.
+         */
+        String uri;
+        /**
+         * The identifier prefix.
+         */
+        String prefix;
+        /**
+         * @return the uri
+         */
+        public String getUri() {
+            return uri;
+        }
+        /**
+         * Set the URI.
+         * @param uri the uri.
+         */
+        public void setUri(String uri) {
+            this.uri = uri;
+        }
+        /**
+         * @return the prefix.
+         */
+        public String getPrefix() {
+            return prefix;
+        }
+        /**
+         * Set the prefix.
+         * @param prefix the prefix.
+         */
+        public void setPrefix(String prefix) {
+            this.prefix = prefix;
+        }
+    
+    }
+
+    /**
+     * mappings from namespace URIs to javascript identifier prefixes.
+     */
+    UriPrefixPair[] packagePrefixes;
+    /**
+     * OASIS catalog file for use when reading the WSDL. 
+     */
+    File catalog;
+    /**
+     * Destination directory for the output.
+     */
+    File output;
+    /**
+     * Whether to validate the WSDL. 
+     */
+    Boolean validate;
+    /**
+     * The wsdl version.
+     */
+    String wsdlVersion;
+    /**
+     * A set of dependent files used to detect that the generator must process 
WSDL, even 
+     * if generator marker files are up to date.
+     */
+    File dependencies[];
+
+    public Option() {
+    }
+    
+    public void merge(Option other) {
+        if (catalog == null) {
+            catalog = other.getCatalog();
+        }
+        if (output == null) {
+            output = other.getOutput();
+        }
+        if (validate == null) {
+            validate = other.isValidate();
+        }
+        if (wsdlVersion == null) {
+            wsdlVersion = other.getWsdlVersion();
+        }
+    }
+
+    /**
+     * @return mappings from namespace URI to javascript name prefix.
+     */
+    public UriPrefixPair[] getPackagePrefixes() {
+        return packagePrefixes;
+    }
+
+    /**
+     * Set the mappings from namespace URI to Javascript name prefixes.
+     * @param packagePrefixes
+     */
+    public void setPackagePrefixes(UriPrefixPair[] packagePrefixes) {
+        this.packagePrefixes = packagePrefixes;
+    }
+
+    /**
+     * @return catalog used to resolve XML URIs in the wsdl.
+     */
+    public File getCatalog() {
+        return catalog;
+    }
+
+    /**
+     * Set catalog used to resolve XML URIs in the wsdl.
+     * @param catalog catalog.
+     */
+    public void setCatalog(File catalog) {
+        this.catalog = catalog;
+    }
+
+    /**
+     * @return output directory. Default is set 
+     * at the plugin level.
+     */
+    public File getOutput() {
+        return output;
+    }
+
+    /**
+     * Set the output directory.
+     * @param output output directory.
+     */
+    public void setOutput(File output) {
+        this.output = output;
+    }
+
+    /**
+     * @return Validating the WSDL?
+     */
+    public boolean isValidate() {
+        return validate;
+    }
+
+    /**
+     * Control WSDL validation.
+     * @param validate true to validate.
+     */
+    public void setValidate(boolean validate) {
+        this.validate = validate;
+    }
+
+    public File getOutputDir() {
+        return output;
+    }
+
+    public void setOutputDir(File outputDir) {
+        output = outputDir;
+    }
+
+    public String getWsdlVersion() {
+        return wsdlVersion;
+    }
+
+    public void setWsdlVersion(String wsdlVersion) {
+        this.wsdlVersion = wsdlVersion;
+    }
+
+    public File[] getDependencies() {
+        return dependencies;
+    }
+
+    public void setDependencies(File[] dependencies) {
+        this.dependencies = dependencies;
+    }
+
+}

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/Option.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/Option.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java?rev=1214599&view=auto
==============================================================================
--- 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java
 (added)
+++ 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java
 Thu Dec 15 02:32:28 2011
@@ -0,0 +1,282 @@
+/**
+ * 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.maven_plugin.wsdl2js;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.helpers.CastUtils;
+import org.apache.cxf.maven_plugin.AbstractCodegenMoho;
+import org.apache.cxf.maven_plugin.GenericWsdlOption;
+import org.apache.cxf.maven_plugin.WsdlUtilities;
+import org.apache.cxf.tools.common.ToolContext;
+import org.apache.cxf.tools.wsdlto.javascript.WSDLToJavaScript;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+
+/**
+ * @goal wsdl2js
+ * @phase generate-sources
+ * @description CXF WSDL To JavaScript Tool
+ * @requiresDependencyResolution test
+ * @threadSafe
+ */
+public class WSDL2JavaScriptMojo extends AbstractCodegenMoho {
+
+    /**
+     * WSDL files to process. Each wsdl file is specified as an option 
element, with possible options.
+     * 
+     * @parameter
+     * @required
+     */
+    WsdlOption[] wsdls;
+
+    /**
+     * @parameter expression="${cxf.testJavascriptRoot}"
+     */
+    File testSourceRoot;
+
+    /**
+     * Path where the generated sources should be placed
+     * 
+     * @parameter expression="${cxf.sourceJavascriptRoot}"
+     *            
default-value="${project.build.directory}/generated-sources/cxf-js"
+     * @required
+     */
+    File sourceRoot;
+
+    /**
+     * Default options to be applied to all of the wsdls.
+     * 
+     * @parameter
+     */
+    Option defaultOptions;
+    
+    /**
+     * @parameter
+     */
+    WsdlOption wsdlOptions[];
+
+    @Override
+    protected Bus generate(GenericWsdlOption genericWsdlOption, 
+                           Bus bus, Set<URI> classPath)
+        throws MojoExecutionException {
+
+        WsdlOption wsdlOption = (WsdlOption)genericWsdlOption;
+        File outputDirFile = wsdlOption.getOutputDir();
+        outputDirFile.mkdirs();
+        URI basedir = project.getBasedir().toURI();
+        URI wsdlURI;
+        try {
+            wsdlURI = new URI(wsdlOption.getUri());
+        } catch (URISyntaxException e) {
+            throw new MojoExecutionException("Failed to get URI for wsdl " + 
wsdlOption.getUri(), e);
+        }
+        File doneFile = getDoneFile(basedir, wsdlURI, "js");
+
+        if (!shouldRun(wsdlOption, doneFile, wsdlURI)) {
+            return bus;
+        }
+        doneFile.delete();
+
+        List<String> list = wsdlOption.generateCommandLine(outputDirFile, 
basedir, wsdlURI, getLog()
+            .isDebugEnabled());
+        String[] args = (String[])list.toArray(new String[list.size()]);
+        getLog().debug("Calling wsdl2js with args: " + Arrays.toString(args));
+
+        if (!"false".equals(fork)) {
+            Set<URI> artifactsPath = new LinkedHashSet<URI>();
+            for (Artifact a : pluginArtifacts) {
+                File file = a.getFile();
+                if (file == null) {
+                    throw new MojoExecutionException("Unable to find " + file 
+ " for artifact "
+                                                     + a.getGroupId() + ":" + 
a.getArtifactId() + ":"
+                                                     + a.getVersion());
+                }
+                artifactsPath.add(file.toURI());
+            }
+            addPluginArtifact(artifactsPath);
+            artifactsPath.addAll(classPath);
+
+            runForked(artifactsPath, WSDLToJavaScript.class.getName(), args);
+
+        } else {
+            if (bus == null) {
+                bus = BusFactory.newInstance().createBus();
+                BusFactory.setThreadDefaultBus(bus);
+            }
+            try {
+                new WSDLToJavaScript(args).run(new ToolContext());
+            } catch (Throwable e) {
+                getLog().debug(e);
+                throw new MojoExecutionException(e.getMessage(), e);
+            }
+        }
+
+        try {
+            doneFile.createNewFile();
+        } catch (Throwable e) {
+            getLog().warn("Could not create marker file " + 
doneFile.getAbsolutePath());
+            getLog().debug(e);
+            throw new MojoExecutionException("Failed to create marker file " + 
doneFile.getAbsolutePath());
+        }
+        if (project != null && getGeneratedSourceRoot() != null && 
getGeneratedSourceRoot().exists()) {
+            
project.addCompileSourceRoot(getGeneratedSourceRoot().getAbsolutePath());
+        }
+        if (project != null && getGeneratedTestRoot() != null && 
getGeneratedTestRoot().exists()) {
+            
project.addTestCompileSourceRoot(getGeneratedTestRoot().getAbsolutePath());
+        }
+        return bus;
+    }
+
+    @Override
+    protected File getGeneratedSourceRoot() {
+        return sourceRoot;
+    }
+
+    @Override
+    protected File getGeneratedTestRoot() {
+        return testSourceRoot;
+    }
+
+    @Override
+    protected boolean shouldRun(GenericWsdlOption genericWsdlOption, File 
doneFile,
+                                URI wsdlURI) {
+        WsdlOption wsdlOption = (WsdlOption)genericWsdlOption;
+        long timestamp = 0;
+        if ("file".equals(wsdlURI.getScheme())) {
+            timestamp = new File(wsdlURI).lastModified();
+        } else {
+            try {
+                timestamp = wsdlURI.toURL().openConnection().getDate();
+            } catch (Exception e) {
+                // ignore
+            }
+        }
+        boolean doWork = false;
+        if (!doneFile.exists()) {
+            doWork = true;
+        } else if (timestamp > doneFile.lastModified()) {
+            doWork = true;
+        } else {
+            File files[] = wsdlOption.getDependencies();
+            if (files != null) {
+                for (int z = 0; z < files.length; ++z) {
+                    if (files[z].lastModified() > doneFile.lastModified()) {
+                        doWork = true;
+                    }
+                }
+            }
+        }
+        return doWork;
+    }
+
+    protected void mergeOptions(List<GenericWsdlOption> effectiveWsdlOptions) {
+        for (GenericWsdlOption wo : wsdls) {
+            WsdlOption option = (WsdlOption)wo;
+            option.merge(defaultOptions);
+        }
+    }
+
+    @Override
+    protected List<GenericWsdlOption> 
createWsdlOptionsFromScansAndExplicitWsdlOptions()
+        throws MojoExecutionException {
+        List<GenericWsdlOption> effectiveWsdlOptions = new 
ArrayList<GenericWsdlOption>();
+        List<GenericWsdlOption> temp;
+        
+        for (WsdlOption wo : wsdlOptions) {
+            effectiveWsdlOptions.add(wo);
+        }
+        
+        if (wsdlRoot != null && wsdlRoot.exists() && !disableDirectoryScan) {
+            temp = loadWsdlOptionsFromFiles(wsdlRoot, 
getGeneratedSourceRoot());
+            effectiveWsdlOptions.addAll(temp);
+        }
+        if (testWsdlRoot != null && testWsdlRoot.exists() && 
!disableDirectoryScan) {
+            temp = loadWsdlOptionsFromFiles(testWsdlRoot, 
getGeneratedTestRoot());
+            effectiveWsdlOptions.addAll(temp);
+        }
+        if (!disableDependencyScan) {
+            temp = loadWsdlOptionsFromDependencies(project, defaultOptions, 
getGeneratedSourceRoot());
+            effectiveWsdlOptions.addAll(temp);
+        }
+        mergeOptions(effectiveWsdlOptions);
+        downloadRemoteWsdls(effectiveWsdlOptions);
+        return effectiveWsdlOptions;
+    }
+
+    private List<GenericWsdlOption> loadWsdlOptionsFromFiles(File wsdlBasedir, 
File defaultOutputDir)
+        throws MojoExecutionException {
+
+        if (wsdlBasedir == null) {
+            return Collections.emptyList();
+        }
+
+        if (!wsdlBasedir.exists()) {
+            throw new MojoExecutionException(wsdlBasedir + " does not exist");
+        }
+
+        List<File> wsdlFiles = WsdlUtilities.getWsdlFiles(wsdlBasedir, 
includes, excludes);
+        List<GenericWsdlOption> options = new ArrayList<GenericWsdlOption>();
+        for (File wsdl : wsdlFiles) {
+            WsdlOption wsdlOption = new WsdlOption();
+            wsdlOption.setOutputDir(defaultOutputDir);
+            wsdlOption.setUri(wsdl.toURI().toString());
+            options.add(wsdlOption);
+        }
+        return options;
+    }
+
+    public static List<GenericWsdlOption> 
+    loadWsdlOptionsFromDependencies(MavenProject project,
+                                    Option defaultOptions,
+                                    File outputDir) {
+        List<GenericWsdlOption> options 
+            = new ArrayList<GenericWsdlOption>();
+        Set<Artifact> dependencies = 
CastUtils.cast(project.getDependencyArtifacts());
+        for (Artifact artifact : dependencies) {
+            WsdlOption option = new WsdlOption();
+            WsdlUtilities.fillWsdlOptionFromArtifact(new WsdlOption(), 
artifact, outputDir);
+            if (option != null) {
+                if (defaultOptions != null) {
+                    option.merge(defaultOptions);
+                }
+                options.add(option);
+            }
+        }
+        return options;
+    }
+
+    @Override
+    protected Class<?> getForkClass() {
+        return ForkOnceWSDL2Javascript.class;
+    }
+
+}

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WSDL2JavaScriptMojo.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlArtifact.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlArtifact.java?rev=1214599&view=auto
==============================================================================
--- 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlArtifact.java
 (added)
+++ 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlArtifact.java
 Thu Dec 15 02:32:28 2011
@@ -0,0 +1,30 @@
+/**
+ * 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.maven_plugin.wsdl2js;
+
+/**
+ * This exists to move this into the same package as the mojo.
+ */
+public class WsdlArtifact extends org.apache.cxf.maven_plugin.WsdlArtifact {
+
+    public WsdlArtifact() {
+    }
+
+}

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlArtifact.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlOption.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlOption.java?rev=1214599&view=auto
==============================================================================
--- 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlOption.java
 (added)
+++ 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlOption.java
 Thu Dec 15 02:32:28 2011
@@ -0,0 +1,115 @@
+/**
+ * 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.maven_plugin.wsdl2js;
+
+import java.io.File;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.cxf.maven_plugin.WsdlArtifact;
+
+/**
+ * An option for javascript generation.
+ */
+public class WsdlOption extends Option implements 
org.apache.cxf.maven_plugin.GenericWsdlOption {
+    
+    private String wsdl;
+    private WsdlArtifact artifact;
+    
+    /**
+     * @return Pathname or URI to wsdl.
+     */
+    public String getWsdl() {
+        return wsdl;
+    }
+    
+    /**
+     * Set pathname or URI to WSDL.
+     * @param wsdl path.
+     */
+    public void setWsdl(String wsdl) {
+        this.wsdl = wsdl;
+    }
+    
+    /**
+     * Maven coordinates 
+     * @return
+     */
+    public WsdlArtifact getArtifact() {
+        return artifact;
+    }
+    public void setArtifact(WsdlArtifact artifact) {
+        this.artifact = artifact;
+    }
+
+    public String getUri() {
+        return wsdl;
+    }
+
+    public void setUri(String uri) {
+        this.wsdl = uri;
+    }
+
+    public File[] getDeleteDirs() {
+        /*
+         * Until we figure out what this amounts to. I suspect it stays null 
for Javascript.
+         */
+        return new File[0];
+    }
+
+    public List<String> generateCommandLine(File outputDirFile, URI basedir, 
URI wsdlURI, boolean debug) {
+        List<String> options = new ArrayList<String>();
+        if (wsdlVersion != null && !"".equals(wsdlVersion)) {
+            options.add("-wv");
+            options.add(wsdlVersion);
+        }
+        if (packagePrefixes != null) {
+            for (UriPrefixPair upp : packagePrefixes) {
+                options.add("-p");
+                options.add(String.format("%s=%s", upp.getPrefix(), 
upp.getUri()));
+            }
+        }
+        if (catalog != null && !"".equals(catalog)) {
+            options.add("-catalog");
+            options.add(catalog.getAbsolutePath());
+        }
+        
+        options.add("-d");
+        if (output != null) {
+            options.add(output.getAbsolutePath());
+        } else {
+            options.add(outputDirFile.getAbsolutePath());
+        }
+        if (validate != null && validate) {
+            options.add("-validate");
+        }
+        if (debug) {
+            options.add("-v");
+            options.add("-V");
+        }
+        /*
+         * By the time we get here there's supposed to be a string
+         * in 'wsdl' that we can use as the uri.
+         */
+        options.add(wsdl);
+        return options;
+    } 
+}

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlOption.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/maven-plugins/codegen-plugin/src/main/java/org/apache/cxf/maven_plugin/wsdl2js/WsdlOption.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to