You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-commits@incubator.apache.org by lc...@apache.org on 2011/12/16 14:22:05 UTC

svn commit: r1215143 - in /incubator/npanday/trunk: components/dotnet-executable/src/main/java/npanday/executable/ components/dotnet-executable/src/main/java/npanday/executable/impl/ components/dotnet-model/executable-plugins/ plugins/maven-compile-plu...

Author: lcorneliussen
Date: Fri Dec 16 14:22:04 2011
New Revision: 1215143

URL: http://svn.apache.org/viewvc?rev=1215143&view=rev
Log:
[NPANDAY-499] Fixed probing path issues + removed PlatformDetector and upgraded maven-wsdl-plugin to use executable plugins

Added:
    incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/   (with props)
    incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/   (with props)
    incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/npanday/   (with props)
    incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/npanday/executable-plugins.xml
Removed:
    incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/java/npanday/plugin/wsdl/PlatformDetector.java
Modified:
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/CommandFilter.java
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableCapability.java
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableContext.java
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/MutableExecutableCapability.java
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerPluginsRepository.java
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/DefaultNetExecutable.java
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/ExecutableContextImpl.java
    incubator/npanday/trunk/components/dotnet-model/executable-plugins/executable-plugins.mdo
    incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/groovy/npanday/plugin/compile/CompileLifecycleMap.groovy
    incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/java/npanday/plugin/wsdl/WsdlGeneratorMojo.java

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/CommandFilter.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/CommandFilter.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/CommandFilter.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/CommandFilter.java Fri Dec 16 14:22:04 2011
@@ -18,6 +18,7 @@
  */
 package npanday.executable;
 
+import npanday.PlatformUnsupportedException;
 import org.codehaus.plexus.logging.Logger;
 
 import java.util.Collection;
@@ -44,7 +45,7 @@ public interface CommandFilter
      * <code>NullPointerException</code> if it is.
      * @return a list of filtered commands.
      */
-    List<String> filter( Collection<String> commands );
+    List<String> filter( Collection<String> commands ) throws PlatformUnsupportedException;
 
     /**
      * Provides factory methods for creating command filters.
@@ -74,6 +75,7 @@ public interface CommandFilter
             return new CommandFilter()
             {
                 public List<String> filter( Collection<String> commands )
+                    throws PlatformUnsupportedException
                 {
 
                     List<String> includes = ( capability != null && capability.getIncludes() != null )
@@ -82,11 +84,23 @@ public interface CommandFilter
                         ? capability.getExcludes() : new ArrayList<String>();
 
                     List<String> newCommands = new ArrayList<String>();
-                    if ( includes.isEmpty() && !excludes.isEmpty() )
+
+                    // Excluded commands should fail
+                    if ( !excludes.isEmpty() )
                     {
-                        //unsupported
+                        for( String command : commands){
+                            if ( doesInclude( excludes, command )){
+                                // TODO: is the exception type right here? maybe it should be a specific exception
+                                throw new PlatformUnsupportedException(
+                                    "NPANDAY-060-001: The command '" + command + "' is unsupported for the targeted "
+                                        + "platform or executable."
+                                );
+                            }
+                        }
                     }
-                    else if ( !includes.isEmpty() && excludes.isEmpty() )
+
+                    // Included commands are weak exclusions of all others
+                    if ( !includes.isEmpty() )
                     {
                         for ( String command : commands )
                         {
@@ -100,16 +114,13 @@ public interface CommandFilter
                             }
                         }
                     }
-                    else if ( includes.isEmpty() && excludes.isEmpty() )
+                    else
                     {
                         List<String> list = new ArrayList<String>();
                         list.addAll( commands );
                         return list;
                     }
-                    else if ( !includes.isEmpty() && !excludes.isEmpty() )
-                    {
-                        //unsupported
-                    }
+
                     return newCommands;
                 }
 

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableCapability.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableCapability.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableCapability.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableCapability.java Fri Dec 16 14:22:04 2011
@@ -110,7 +110,8 @@ public interface ExecutableCapability
     String getNetDependencyId();
 
     /**
-     * Retrieves the paths, the executable is most likely to be found on.
+     * Retrieves the paths, the executable is most likely to be found on. Can contain
+     * both existing and not existing paths.
      */
     List<String> getProbingPaths();
 }

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableContext.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableContext.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableContext.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/ExecutableContext.java Fri Dec 16 14:22:04 2011
@@ -22,7 +22,7 @@ import npanday.NPandayContext;
 import npanday.PlatformUnsupportedException;
 import npanday.vendor.Vendor;
 
