Author: sisbell
Date: Fri Feb 29 09:52:28 2008
New Revision: 632400

URL: http://svn.apache.org/viewvc?rev=632400&view=rev
Log:
Use of the toolchain within the compiler context and the csharp compiler.

Modified:
    
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java
    
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerContext.java
    
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java
    
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java
    
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java
    
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/toolchain/DotnetToolchain.java
    
incubator/nmaven/trunk/core-integration-tests/src/test/resources/MavenITmng-0000-CSharpCompileLibrary/pom.xml
    
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
    
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java

Modified: 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java
 (original)
+++ 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java
 Fri Feb 29 09:52:28 2008
@@ -21,7 +21,6 @@
 import org.apache.maven.dotnet.ProgrammingLanguage;
 import org.apache.maven.dotnet.Vendor;
 import org.apache.maven.dotnet.ArtifactType;
-import org.apache.maven.toolchain.Toolchain;
 
 import java.io.File;
 
@@ -107,10 +106,6 @@
     String getArtifactFileName();
 
     void setArtifactFileName(String artifactFileName);
-
-    Toolchain getToolchain();
-
-    void setToolchain(Toolchain toolchain);
 
     /**
      * Verifies that the necessary parameters exist within the config exist 
and are valid.

Modified: 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerContext.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerContext.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerContext.java
 (original)
+++ 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerContext.java
 Fri Feb 29 09:52:28 2008
@@ -20,9 +20,12 @@
 
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.dotnet.InitializationException;
+import org.apache.maven.dotnet.ProgrammingLanguage;
+import org.apache.maven.toolchain.Toolchain;
 import org.codehaus.plexus.logging.Logger;
 
 import java.io.IOException;
+import java.io.File;
 
 /**
  * Interface defining compiler services.
@@ -45,24 +48,26 @@
      */
     ClassCompiler getClassCompiler();
 
+    File getCompilerExecutableFor( ProgrammingLanguage programmingLanguage ) 
throws CompilerException;
+
     /**
      * Returns the maven project used to initialize this context.
      *
      * @return the maven project used to initialize this context
      */
     MavenProject getMavenProject();
-    
+
     Logger getPlexusLogger();
 
     /**
      * Initializes the compiler context.
      *
-     * @param project the maven project
+     * @param project        the maven project
      * @param compilerConfig
      * @throws InitializationException
      * @throws IOException
      */
-    void init( MavenProject project, CompilerConfig compilerConfig )
+    void init( MavenProject project, CompilerConfig compilerConfig, Toolchain 
toolchain )
         throws InitializationException, IOException;
 
 }

Modified: 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java
 (original)
+++ 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java
 Fri Feb 29 09:52:28 2008
@@ -40,8 +40,11 @@
 import org.apache.maven.dotnet.BuildDirectories;
 import org.apache.maven.dotnet.ArtifactType;
 import org.apache.maven.dotnet.ArtifactScope;
+import org.apache.maven.dotnet.ProgrammingLanguage;
 import org.apache.maven.dotnet.compiler.CompilerAnnotation;
+import org.apache.maven.dotnet.compiler.CompilerException;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.toolchain.Toolchain;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.LogEnabled;
 
@@ -79,6 +82,8 @@
 
     private boolean compilerExistsCheck = true;
 
+    private Toolchain toolchain;
+
     public Set<String> getCoreAssemblyNames()
     {
         return null;
@@ -124,6 +129,32 @@
         return classCompiler;
     }
 
