You are viewing a plain text version of this content. The canonical link for it is here.
Posted to nmaven-commits@incubator.apache.org by si...@apache.org on 2007/05/01 18:32:44 UTC

svn commit: r534187 - in /incubator/nmaven/branches/SI_XPT: ./ assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven/Plugin/MojoGenerator/ assemblies/NMaven.Plugin/src/main/csharp/NMaven/Plugin/Generator/ components/dotnet-core/src/main/resourc...

Author: sisbell
Date: Tue May  1 11:32:43 2007
New Revision: 534187

URL: http://svn.apache.org/viewvc?view=rev&rev=534187
Log:
Converted settings executable into plugin.

Added:
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/NMaven.Plugin.Settings.sln
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/Plugin/Settings/SettingsGeneratorMojo.cs
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/java/NMaven/Plugin/Settings/SettingsGeneratorMojo.java   (with props)
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/site/
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/site/site.xml   (with props)
Removed:
    incubator/nmaven/branches/SI_XPT/plugins/maven-settings-plugin/
Modified:
    incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven/Plugin/MojoGenerator/Generator.cs
    incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin/src/main/csharp/NMaven/Plugin/Generator/JavaClassUnmarshaller.cs
    incubator/nmaven/branches/SI_XPT/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml
    incubator/nmaven/branches/SI_XPT/components/dotnet-plugin/src/main/java/org/apache/maven/dotnet/plugin/AbstractMojo.java
    incubator/nmaven/branches/SI_XPT/maven-dotnet.iml
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom-java.xml
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom.xml
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/NMaven.Plugin.Settings.csproj
    incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionMojo.cs
    incubator/nmaven/branches/SI_XPT/plugins/maven-compile-plugin/src/main/resources/META-INF/plexus/components.xml

Modified: incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven/Plugin/MojoGenerator/Generator.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven/Plugin/MojoGenerator/Generator.cs?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven/Plugin/MojoGenerator/Generator.cs (original)
+++ incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin.MojoGenerator/src/main/csharp/NMaven/Plugin/MojoGenerator/Generator.cs Tue May  1 11:32:43 2007
@@ -69,7 +69,7 @@
 		/// <param name="applicationDomain">
 		/// the application domain used to create the specified mojo name instance</param>
 		/// <returns>an instance of the specified mojo name within the specified application domain</returns>