-import java.util.Collection;
+import java.util.List;
 
 /**
  * Provides services for executables.
@@ -58,13 +58,13 @@ public interface ExecutableContext
      * The commands that instruct the executable to be run.
      * @return
      */
-    Collection<String> getCommands();
+    List<String> getCommands();
 
     /**
      * The paths the executable is most likely to be found on. First matching path wins.
      * @return
      */
-    Collection<String> getProbingPaths();
+    List<String> getProbingPaths();
 
     /**
      * Creates a command filter. If the includes parameter is null, then the filter will return all commands that are

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/MutableExecutableCapability.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/MutableExecutableCapability.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/MutableExecutableCapability.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/MutableExecutableCapability.java Fri Dec 16 14:22:04 2011
@@ -1,9 +1,16 @@
 package npanday.executable;
 
+import com.google.common.base.Function;
+import com.google.common.collect.Lists;
 import npanday.vendor.VendorInfo;
 
+import javax.annotation.Nullable;
+import java.io.File;
+import java.util.Collections;
 import java.util.List;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 /**
  * Holds the configured executable capability.
  *
@@ -137,7 +144,29 @@ public class MutableExecutableCapability
 
     public List<String> getProbingPaths()
     {
-        return probingPaths;
+        // if probing paths are defined fot the capability, these are to be
+        // used when searching executables.
+        if ( probingPaths != null && !probingPaths.isEmpty() )
+        {
+            return probingPaths;
+        }
+
+        // if not, we expect the executable is provided by the vendor
+        final List<File> vendorPaths = checkNotNull(
+            getVendorInfo(), "Vendor info is unavailable"
+        ).getExecutablePaths();
+
+        List<String> vendorPathsAsString = Lists.transform(
+            vendorPaths, new Function<File, String>()
+            {
+                public String apply( @Nullable File file )
+                {
+                    return checkNotNull( file, "file was null").toString();
+                }
+            }
+        );
+
+        return Collections.unmodifiableList( vendorPathsAsString );
     }
 
     public void setProbingPaths( List<String> probingPaths )

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerPluginsRepository.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerPluginsRepository.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerPluginsRepository.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerPluginsRepository.java Fri Dec 16 14:22:04 2011
@@ -144,7 +144,6 @@ public final class CompilerPluginsReposi
                 // TODO: Allow probing paths for compilers
                 platformCapability.setProbingPaths(plugin.getProbingPaths());
 
-
                 Platform platform = (Platform) j.next();
                 String os = platform.getOperatingSystem();
 

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/DefaultNetExecutable.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/DefaultNetExecutable.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/DefaultNetExecutable.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/DefaultNetExecutable.java Fri Dec 16 14:22:04 2011
@@ -55,6 +55,7 @@ public class DefaultNetExecutable
     public List<String> getCommands()
         throws ExecutionException
     {
+        // TODO: should it fail on unsupported commands?
         CommandFilter filter = executableContext.getCommandFilter();
         return Collections.unmodifiableList(filter.filter( commands ));
     }

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/ExecutableContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/ExecutableContextImpl.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/ExecutableContextImpl.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/ExecutableContextImpl.java Fri Dec 16 14:22:04 2011
@@ -31,7 +31,6 @@ import npanday.vendor.Vendor;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
-import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
@@ -128,18 +127,23 @@ public class ExecutableContextImpl
         return executableCapability.getExecutableName();
     }
 
-    public Collection<String> getCommands()
+    public List<String> getCommands()
     {
         return executableConfig.getCommands();
     }
 
-    public Collection<String> getProbingPaths()
+    public List<String> getProbingPaths()
     {
         List<String> executionPaths = executableConfig.getExecutionPaths();
+
         if (executionPaths == null || executionPaths.size() == 0)
+        {
+            // if the user-passed configuration contains probing paths, these
+            // are at highest priority and OVERRIDE built-in probing paths configuration
             executionPaths = executableCapability.getProbingPaths();
+        }
 
-        return Collections.unmodifiableCollection( executionPaths );
+        return Collections.unmodifiableList( executionPaths );
     }
 
     public void init( ExecutableCapability capability, ExecutableConfig config )

Modified: incubator/npanday/trunk/components/dotnet-model/executable-plugins/executable-plugins.mdo
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-model/executable-plugins/executable-plugins.mdo?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-model/executable-plugins/executable-plugins.mdo (original)
+++ incubator/npanday/trunk/components/dotnet-model/executable-plugins/executable-plugins.mdo Fri Dec 16 14:22:04 2011
@@ -18,7 +18,7 @@ under the License.
 -->
 <model xmlns="http://modello.codehaus.org/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.4.0 http://modello.codehaus.org/xsd/modello-1.4.0.xsd"
-       xml.namespace="http://npanday.apacha.org/executable/1.5.0">
+       xml.namespace="http://npanday.apache.org/executables/1.5.0">
   <id>executable-plugin</id>
   <name>ExecutablePlugin</name>
   <description>

Modified: incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/groovy/npanday/plugin/compile/CompileLifecycleMap.groovy
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/groovy/npanday/plugin/compile/CompileLifecycleMap.groovy?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/groovy/npanday/plugin/compile/CompileLifecycleMap.groovy (original)
+++ incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/groovy/npanday/plugin/compile/CompileLifecycleMap.groovy Fri Dec 16 14:22:04 2011
@@ -20,13 +20,10 @@
  */
 package npanday.plugin.compile;
 
