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 2008/01/02 00:04:22 UTC

svn commit: r607948 - in /incubator/nmaven/trunk: ./ components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/ components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/ components/maven-dotnet-asse...

Author: sisbell
Date: Tue Jan  1 16:04:16 2008
New Revision: 607948

URL: http://svn.apache.org/viewvc?rev=607948&view=rev
Log:
The compiler now outputs log results to console. Support for generating assembly info files.

Added:
    incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/
    incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/
    incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/plexus/
    incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/plexus/components.xml   (with props)
    incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AssemblyInfoGeneratorMojo.java   (with props)
Modified:
    incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblerContext.java
    incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/AssemblerContextImpl.java
    incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CommandExecutor.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-extensions/src/main/java/org/apache/maven/dotnet/extensions/assembler/DefaultAssemblyInfoMarshaller.java
    incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
    incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
    incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/resources/META-INF/plexus/components.xml
    incubator/nmaven/trunk/pom.xml

Modified: incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblerContext.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblerContext.java?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblerContext.java (original)
+++ incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblerContext.java Tue Jan  1 16:04:16 2008
@@ -20,6 +20,9 @@
 
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.dotnet.ProgrammingLanguage;
+import org.apache.maven.dotnet.InitializationException;
+
+import java.io.IOException;
 
 /**
  * Provides services for generating of AssemblyInfo.* file.
@@ -55,6 +58,6 @@
      * @param mavenProject the maven project
      */
     void init( MavenProject mavenProject )
-        throws AssemblyInfoException;
+        throws InitializationException, IOException;
 
 }

Modified: incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/AssemblerContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/AssemblerContextImpl.java?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/AssemblerContextImpl.java (original)
+++ incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/AssemblerContextImpl.java Tue Jan  1 16:04:16 2008
@@ -25,6 +25,7 @@
 import org.apache.maven.dotnet.assembler.AssemblyInfoMarshallerAnnotation;
 import org.apache.maven.dotnet.ProgrammingLanguage;
 import org.apache.maven.dotnet.BuildDirectories;
+import org.apache.maven.dotnet.InitializationException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.model.Organization;
 
@@ -35,8 +36,8 @@
 import java.io.*;
 import java.util.Enumeration;
 import java.util.List;
-import java.util.jar.JarFile;
-import java.util.jar.JarEntry;
+import java.util.ArrayList;
+import java.net.URL;
 
 /**
  * Provides an implementation of the <code>AssemblerContext</code>.
@@ -138,85 +139,67 @@
         throws AssemblyInfoException
     {
 
-        for(AssemblyInfoMarshaller m : marshallers)
+        for ( AssemblyInfoMarshaller m : marshallers )
         {
-            if(m.getProgrammingLanguageForMarshaller().equals( programmingLanguage))
+            if ( m.getProgrammingLanguageForMarshaller().equals( programmingLanguage ) )
             {
                 return m;
             }
         }
-        return null;
+        throw new AssemblyInfoException("Could not find assembly info marshaller.");
     }
 
     /**
      * @see AssemblerContext#init(org.apache.maven.project.MavenProject)
      */
     public void init( MavenProject mavenProject )