-		internal void BuildPluginProject(AppDomain applicationDomain, FileInfo pluginArtifact, 
+		internal int BuildPluginProject(AppDomain applicationDomain, FileInfo pluginArtifact, 
 		                                FileInfo outputDirectory, string groupId, string artifactId, 
 		                                string version)
 		{
@@ -84,6 +84,13 @@
 			DirectoryInfo sourceDirectory = new DirectoryInfo(@outputDirectory.FullName + "/src/main/java/" 
 			                                                  + artifactId.Replace('.', '/'));
 			sourceDirectory.Create();
+			if(javaClasses.Count == 0)
+			{
+				Console.WriteLine("NMAVEN-000-000: There are no Mojos within the assembly: Artifact Id = " 
+				                  + artifactId);
+				return 1;
+			}
+			
 			foreach(JavaClass javaClass in javaClasses)
 			{
 				string[] tokens = javaClass.ClassName.Split(delim);
@@ -107,9 +114,10 @@
 			FileInfo outputPomXml = new FileInfo(@outputDirectory.FullName + "/pom-java.xml");
 			TextWriter textWriter = new StreamWriter(@outputPomXml.FullName);
 			serializer.Serialize(textWriter, model);
+			return 0;
 		}
 		
-		public static void Main(string[] args)
+		public static int Main(string[] args)
 		{
 		
 			string targetAssemblyFile = GetArgFor("targetAssemblyFile", args);
@@ -119,12 +127,12 @@
 			string artifactId = GetArgFor("artifactId", args);
 			string version = GetArgFor("artifactVersion", args); 
 			
-			Console.WriteLine("targetAssemblyFile = {0}, outputDirectory = {1}, pluginArtifactPath = {2}, version = {3}", 
-			                  targetAssemblyFile, outputDirectory, pluginArtifactPath, version);
+			//Console.WriteLine("targetAssemblyFile = {0}, outputDirectory = {1}, pluginArtifactPath = {2}, version = {3}", 
+			//                  targetAssemblyFile, outputDirectory, pluginArtifactPath, version);
 			Generator generator = new Generator();
 			AppDomain applicationDomain = 
 				generator.GetApplicationDomainFor(new FileInfo(targetAssemblyFile));
-			generator.BuildPluginProject(applicationDomain, new FileInfo(pluginArtifactPath), 
+			return generator.BuildPluginProject(applicationDomain, new FileInfo(pluginArtifactPath), 
 			                             new FileInfo(outputDirectory), 
 			                             groupId, artifactId, version);
 		}

Modified: incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin/src/main/csharp/NMaven/Plugin/Generator/JavaClassUnmarshaller.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin/src/main/csharp/NMaven/Plugin/Generator/JavaClassUnmarshaller.cs?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin/src/main/csharp/NMaven/Plugin/Generator/JavaClassUnmarshaller.cs (original)
+++ incubator/nmaven/branches/SI_XPT/assemblies/NMaven.Plugin/src/main/csharp/NMaven/Plugin/Generator/JavaClassUnmarshaller.cs Tue May  1 11:32:43 2007
@@ -39,7 +39,6 @@
 			
 		public List<JavaClass> GetMojosFor(string assemblyName, string groupId)
 		{
-			Console.WriteLine("Print ...");
 			List<JavaClass> javaClasses = new List<JavaClass>();
 			Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
 			foreach(Assembly assembly in assemblies)
@@ -50,7 +49,7 @@
 					Type[] types = assembly.GetTypes();
 					foreach(Type type in types)
 					{
-						String baseName = type.BaseType.Name;//.Equals("NMaven.Plugin.AbstractMojo");
+						String baseName = type.BaseType.Name;
 						if(baseName.Equals("AbstractMojo"))
 						{
 							JavaClass javaClass = convert(type, groupId);
@@ -102,6 +101,8 @@
 	        }
         	
         	//mojo parameters
+        	javaFields.Add(CreateJavaField("private", "org.apache.maven.project.MavenProject", "project",  
+        	                               CreateMojoComment("${project}"), null));        	
         	javaFields.Add(CreateJavaField("private", "String", "localRepository",  
         	                               CreateMojoComment("${settings.localRepository}"), null));
         	javaFields.Add(CreateJavaField("private", "String", "vendor",  
@@ -143,7 +144,7 @@
         	                                 CreateCodeWithSimpleReturnType("netExecutableFactory"))); 
         	                                
         	javaMethods.Add(CreateJavaMethod("public", "org.apache.maven.project.MavenProject", "getMavenProject", 
-        	                                 CreateCodeWithSimpleReturnType("mavenProject"))); 
+        	                                 CreateCodeWithSimpleReturnType("project"))); 
         	                                
         	javaMethods.Add(CreateJavaMethod("public", "String", "getLocalRepository", 
         	                                 CreateCodeWithSimpleReturnType("localRepository")));  

Modified: incubator/nmaven/branches/SI_XPT/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml (original)
+++ incubator/nmaven/branches/SI_XPT/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml Tue May  1 11:32:43 2007
@@ -10,7 +10,7 @@
     <groupId>NMaven.Plugin</groupId>
     <artifactId>NMaven.Plugin.Settings</artifactId>
     <version>0.14</version>
-    <type>exe</type>
+    <type>netplugin</type>
   </netDependency>
   <netDependency>
     <groupId>NMaven.Plugin</groupId>

Modified: incubator/nmaven/branches/SI_XPT/components/dotnet-plugin/src/main/java/org/apache/maven/dotnet/plugin/AbstractMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/components/dotnet-plugin/src/main/java/org/apache/maven/dotnet/plugin/AbstractMojo.java?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/components/dotnet-plugin/src/main/java/org/apache/maven/dotnet/plugin/AbstractMojo.java (original)
+++ incubator/nmaven/branches/SI_XPT/components/dotnet-plugin/src/main/java/org/apache/maven/dotnet/plugin/AbstractMojo.java Tue May  1 11:32:43 2007
@@ -64,6 +64,11 @@
     public final void execute()
         throws MojoExecutionException, MojoFailureException
     {
+        if ( !preExecute() )
+        {
+            return;
+        }
+
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         DocumentBuilder builder;
         try
@@ -158,7 +163,6 @@
         document.appendChild( root );
 
         Set<Field> fields = getAnnotatedFieldsFrom( this.getClass().getDeclaredFields() );
-        // Set<Class> appenderClasses = getConfigurationAppenderClasses();
         for ( Field field : fields )
         {
             ConfigurationAppender configurationAppender = getNetPluginContext().getConfigurationAppenderFor( field );
@@ -211,5 +215,14 @@
     public abstract String getVendorVersion();
 
     public abstract String getFrameworkVersion();
+
+    /**
+     * Override this method for pre-execution commands.
+     */
+    public boolean preExecute()
+        throws MojoExecutionException, MojoFailureException
+    {
+        return true;
+    }
 
 }

Modified: incubator/nmaven/branches/SI_XPT/maven-dotnet.iml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/maven-dotnet.iml?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/maven-dotnet.iml (original)
+++ incubator/nmaven/branches/SI_XPT/maven-dotnet.iml Tue May  1 11:32:43 2007
@@ -61,12 +61,13 @@
       <sourceFolder url="file://$MODULE_DIR$/integration-tests/tests/it0022/src/main/csharp" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/integration-tests/tests/it0025/it/test1/src/main/csharp" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/net-plugins/NMaven.Plugin.Generator/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/plugins/NMaven.Plugin.Settings/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-archetype-plugin/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-compile-plugin/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-compile-plugin/src/main/resources" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/plugins/maven-mojo-generator-plugin/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-install-plugin/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-link-plugin/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/plugins/maven-mojo-generator-plugin/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-resgen-plugin/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-resolver-plugin/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/plugins/maven-sdaddin-plugin/src/main/java" isTestSource="false" />

Added: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/NMaven.Plugin.Settings.sln
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/NMaven.Plugin.Settings.sln?view=auto&rev=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/NMaven.Plugin.Settings.sln (added)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/NMaven.Plugin.Settings.sln Tue May  1 11:32:43 2007
@@ -0,0 +1,16 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# SharpDevelop 2.0.0.1710
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NMaven.Plugin.Settings", "src\main\csharp\NMaven.Plugin.Settings.csproj", "{34c7738a-d98c-4cf8-bb48-9b41fee3774e}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{34C7738A-D98C-4CF8-BB48-9B41FEE3774E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{34C7738A-D98C-4CF8-BB48-9B41FEE3774E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{34C7738A-D98C-4CF8-BB48-9B41FEE3774E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{34C7738A-D98C-4CF8-BB48-9B41FEE3774E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+	EndGlobalSection
+EndGlobal

Modified: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom-java.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom-java.xml?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom-java.xml (original)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom-java.xml Tue May  1 11:32:43 2007
@@ -39,4 +39,11 @@
       <version>0.14-SNAPSHOT</version>
     </dependency>
   </dependencies>
+  <distributionManagement>
+    <site>
+      <id>nmaven-apache-site</id>
+      <name>NMaven Site</name>
+      <url>file://${basedir}/../../../www/plugins/maven-settings-plugin</url>
+    </site>
+  </distributionManagement>  
 </project>

Modified: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom.xml?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom.xml (original)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/pom.xml Tue May  1 11:32:43 2007
@@ -25,15 +25,15 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>NMaven.Plugin</groupId>
   <artifactId>NMaven.Plugin.Settings</artifactId>
-  <packaging>exe</packaging>
+  <packaging>netplugin</packaging>
   <version>0.14</version>
   <name>NMaven.Plugin.Settings</name>
   <dependencies>
     <dependency>
-      <groupId>NUnit</groupId>
-      <artifactId>NUnit.Framework</artifactId>
-      <version>2.2.8.0</version>
+      <groupId>NMaven.Plugin</groupId>
+      <artifactId>NMaven.Plugin</artifactId>
       <type>library</type>
+      <version>0.14</version>
     </dependency>
   </dependencies>
   <profiles>

Modified: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/NMaven.Plugin.Settings.csproj
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/NMaven.Plugin.Settings.csproj?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/NMaven.Plugin.Settings.csproj (original)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/NMaven.Plugin.Settings.csproj Tue May  1 11:32:43 2007
@@ -1,4 +1,4 @@
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <ProjectGuid>{34c7738a-d98c-4cf8-bb48-9b41fee3774e}</ProjectGuid>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -6,8 +6,6 @@
     <AssemblyName>NMaven.Plugin.Settings</AssemblyName>
     <BaseIntermediateOutputPath>..\..\..\target\obj\</BaseIntermediateOutputPath>
     <OutputType>Exe</OutputType>
-  </PropertyGroup>
-  <PropertyGroup>
     <OutputPath>..\..\..\target\bin\Debug\</OutputPath>
   </PropertyGroup>
   <ItemGroup>
@@ -18,14 +16,13 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="Plugin" />
-    <Folder Include="Plugin\Settings" />
-  </ItemGroup>
-  <ItemGroup>
     <Compile Include="Plugin\Settings\ExecutionException.cs" />
     <Compile Include="Plugin\Settings\nmavenSettings.cs" />
-    <Compile Include="Plugin\Settings\SettingsGenerator.cs" />
+    <Compile Include="Plugin\Settings\SettingsGeneratorMojo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Plugin" />
+    <Folder Include="Plugin\Settings" />
   </ItemGroup>
-  <ItemGroup />
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
 </Project>

Added: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/Plugin/Settings/SettingsGeneratorMojo.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/Plugin/Settings/SettingsGeneratorMojo.cs?view=auto&rev=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/Plugin/Settings/SettingsGeneratorMojo.cs (added)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/csharp/Plugin/Settings/SettingsGeneratorMojo.cs Tue May  1 11:32:43 2007
@@ -0,0 +1,293 @@
+//
+// 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.IO;
+using System.Collections;
+using System.Xml.Serialization;
+using Microsoft.Win32;
+
+using NMaven.Plugin;
+
+namespace NMaven.Plugin.Settings
+{
+	[Serializable]
+    [ClassAttribute(Phase = "validate", Goal = "generate-settings")]
+	public sealed class SettingsGeneratorMojo : AbstractMojo
+    {
+        public SettingsGeneratorMojo() { }
+
+		public override Type GetMojoImplementationType()
+		{
+			return this.GetType();
+		}
+
+        public override void Execute()
+        {
+        	string outputFile = Environment.GetEnvironmentVariable("HOMEPATH") + "/.m2/nmaven-settings.xml";
+            XmlSerializer serializer = new XmlSerializer(typeof(nmavenSettings));
+
+            nmavenSettings  settings = new nmavenSettings();
+            settings.operatingSystem = Environment.OSVersion.ToString();
+
+            RegistryKey monoRegistryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Novell\Mono");
+            RegistryKey microsoftRegistryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\.NETFramework");
+
+            string defaultMonoCLR = (monoRegistryKey != null) ? (string) monoRegistryKey.GetValue("DefaultCLR") : null;
+
+            settings.defaultSetup = GetDefaultSetup(defaultMonoCLR,
+                (string) microsoftRegistryKey.GetValue("InstallRoot"));
+
+            nmavenSettingsVendorsVendor[] microsoftVendors = null;
+            try
+            {
+                microsoftVendors = GetVendorsForMicrosoft(microsoftRegistryKey);
+            }
+            catch(ExecutionException e)
+            {
+                Console.WriteLine(e.ToString());
+            }
+
+            nmavenSettingsVendorsVendor[] monoVendors = null;
+            try
+            {
+                monoVendors = GetVendorsForMono(monoRegistryKey, defaultMonoCLR);
+            }
+            catch(ExecutionException e)
+            {
+                Console.WriteLine(e.ToString());
+            }
+
+            nmavenSettingsVendorsVendor dotGnuVendor = null;
+            try
+            {
+                dotGnuVendor = GetVendorForGnu(Environment.GetEnvironmentVariable("CSCC_LIB_PATH"));
+            }
+            catch(ExecutionException e)
+            {
+                Console.WriteLine(e.ToString());
+            }
+            int monoVendorsLength = (monoVendors == null) ? 0: monoVendors.Length;
+            int dotGnuVendorLength = (dotGnuVendor == null) ? 0: 1;
+            int microsoftVendorsLength = (microsoftVendors == null) ? 0: microsoftVendors.Length;
+
+            nmavenSettingsVendorsVendor[] vendors =
+                new nmavenSettingsVendorsVendor[microsoftVendorsLength + monoVendorsLength + dotGnuVendorLength];
+
+            int copyLocation = 0;
+            if(microsoftVendors != null)
+            {
+                microsoftVendors.CopyTo(vendors, copyLocation);
+                copyLocation+=microsoftVendors.Length;
+            }
+            if(monoVendors != null)
+            {
+                monoVendors.CopyTo(vendors, copyLocation);
+                copyLocation+=monoVendors.Length;
+            }
+            if(dotGnuVendor != null)
+                vendors[copyLocation] = dotGnuVendor;
+
+            settings.vendors = vendors;
+
+            TextWriter writer = new StreamWriter(@outputFile);
+            serializer.Serialize(writer, settings);
+            writer.Close();
+        }
+
+        protected nmavenSettingsDefaultSetup GetDefaultSetup(string defaultMonoCLR,
+                                                             string installRoot)
+        {
+            nmavenSettingsDefaultSetup defaultSetup = new nmavenSettingsDefaultSetup();
+            if(installRoot == null)
+            {
+                defaultSetup.vendorName = "MONO";
+                defaultSetup.vendorVersion = defaultMonoCLR;
+                return (defaultMonoCLR != null) ? defaultSetup : null;
+            }
+            bool dirInfo11 = new DirectoryInfo(Path.Combine(installRoot, "v1.1.4322")).Exists;
+            bool dirInfo20 = new DirectoryInfo(Path.Combine(installRoot, "v2.0.50727")).Exists;
+
+            if(installRoot != null)
+            {
+                if(!dirInfo11 && !dirInfo20)
+                    return null;
+                defaultSetup.vendorName = "MICROSOFT";
+                defaultSetup.vendorVersion = (dirInfo20) ? "2.0.50727" :  "1.1.4322";
+                defaultSetup.frameworkVersion = defaultSetup.vendorVersion;
+                return defaultSetup;
+            }
+            else if(defaultMonoCLR != null)
+            {
+                defaultSetup.vendorName = "MONO";
+                defaultSetup.vendorVersion = defaultMonoCLR;
+                defaultSetup.frameworkVersion = "2.0.50727";
+                return defaultSetup;
+            }
+            return null;
+        }
+
+        protected nmavenSettingsVendorsVendor GetVendorForGnu(String libPath)
+        {
+            if(libPath == null)
+                throw new ExecutionException("NMAVEN-9011-000: No CSCC_LIB_PATH Found");
+
+            if (libPath.EndsWith("lib" + Path.DirectorySeparatorChar + "cscc" + Path.DirectorySeparatorChar + "lib"))
+            {
+                string installR = new DirectoryInfo(libPath).Parent.Parent.Parent.FullName;
+                string[] tokenizedInstallRoot = installR.Split(Path.DirectorySeparatorChar);
+                string vendorVersion = tokenizedInstallRoot[tokenizedInstallRoot.Length - 1];
+                if (!isValidVersion(vendorVersion))
+                {
+                    throw new ExecutionException("NMAVEN-9011-001: Invalid version format for dotGNU: Version = " +
+                        vendorVersion + ", Root = " + installR);
+                }
+
+                nmavenSettingsVendorsVendor vendor = new nmavenSettingsVendorsVendor();
+                vendor.vendorName = "DotGNU";
+                vendor.vendorVersion = vendorVersion;
+                nmavenSettingsVendorsVendorFrameworksFramework[] vendorFrameworks 
+                	= new nmavenSettingsVendorsVendorFrameworksFramework[1];
+                nmavenSettingsVendorsVendorFrameworksFramework vf = new nmavenSettingsVendorsVendorFrameworksFramework();
+                vf.installRoot = Path.Combine(installR, "bin");
+                vf.frameworkVersion = "2.0.50727";//doesn't matter
+                vendorFrameworks[0] = vf;                                                    ;
+                vendor.frameworks = vendorFrameworks;
+                return vendor;
+            }
+            throw new ExecutionException("NMAVEN-9011-002: CSCC_LIB_PATH found but could not determine vendor information");
+        }
+
+        private nmavenSettingsVendorsVendor[] GetVendorsForMicrosoft(RegistryKey microsoftRegistryKey)
+        {
+            if(microsoftRegistryKey == null)
+                throw new ExecutionException("NMAVEN-9011-006: Microsoft installation could not be found.");
+            string installRoot = (string) microsoftRegistryKey.GetValue("InstallRoot");
+            string sdkInstallRoot11 = (string) microsoftRegistryKey.GetValue("sdkInstallRootv1.1");
+            string sdkInstallRoot20 = (string) microsoftRegistryKey.GetValue("sdkInstallRootv2.0");
+            
+            if(installRoot == null) throw new ExecutionException("NMAVEN-9011-005");
+
+            nmavenSettingsVendorsVendor[] vendors = new nmavenSettingsVendorsVendor[3];
+            DirectoryInfo dirInfo11 = new DirectoryInfo(Path.Combine(installRoot, "v1.1.4322"));
+            DirectoryInfo dirInfo20 = new DirectoryInfo(Path.Combine(installRoot, "v2.0.50727"));
+            DirectoryInfo dirInfo30 = new DirectoryInfo(Path.Combine(installRoot, "v3.0"));
+            int vendorCounter = 0;
+            if (dirInfo11.Exists)
+            {
+                nmavenSettingsVendorsVendor vendor = new nmavenSettingsVendorsVendor();
+                vendor.vendorName = "MICROSOFT";
+                vendor.vendorVersion = "1.1.4322";
+                nmavenSettingsVendorsVendorFrameworksFramework[] vendorFrameworks 
+                	= new nmavenSettingsVendorsVendorFrameworksFramework[1];
+                nmavenSettingsVendorsVendorFrameworksFramework vf11 
+                	= new nmavenSettingsVendorsVendorFrameworksFramework();
+                vf11.installRoot = dirInfo11.FullName;
+                vf11.frameworkVersion = "1.1.4322";
+                
+                vendorFrameworks[0] = vf11;
+                vf11.sdkInstallRoot = sdkInstallRoot11;
+                vendor.frameworks = vendorFrameworks;
+                
+                vendors[vendorCounter++] = vendor;
+            }
+            if (dirInfo20.Exists)
+            {
+                nmavenSettingsVendorsVendor vendor = new nmavenSettingsVendorsVendor();
+                vendor.vendorName = "MICROSOFT";
+                vendor.vendorVersion = "2.0.50727";
+                nmavenSettingsVendorsVendorFrameworksFramework[] vendorFrameworks 
+                	= new nmavenSettingsVendorsVendorFrameworksFramework[1];
+                nmavenSettingsVendorsVendorFrameworksFramework vf11 = new nmavenSettingsVendorsVendorFrameworksFramework();
+                vf11.installRoot = dirInfo20.FullName;
+                vf11.frameworkVersion = "2.0.50727";
+                vendorFrameworks[0] = vf11;
+                vf11.sdkInstallRoot = sdkInstallRoot20;
+                vendor.frameworks = vendorFrameworks;
+                vendors[vendorCounter++] = vendor;
+            }
+            if (dirInfo30.Exists)
+            {
+                nmavenSettingsVendorsVendor vendor = new nmavenSettingsVendorsVendor();
+                vendor.vendorName = "MICROSOFT";
+                vendor.vendorVersion = "3.0";
+                nmavenSettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new nmavenSettingsVendorsVendorFrameworksFramework[1];
+                nmavenSettingsVendorsVendorFrameworksFramework vf11 = new nmavenSettingsVendorsVendorFrameworksFramework();
+                vf11.installRoot = dirInfo30.FullName;
+                vf11.frameworkVersion = "3.0";
+                vendorFrameworks[0] = vf11;
+                vf11.sdkInstallRoot = sdkInstallRoot20;
+                vendor.frameworks = vendorFrameworks;
+                vendors[vendorCounter++] = vendor;
+            }
+
+            return vendors;
+        }
+
+        private nmavenSettingsVendorsVendor[] GetVendorsForMono(RegistryKey monoRegistryKey, string defaultMonoCLR)
+        {
+            if(monoRegistryKey == null)
+                throw new ExecutionException("NMAVEN-9011-007: Mono installation could not be found.");
+            nmavenSettingsVendorsVendor[] vendors = new nmavenSettingsVendorsVendor[monoRegistryKey.SubKeyCount];
+            int i = 0;
+            foreach (string keyName in monoRegistryKey.GetSubKeyNames())
+            {
+                string sdkInstallRoot = (string) monoRegistryKey.OpenSubKey(keyName).GetValue("SdkInstallRoot");
+                if(sdkInstallRoot == null)
+                    throw new ExecutionException("NMAVEN-9011-004: Could not find install root key for mono");
+                string installRoot = Path.Combine(sdkInstallRoot, "bin");
+                nmavenSettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new nmavenSettingsVendorsVendorFrameworksFramework[2];
+                nmavenSettingsVendorsVendorFrameworksFramework vf11 = new nmavenSettingsVendorsVendorFrameworksFramework();
+                vf11.installRoot = installRoot;
+                vf11.frameworkVersion = "1.1.4322";
+                vendorFrameworks[0] = vf11;
+
+                nmavenSettingsVendorsVendorFrameworksFramework vf20 = new nmavenSettingsVendorsVendorFrameworksFramework();
+                vf20.installRoot = installRoot;
+                vf20.frameworkVersion = "2.0.50727";
+                vendorFrameworks[1] = vf20;
+
+                nmavenSettingsVendorsVendor vendor = new nmavenSettingsVendorsVendor();
+                vendor.vendorName = "MONO";
+                vendor.vendorVersion = keyName;
+                vendor.frameworks = vendorFrameworks;
+                if(defaultMonoCLR.Equals(keyName)) vendor.isDefault = "true";
+                vendors[i++] = vendor;
+            }
+            return vendors;
+        }
+
+        private bool isValidVersion(String version)
+        {
+            string[] vendorVersionToken = version.Split('.');
+            foreach (string token in vendorVersionToken)
+            {
+            	try
+            	{
+            		Single.Parse(token);
+            	}
+            	catch(Exception)
+            	{
+            		return false;
+            	}
+            }
+            return true;
+        }
+    }
+}

Added: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/java/NMaven/Plugin/Settings/SettingsGeneratorMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/java/NMaven/Plugin/Settings/SettingsGeneratorMojo.java?view=auto&rev=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/java/NMaven/Plugin/Settings/SettingsGeneratorMojo.java (added)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/java/NMaven/Plugin/Settings/SettingsGeneratorMojo.java Tue May  1 11:32:43 2007
@@ -0,0 +1,119 @@
+package NMaven.Plugin.Settings;
+
+import org.apache.maven.dotnet.plugin.FieldAnnotation;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+
+import java.io.File;
+
+/**
+ * @phase validate
+ * @goal generate-settings
+ */
+public class SettingsGeneratorMojo
+    extends org.apache.maven.dotnet.plugin.AbstractMojo
+{
+    /**
+     * @parameter expression = "${project}"
+     */
+    private org.apache.maven.project.MavenProject project;
+
+    /**
+     * @parameter expression = "${settings.localRepository}"
+     */
+    private String localRepository;
+
+    /**
+     * @parameter expression = "${vendor}"
+     */
+    private String vendor;
+
+    /**
+     * @parameter expression = "${vendorVersion}"
+     */
+    private String vendorVersion;
+
+    /**
+     * @parameter expression = "${frameworkVersion}"
+     */
+    private String frameworkVersion;
+
+    /**
+     * @component
+     */
+    private org.apache.maven.dotnet.executable.NetExecutableFactory netExecutableFactory;
+
+    /**
+     * @component
+     */
+    private org.apache.maven.dotnet.plugin.PluginContext pluginContext;
+
+    public String getMojoArtifactId()
+    {
+        return "NMaven.Plugin.Settings";
+    }
+
+    public String getMojoGroupId()
+    {
+        return "NMaven.Plugin";
+    }
+
+    public String getClassName()
+    {
+        return "NMaven.Plugin.Settings.SettingsGeneratorMojo";
+    }
+
+    public org.apache.maven.dotnet.plugin.PluginContext getNetPluginContext()
+    {
+        return pluginContext;
+    }
+
+    public org.apache.maven.dotnet.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;
+    }
+
+    public boolean preExecute()
+        throws MojoExecutionException, MojoFailureException
+    {
+        if ( !System.getProperty( "os.name" ).contains( "Windows" ) )
+        {
+            return false;
+        }
+
+        if ( System.getProperty( "bootstrap" ) != null )
+        {
+            return false;
+        }
+
+        String nmavenSettings =
+            System.getProperty( "user.home" ) + File.separator + ".m2" + File.separator + "nmaven-settings.xml";
+
+        return !new File( nmavenSettings ).exists();
+    }
+}

Propchange: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/main/java/NMaven/Plugin/Settings/SettingsGeneratorMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/site/site.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/site/site.xml?view=auto&rev=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/site/site.xml (added)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/site/site.xml Tue May  1 11:32:43 2007
@@ -0,0 +1,16 @@
+<project name="NMaven">
+    <body>
+        <links>
+            <item name="Project Site" href="http://incubator.apache.org/projects/nmaven.html"/>
+            <item name="NMaven" href="http://incubator.apache.org/nmaven"/>
+            <item name="NMaven SVN" href="http://svn.apache.org/repos/asf/incubator/nmaven/"/>
+            <item name="Maven" href="http://maven.apache.org/"/>
+            <item name="Mono Project" href="http://www.mono-project.com/"/>
+            <item name="DotGNU" href="http://dotgnu.org/"/>
+        </links>
+        <menu name="General Info">
+            <item name="About" href="index.html"/>
+        </menu>
+        ${reports}
+    </body>
+</project>
\ No newline at end of file

Propchange: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Settings/src/site/site.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionMojo.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionMojo.cs?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionMojo.cs (original)
+++ incubator/nmaven/branches/SI_XPT/plugins/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionMojo.cs Tue May  1 11:32:43 2007
@@ -20,20 +20,20 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Xml;
+using System.Xml.Serialization;
+
 using NMaven.Core;
 using NMaven.Core.Impl;
 using NMaven.Plugin;
 
-using System.Xml.Serialization;
-using System.Xml;
-
 namespace NMaven.Plugin.Solution
 {
 	/// <summary>
 	/// Description
 	/// </summary>
 	[Serializable]
-	[ClassAttribute(Phase = "Package", Goal = "Solution")]
+	[ClassAttribute(Phase = "package", Goal = "solution")]
 	public sealed class SolutionMojo : AbstractMojo
 	{
 		public SolutionMojo()

Modified: incubator/nmaven/branches/SI_XPT/plugins/maven-compile-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/maven-compile-plugin/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=534187&r1=534186&r2=534187
==============================================================================
--- incubator/nmaven/branches/SI_XPT/plugins/maven-compile-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ incubator/nmaven/branches/SI_XPT/plugins/maven-compile-plugin/src/main/resources/META-INF/plexus/components.xml Tue May  1 11:32:43 2007
@@ -15,7 +15,7 @@
           <validate>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:initialize,
             org.apache.maven.dotnet.plugins:maven-resolver-plugin:resolve,
-            org.apache.maven.dotnet.plugins:maven-settings-plugin:generate-settings
+            NMaven.Plugin:NMaven.Plugin.Settings.JavaBinding:generate-settings
           </validate>
           <generate-sources>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:generate-assembly-info
@@ -55,7 +55,7 @@
           <validate>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:initialize,
             org.apache.maven.dotnet.plugins:maven-resolver-plugin:resolve,
-            org.apache.maven.dotnet.plugins:maven-settings-plugin:generate-settings
+            NMaven.Plugin:NMaven.Plugin.Settings.JavaBinding:generate-settings
           </validate>
           <process-sources>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:process-sources,
@@ -91,7 +91,7 @@
           <validate>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:initialize,
             org.apache.maven.dotnet.plugins:maven-resolver-plugin:resolve ,
-            org.apache.maven.dotnet.plugins:maven-settings-plugin:generate-settings
+            NMaven.Plugin:NMaven.Plugin.Settings.JavaBinding:generate-settings
           </validate>
           <generate-sources>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:generate-assembly-info
@@ -130,7 +130,7 @@
           <validate>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:initialize,
             org.apache.maven.dotnet.plugins:maven-resolver-plugin:resolve,
-            org.apache.maven.dotnet.plugins:maven-settings-plugin:generate-settings
+            NMaven.Plugin:NMaven.Plugin.Settings.JavaBinding:generate-settings
           </validate>
           <generate-sources>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:generate-assembly-info
@@ -168,7 +168,7 @@
           <validate>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:initialize,
             org.apache.maven.dotnet.plugins:maven-resolver-plugin:resolve,
-            org.apache.maven.dotnet.plugins:maven-settings-plugin:generate-settings
+            NMaven.Plugin:NMaven.Plugin.Settings.JavaBinding:generate-settings
           </validate>
           <generate-sources>
             org.apache.maven.dotnet.plugins:maven-compile-plugin:generate-assembly-info