+    public File getCompilerExecutableFor( ProgrammingLanguage 
programmingLanguage )
+        throws CompilerException
+    {
+        if ( programmingLanguage == null )
+        {
+            throw new IllegalArgumentException( "programmingLanguage" );
+        }
+
+        if ( toolchain == null )
+        {
+            throw new CompilerException( "No toolchain found." );
+        }
+
+        if ( programmingLanguage.equals( ProgrammingLanguage.C_SHARP ) )
+        {
+            File csharpExecutable = new File( toolchain.findTool( 
"csharpCompiler" ) );
+            if ( !csharpExecutable.exists() )
+            {
+                throw new CompilerException(
+                    "The compiler does not exist: File = " + 
csharpExecutable.getAbsolutePath() );
+            }
+            return csharpExecutable;
+        }
+        throw new CompilerException( "Compiler could not be found: Language = 
" + programmingLanguage );
+    }
+
     public MavenProject getMavenProject()
     {
         return project;
@@ -140,7 +171,7 @@
         logger.info( "Logging enabled." );
     }
 
-    public void init( MavenProject project, CompilerConfig compilerConfig )
+    public void init( MavenProject project, CompilerConfig compilerConfig, 
Toolchain toolchain )
         throws InitializationException, IOException
     {
         if ( project == null )
@@ -159,7 +190,7 @@
 
         HashSet<Artifact> compileLibraryDependencies = new HashSet<Artifact>();
         HashSet<Artifact> systemLibraryDependencies = new HashSet<Artifact>();
-        HashSet<Artifact>  providedLibraryDependencies = new 
HashSet<Artifact>();
+        HashSet<Artifact> providedLibraryDependencies = new 
HashSet<Artifact>();
         HashSet<Artifact> testLibraryDependencies = new HashSet<Artifact>();
         HashSet<Artifact> runtimeLibraryDependencies = new HashSet<Artifact>();
 
@@ -277,7 +308,7 @@
             String type = artifact.getType();
             if ( ArtifactType.LIBRARY.isMatchByString( type ) || 
ArtifactType.EXE.isMatchByString( type ) ||
                 ArtifactType.WINEXE.isMatchByString( type ) || 
type.startsWith( "dotnet:gac" ) ||
-                ArtifactType.LIBRARY_LEGACY.isMatchByString( type ))
+                ArtifactType.LIBRARY_LEGACY.isMatchByString( type ) )
             {
                 targetArtifacts.add( artifact );
             }

Modified: 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java
 (original)
+++ 
incubator/nmaven/trunk/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java
 Fri Feb 29 09:52:28 2008
@@ -54,7 +54,7 @@
         DotnetCompilerContextImpl ctx = new DotnetCompilerContextImpl();
         DotnetCompilerConfig compilerConfig = 
DotnetCompilerConfig.Factory.createDefaultCompilerConfig();
 
-        ctx.init( null, compilerConfig );
+        ctx.init( null, compilerConfig, null );
 
     }
 
@@ -63,7 +63,7 @@
         throws InitializationException, IOException
     {
         DotnetCompilerContextImpl ctx = new DotnetCompilerContextImpl();
-        ctx.init( new MavenProject(), null );
+        ctx.init( new MavenProject(), null, null );
     }
 
     @Test
@@ -85,7 +85,7 @@
         project.setBuild( build );
 
         ctx.turnOffCompilerExistsCheck();
-        ctx.init( project, getDefaultDotnetCompilerConfig() );
+        ctx.init( project, getDefaultDotnetCompilerConfig(), null );
 
         Set<Artifact> modules = ctx.getDirectModuleDependencies();
         assertThat( modules.size(), equalTo( 1 ) );
@@ -111,7 +111,7 @@
         project.setBuild( build );
 
         ctx.turnOffCompilerExistsCheck();
-        ctx.init( project, getDefaultDotnetCompilerConfig() );
+        ctx.init( project, getDefaultDotnetCompilerConfig(), null );
 
         Set<Artifact> libraries = ctx.getLibraryDependenciesFor( 
ArtifactScope.COMPILE );
         assertThat( libraries.size(), equalTo( 1 ) );
@@ -137,7 +137,7 @@
         project.setBuild( build );
 
         ctx.turnOffCompilerExistsCheck();
-        ctx.init( project, getDefaultDotnetCompilerConfig() );
+        ctx.init( project, getDefaultDotnetCompilerConfig(), null );
 
         Set<Artifact> libraries = ctx.getLibraryDependenciesFor( 
ArtifactScope.COMPILE );
         assertThat( libraries.size(), equalTo( 1 ) );
@@ -163,7 +163,7 @@
         project.setBuild( build );
 
         ctx.turnOffCompilerExistsCheck();
