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