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/02/28 21:32:15 UTC

svn commit: r512983 - in /incubator/nmaven/branches/SI_IDE: ./ assemblies/NMaven.Core/src/main/csharp/Core/Impl/ assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/ plugins/ plugins/maven-solution-plugin/ plugins/maven-solution-plugin/sr...

Author: sisbell
Date: Wed Feb 28 13:32:14 2007
New Revision: 512983

URL: http://svn.apache.org/viewvc?view=rev&rev=512983
Log:
Added maven solution plugin for generating project and solution files. Expanded params for .NET solution plugins.

Added:
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/pom.xml   (with props)
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/solution/
    incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/solution/SolutionMojo.java   (with props)
Modified:
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs
    incubator/nmaven/branches/SI_IDE/bootstrap-build.bat
    incubator/nmaven/branches/SI_IDE/plugins/pom-java-bootstrap.xml
    incubator/nmaven/branches/SI_IDE/plugins/pom.xml
    incubator/nmaven/branches/SI_IDE/plugins/scripts/build-2.0.bat

Modified: incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs?view=diff&rev=512983&r1=512982&r2=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs (original)
+++ incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs Wed Feb 28 13:32:14 2007
@@ -93,6 +93,7 @@
 			}
 			writer.Flush();
 			writer.Close();
+			Console.WriteLine("NMAVEN-000-000: Generate solution file: File Name = " + fileInfo.FullName);
 		}
 					
 		public NMaven.Model.Model createPomModelFor(string fileName)

Modified: incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs?view=diff&rev=512983&r1=512982&r2=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs (original)
+++ incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs Wed Feb 28 13:32:14 2007
@@ -34,22 +34,6 @@
 		{
 		}
 
-		private string[] GetModulesForProfile(string profile,  NMaven.Model.Model model)
-		{
-			NMaven.Model.Profile[] profiles = model.profiles;
-			if(profiles == null)
-				return model.modules;
-			
-			foreach(NMaven.Model.Profile p in profiles)
-			{
-				if(p.activation.property.name.Equals(profile))
-				{
-					return p.modules;
-				}
-			}
-			return model.modules;
-        }
-		
 		public List<IProjectReference> Execute(DirectoryInfo currentDirectory, NMaven.Model.Model model, string profile)
 		{	
 			if(model == null)
@@ -63,7 +47,8 @@
 			}
 			if(!currentDirectory.Exists)
 			{
-				throw new ExecutionException("NMAVEN-000-000: Could not find current directory: Path = " + currentDirectory.FullName);
+				throw new ExecutionException("NMAVEN-000-000: Could not find current directory: Path = "
+				    + currentDirectory.FullName);
 			}
 			
 			List<IProjectReference> projectReferences = new List<IProjectReference>();
