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/27 22:14:12 UTC

svn commit: r512444 - /incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs

Author: sisbell
Date: Tue Feb 27 14:14:11 2007
New Revision: 512444

URL: http://svn.apache.org/viewvc?view=rev&rev=512444
Log:
The solution plugin now handles building a .NET solution specific to maven profile.

Modified:
    incubator/nmaven/branches/SI_IDE/assemblies/NMaven.Plugin.Solution/src/main/csharp/Plugin/Solution/SolutionPlugin.cs

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=512444&r1=512443&r2=512444
==============================================================================
--- 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 Tue Feb 27 14:14:11 2007
@@ -14,8 +14,25 @@
 		public SolutionPlugin()
 		{
 		}
+
+		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)
+			{
+				Console.WriteLine( p.activation.property.name.ToString() );
+				if(p.activation.property.name.Equals(profile))
+				{
+					return p.modules;
+				}
+			}
+			return model.modules;
+        }
 		
-		public List<IProjectReference> execute(DirectoryInfo currentDirectory, NMaven.Model.Model model)
+		public List<IProjectReference> execute(DirectoryInfo currentDirectory, NMaven.Model.Model model, string profile)
 		{	
 			if(model == null)
 			{
@@ -35,12 +52,12 @@
 			IProjectGenerator projectGenerator = new ProjectGeneratorImpl();
 			if(model.packaging.Equals("pom"))
 			{
-				foreach(String module in model.modules)
+				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));
+					projectReferences.AddRange(execute(newDir, m, profile));
 				}					   	
 			} 
 			else
@@ -71,14 +88,14 @@
 			return projectReferences;
 		}
 		
-		public static void Main()
+		public static void Main(string[] args)
 		{
 			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);
+			                                                           rootPom, "withIde");
 		 	projectGenerator.generateSolutionFor(new FileInfo(@"test-1.sln"), projectReferences);			
 		}
 	}