-import org.apache.maven.lifecycle.Lifecycle;
-import npanday.lifecycle.LifecycleMapping;
-import npanday.lifecycle.LifecyclePhase;
-import npanday.lifecycle.LifecycleMap;
-import npanday.ArtifactType;
 
-import npanday.lifecycle.LifecycleMappingBuilder;
+import npanday.ArtifactType
+import npanday.lifecycle.LifecycleMap
+import npanday.lifecycle.LifecycleMappingBuilder
 
 /**
  * The lifecycles defined by the maven-compile-plugin..

Modified: incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/java/npanday/plugin/wsdl/WsdlGeneratorMojo.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/java/npanday/plugin/wsdl/WsdlGeneratorMojo.java?rev=1215143&r1=1215142&r2=1215143&view=diff
==============================================================================
--- incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/java/npanday/plugin/wsdl/WsdlGeneratorMojo.java (original)
+++ incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/java/npanday/plugin/wsdl/WsdlGeneratorMojo.java Fri Dec 16 14:22:04 2011
@@ -18,23 +18,26 @@
  */
 package npanday.plugin.wsdl;
 
+import npanday.PlatformUnsupportedException;
+import npanday.executable.ExecutableRequirement;
+import npanday.executable.ExecutionException;
+import npanday.registry.RepositoryRegistry;
+import npanday.vendor.SettingsException;
+import npanday.vendor.SettingsUtil;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.settings.Server;
-import org.apache.maven.settings.Proxy;
-import npanday.vendor.Vendor;
-import npanday.executable.CommandExecutor;
-import npanday.executable.ExecutionException;
-import npanday.PlatformUnsupportedException;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Proxy;
+import org.apache.maven.settings.Server;
+import org.codehaus.plexus.util.FileUtils;
 
-import java.util.List;
-import java.util.ArrayList;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
 import java.io.File;
-import java.net.URL;
 import java.net.MalformedURLException;