-        ctx.init( project, getDefaultDotnetCompilerConfig() );
+        ctx.init( project, getDefaultDotnetCompilerConfig(), null );
 
         Set<Artifact> libraries = ctx.getLibraryDependenciesFor( 
ArtifactScope.COMPILE );
         assertThat( libraries.size(), equalTo( 1 ) );
@@ -189,7 +189,7 @@
         project.setBuild( build );
 
         ctx.turnOffCompilerExistsCheck();
-        ctx.init( project, getDefaultDotnetCompilerConfig() );
+        ctx.init( project, getDefaultDotnetCompilerConfig(), null );
 
         Set<Artifact> libraries = ctx.getLibraryDependenciesFor( 
ArtifactScope.COMPILE );
         assertThat( libraries.size(), equalTo( 1 ) );
@@ -216,7 +216,7 @@
         ctx.turnOffAssemblyExistsCheck();
         ctx.turnOffCompilerExistsCheck();
 
-        ctx.init( project, getDefaultDotnetCompilerConfig() );
+        ctx.init( project, getDefaultDotnetCompilerConfig(), null );
 
         Set<Artifact> libraries = ctx.getLibraryDependenciesFor( 
ArtifactScope.COMPILE );
         assertThat( libraries.size(), equalTo( 1 ) );
@@ -264,7 +264,7 @@
         compilerConfig.setVendor( Vendor.NOVELL );
 
         ctx.turnOffCompilerExistsCheck();
-        ctx.init( project, compilerConfig );
+        ctx.init( project, compilerConfig, null );
 
         Set<Artifact> libraries = ctx.getLibraryDependenciesFor( 
ArtifactScope.COMPILE );
         assertThat( libraries.size(), equalTo( 1 ) );
@@ -297,7 +297,7 @@
         compilerConfig.setVendor( Vendor.NOVELL );
 
         ctx.turnOffCompilerExistsCheck();
-        ctx.init( project, compilerConfig );
+        ctx.init( project, compilerConfig, null );
 
         Set<Artifact> libraries = ctx.getLibraryDependenciesFor( 
ArtifactScope.COMPILE );
         assertThat( libraries.size(), equalTo( 1 ) );
@@ -320,7 +320,7 @@
         System.setProperty( "java.class.path", new File( "src/test/resources",
                                                          
"dotnet-compiler-ext-0.14-incubating-SNAPSHOT.jar" ).getAbsolutePath() );
 
-        ctx.init( project, getDefaultDotnetCompilerConfig() );
+        ctx.init( project, getDefaultDotnetCompilerConfig(), null );
 
         ClassCompiler compiler = ctx.getClassCompiler();
     }

Modified: 
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java
 (original)
+++ 
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java
 Fri Feb 29 09:52:28 2008
@@ -137,7 +137,7 @@
             commands.add( wcfRef + "System.Runtime.Serialization.dll" );
             commands.add( wcfRef + "SMDiagnostics.dll" );
         }
-        
+
         if ( config.getKeyInfo() != null )
         {
             if ( config.getKeyInfo().getKeyFileUri() != null )
@@ -194,7 +194,22 @@
 
     public String getCompilerFileName()
     {
-        if ( compilerContext.getCompilerConfig().getVendor().equals( 
Vendor.MICROSOFT ) )
+        File compilerExecutable = null;
+        try
+        {
+            compilerExecutable = compilerContext.getCompilerExecutableFor(
+                compilerContext.getCompilerConfig().getProgrammingLanguage() );
+        }
+        catch ( CompilerException e )
+        {
+            e.printStackTrace();
+        }
+
+        if ( compilerExecutable != null )
+        {
+            return compilerExecutable.getAbsolutePath();
+        }
+        else if ( compilerContext.getCompilerConfig().getVendor().equals( 
Vendor.MICROSOFT ) )
         {
             return "csc";
         }

Modified: 
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/toolchain/DotnetToolchain.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/toolchain/DotnetToolchain.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/toolchain/DotnetToolchain.java
 (original)
+++ 
incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/toolchain/DotnetToolchain.java
 Fri Feb 29 09:52:28 2008
@@ -2,6 +2,8 @@
 
 import org.apache.maven.toolchain.DefaultToolchain;
 import org.apache.maven.toolchain.model.ToolchainModel;
+import org.apache.maven.dotnet.Vendor;
+import org.apache.maven.dotnet.compiler.DotnetCompilerPlatformVersion;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
@@ -20,6 +22,16 @@
         this( model, null, logger );
     }
 
+    public Vendor getVendor()
+    {
+        return Vendor.MICROSOFT;
+    }
+
+    public DotnetCompilerPlatformVersion getDotnetCompilerPlatformVersion()
+    {
+        return DotnetCompilerPlatformVersion.VERSION_2_0_50727;        
+    }
+
     public DotnetToolchain( ToolchainModel model, String type, Logger logger )
     {
         super( model, type, logger );
@@ -56,6 +68,5 @@
             return nunitConsole;
         }
         return null;
-    }
-       
+    }      
 }

