[NPANDAY-203] move MSBuild plugin to use dotnet-msbuild

git-svn-id: https://svn.apache.org/repos/asf/incubator/npanday/trunk@1608662 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/components/dotnet-msbuild/src/main/java/npanday/msbuild/MsbuildInvocationParameters.java b/components/dotnet-msbuild/src/main/java/npanday/msbuild/MsbuildInvocationParameters.java
index 545b3ac..07baa96 100644
--- a/components/dotnet-msbuild/src/main/java/npanday/msbuild/MsbuildInvocationParameters.java
+++ b/components/dotnet-msbuild/src/main/java/npanday/msbuild/MsbuildInvocationParameters.java
@@ -25,6 +25,7 @@
 import npanday.vendor.VendorRequirement;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -40,6 +41,10 @@
 
     private Map<String, String> properties = Maps.newHashMap();
 
+    private String verbosity;
+
+    private List<String> extraArguments = new ArrayList<String>();
+
     public MsbuildInvocationParameters(
         VendorRequirement vendor, File file )
     {
@@ -67,15 +72,37 @@
     {
         List<String> commands = Lists.newArrayList();
 
-        // TODO: support /target, /maxcpucount, /toolsversion, /verbosity
+        // TODO: support /target, /maxcpucount, /toolsversion
+
+        if ( verbosity != null ) {
+            commands.add( "/v:" + verbosity );
+        }
 
         for ( Map.Entry<String, String> propEntry : properties.entrySet() )
         {
             commands.add( "/p:" + propEntry.getKey() + "=" + propEntry.getValue() );
         }
 
+        commands.addAll(extraArguments);
+
         commands.add( file.getAbsolutePath() );
 
         return commands;
     }
+
+    public void setVerbosity(String verbosity) {
+        this.verbosity = verbosity;
+    }
+
+    public String getVerbosity() {
+        return verbosity;
+    }
+
+    public List<String> getExtraArguments() {
+        return extraArguments;
+    }
+
+    public void addExtraArguments(List<String> extraArgs) {
+        extraArguments.addAll(extraArgs);
+    }
 }
diff --git a/components/dotnet-msbuild/src/main/resources/META-INF/npanday/executable-plugins.xml b/components/dotnet-msbuild/src/main/resources/META-INF/npanday/executable-plugins.xml
index c914cdd..d284ad0 100644
--- a/components/dotnet-msbuild/src/main/resources/META-INF/npanday/executable-plugins.xml
+++ b/components/dotnet-msbuild/src/main/resources/META-INF/npanday/executable-plugins.xml
@@ -35,5 +35,12 @@
         <operatingSystem>Windows</operatingSystem>

       </platform>

     </platforms>

+    <probingPaths>

+      <!-- TODO: this should be broken up as CSC is, just means for now you always get newest available tools version, but will target right framework -->

+      <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0@MSBuildToolsPath}</probingPath>

+      <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0@MSBuildToolsPath}</probingPath>

+      <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5@MSBuildToolsPath}</probingPath>

+      <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0@MSBuildToolsPath}</probingPath>

+    </probingPaths>

   </executablePlugin>

 </executablePlugins>

diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/pom.xml b/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/pom.xml
index 2ab6880..90ab9e7 100644
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/pom.xml
+++ b/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/pom.xml
@@ -34,15 +34,7 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.npanday</groupId>
-      <artifactId>dotnet-assembler</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.npanday</groupId>
-      <artifactId>dotnet-executable</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.npanday</groupId>
-      <artifactId>dotnet-plugin</artifactId>
+      <artifactId>dotnet-msbuild</artifactId>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java b/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java
index 9d86a4b..82c0934 100644
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java
+++ b/plugins/netplugins/NPanday.Plugin.Msbuild/javabinding/src/main/java/NPanday/Plugin/Msbuild/MsbuildMojo.java
@@ -27,13 +27,18 @@
 import java.util.Map;
 
 import npanday.LocalRepositoryUtil;