+import java.net.URL;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Generates WSDL class
@@ -56,6 +59,40 @@ public class WsdlGeneratorMojo
     private MavenProject project;
 
     /**
+     * The Vendor for the executable. Supports MONO and MICROSOFT.
+     *
+     * @parameter expression="${vendor}"
+     */
+    private String vendor;
+
+    /**
+     * @parameter expression = "${frameworkVersion}"  default-value = "2.0.50727"
+     */
+    private String frameworkVersion;
+
+    /**
+     * The profile that the executable should use.
+     *
+     * @parameter expression = "${profile}" default-value = "WSDL"
+     */
+    private String profile;
+
+    /**
+     * @component
+     */
+    private npanday.executable.NetExecutableFactory netExecutableFactory;
+
+    /**
+     * @parameter expression="${npanday.settings}" default-value="${user.home}/.m2"
+     */
+    private String settingsPath;
+
+    /**
+     * @component
+     */
+    private RepositoryRegistry repositoryRegistry;
+
+    /**
      * Webreferences
      * 
      * @parameter
@@ -65,7 +102,7 @@ public class WsdlGeneratorMojo
     /**
      * The directory to place the generated binding classes.
      * 
-     * @parameter
+     * @parameter  expression="${project.build.sourceDirectory}"
      */
     private String outputDirectory;
 
@@ -165,7 +202,7 @@ public class WsdlGeneratorMojo
     /**
      * @parameter expression="${netHome}"
      */