Modified: 
incubator/nmaven/trunk/core-integration-tests/src/test/resources/MavenITmng-0000-CSharpCompileLibrary/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/core-integration-tests/src/test/resources/MavenITmng-0000-CSharpCompileLibrary/pom.xml?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/core-integration-tests/src/test/resources/MavenITmng-0000-CSharpCompileLibrary/pom.xml
 (original)
+++ 
incubator/nmaven/trunk/core-integration-tests/src/test/resources/MavenITmng-0000-CSharpCompileLibrary/pom.xml
 Fri Feb 29 09:52:28 2008
@@ -32,5 +32,6 @@
         <artifactId>maven-dotnet-compiler-plugin</artifactId>
         <extensions>true</extensions>
       </plugin>
+    </plugins>
   </build>
 </project>

Modified: 
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
 (original)
+++ 
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
 Fri Feb 29 09:52:28 2008
@@ -31,10 +31,12 @@
 import org.apache.maven.dotnet.BuildDirectories;
 import org.apache.maven.dotnet.ArtifactType;
 import org.apache.maven.dotnet.InitializationException;
+import org.apache.maven.dotnet.extensions.toolchain.DotnetToolchain;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.toolchain.ToolchainManager;
 import org.apache.maven.toolchain.Toolchain;
+import org.apache.maven.toolchain.DefaultToolchain;
 
 import java.io.File;
 import java.io.IOException;
@@ -119,14 +121,15 @@
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
-        Toolchain dotnetToolchain =
-            toolchainManager.getToolchainFromBuildContext( "dotnet", 
mavenSession );
+        DotnetToolchain toolchain =
+            (DotnetToolchain) toolchainManager.getToolchainFromBuildContext( 
"dotnet", mavenSession );
 
-        if ( dotnetToolchain == null )
+        if ( toolchain == null )
         {
             this.getLog().info( "Could not find dotnet toolchain." );
         }
 
+
         File sourceDir =
             new File( project.getBuild().getDirectory(), 
BuildDirectories.BUILD_SOURCES.getBuildDirectoryName() );
 
@@ -176,11 +179,10 @@
         compilerConfig.setTargetDirectory( new File( 
project.getBuild().getDirectory() ) );
         compilerConfig.setArtifactFileName(
             project.getBuild().getFinalName() + "." + 
compilerConfig.getArtifactType().getExtension() );
-        compilerConfig.setToolchain( dotnetToolchain );
-        
+
         try
         {
-            dotnetCompilerContext.init( project, compilerConfig );
+            dotnetCompilerContext.init( project, compilerConfig, toolchain );
         }
         catch ( InitializationException e )
         {

Modified: 
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java?rev=632400&r1=632399&r2=632400&view=diff
==============================================================================
--- 
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
 (original)
+++ 
incubator/nmaven/trunk/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
 Fri Feb 29 09:52:28 2008
@@ -139,7 +139,7 @@
 
         try
         {
-            compilerContext.init( project, compilerConfig );
+            compilerContext.init( project, compilerConfig, null );
         }
         catch ( InitializationException e )
         {


Reply via email to