-        throws AssemblyInfoException
+        throws InitializationException, IOException
     {
         this.mavenProject = mavenProject;
+        marshallers = new ArrayList<AssemblyInfoMarshaller>();
+
+        Enumeration<URL> resources =
+            this.getClass().getClassLoader().getResources( "/META-INF/nmaven/annotation-resources.txt" );
 
-        String[] classPathJars = System.getProperty( "java.class.path" ).split( "[" + File.pathSeparator + "]" );
-        for ( String classPathJar : classPathJars )
+        while ( resources.hasMoreElements() )
         {
-            if ( classPathJar.contains( "dotnet-extensions-" ) )
+            URL url = resources.nextElement();
+            BufferedReader reader = new BufferedReader( new InputStreamReader( url.openStream() ) );
+            String annotatedClass;
+            while ( ( annotatedClass = reader.readLine() ) != null )
             {
-                JarFile jarFile = null;
+                String className = null;
                 try
                 {
-                    jarFile = new JarFile( classPathJar );
-                }
-                catch ( IOException e )
-                {
-                    e.printStackTrace();
-                }
-                Enumeration jarEntries = jarFile.entries();
-
-                while ( jarEntries.hasMoreElements() )
-                {
-                    JarEntry jarEntry = (JarEntry) jarEntries.nextElement();
-                    if ( jarEntry.isDirectory() || !jarEntry.getName().endsWith( "class" ) )
-                    {
-                        continue;
-                    }
-
-                    String className = null;
-                    try
+                    Class c = Class.forName( annotatedClass );
+                    className = c.getName();
+                    AssemblyInfoMarshallerAnnotation annotation =
+                        (AssemblyInfoMarshallerAnnotation) c.getAnnotation( AssemblyInfoMarshallerAnnotation.class );
+                    if ( annotation != null )
                     {
-                        String[] tokens = jarEntry.getName().split( "[//]" );
-
-                        Class c = Class.forName( tokens[tokens.length - 1].split( "[.]" )[0] );
-                        className = c.getName();
-                        AssemblyInfoMarshallerAnnotation annotation =
-                            (AssemblyInfoMarshallerAnnotation) c.getAnnotation(
-                                AssemblyInfoMarshallerAnnotation.class );
-                        if ( annotation != null )
+                        for ( ProgrammingLanguage programmingLanguage : annotation.programmingLanguages() )
                         {
-                            for ( ProgrammingLanguage programmingLanguage : annotation.programmingLanguages() )
-                            {
-                                AssemblyInfoMarshaller marshaller = (AssemblyInfoMarshaller) c.newInstance();
-                                marshaller.init( programmingLanguage, new File( mavenProject.getBuild().getDirectory(),
-                                                                                BuildDirectories.BUILD_SOURCES.getBuildDirectoryName() ) );
-                                marshallers.add( marshaller );
-                            }
-
+                            AssemblyInfoMarshaller marshaller = (AssemblyInfoMarshaller) c.newInstance();
+                            marshaller.init( programmingLanguage, new File( mavenProject.getBuild().getDirectory(),
+                                                                            BuildDirectories.BUILD_SOURCES.getBuildDirectoryName() ) );
+                            marshallers.add( marshaller );
                         }
                     }
-                    catch ( ClassNotFoundException e )
-                    {
-                        throw new AssemblyInfoException(
-                            "NMAVEN-061-007: Unable to create AssemblyInfoMarshaller: Class Name = " + className, e );
-                    }
-                    catch ( InstantiationException e )
-                    {
-                        throw new AssemblyInfoException(
-                            "NMAVEN-020-003: Unable to create AssemblyInfoMarshaller: Class Name = " + className, e );
-                    }
-                    catch ( IllegalAccessException e )
-                    {
-                        throw new AssemblyInfoException(
-                            "NMAVEN-020-004: Unable to create AssemblyInfoMarshaller: Class Name = " + className, e );
-                    }
+                }
+                catch ( ClassNotFoundException e )
+                {
+                    throw new InitializationException(
+                        "NMAVEN-061-007: Unable to create AssemblyInfoMarshaller: Class Name = " + className, e );
+                }
+                catch ( InstantiationException e )
+                {
+                    throw new InitializationException(
+                        "NMAVEN-020-003: Unable to create AssemblyInfoMarshaller: Class Name = " + className, e );
+                }
+                catch ( IllegalAccessException e )
+                {
+                    throw new InitializationException(
+                        "NMAVEN-020-004: Unable to create AssemblyInfoMarshaller: Class Name = " + className, e );
                 }
             }
         }

Added: incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/plexus/components.xml?rev=607948&view=auto
==============================================================================
--- incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/plexus/components.xml (added)
+++ incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/plexus/components.xml Tue Jan  1 16:04:16 2008
@@ -0,0 +1,8 @@
+<component-set>
+    <components>
+        <component>
+            <role>org.apache.maven.dotnet.assembler.AssemblerContext</role>
+            <implementation>org.apache.maven.dotnet.assembler.impl.AssemblerContextImpl</implementation>
+        </component>
+    </components>
+</component-set>

Propchange: incubator/nmaven/trunk/components/maven-dotnet-assembler/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CommandExecutor.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CommandExecutor.java?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CommandExecutor.java (original)
+++ incubator/nmaven/trunk/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CommandExecutor.java Tue Jan  1 16:04:16 2008
@@ -27,6 +27,7 @@
 
 import java.util.List;
 import java.util.ArrayList;
+import java.util.logging.Level;
 import java.io.File;
 
 /**
@@ -47,8 +48,9 @@
      *
      * @param executable the name of the executable (csc, xsd, etc).
      * @param commands   the command options for the compiler/executable
-     * @throws org.apache.maven.dotnet.executable.ExecutionException if compiler or executable writes anything to the standard error stream or if the process
-     *                            returns a process result != 0.
+     * @throws org.apache.maven.dotnet.compiler.CompilerException
+     *          if compiler or executable writes anything to the standard error stream or if the process
+     *          returns a process result != 0.
      */
     void executeCommand( String executable, List<String> commands )
         throws CompilerException;
@@ -60,8 +62,9 @@
      * @param commands           the commands options for the compiler/executable
      * @param failsOnErrorOutput if true, throws an <code>ExecutionException</code> if there the compiler or executable
      *                           writes anything to the error output stream. By default, this value is true
-     * @throws org.apache.maven.dotnet.cmpiler.CompilerException if compiler or executable writes anything to the standard error stream (provided the
-     *                            failsOnErrorOutput is not false) or if the process returns a process result != 0.
+     * @throws org.apache.maven.dotnet.compiler.CompilerException
+     *          if compiler or executable writes anything to the standard error stream (provided the
+     *          failsOnErrorOutput is not false) or if the process returns a process result != 0.
      */
     void executeCommand( String executable, List<String> commands, boolean failsOnErrorOutput )
         throws CompilerException;
@@ -74,8 +77,8 @@
      * @param executable       the name of the executable (csc, xsd, etc).
      * @param commands         the command options for the compiler/executable
      * @param workingDirectory the directory where the command will be executed
-     * @throws org.apache.maven.dotnet.compiler.CompilerException if compiler or executable writes anything to the standard error stream (provided the
-     *                            failsOnErrorOutput is not false) or if the process returns a process result != 0.
+     * @throws CompilerException if compiler or executable writes anything to the standard error stream (provided the
+     *                           failsOnErrorOutput is not false) or if the process returns a process result != 0.
      */
     void executeCommand( String executable, List<String> commands, File workingDirectory, boolean failsOnErrorOutput )
         throws CompilerException;
@@ -107,6 +110,7 @@
      */
     public static class Factory
     {
+        private static java.util.logging.Logger javaLogger = java.util.logging.Logger.getAnonymousLogger();
 
         /**
          * Constructor
@@ -129,6 +133,7 @@
                  */
                 private Logger logger;
 
+
                 /**
                  * Standard Out
                  */
@@ -175,7 +180,7 @@
 
                     Commandline commandline = new Commandline();
                     commandline.setExecutable( executable );
-                    commandline.addArguments( commands.toArray( new String[commands.size()]));
+                    commandline.addArguments( commands.toArray( new String[commands.size()] ) );
                     if ( workingDirectory != null && workingDirectory.exists() )
                     {
                         commandline.setWorkingDirectory( workingDirectory.getAbsolutePath() );
@@ -244,7 +249,7 @@
                     {
                         if ( logger == null )
                         {
-                            System.out.println( "NMAVEN-040-003: Error Log not set: Will not output error logs" );
+                            System.out.println( "NMAVEN-040-003: Error Log not set: Will use java.util.logging.Logger" );
                         }
                         error = false;
                     }
@@ -256,6 +261,10 @@
                         {
                             logger.error( line );
                         }
+                        else
+                        {
+                            javaLogger.log( Level.WARNING, line );
+                        }
                         error = true;
                     }
 
@@ -299,10 +308,9 @@
                     public void consumeLine( String line )
                     {
                         sb.append( line );
-                        if ( logger != null )
-                        {
-                            consumer.consumeLine( line );
-                        }
+
+                        consumer.consumeLine( line );
+
                     }
 
                     /**

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=607948&r1=607947&r2=607948&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 Tue Jan  1 16:04:16 2008
@@ -29,10 +29,6 @@
  */
 public interface CompilerContext
 {
-    /**
-     * Role used to register component implementations with the container.
-     */
-    String ROLE = CompilerContext.class.getName();
 
     /**
      * Returns the user provided configuration associated to this context. This is a live copy, so any changes to the

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=607948&r1=607947&r2=607948&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 Tue Jan  1 16:04:16 2008
@@ -36,8 +36,6 @@
 import org.apache.maven.dotnet.compiler.CompilerConfig;
 import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
 import org.apache.maven.dotnet.compiler.DotnetCompilerContext;
-import org.apache.maven.dotnet.compiler.DotnetCompilerPlatformVersion;
-import org.apache.maven.dotnet.Vendor;
 import org.apache.maven.dotnet.InitializationException;
 import org.apache.maven.dotnet.BuildDirectories;
 import org.apache.maven.dotnet.ArtifactType;
@@ -46,7 +44,6 @@
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.LogEnabled;
-import org.codehaus.plexus.util.StringUtils;
 
 public final class DotnetCompilerContextImpl
     implements DotnetCompilerContext, LogEnabled
@@ -139,8 +136,8 @@
 
     public void enableLogging( Logger logger )
     {
-        System.out.println( "Enable logging." );
         this.logger = logger;
+        logger.info( "Logging enabled." );
     }
 
     public void init( MavenProject project, CompilerConfig compilerConfig )

Modified: incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/assembler/DefaultAssemblyInfoMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/assembler/DefaultAssemblyInfoMarshaller.java?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/assembler/DefaultAssemblyInfoMarshaller.java (original)
+++ incubator/nmaven/trunk/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/assembler/DefaultAssemblyInfoMarshaller.java Tue Jan  1 16:04:16 2008
@@ -86,6 +86,10 @@
             {
                 assemblyInfoFileStream.close();
             }
+            if(outputStream != null)
+            {
+                outputStream.close();
+            }
         }
     }
 

Added: incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AssemblyInfoGeneratorMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AssemblyInfoGeneratorMojo.java?rev=607948&view=auto
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AssemblyInfoGeneratorMojo.java (added)
+++ incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AssemblyInfoGeneratorMojo.java Tue Jan  1 16:04:16 2008
@@ -0,0 +1,162 @@
+package org.apache.maven.dotnet.plugin.compiler;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.dotnet.assembler.AssemblerContext;
+import org.apache.maven.dotnet.assembler.AssemblyInfo;
+import org.apache.maven.dotnet.assembler.AssemblyInfoMarshaller;
+import org.apache.maven.dotnet.assembler.AssemblyInfoException;
+import org.apache.maven.dotnet.ArtifactType;
+import org.apache.maven.dotnet.ProgrammingLanguage;
+import org.apache.maven.dotnet.BuildDirectories;
+import org.apache.maven.dotnet.InitializationException;
+import org.codehaus.plexus.util.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.FileOutputStream;
+import java.util.List;
+
+/**
+ * Generates an AssemblyInfo.* class based on information within the pom file.
+ *
+ * @goal generate-assembly-info
+ * @phase generate-sources
+ * @description Generates an AssemblyInfo.* class based on information within the pom file.
+ */
+public class AssemblyInfoGeneratorMojo
+    extends AbstractMojo
+{
+    /**
+     * The maven project.
+     *
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    /**
+     * The framework version to compile under: 1.1, 2.0, 3.0
+     *
+     * @parameter expression = "${frameworkVersion}"
+     */
+    private String frameworkVersion;
+
+    /**
+     * .NET Language. The default value is <code>C_SHARP</code>. Not case or white-space sensitive.
+     *
+     * @parameter expression="${language}" default-value = "C_SHARP"
+     * @required
+     */
+    private String language;
+
+    /**
+     * The vendor for the compiler: MICROSOFT, NOVELL. Not case or white-space sensitive.
+     *
+     * @parameter expression="${vendor}"
+     */
+    private String vendor;
+
+    /**
+     * Specify a strong name key file.
+     *
+     * @parameter expression = "${keyfile}"
+     */
+    private File keyfile;
+
+    /**
+     * Specifies a strong name key container. (not currently supported)
+     *
+     * @parameter expression = "${keycontainer}"
+     */
+    private String keycontainer;
+
+    /**
+     * Source directory containing the copied class files.
+     *
+     * @parameter expression = "${sourceDirectory}" default-value="${project.build.sourceDirectory}"
+     * @required
+     */
+    private String sourceDirectory;
+
+    /**
+     * @component
+     */
+    private AssemblerContext assemblerContext;
+
+
+    /**
+     * If an AssemblyInfo file exists in the source directory, then this method will not generate an AssemblyInfo.
+     *
+     * @throws org.apache.maven.plugin.MojoExecutionException
+     *
+     */
+    public void execute()
+        throws MojoExecutionException
+    {
+        if ( ArtifactType.MODULE.isMatchByString( project.getArtifact().getType() ) )
+        {
+            return;
+        }
+
+        File srcFile = new File( sourceDirectory );
+        if ( srcFile.exists() )
+        {
+            try
+            {
+                List files = FileUtils.getFiles( srcFile, "**/AssemblyInfo.*", null );
+                if ( files.size() != 0 )
+                {
+                    getLog().info( "NMAVEN-902-001: Found AssemblyInfo file(s), so will not generate one" );
+                    return;
+                }
+            }
+            catch ( IOException e )
+            {
+                throw new MojoExecutionException(
+                    "NMAVEN-902-004: Could not determine whether an AssemblyInfo file exists", e );
+            }
+        }
+        getLog().info( "NMAVEN-902-000: Generating Assembly Info: Language = " + language.trim() );
+
+        try
+        {
+            assemblerContext.init( project );
+        }
+        catch ( InitializationException e )
+        {
+            throw new MojoExecutionException( e.getMessage() );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( e.getMessage() );
+        }
+
+        AssemblyInfo assemblyInfo = assemblerContext.getAssemblyInfo();
+        assemblyInfo.setKeyFile( keyfile );
+        assemblyInfo.setKeyName( keycontainer );
+
+        try
+        {
+            File file = new File( project.getBuild().getDirectory(), BuildDirectories
+                .BUILD_SOURCES.getBuildDirectoryName() + File.separator + "META-INF" + File.separator +
+                "AssemblyInfo.cs" );
+            FileUtils.mkdir( file.getParent() );
+
+            FileOutputStream fos = new FileOutputStream( file );
+            AssemblyInfoMarshaller marshaller =
+                assemblerContext.getAssemblyInfoMarshallerFor( ProgrammingLanguage.C_SHARP );
+            marshaller.marshal( assemblyInfo, fos );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "NMAVEN-902-002: Problem generating assembly info class", e );
+        }
+        catch ( AssemblyInfoException e )
+        {
+            throw new MojoExecutionException( "NMAVEN-902-005: Problem generating assembly info class", e );
+        }
+    }
+}

Propchange: incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AssemblyInfoGeneratorMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java Tue Jan  1 16:04:16 2008
@@ -34,14 +34,11 @@
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.Map;
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -109,17 +106,7 @@
     /**
      * @component
      */
-    private DotnetCompilerContext compilerContext;
-
-    /**
-     * @component
-     */
-    private List<ArtifactHandler> artifactHandlers;
-
-    /**
-     * @component
-     */
-    private ArtifactHandlerManager artifactHandlerManager;
+    private DotnetCompilerContext dotnetCompilerContext;
 
     public void execute()
         throws MojoExecutionException, MojoFailureException
@@ -177,7 +164,7 @@
 
         try
         {
-            compilerContext.init( project, compilerConfig );
+            dotnetCompilerContext.init( project, compilerConfig );
         }
         catch ( InitializationException e )
         {
@@ -189,7 +176,7 @@
         }
         try
         {
-            project.getArtifact().setFile( compilerContext.getClassCompiler().compile() );
+            project.getArtifact().setFile( dotnetCompilerContext.getClassCompiler().compile() );
         }
         catch ( InvalidArtifactException e )
         {

Modified: incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java Tue Jan  1 16:04:16 2008
@@ -137,7 +137,7 @@
         if (!sourceDir.exists()) {
             return;
         }
-        
+        this.getLog();
         Vendor vendor;
         if ( vendorName != null )
         {

Modified: incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/resources/META-INF/plexus/components.xml?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/resources/META-INF/plexus/components.xml Tue Jan  1 16:04:16 2008
@@ -9,6 +9,9 @@
       </implementation>
       <configuration>
         <phases>
+          <generate-sources>
+            org.apache.maven.dotnet.plugins:maven-compiler-plugin:generate-assembly-info
+          </generate-sources>
           <process-sources>
             org.apache.maven.dotnet.plugins:maven-compiler-plugin:process-sources
           </process-sources>

Modified: incubator/nmaven/trunk/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/pom.xml?rev=607948&r1=607947&r2=607948&view=diff
==============================================================================
--- incubator/nmaven/trunk/pom.xml (original)
+++ incubator/nmaven/trunk/pom.xml Tue Jan  1 16:04:16 2008
@@ -213,11 +213,11 @@
       <dependency>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-container-default</artifactId>
-        <version>1.0-alpha-40</version>
+        <version>1.0-alpha-32</version>
       </dependency>
     </dependencies>
   </dependencyManagement>
-    <profiles>
+  <profiles>
     <profile>
       <id>run-its</id>
       <modules>