-import npanday.plugin.FieldAnnotation;
+import npanday.PlatformUnsupportedException;
+import npanday.msbuild.MsbuildException;
+import npanday.msbuild.MsbuildInvocationParameters;
+import npanday.msbuild.MsbuildInvoker;
 import npanday.resolver.NPandayDependencyResolution;
+import npanday.vendor.VendorRequirement;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.model.Resource;
+import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
@@ -46,21 +51,9 @@
  * @goal compile
  */
 public class MsbuildMojo
-    extends npanday.plugin.AbstractMojo
+    extends AbstractMojo
 {
     /**
-     * @parameter expression = "${settings.localRepository}"
-     */
-    @FieldAnnotation()
-    public java.lang.String repository;
-
-    /**
-     * @parameter expression = "${project}"
-     */
-    @FieldAnnotation()
-    public org.apache.maven.project.MavenProject mavenProject;
-
-    /**
      * @parameter expression = "${project}"
      */
     private org.apache.maven.project.MavenProject project;
@@ -93,12 +86,7 @@
     /**
      * @component
      */
-    private npanday.executable.NetExecutableFactory netExecutableFactory;
-
-    /**
-     * @component
-     */
-    private npanday.plugin.PluginContext pluginContext;
+    private MsbuildInvoker msbuildInvoker;
 
     /**
      * @parameter default-value=".references"
@@ -108,7 +96,6 @@
     /**
      * @parameter expression="${msbuild.configuration}" default-value="Debug"
      */
-    @FieldAnnotation()
     public String configuration;
 
     /**
@@ -143,77 +130,16 @@
 
     /**
      * @parameter expression="${msbuild.extraArguments}"
+     * @deprecated use {@linkplain #extraArgs}. This does not support quoted strings containing spaces
      */
-    @FieldAnnotation()
     public String extraArguments;
 
     /**
-     * @parameter expression="${plugin.version}"
-     * @required
-     * @readonly
+     * @parameter
      */
-    private String pluginVersion;
+    private List<String> extraArgs;
 
-    public String getMojoArtifactId()
-    {
-        return "NPanday.Plugin.Msbuild";
-    }
-
-    public String getMojoGroupId()
-    {
-        return "org.apache.npanday.plugins";
-    }
-
-    public String getClassName()
-    {
-        return "NPanday.Plugin.Msbuild.MsbuildMojo";
-    }
-
-    public npanday.plugin.PluginContext getNetPluginContext()
-    {
-        return pluginContext;
-    }
-
-    public npanday.executable.NetExecutableFactory getNetExecutableFactory()
-    {
-        return netExecutableFactory;
-    }
-
-    public org.apache.maven.project.MavenProject getMavenProject()
-    {
-        return project;
-    }
-
-    public String getLocalRepository()
-    {
-        return localRepository;
-    }
-
-    public String getVendorVersion()
-    {
-        return vendorVersion;
-    }
-
-    public String getVendor()
-    {
-        return vendor;
-    }
-
-    public String getFrameworkVersion()
-    {
-        return frameworkVersion;
-    }
-
-    /**
-     * The version of the .NET plugin to resolve, will typically match that of the Java wrapper.
-     */
-    @Override
-    protected String getPluginVersion() {
-        return pluginVersion;
-    }
-
-    @Override
-    public boolean preExecute()
+    public final void execute()
         throws MojoExecutionException, MojoFailureException
     {
         Collection<Artifact> requiredArtifacts;
@@ -230,73 +156,84 @@
 
         if ( copyReferences )
         {
-            Map<String,MavenProject> projects = new HashMap<String,MavenProject>();
-            for ( MavenProject p : reactorProjects )
-            {
-                projects.put( ArtifactUtils.versionlessKey( p.getGroupId(), p.getArtifactId() ), p );
-            }
-            getLog().info( "projects = " + projects.keySet() );
+            copyDependencies(requiredArtifacts);
+        }
 
-            for ( Object artifact : requiredArtifacts )
-            {
-                Artifact a = (Artifact) artifact;
-
-                File targetDir;
-                String vKey = ArtifactUtils.versionlessKey( a );
-                if ( !projects.containsKey( vKey ) )
-                {
-                    String path =
-                        a.getGroupId() + "/" + a.getArtifactId() + "-" + a.getBaseVersion();
-                    targetDir = new File( referencesDirectory, path );
-                }
-                else
-                {
-                    // Likely a project reference in MSBuild. 
-                    // If the other project was not built with MSBuild, make sure the artifact is present where it will look for it
-                    // Note: deliberately limited for now - will only work with reactor projects and doesn't test what are references and what are not
-                    File binDir = new File( projects.get( vKey ).getBasedir(), "bin" );
-                    targetDir = new File( binDir, configuration );
-                }
-                File targetFile = new File( targetDir, a.getArtifactId() + "." + a.getArtifactHandler().getExtension() );
-    
-                getLog().info( "Copying reference " + vKey + " to " + targetFile );
-                if ( !targetFile.exists() )
-                {
-                    targetFile.getParentFile().mkdirs();
-
-                    try
-                    {
-                        FileUtils.copyFile( a.getFile(), targetFile );
-                    }
-                    catch ( IOException e )
-                    {
-                        throw new MojoExecutionException(
-                            "Error copying reference from the local repository to .references: " + e.getMessage(), e );
-                    }
-                }
+        File msbuildFile = null;
+        for (String ext : new String[] { "csproj", "vbproj", "ccproj" }) {
+            msbuildFile = new File(project.getBuild().getSourceDirectory(), project.getArtifactId() + "." + ext);
+            if (msbuildFile.exists()) {
+                break;
             }
         }
-        return super.preExecute();
+        if (msbuildFile == null) {
+            throw new MojoFailureException("No MSBuild project file found in the current directory");
+        }
+        MsbuildInvocationParameters params = new MsbuildInvocationParameters(
+                new VendorRequirement(vendor, vendorVersion, frameworkVersion), msbuildFile);
+
+        // must use /v:q here, as /v:m and above report the csc command, that includes '/errorprompt', which
+        // erroneously triggers the NPANDAY-063-001 error
+        params.setVerbosity("q");
+
+        // BuildingInsideVisualStudio is required to avoid building project references on framework 2.0
+        params.setProperty("BuildProjectReferences", "false");
+        params.setProperty("BuildingInsideVisualStudio", "true");
+
+        if (configuration != null) {
+            params.setProperty("Configuration", configuration);
+        }
+
+        if (extraArguments != null) {
+            params.addExtraArguments(Arrays.asList(extraArguments.split(" ")));
+        }
+        if (extraArgs != null) {
+            params.addExtraArguments(extraArgs);
+        }
+
+        try {
+            msbuildInvoker.invoke(params);
+        } catch (PlatformUnsupportedException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        } catch (MsbuildException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
+        }
+
+        // #12549 - add resources generated by MSBuild to the project
+        String directory = getMSBuildOutputDirectory();
+
+        addGeneratedResources(directory);
+
+        addGeneratedSources(directory);
+
+        if (attachXBAP) {
+            attachXBAPArtifact(directory);
+        }
     }
 
-    @Override
-    public void postExecute()
-        throws MojoExecutionException, MojoFailureException
-    {
-        // #12549 - add resources generated by MSBuild to the project
+    private String getMSBuildOutputDirectory() {
         String directory = new File( project.getBasedir(), "obj" ).getAbsolutePath();
         if ( platform != null )
         {
             directory += "/" + platform;
         }
         directory += "/" + configuration;
+        return directory;
+    }
 
-        getLog().info( "Adding resources from " + directory + " generated by MSBuild" );
-        Resource resource = new Resource();
-        resource.setDirectory( directory );
-        resource.addInclude( "**/*.resources" );
-        project.addResource( resource );
+    private void attachXBAPArtifact(String directory) {
+        projectHelper.attachArtifact(project, "xbap", new File(directory, project.getArtifactId() + ".xbap"));
+        File manifest = new File(directory, project.getArtifactId() + ".exe.manifest");
+        if (manifest.exists()) {
+            getLog().info("Attaching manifest: " + manifest);
+            projectHelper.attachArtifact(project, "exe.manifest", manifest);
+        }
+        else {
+            getLog().debug("Manifest not found: " + manifest);
+        }
+    }
 
+    private void addGeneratedSources(String directory) throws MojoExecutionException {
         if ( new File( directory ).exists() ) {
             // Pick up generated source patterns to compile
             DirectoryScanner scanner = new DirectoryScanner();
@@ -315,7 +252,7 @@
                     File dest = new File( generatedSourcesDirectory, f );
                     dest.getParentFile().mkdirs();
                     try {
-                        FileUtils.copyFile( src, dest );
+                        FileUtils.copyFile(src, dest);
                     } catch (IOException e) {
                         throw new MojoExecutionException("Unable to copy source file: " + e.getLocalizedMessage(), e);
                     }
@@ -323,23 +260,61 @@
                 project.addCompileSourceRoot( generatedSourcesDirectory.getAbsolutePath() );
             }
         }
-
-        if (attachXBAP) {
-            projectHelper.attachArtifact(project, "xbap", new File(directory, project.getArtifactId() + ".xbap"));
-            File manifest = new File(directory, project.getArtifactId() + ".exe.manifest");
-            if (manifest.exists()) {
-                getLog().info("Attaching manifest: " + manifest);
-                projectHelper.attachArtifact(project, "exe.manifest", manifest);
-            }
-            else {
-                getLog().debug("Manifest not found: " + manifest);
-            }
-        }
-        super.postExecute();
     }
 
-    public ArtifactFactory getArtifactFactory()
-    {
-        return artifactFactory;
+    private void addGeneratedResources(String directory) {
+        getLog().info( "Adding resources from " + directory + " generated by MSBuild" );
+        Resource resource = new Resource();
+        resource.setDirectory( directory );
+        resource.addInclude( "**/*.resources" );
+        project.addResource( resource );
+    }
+
+    private void copyDependencies(Collection<Artifact> requiredArtifacts) throws MojoExecutionException {
+        Map<String,MavenProject> projects = new HashMap<String,MavenProject>();
+        for ( MavenProject p : reactorProjects )
+        {
+            projects.put( ArtifactUtils.versionlessKey(p.getGroupId(), p.getArtifactId()), p );
+        }
+        getLog().info( "projects = " + projects.keySet() );
+
+        for ( Object artifact : requiredArtifacts )
+        {
+            Artifact a = (Artifact) artifact;
+
+            File targetDir;
+            String vKey = ArtifactUtils.versionlessKey( a );
+            if ( !projects.containsKey( vKey ) )
+            {
+                String path =
+                    a.getGroupId() + "/" + a.getArtifactId() + "-" + a.getBaseVersion();
+                targetDir = new File( referencesDirectory, path );
+            }
+            else
+            {
+                // Likely a project reference in MSBuild.
+                // If the other project was not built with MSBuild, make sure the artifact is present where it will look for it
+                // Note: deliberately limited for now - will only work with reactor projects and doesn't test what are references and what are not
+                File binDir = new File( projects.get( vKey ).getBasedir(), "bin" );
+                targetDir = new File( binDir, configuration );
+            }
+            File targetFile = new File( targetDir, a.getArtifactId() + "." + a.getArtifactHandler().getExtension() );
+
+            getLog().info( "Copying reference " + vKey + " to " + targetFile );
+            if ( !targetFile.exists() )
+            {
+                targetFile.getParentFile().mkdirs();
+
+                try
+                {
+                    FileUtils.copyFile(a.getFile(), targetFile);
+                }
+                catch ( IOException e )
+                {
+                    throw new MojoExecutionException(
+                        "Error copying reference from the local repository to .references: " + e.getMessage(), e );
+                }
+            }
+        }
     }
 }
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/pom.xml b/plugins/netplugins/NPanday.Plugin.Msbuild/pom.xml
deleted file mode 100644
index f3e1cab..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.apache.npanday.plugins</groupId>
-    <version>1.5.0-incubating-SNAPSHOT</version>
-    <artifactId>npanday.plugins</artifactId>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>NPanday.Plugin.Msbuild</artifactId>
-  <packaging>dotnet-maven-plugin</packaging>
-  <name>NPanday :: Msbuild Plugin</name>
-  <description>Maven Plugin for .NET: Generates needed files for WPF and WCF projects</description>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.npanday</groupId>
-      <artifactId>NPanday.Artifact</artifactId>
-      <version>1.5.0-incubating-SNAPSHOT</version>
-      <type>dotnet-library</type>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.npanday</groupId>
-      <artifactId>NPanday.Model.AutomationExtensibility</artifactId>
-      <version>1.5.0-incubating-SNAPSHOT</version>
-      <type>dotnet-library</type>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.npanday.plugins</groupId>
-      <artifactId>NPanday.Plugin</artifactId>
-      <version>1.5.0-incubating-SNAPSHOT</version>
-      <type>dotnet-library</type>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.npanday</groupId>
-      <artifactId>NPanday.Model.Pom</artifactId>
-      <version>1.5.0-incubating-SNAPSHOT</version>
-      <type>dotnet-library</type>
-    </dependency>
-  </dependencies>
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.rat</groupId>
-          <artifactId>apache-rat-plugin</artifactId>
-          <configuration>
-            <excludes>
-              <exclude>javabinding/target/**</exclude>
-              <exclude>**/*.iml</exclude>
-              <exclude>**/*.sln</exclude>
-
-              <!-- TODO: generate these to target instead -->
-              <exclude>src/main/java/**</exclude>
-              <exclude>pom-java.xml</exclude>
-            </excludes>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
- </project>
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample.sln b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample.sln
deleted file mode 100644
index 2d72ee1..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfApplicationExample", "WpfApplicationExample\WpfApplicationExample.csproj", "{D9783B45-E511-4C27-9C5D-27A72D0314EA}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{D9783B45-E511-4C27-9C5D-27A72D0314EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D9783B45-E511-4C27-9C5D-27A72D0314EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D9783B45-E511-4C27-9C5D-27A72D0314EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D9783B45-E511-4C27-9C5D-27A72D0314EA}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/App.xaml b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/App.xaml
deleted file mode 100644
index b41740d..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/App.xaml
+++ /dev/null
@@ -1,26 +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.
--->
-<Application x:Class="WpfApplicationExample.App"
-    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    StartupUri="Window1.xaml">
-    <Application.Resources>
-         
-    </Application.Resources>
-</Application>
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/App.xaml.cs b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/App.xaml.cs
deleted file mode 100644
index 0d90567..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/App.xaml.cs
+++ /dev/null
@@ -1,32 +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.
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Windows;
-
-namespace WpfApplicationExample
-{
-    /// <summary>
-    /// Interaction logic for App.xaml
-    /// </summary>
-    public partial class App : Application
-    {
-    }
-}
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/AssemblyInfo.cs b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/AssemblyInfo.cs
deleted file mode 100644
index a1173b9..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,71 +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.
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("WpfApplicationExample")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("American Express Inc.")]
-[assembly: AssemblyProduct("WpfApplicationExample")]
-[assembly: AssemblyCopyright("Copyright © American Express Inc. 2009")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set 
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>.  For example, if you are using US english
-//in your source files, set the <UICulture> to en-US.  Then uncomment
-//the NeutralResourceLanguage attribute below.  Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
-    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
-    //(used if a resource is not found in the page, 
-    // or application resource dictionaries)
-    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
-    //(used if a resource is not found in the page, 
-    // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers 
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Resources.Designer.cs b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Resources.Designer.cs
deleted file mode 100644
index fbea733..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,87 +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.
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:2.0.50727.3053
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace WpfApplicationExample.Properties
-{
-
-
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources
-    {
-
-        private static global::System.Resources.ResourceManager resourceMan;
-
-        private static global::System.Globalization.CultureInfo resourceCulture;
-
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources()
-        {
-        }
-
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager
-        {
-            get
-            {
-                if ((resourceMan == null))
-                {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WpfApplicationExample.Properties.Resources", typeof(Resources).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture
-        {
-            get
-            {
-                return resourceCulture;
-            }
-            set
-            {
-                resourceCulture = value;
-            }
-        }
-    }
-}
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Resources.resx b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Resources.resx
deleted file mode 100644
index a0db316..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Resources.resx
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
\ No newline at end of file
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Settings.Designer.cs b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Settings.Designer.cs
deleted file mode 100644
index e13dcaf..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,46 +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.
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:2.0.50727.3053
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace WpfApplicationExample.Properties
-{
-
-
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
-    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
-    {
-
-        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
-        public static Settings Default
-        {
-            get
-            {
-                return defaultInstance;
-            }
-        }
-    }
-}
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Settings.settings b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Settings.settings
deleted file mode 100644
index 7342699..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Properties/Settings.settings
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
-  <Profiles>
-    <Profile Name="(Default)" />
-  </Profiles>
-  <Settings />
-</SettingsFile>
\ No newline at end of file
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Window1.xaml b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Window1.xaml
deleted file mode 100644
index 0cb1712..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Window1.xaml
+++ /dev/null
@@ -1,26 +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.
--->
-<Window x:Class="WpfApplicationExample.Window1"
-    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    Title="Window1" Height="300" Width="300">
-    <Grid>
-        
-    </Grid>
-</Window>
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Window1.xaml.cs b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Window1.xaml.cs
deleted file mode 100644
index b79f253..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/Window1.xaml.cs
+++ /dev/null
@@ -1,43 +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.
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-
-namespace WpfApplicationExample
-{
-    /// <summary>
-    /// Interaction logic for Window1.xaml
-    /// </summary>
-    public partial class Window1 : Window
-    {
-        public Window1()
-        {
-            InitializeComponent();
-        }
-    }
-}
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/WpfApplicationExample.csproj b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/WpfApplicationExample.csproj
deleted file mode 100644
index edc84bc..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/WpfApplicationExample.csproj
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.30729</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{D9783B45-E511-4C27-9C5D-27A72D0314EA}</ProjectGuid>
-    <OutputType>WinExe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>WpfApplicationExample</RootNamespace>
-    <AssemblyName>WpfApplicationExample</AssemblyName>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Xml.Linq">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Data.DataSetExtensions">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-    <Reference Include="WindowsBase" />
-    <Reference Include="PresentationCore" />
-    <Reference Include="PresentationFramework" />
-  </ItemGroup>
-  <ItemGroup>
-    <ApplicationDefinition Include="App.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </ApplicationDefinition>
-    <Page Include="Window1.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-    <Compile Include="App.xaml.cs">
-      <DependentUpon>App.xaml</DependentUpon>
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Window1.xaml.cs">
-      <DependentUpon>Window1.xaml</DependentUpon>
-      <SubType>Code</SubType>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Properties\AssemblyInfo.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Resources.resx</DependentUpon>
-    </Compile>
-    <Compile Include="Properties\Settings.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DependentUpon>Settings.settings</DependentUpon>
-      <DesignTimeSharedInput>True</DesignTimeSharedInput>
-    </Compile>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-    <None Include="Properties\Settings.settings">
-      <Generator>SettingsSingleFileGenerator</Generator>
-      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
-    </None>
-    <AppDesigner Include="Properties\" />
-  </ItemGroup>
-  <ItemGroup>
-    <WebReferences Include="Web References\" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/pom.xml b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/pom.xml
deleted file mode 100644
index 127e998..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/WpfApplicationExample/pom.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://maven.apache.org/POM/4.0.0">
-  <parent>
-    <artifactId>WpfApplicationExample-parent</artifactId>
-    <groupId>G2ix.WpfApplicationExample</groupId>
-    <version>1.0-SNAPSHOT</version>
-    <relativePath>..\pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>WpfApplicationExample</artifactId>
-  <packaging>dotnet-executable</packaging>
-  <name>G2ix.WpfApplicationExample : WpfApplicationExample</name>
-  <build>
-    <sourceDirectory>./</sourceDirectory>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.npanday.plugins</groupId>
-        <artifactId>maven-compile-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <frameworkVersion>3.5</frameworkVersion>
-          <includeSources>
-            <includeSource>App.xaml.cs</includeSource>
-            <includeSource>Window1.xaml.cs</includeSource>
-            <includeSource>Properties\AssemblyInfo.cs</includeSource>
-            <includeSource>Properties\Resources.Designer.cs</includeSource>
-            <includeSource>Properties\Settings.Designer.cs</includeSource>
-          </includeSources>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.npanday.plugins</groupId>
-        <artifactId>NPanday.Plugin.Msbuild.JavaBinding</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.npanday.plugins</groupId>
-        <extensions>true</extensions>
-        <configuration>
-          <embeddedResources>
-            <embeddedResource>
-              <sourceFile>Properties\Resources.resx</sourceFile>
-              <name>WpfApplicationExample.Properties.Resources</name>
-            </embeddedResource>
-          </embeddedResources>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-  <dependencies>
-    <dependency>
-      <groupId>WindowsBase</groupId>
-      <artifactId>WindowsBase</artifactId>
-      <version>3.0.0.0</version>
-      <type>gac_msil</type>
-      <classifier>31bf3856ad364e35</classifier>
-      <scope>system</scope>
-      <systemPath>C:\WINDOWS\assembly\GAC_MSIL\WindowsBase\3.0.0.0__31bf3856ad364e35\WindowsBase.dll</systemPath>
-    </dependency>
-    <dependency>
-      <groupId>PresentationCore</groupId>
-      <artifactId>PresentationCore</artifactId>
-      <version>3.0.0.0</version>
-      <type>gac_32</type>
-      <classifier>31bf3856ad364e35</classifier>
-      <scope>system</scope>
-      <systemPath>C:\WINDOWS\assembly\GAC_32\PresentationCore\3.0.0.0__31bf3856ad364e35\PresentationCore.dll</systemPath>
-    </dependency>
-    <dependency>
-      <groupId>PresentationFramework</groupId>
-      <artifactId>PresentationFramework</artifactId>
-      <version>3.0.0.0</version>
-      <type>gac_msil</type>
-      <classifier>31bf3856ad364e35</classifier>
-      <scope>system</scope>
-      <systemPath>C:\WINDOWS\assembly\GAC_MSIL\PresentationFramework\3.0.0.0__31bf3856ad364e35\PresentationFramework.dll</systemPath>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/pom.xml b/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/pom.xml
deleted file mode 100644
index 3d4c768..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/it/IT001/pom.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://maven.apache.org/POM/4.0.0">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>G2ix.WpfApplicationExample</groupId>
-  <artifactId>WpfApplicationExample-parent</artifactId>
-  <packaging>pom</packaging>
-  <name>G2ix.WpfApplicationExample : WpfApplicationExample-parent</name>
-  <version>1.0-SNAPSHOT</version>
-  <modules>
-    <module>WpfApplicationExample</module>
-  </modules>
-</project>
\ No newline at end of file
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/main/csharp/NPanday.Plugin.Msbuild.csproj b/plugins/netplugins/NPanday.Plugin.Msbuild/src/main/csharp/NPanday.Plugin.Msbuild.csproj
deleted file mode 100644
index 3896e8b..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/main/csharp/NPanday.Plugin.Msbuild.csproj
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
-  <PropertyGroup>
-    <ProjectGuid>{355BEB02-E608-44B7-A34F-782086401BCA}</ProjectGuid>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <RootNameSpace>NPanday.Plugin.Msbuild</RootNameSpace>
-    <AssemblyName>NPanday.Plugin.Msbuild</AssemblyName>
-    <BaseIntermediateOutputPath>..\..\..\target\obj\</BaseIntermediateOutputPath>
-    <OutputType>Library</OutputType>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
-  </PropertyGroup>
-  <PropertyGroup>
-    <OutputPath>..\..\..\target\</OutputPath>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
-    <OutputPath>..\..\..\target\</OutputPath>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="NPanday.Model.Pom, Version=1.5.0.0, Culture=neutral, PublicKeyToken=4b435f4d76e2f0e6, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\..\..\..\dotnet\assemblies\NPanday.Model.Pom\target\NPanday.Model.Pom.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="NPanday\Plugin\Msbuild\MsbuildMojo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\..\..\..\..\dotnet\assemblies\NPanday.Artifact\src\main\csharp\NPanday.Artifact.csproj">
-      <Project>{701803D4-90F5-44D7-919D-4844FEB7F936}</Project>
-      <Name>NPanday.Artifact</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\dotnet\assemblies\NPanday.Plugin\src\main\csharp\NPanday.Plugin.csproj">
-      <Project>{B760D54F-22AC-43E7-A0A6-DE313D4663AF}</Project>
-      <Name>NPanday.Plugin</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
-</Project>
diff --git a/plugins/netplugins/NPanday.Plugin.Msbuild/src/main/csharp/NPanday/Plugin/Msbuild/MsbuildMojo.cs b/plugins/netplugins/NPanday.Plugin.Msbuild/src/main/csharp/NPanday/Plugin/Msbuild/MsbuildMojo.cs
deleted file mode 100644
index e27bb38..0000000
--- a/plugins/netplugins/NPanday.Plugin.Msbuild/src/main/csharp/NPanday/Plugin/Msbuild/MsbuildMojo.cs
+++ /dev/null
@@ -1,108 +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.
-//
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Xml;
-using System.Xml.Serialization;
-using System.Diagnostics;
-using Microsoft.Win32;
-
-using NPanday.Plugin;
-using NPanday.Model.Pom;
-using NPanday.Artifact;
-using System.Reflection;
-
-namespace NPanday.Plugin.Msbuild
-{
-    /// <summary>
-    /// C# Plugin that will generate the required system reference .dlls
-    /// </summary>
-    [ClassAttribute(Phase = "validate", Goal = "compile")]
-    public sealed class MsbuildMojo : AbstractMojo
-    {
-
-        public MsbuildMojo()
-        {
-        }
-
-        
-        [FieldAttribute("mavenProject", Expression = "${project}", Type = "org.apache.maven.project.MavenProject")]
-        public NPanday.Model.Pom.Model mavenProject;
-
-        [FieldAttribute("extraArguments", Expression = "${msbuild.extraArguments}", Type = "java.lang.String")]
-        public string extraArguments;
-
-        [FieldAttribute("configuration", Expression = "${msbuild.configuration}", Type = "java.lang.String")]
-        public string configuration;
-
-        public override Type GetMojoImplementationType()
-        {
-            return this.GetType();
-        }
-
-        public override void Execute()
-        {
-            if(mavenProject==null)
-            {
-                throw new Exception( "Maven project could not be found by the MSBuild plugin" );
-            }
-            else
-            {
-                Directory.SetCurrentDirectory(mavenProject.build.sourceDirectory);
-            
-                string projectName = mavenProject.artifactId;
-
-                string[] exts = new string[] { "csproj", "vbproj", "ccproj" };
-                foreach (string ext in exts)
-                {
-                    if (File.Exists(projectName + "." + ext))
-                    {
-                        projectName += "." + ext;
-                        break;
-                    }
-                }
-
-                // must use /v:q here, as /v:m and above report the csc command, that includes '/errorprompt', which
-                // erroneously triggers the NPANDAY-063-001 error
-                // BuildingInsideVisualStudio is required to avoid building project references on framework 2.0
-                string args = "/v:q /p:BuildProjectReferences=false /p:BuildingInsideVisualStudio=true";
-                if (!string.IsNullOrEmpty(configuration))
-                {
-                    args += " /p:Configuration=" + configuration;
-                }
-                if (!string.IsNullOrEmpty(extraArguments))
-                {
-                    args += " " + extraArguments;
-                }
-                Console.WriteLine("[INFO] Executing MsBuild Plugin with arguments " + args);
-
-                ProcessStartInfo processStartInfo = new ProcessStartInfo("msbuild", args + " " + projectName);
-                processStartInfo.UseShellExecute = false;
-                Process p = System.Diagnostics.Process.Start(processStartInfo);
-                p.WaitForExit();
-                if ( p.ExitCode != 0 )
-                {
-                    throw new Exception( "MSBuild exited with code: " + p.ExitCode );
-                }
-            }
-        }
-    }
-}