@@ -73,7 +58,6 @@
 				foreach(String module in GetModulesForProfile(profile, model))
 				{
 					DirectoryInfo newDir = new DirectoryInfo(currentDirectory.FullName + @"\" + module );
-					Console.WriteLine("NMAVEN-000-000: Generating model for pom: File Name = " + newDir.FullName + @"\pom.xml");
 					NMaven.Model.Model m = projectGenerator.createPomModelFor(newDir.FullName + @"\pom.xml");
 					projectReferences.AddRange(Execute(newDir, m, profile));
 				}					   	
@@ -86,19 +70,16 @@
 					IProjectReference projectReference = 
 			 			projectGenerator.generateProjectFor(model,
 			 	                                    new DirectoryInfo(currentDirectory.FullName + @"\src\main\csharp\"),
-			 	                                    model.artifactId + "T1", null);
-					Console.WriteLine("NMAVEN-000-000: Generated project: File Name = " 
-					                  + projectReference.CsProjFile.FullName);
+			 	                                    model.artifactId, null);
 					projectReferences.Add(projectReference);
 				}
 				if(new DirectoryInfo( @"src\test\csharp\").Exists)
-				{					
-					Console.WriteLine("NMAVEN-000-000: Found test directory");
+				{
 					IProjectReference projectReference = 
 			 			projectGenerator.generateProjectFor(model,
 			 	                                    new DirectoryInfo(currentDirectory.FullName + @"src\test\csharp\"),
-			 	                                    model.artifactId + "-Test1", null);
-					Console.WriteLine("NMAVEN-000-000: Generated project: File Name = " 
+			 	                                    model.artifactId + "-Test", null);
+					Console.WriteLine("NMAVEN-000-000: Generated test project: File Name = "
 					                  + projectReference.CsProjFile.FullName);					
 					projectReferences.Add(projectReference);					
 				}
@@ -115,12 +96,14 @@
             string profile = plugin.GetArgFor("profile", args); ;
 
 			IProjectGenerator projectGenerator = new ProjectGeneratorImpl();
-			NMaven.Model.Model rootPom = projectGenerator.createPomModelFor(pomFile);	
+			NMaven.Model.Model rootPom = projectGenerator.createPomModelFor(@pomFile);
 				
-
-			List<IProjectReference> projectReferences = plugin.Execute(new DirectoryInfo(Environment.CurrentDirectory), 
+            FileInfo pomFileInfo = new FileInfo(pomFile);
+			List<IProjectReference> projectReferences = plugin.Execute(new DirectoryInfo(pomFileInfo.DirectoryName),
 			                                                           rootPom, profile);
-		 	projectGenerator.generateSolutionFor(new FileInfo(@rootPom.artifactId + "." + profile + ".sln"), projectReferences);			
+			String solutionFile = (profile == null) ? pomFileInfo.DirectoryName + @"\" + @rootPom.artifactId  + ".sln" :
+			    pomFileInfo.DirectoryName + @"\" + @rootPom.artifactId + "." + profile + ".sln";
+		 	projectGenerator.generateSolutionFor(new FileInfo(solutionFile), projectReferences);
 		}
 		
 		private string GetArgFor(string name, string[] args)
@@ -133,5 +116,22 @@
 			}
             return null;
 		}
+
+
+		private string[] GetModulesForProfile(string profile,  NMaven.Model.Model model)
+		{
+			NMaven.Model.Profile[] profiles = model.profiles;
+			if(profiles == null)
+				return model.modules;
+
+			foreach(NMaven.Model.Profile p in profiles)
+			{
+				if(p.activation.property.name.Equals(profile))
+				{
+					return p.modules;
+				}
+			}
+			return model.modules;
+        }
 	}
 }

Modified: incubator/nmaven/branches/SI_IDE/bootstrap-build.bat
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/bootstrap-build.bat?view=diff&rev=512983&r1=512982&r2=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/bootstrap-build.bat (original)
+++ incubator/nmaven/branches/SI_IDE/bootstrap-build.bat Wed Feb 28 13:32:14 2007
@@ -1,4 +1,5 @@
 call mvn -f ./components/pom.xml install
 call mvn -f ./plugins/pom-java-bootstrap.xml install
 call mvn org.apache.maven.dotnet.plugins:maven-install-plugin:install-file -Dfile=./plugins/imports/nunit-2.0/nunit.framework.dll -DgroupId=org.nunit -DartifactId=nunit.framework -Dpackaging=dll -Dversion=2.2.8.0
-call mvn -f ./assemblies/pom-net-bootstrap.xml -Dmaven.test.skip=true -Dbootstrap install %*
\ No newline at end of file
+call mvn -f ./assemblies/pom-net-bootstrap.xml -Dmaven.test.skip=true -Dbootstrap install %*
+#call mvn org.apache.maven.dotnet.plugins:maven-solution-plugin:solution
\ No newline at end of file

Added: incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/pom.xml?view=auto&rev=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/pom.xml (added)
+++ incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/pom.xml Wed Feb 28 13:32:14 2007
@@ -0,0 +1,24 @@
+<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.maven.dotnet.plugins</groupId>
+    <version>0.14-SNAPSHOT</version>
+    <artifactId>maven-dotnet-plugins</artifactId>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.dotnet.plugins</groupId>
+  <artifactId>maven-solution-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <version>0.14-SNAPSHOT</version>
+  <name>maven-solution-plugin</name>
+  <description>
+    Maven Plugin for .NET
+  </description>
+  <distributionManagement>
+    <site>
+      <id>nmaven-apache-site</id>
+      <name>NMaven Site</name>
+      <url>file://${basedir}/../../../www/plugins/maven-solution-plugin</url>
+    </site>
+  </distributionManagement>
+</project>
\ No newline at end of file

