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/26 00:49:46 UTC

svn commit: r511679 - in /incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution: ./ pom.xml src/ src/main/ src/main/csharp/ src/main/csharp/Plugin/ src/main/csharp/Plugin/Solution/ src/main/csharp/Plugin/Solution/SolutionPlugin.cs

Author: sisbell
Date: Sun Feb 25 16:49:45 2007
New Revision: 511679

URL: http://svn.apache.org/viewvc?view=rev&rev=511679
Log:
Initial import of the solution plugin. This executable recusively goes through the pom.xml files generating project and soltuion files. This executable will be executed by a maven plugin.

Added:
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/pom.xml   (with props)
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs

Added: incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/pom.xml?view=auto&rev=511679
==============================================================================
--- incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/pom.xml (added)
+++ incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/pom.xml Sun Feb 25 16:49:45 2007
@@ -0,0 +1,39 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>NMaven.Plugin.Solution</groupId>
+    <artifactId>SolutionPlugin</artifactId>
+    <packaging>exe</packaging>
+    <version>0.14</version>
+    <name>NMaven.Plugin.Solution</name>
+    <dependencies>
+        <dependency>
+            <groupId>org.nunit</groupId>
+            <artifactId>nunit.framework</artifactId>
+            <version>2.2.8.0</version>
+            <type>library</type>
+        </dependency>
+        <dependency>
+            <groupId>NMaven.Core</groupId>
+            <artifactId>NMaven.Core</artifactId>
+            <version>0.14</version>
+            <type>library</type>
+        </dependency>
+    <dependency>
+      <groupId>NMaven.Model</groupId>
+      <artifactId>NMaven.Model.Pom</artifactId>
+      <type>library</type>
+      <version>0.14</version>
+    </dependency>
+    </dependencies>
+    <build>
+        <sourceDirectory>src/main/csharp</sourceDirectory>
+        <testSourceDirectory>src/test/csharp</testSourceDirectory>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.dotnet.plugins</groupId>
+                <artifactId>maven-compile-plugin</artifactId>
+                <extensions>true</extensions>
+            </plugin>            
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

Propchange: incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 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=auto&rev=511679
==============================================================================
--- incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs (added)
+++ incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs Sun Feb 25 16:49:45 2007
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using NMaven.Core;
+using NMaven.Core.Impl;
+
+namespace NMaven.Plugin.Solution
+{
+	/// <summary>
+	/// Description
+	/// </summary>
+	public class SolutionPlugin
+	{
+		public SolutionPlugin()
+		{
+		}
+		
+		public List<IProjectReference> execute(DirectoryInfo currentDirectory, NMaven.Model.Model model)
+		{	
+			if(model == null)
+			{
+				throw new ExecutionException("NMAVEN-000-000: Model is null");
+			}
+			
+			if(currentDirectory == null)
+			{
+				throw new ExecutionException("NMAVEN-000-000: Current directory is null");
+			}
+			if(!currentDirectory.Exists)
+			{
+				throw new ExecutionException("NMAVEN-000-000: Could not find current directory: Path = " + currentDirectory.FullName);
+			}
+			
+			List<IProjectReference> projectReferences = new List<IProjectReference>();
+			IProjectGenerator projectGenerator = new ProjectGeneratorImpl();
+			if(model.packaging.Equals("pom"))
+			{
+				foreach(String module in model.modules)
+				{
+					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));
+				}					   	
+			} 
+			else
+			{
+				Console.WriteLine(currentDirectory.FullName + @"\src\main\csharp\");
+				if(new DirectoryInfo(currentDirectory.FullName + @"\src\main\csharp\").Exists)
+				{
+					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);
+					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 = " 
+					                  + projectReference.CsProjFile.FullName);					
+					projectReferences.Add(projectReference);					
+				}
+			}	
+			return projectReferences;
+		}
+		
+		public static void Main()
+		{
+			IProjectGenerator projectGenerator = new ProjectGeneratorImpl();
+			NMaven.Model.Model rootPom = projectGenerator.createPomModelFor("pom.xml");	
+			
+			SolutionPlugin plugin = new SolutionPlugin();
+			List<IProjectReference> projectReferences = plugin.execute(new DirectoryInfo(Environment.CurrentDirectory), 
+			                                                           rootPom);
+		 	projectGenerator.generateSolutionFor(new FileInfo(@"test-1.sln"), projectReferences);			
+		}
+	}
+}