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);                   
                }
        }


Reply via email to