Propchange: incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/solution/SolutionMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/solution/SolutionMojo.java?view=auto&rev=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/solution/SolutionMojo.java (added)
+++ incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/solution/SolutionMojo.java Wed Feb 28 13:32:14 2007
@@ -0,0 +1,87 @@
+package org.apache.maven.dotnet.plugin.solution;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.dotnet.vendor.VendorInfo;
+import org.apache.maven.dotnet.vendor.VendorFactory;
+import org.apache.maven.dotnet.PlatformUnsupportedException;
+import org.apache.maven.dotnet.executable.ExecutionException;
+import org.apache.maven.project.MavenProject;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.io.File;
+
+/**
+ * Generates resources
+ *
+ * @author Shane Isbell
+ * @goal solution
+ * @phase package
+ */
+public class SolutionMojo extends AbstractMojo
+{
+    /**
+     * @parameter expression="${settings.localRepository}"
+     * @required
+     */
+    private String localRepository;
+
+    /**
+     * The maven project.
+     *
+     * @parameter expression="${project}"
+     * @required
+     */
+    private MavenProject project;
+
+    /**
+     * The Vendor for the executable. Supports MONO and MICROSOFT: the default value is <code>MICROSOFT</code>. Not
+     * case or white-space sensitive.
+     *
+     * @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;
+
+    public void execute() throws MojoExecutionException
+    {
+        String profile = System.getProperty( "Profile");
+        String pomFile = System.getProperty( "pomFile");
+        
+        String basedir = System.getProperty( "user.dir");
+        //String basedir1 = "C:\\Documents and Settings\\shane\\nmaven-apache\\SI_IDE\\assemblies";
+        List<String> commands = new ArrayList<String>();
+        commands.add("pomFile=" + new File(basedir).getAbsolutePath() + File.separator + "pom.xml");
+        if(profile != null) commands.add("profile=" + profile);
+        try
+        {
+            VendorInfo vendorInfo = VendorInfo.Factory.createDefaultVendorInfo();
+            vendorInfo.setVendor( VendorFactory.createVendorFromName( "MICROSOFT" ) );
+            netExecutableFactory.getNetExecutableFromRepository( "NMaven.Plugin", "NMaven.Plugin.Solution", vendorInfo,
+                                                                 project, localRepository, commands ).execute();
+        }
+        catch ( PlatformUnsupportedException e )
+        {
+            throw new MojoExecutionException( "", e );
+        }
+        catch ( ExecutionException e )
+        {
+            throw new MojoExecutionException( "", e );
+        }
+    }
+}

Propchange: incubator/nmaven/branches/SI_IDE/plugins/maven-solution-plugin/src/main/java/org/apache/maven/dotnet/plugin/solution/SolutionMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/nmaven/branches/SI_IDE/plugins/pom-java-bootstrap.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/pom-java-bootstrap.xml?view=diff&rev=512983&r1=512982&r2=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/plugins/pom-java-bootstrap.xml (original)
+++ incubator/nmaven/branches/SI_IDE/plugins/pom-java-bootstrap.xml Wed Feb 28 13:32:14 2007
@@ -17,6 +17,7 @@
     <module>maven-resolver-plugin</module>
     <module>maven-settings-plugin</module>
     <module>maven-vstudio-plugin</module>
+    <module>maven-solution-plugin</module>       
   </modules>
 
   <dependencies>

Modified: incubator/nmaven/branches/SI_IDE/plugins/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/pom.xml?view=diff&rev=512983&r1=512982&r2=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/plugins/pom.xml (original)
+++ incubator/nmaven/branches/SI_IDE/plugins/pom.xml Wed Feb 28 13:32:14 2007
@@ -18,6 +18,7 @@
     <module>maven-resgen-plugin</module>
     <module>maven-resolver-plugin</module>
     <module>maven-settings-plugin</module>
+    <module>maven-solution-plugin</module>      
     <module>maven-vstudio-plugin</module>    
   </modules>
 

Modified: incubator/nmaven/branches/SI_IDE/plugins/scripts/build-2.0.bat
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/scripts/build-2.0.bat?view=diff&rev=512983&r1=512982&r2=512983
==============================================================================
--- incubator/nmaven/branches/SI_IDE/plugins/scripts/build-2.0.bat (original)
+++ incubator/nmaven/branches/SI_IDE/plugins/scripts/build-2.0.bat Wed Feb 28 13:32:14 2007
@@ -1,3 +1,3 @@
-call mvn -f ../pom-java-bootstrap.xml install
+call mvn -f ../pom.xml install
 call mvn org.apache.maven.dotnet.plugins:maven-install-plugin:install-file -Dfile=../imports/nunit-2.0/nunit.framework.dll -DgroupId=org.nunit -DartifactId=nunit.framework -Dpackaging=dll -Dversion=2.2.8.0
-call mvn -f ../../assemblies/pom-net-bootstrap.xml -Dmaven.test.skip=true -Dbootstrap install
\ No newline at end of file
+#call mvn -f ../../assemblies/pom-net-bootstrap.xml -Dmaven.test.skip=true -Dbootstrap install
\ No newline at end of file