-    private String netHome;
+    private File netHome;
 
     /**
      * Generates server implementation
@@ -184,119 +221,108 @@ public class WsdlGeneratorMojo
     public void execute()
         throws MojoExecutionException
     {
-        for ( WebReference webreference : webreferences )
+
+
+        try
         {
-            Vendor vendor = getCompilerVendor();
-            List<String> commands = getCommandsFor( vendor, webreference );
+            SettingsUtil.getOrPopulateSettingsRepository( repositoryRegistry, settingsPath );
+        }
+        catch ( SettingsException e )
+        {
+            throw new MojoExecutionException(
+                "NPANDAY-1300-006 Failed to create the repository registry for this plugin", e );
+        }
+
+        FileUtils.mkdir( outputDirectory );
 
-            getLog().debug( "NPANDAY-1300-000: Commands = " + commands.toString() );
-            CommandExecutor commandExecutor = CommandExecutor.Factory.createDefaultCommmandExecutor();
+        for ( WebReference webreference : webreferences )
+        {
+            List<String> commands = getCommandsFor( webreference );
             try
             {
-                commandExecutor.executeCommand( getExecutableFor( vendor, netHome ), commands );
-                getLog().info(
-                               "NPANDAY-1300-008: Generated WSDL: File = "
-                                   + project.getBuild().getSourceDirectory()
-                                   + File.separator
-                                   + project.getBuild().getSourceDirectory()
-                                   + File.separator
-                                   + webreference.getOutput()
-                                   + File.separator
-                                   + getFileNameFor( project.getBuild().getSourceDirectory() + File.separator
-                                       + webreference.getPath() ) );
-
+                netExecutableFactory.getNetExecutableFor(
+                    new ExecutableRequirement( vendor, null, frameworkVersion, profile ), commands, netHome
+                ).execute();
             }
             catch ( ExecutionException e )
             {
-                // TODO: This is a hack to get around the fact that MONO returns a result=1 on warnings and MS returns a
-                // result=1 on errors.
-                // I don't want to fail on MONO warning here.
-                if ( ( vendor.equals( Vendor.MONO ) && commandExecutor.getResult() > 1 )
-                    || vendor.equals( Vendor.MICROSOFT ) )
-                {
-                    throw new MojoExecutionException( "NPANDAY-1300-001: Result = " + commandExecutor.getResult(), e );
-                }
+                throw new MojoExecutionException(
+                    "NPANDAY-1300-007: Unable to execute wsdl: Vendor " + vendor + ", frameworkVersion = "
+                        + frameworkVersion + ", Profile = " + profile, e
+                );
+            }
+            catch ( PlatformUnsupportedException e )
+            {
+                throw new MojoExecutionException(
+                    "NPANDAY-1300-009: Platform Unsupported: Vendor " + vendor + ", frameworkVersion = "
+                        + frameworkVersion + ", Profile = " + profile, e
+                );
             }
-        }
-
-    }
 
-    public String getExecutableFor( Vendor vendor, String home )
-    {
-        String executable = ( vendor.equals( Vendor.MICROSOFT ) ) ? "wsdl" : "wsdl2";
-        return ( !isEmpty( home ) ) ? home + File.separator + "bin" + File.separator + executable : executable;
+            getLog().info(
+                "NPANDAY-1300-008: Generated WSDL: File = " + buildOutputFilePath( webreference )
+            );
+        }
     }
 
-    public List<String> getCommandsFor( Vendor vendor, WebReference webreference )
+    public List<String> getCommandsFor( WebReference webreference )
         throws MojoExecutionException
     {
-        String commandFlag = vendor.equals( Vendor.MICROSOFT ) ? "/" : "-";
 
         List<String> commands = new ArrayList<String>();
-        populateServerCommands( commands, commandFlag );
-        populateProxyCommands( commands, commandFlag );
-        commands.add( commandFlag + "language:" + language );
-        commands.add( commandFlag + "namespace:" + webreference.getNamespace() );
-        commands.add( commandFlag + "fields:" + fields );
+        populateServerCommands( commands );
+        populateProxyCommands( commands, "/" );
+        commands.add( "/language:" + language );
+        commands.add( "/namespace:" + webreference.getNamespace() );
+        commands.add( "/fields:" + fields );
         if ( !isEmpty( protocol ) )
         {
-            commands.add( commandFlag + "protocol:" + protocol );
+            commands.add( "/protocol:" + protocol );
         }
 
-        commands.add( commandFlag + "out:" + project.getBuild().getSourceDirectory() + File.separator
-            + webreference.getOutput()
-            + getFileNameFor( project.getBuild().getSourceDirectory() + File.separator + webreference.getPath() ) );
+        commands.add(
+            "/out:" + buildOutputFilePath( webreference )
+        );
+
+        commands.add( buildInputFilePath( webreference ) );
 
+        if ( serverInterface )
         {
-            commands.add( new File( project.getBuild().getSourceDirectory() + File.separator + webreference.getPath() ).getAbsolutePath() );
+            commands.add( "/server" );
         }
-
-        if ( vendor.equals( Vendor.MONO ) )
+        if ( enableDataBinding )
         {
-            if ( serverInterface )
-            {
-                commands.add( "-server" );
-            }
-            if ( ( fields || enableDataBinding || order || sharetypes || verbose ) )
-            {
-                if ( !ignoreUnusedOptions )
-                {
-                    throw new MojoExecutionException( "NPANDAY-1300-005: Illegal Option(s) for Mono" );
-                }
-                else
-                {
-                    getLog().warn(
-                                   "NPANDAY-1300-002: Your pom.xml contains an option that is not supported by MONO: Your application"
-                                       + " artifact will differ dependening on compiler/platform and may have different behavior." );
-                }
-            }
+            commands.add( "/enableDataBinding" );
         }
-        else
+        if ( sharetypes )
         {
-            if ( serverInterface )
-            {
-                commands.add( "/server" );
-            }
-            if ( enableDataBinding )
-            {
-                commands.add( "/enableDataBinding" );
-            }
-            if ( sharetypes )
-            {
-                commands.add( "/sharetypes" );
-            }
-            if ( verbose )
-            {
-                commands.add( "/verbose" );
-            }
-            if ( order )
-            {
-                commands.add( "/order" );
-            }
+            commands.add( "/sharetypes" );
         }
+        if ( verbose )
+        {
+            commands.add( "/verbose" );
+        }
+        if ( order )
+        {
+            commands.add( "/order" );
+        }
+
         return commands;
     }
 
+    private String buildInputFilePath( WebReference webreference )
+    {
+        return new File( outputDirectory, webreference.getPath() ).getAbsolutePath();
+    }
+
+    private String buildOutputFilePath( WebReference webreference )
+    {
+        return new File(
+            new File( outputDirectory, webreference.getOutput() ),
+            getFileNameFor( buildInputFilePath( webreference ) )
+        ).getAbsolutePath();
+    }
+
     private boolean isURL( String path )
     {
         try
@@ -398,7 +424,7 @@ public class WsdlGeneratorMojo
         }
     }
 
-    private void populateServerCommands( List<String> commands, String commandFlag )
+    private void populateServerCommands( List<String> commands )
         throws MojoExecutionException
     {
         if ( server != null )
@@ -429,57 +455,16 @@ public class WsdlGeneratorMojo
                 }
                 if ( !isEmpty( username ) )
                 {
-                    commands.add( commandFlag + "username:" + username );
+                    commands.add( "/username:" + username );
                 }
                 if ( !isEmpty( password ) )
                 {
-                    commands.add( commandFlag + "password:" + password );
+                    commands.add( "/password:" + password );
                 }
             }
         }
     }
 
-    private Vendor getCompilerVendor()
-        throws MojoExecutionException
-    {
-        Vendor vendor;
-        PlatformDetector platformDetector = PlatformDetector.Factory.createDefaultPlatformDetector();
-        if ( isEmpty( netHome ) )
-        {
-            try
-            {
-                vendor = platformDetector.getVendorFor( "wsdl", null );
-            }
-            catch ( PlatformUnsupportedException e )
-            {
-                throw new MojoExecutionException( "NPANDAY-1300-009", e );
-            }
-        }
-        else
-        {
-            File file = new File( netHome );
-            if ( !file.exists() )
-            {
-                throw new MojoExecutionException(
-                                                  "NPANDAY-1300-006: Unable to locate netHome - make sure that it exists:"
-                                                      + " Home = " + netHome );
-            }
-            try
-            {
-                vendor =
-                    platformDetector.getVendorFor( null, new File( file.getAbsolutePath() + File.separator + "bin"
-                        + File.separator + "wsdl" ) );
-            }
-            catch ( PlatformUnsupportedException e )
-            {
-                throw new MojoExecutionException( "NPANDAY-1300-010", e );
-            }
-
-        }
-        getLog().info( "NPANDAY-1300-007: WSDL Vendor found: " + vendor.getVendorName() );
-        return vendor;
-    }
-
     private Proxy getProxyFor( String id )
     {
         for ( Proxy proxy : proxies )

Propchange: incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/npanday/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/npanday/executable-plugins.xml
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/npanday/executable-plugins.xml?rev=1215143&view=auto
==============================================================================
--- incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/npanday/executable-plugins.xml (added)
+++ incubator/npanday/trunk/plugins/maven-wsdl-plugin/src/main/resources/META-INF/npanday/executable-plugins.xml Fri Dec 16 14:22:04 2011
@@ -0,0 +1,74 @@
+<!--
+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.
+-->
+<executablePlugins xmlns="http://npanday.apache.org/executables/1.5.0">
+  <executablePlugin>
+    <identifier>WSDL</identifier>
+    <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass>
+    <vendor>MICROSOFT</vendor>
+    <executable>wsdl</executable>
+    <profile>WSDL</profile>
+    <frameworkVersions>
+      <frameworkVersion>4.0</frameworkVersion>
+      <frameworkVersion>3.5</frameworkVersion>
+      <frameworkVersion>2.0.50727</frameworkVersion>
+    </frameworkVersions>
+    <platforms>
+      <platform>
+        <operatingSystem>Windows</operatingSystem>
+      </platform>
+    </platforms>
+  </executablePlugin>
+  <executablePlugin>
+    <identifier>WSDL</identifier>
+    <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass>
+    <vendor>MONO</vendor>
+    <executable>wsdl2</executable>
+    <profile>WSDL</profile>
+    <frameworkVersions>
+      <frameworkVersion>4.0</frameworkVersion>
+      <frameworkVersion>3.5</frameworkVersion>
+      <frameworkVersion>2.0.50727</frameworkVersion>
+    </frameworkVersions>
+    <platforms>
+      <platform>
+        <operatingSystem>Windows</operatingSystem>
+      </platform>
+      <platform>
+        <operatingSystem>Mac OS X</operatingSystem>
+      </platform>
+      <platform>
+        <operatingSystem>Linux</operatingSystem>
+      </platform>
+      <platform>
+        <operatingSystem>Solaris</operatingSystem>
+      </platform>
+      <platform>
+        <operatingSystem>FreeBSD</operatingSystem>
+      </platform>
+    </platforms>
+    <commandFilter>
+      <excludes>
+        <exclude>enableDataBinding</exclude>
+        <exclude>sharetypes</exclude>
+        <exclude>verbose</exclude>
+        <exclude>order</exclude>
+      </excludes>
+    </commandFilter>
+  </executablePlugin>
+</executablePlugins>