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 2006/12/14 22:45:25 UTC

svn commit: r487379 - in /incubator/nmaven/branches/SI_SIGNING: components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/ components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/ components/dotnet-assembler/s...

Author: sisbell
Date: Thu Dec 14 14:45:24 2006
New Revision: 487379

URL: http://svn.apache.org/viewvc?view=rev&rev=487379
Log:
Added support for signing assemblies.

Added:
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblyInfoUnmarshaller.java   (with props)
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshaller.java   (with props)
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/impl/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshallerTest.java   (with props)
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/resources/
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/resources/AssemblyInfo.cs
Modified:
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/ExecutableConfig.java
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerConfig.java
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerContext.java
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/impl/DefaultCompiler.java
    incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/impl/CompilerContextImpl.java
    incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/AssemblyInfoGeneratorMojo.java
    incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/CompilerMojo.java
    incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/TestCompilerMojo.java

Added: incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblyInfoUnmarshaller.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblyInfoUnmarshaller.java?view=auto&rev=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblyInfoUnmarshaller.java (added)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblyInfoUnmarshaller.java Thu Dec 14 14:45:24 2006
@@ -0,0 +1,9 @@
+package org.apache.maven.dotnet.assembler;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public interface AssemblyInfoUnmarshaller
+{
+    AssemblyInfo unmarshall( InputStream inputStream) throws IOException;
+}

Propchange: incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/AssemblyInfoUnmarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshaller.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshaller.java?view=auto&rev=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshaller.java (added)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshaller.java Thu Dec 14 14:45:24 2006
@@ -0,0 +1,52 @@
+package org.apache.maven.dotnet.assembler.impl;
+
+import org.apache.maven.dotnet.assembler.AssemblyInfoUnmarshaller;
+import org.apache.maven.dotnet.assembler.AssemblyInfo;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.BufferedReader;
+
+public class DefaultAssemblyInfoUnmarshaller implements AssemblyInfoUnmarshaller {
+    public AssemblyInfo unmarshall(InputStream inputStream) throws IOException {
+        AssemblyInfo assemblyInfo = new AssemblyInfo();
+        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+        String line;
+        while ((line = reader.readLine()) != null) {
+            String[] tokens = line.split("[:]");
+
+            if (tokens.length == 2) {
+                String[] assemblyTokens = tokens[1].split("[(]");
+                String name = assemblyTokens[0].trim();
+                String value = assemblyTokens[1].trim().split("[\"]")[1].trim();
+                setAssemblyInfo(assemblyInfo, name, value);
+            }
+        }
+        return assemblyInfo;
+    }
+
+    private void setAssemblyInfo(AssemblyInfo assemblyInfo, String name, String value) throws IOException {
+        if (!name.startsWith("Assembly"))
+            throw new IOException("NMAVEN-xxx-xxx: Invalid assembly info parameter: Name = " + name + ", Value = " + value);
+        if(name.equals("AssemblyDescription")) {
+            assemblyInfo.setDescription(value);
+        } else if(name.equals("AssemblyTitle")) {
+            assemblyInfo.setTitle(value);
+        } else if(name.equals("AssemblyCompany")) {
+            assemblyInfo.setCompany(value);
+        } else if(name.equals("AssemblyProduct")) {
+            assemblyInfo.setProduct(value);
+        } else if(name.equals("AssemblyCopyright")) {
+            assemblyInfo.setCopyright(value);
+        } else if(name.equals("AssemblyTrademark")) {
+            assemblyInfo.setTrademark(value);
+        } else if(name.equals("AssemblyCulture")) {
+            assemblyInfo.setCulture(value);
+        } else if(name.equals("AssemblyVersion")) {
+            assemblyInfo.setVersion(value);
+        } else if(name.equals("AssemblyConfiguration")) {
+            assemblyInfo.setConfiguration(value);
+        }
+    }
+}

Propchange: incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/main/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshaller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshallerTest.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshallerTest.java?view=auto&rev=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshallerTest.java (added)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshallerTest.java Thu Dec 14 14:45:24 2006
@@ -0,0 +1,41 @@
+package org.apache.maven.dotnet.assembler.impl;
+
+import junit.framework.TestCase;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.File;
+
+import org.apache.maven.dotnet.assembler.AssemblyInfo;
+
+public class DefaultAssemblyInfoUnmarshallerTest
+    extends TestCase
+{
+    private static String basedir = System.getProperty( "basedir" );
+
+    public void testUnmarshall()
+    {
+        FileInputStream fis = null;
+        try
+        {
+            fis = new FileInputStream(
+                basedir + "/src/test/resources/AssemblyInfo.cs" );
+        }
+        catch ( FileNotFoundException e )
+        {
+            fail("Could not find test file");
+        }
+
+        DefaultAssemblyInfoUnmarshaller um = new DefaultAssemblyInfoUnmarshaller();
+        try
+        {
+            AssemblyInfo assemblyInfo = um.unmarshall( fis );
+            assertEquals( "Incorrect Assembly Version", "1.0.0", assemblyInfo.getVersion());
+        }
+        catch ( IOException e )
+        {
+            fail("Problem iwht reading the assembly info input");
+        }
+    }
+}

Propchange: incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/java/org/apache/maven/dotnet/assembler/impl/DefaultAssemblyInfoUnmarshallerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/resources/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/resources/AssemblyInfo.cs?view=auto&rev=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/resources/AssemblyInfo.cs (added)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-assembler/src/test/resources/AssemblyInfo.cs Thu Dec 14 14:45:24 2006
@@ -0,0 +1,11 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyTitle("it0002")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("-it0002")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: AssemblyVersion("1.0.0")]
+[assembly: AssemblyConfiguration("")]
\ No newline at end of file

Modified: incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/ExecutableConfig.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/ExecutableConfig.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/ExecutableConfig.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/ExecutableConfig.java Thu Dec 14 14:45:24 2006
@@ -20,6 +20,7 @@
 
 import org.apache.maven.dotnet.executable.compiler.CompilerConfig;
 import org.apache.maven.dotnet.executable.compiler.ArtifactType;
+import org.apache.maven.dotnet.executable.compiler.KeyInfo;
 
 import java.util.List;
 import java.io.File;
@@ -80,6 +81,8 @@
         {
             return new CompilerConfig()
             {
+                private KeyInfo keyInfo;
+
                 private List<String> commands;
 
                 private String executionPath;
@@ -138,6 +141,15 @@
                 public void setLocalRepository( File localRepository )
                 {
                     this.localRepository = localRepository;
+                }
+
+                public KeyInfo getKeyInfo()
+                {
+                    return keyInfo;
+                }
+
+                public void setKeyInfo(KeyInfo keyInfo) {
+                    this.keyInfo = keyInfo;
                 }
             };
         }

Modified: incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerConfig.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerConfig.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerConfig.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerConfig.java Thu Dec 14 14:45:24 2006
@@ -45,6 +45,8 @@
      * @return true if the compiler plugin should compile the test classes, otherwise returns false.
      */
     boolean isTestCompile();
+    
+    KeyInfo getKeyInfo();
 
     /**
      * Returns local repository
@@ -74,5 +76,6 @@
      */
     void setLocalRepository( File localRepository );
 
+    void setKeyInfo(KeyInfo keyInfo);
 
 }

Modified: incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerContext.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerContext.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerContext.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/CompilerContext.java Thu Dec 14 14:45:24 2006
@@ -81,6 +81,8 @@
      */
     List<Artifact> getDirectModuleDependencies();
 
+    KeyInfo getKeyInfo();
+
     /**
      * Returns a list of library (dll) dependencies of the class files.
      *

Modified: incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/impl/DefaultCompiler.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/impl/DefaultCompiler.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/impl/DefaultCompiler.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/compiler/impl/DefaultCompiler.java Thu Dec 14 14:45:24 2006
@@ -140,6 +140,11 @@
             commands.add( "/nologo" );
         }
 
+        if(compilerContext.getKeyInfo().getKeyFileUri() != null)
+        {
+            commands.add("/keyfile:" + compilerContext.getKeyInfo().getKeyFileUri());
+        }
+
         if ( config.getCommands() != null )
         {
             commands.addAll( config.getCommands() );

Modified: incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/impl/CompilerContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/impl/CompilerContextImpl.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/impl/CompilerContextImpl.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/components/dotnet-executable/src/main/java/org/apache/maven/dotnet/executable/impl/CompilerContextImpl.java Thu Dec 14 14:45:24 2006
@@ -32,6 +32,7 @@
 import org.apache.maven.dotnet.registry.Repository;
 import org.apache.maven.dotnet.registry.RepositoryRegistry;
 import org.apache.maven.dotnet.RepositoryNotFoundException;
+import org.apache.maven.dotnet.vendor.Vendor;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
@@ -133,6 +134,15 @@
             artifacts.add( project.getArtifact() );
         }
         return artifacts;
+    }
+
+    public KeyInfo getKeyInfo() {
+        if((compilerRequirement.getVendor().equals( Vendor.MICROSOFT )
+            && compilerRequirement.getFrameworkVersion().equals("1.1.4322")) || config.getKeyInfo() == null) {
+            return KeyInfo.Factory.createDefaultKeyInfo();
+        } else {
+            return config.getKeyInfo();
+        }
     }
 
     public List<Artifact> getLibraryDependencies()

Modified: incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/AssemblyInfoGeneratorMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/AssemblyInfoGeneratorMojo.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/AssemblyInfoGeneratorMojo.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/AssemblyInfoGeneratorMojo.java Thu Dec 14 14:45:24 2006
@@ -39,7 +39,9 @@
  * @goal generate-assembly-info
  * @phase generate-sources
  */
-public class AssemblyInfoGeneratorMojo extends AbstractMojo {
+public class AssemblyInfoGeneratorMojo
+    extends AbstractMojo
+{
 
     /**
      * The maven project.
@@ -76,37 +78,53 @@
      *
      * @throws MojoExecutionException
      */
-    public void execute() throws MojoExecutionException {
-        if (project.getArtifact().getType().equals("module")) {
+    public void execute()
+        throws MojoExecutionException
+    {
+        if ( project.getArtifact().getType().equals( "module" ) )
+        {
             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");
+        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);
+            }
+            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 {
-            try {
-                assemblerContext.init(project);
-            } catch (InitializationException e) {
-                throw new MojoExecutionException("NMAVEN-902-006: Failed to initialize the assembler context");
+        getLog().info( "NMAVEN-902-000: Generating Assembly Info: Language = " + language.trim() );
+        try
+        {
+            try
+            {
+                assemblerContext.init( project );
+            }
+            catch ( InitializationException e )
+            {
+                throw new MojoExecutionException( "NMAVEN-902-006: Failed to initialize the assembler context" );
             }
-            AssemblyInfoMarshaller marshaller = assemblerContext.getAssemblyInfoMarshallerFor(language.trim());
-            marshaller.marshal(assemblerContext.getAssemblyInfo(), project, null);
-        } 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);
+            AssemblyInfoMarshaller marshaller = assemblerContext.getAssemblyInfoMarshallerFor( language.trim() );
+            marshaller.marshal( assemblerContext.getAssemblyInfo(), project, null );
+        }
+        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 );
         }
 
     }

Modified: incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/CompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/CompilerMojo.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/CompilerMojo.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/CompilerMojo.java Thu Dec 14 14:45:24 2006
@@ -43,7 +43,9 @@
  * @phase compile
  * @description Maven Mojo for compiling Class files to the .NET Intermediate Language
  */
-public final class CompilerMojo extends AbstractMojo {
+public final class CompilerMojo
+    extends AbstractMojo
+{
 
     /**
      * @parameter expression="${settings.localRepository}"
@@ -73,6 +75,7 @@
 
     /**
      * Specify a strong name key file. (not currently supported)
+     * @parameter expression = "${keyfile}"
      */
     private File keyfile;
 
@@ -89,7 +92,7 @@
     private String platform;
 
     /**
-     * @parameter expression = "${frameworkVersion}" 
+     * @parameter expression = "${frameworkVersion}"
      */
     private String frameworkVersion;
 
@@ -140,56 +143,94 @@
      * @throws MojoExecutionException thrown if MOJO is unable to compile the class files or if the environment is not
      *                                properly set.
      */
-    public void execute() throws MojoExecutionException {
-        if (profileAssemblyPath != null && !profileAssemblyPath.exists())
-            throw new MojoExecutionException("NMAVEN-900-007: Profile Assembly Path does not exist: Path = " +
-                    profileAssemblyPath.getAbsolutePath());
+    public void execute()
+        throws MojoExecutionException
+    {
+        if ( profileAssemblyPath != null && !profileAssemblyPath.exists() )
+        {
+            throw new MojoExecutionException( "NMAVEN-900-007: Profile Assembly Path does not exist: Path = " +
+                profileAssemblyPath.getAbsolutePath() );
+        }
 
         //Requirement
         CompilerRequirement compilerRequirement = CompilerRequirement.Factory.createDefaultCompilerRequirement();
-        compilerRequirement.setLanguage(language);
-        compilerRequirement.setFrameworkVersion(frameworkVersion);
-        compilerRequirement.setProfile(profile);
-        compilerRequirement.setVendorVersion(vendorVersion);
-        try {
-            if(vendor != null) compilerRequirement.setVendor(VendorFactory.createVendorFromName(vendor));
-        } catch (PlatformUnsupportedException e) {
-            throw new MojoExecutionException("NMAVEN-900-000: Unknown Vendor: Vendor = " + vendor, e);
+        compilerRequirement.setLanguage( language );
+        compilerRequirement.setFrameworkVersion( frameworkVersion );
+        compilerRequirement.setProfile( profile );
+        compilerRequirement.setVendorVersion( vendorVersion );
+        try
+        {
+            if ( vendor != null )
+            {
+                compilerRequirement.setVendor( VendorFactory.createVendorFromName( vendor ) );
+            }
+        }
+        catch ( PlatformUnsupportedException e )
+        {
+            throw new MojoExecutionException( "NMAVEN-900-000: Unknown Vendor: Vendor = " + vendor, e );
         }
 
         //Config
         CompilerConfig compilerConfig = (CompilerConfig) CompilerConfig.Factory.createDefaultExecutableConfig();
-        compilerConfig.setLocalRepository(localRepository);
-        if (parameters != null) compilerConfig.setCommands(parameters);
+        compilerConfig.setLocalRepository( localRepository );
+        if ( parameters != null )
+        {
+            compilerConfig.setCommands( parameters );
+        }
         String artifactTypeName = project.getArtifact().getType();
 
-        if (artifactTypeName.equals(ArtifactType.MODULE.getArtifactTypeName())) {
-            compilerConfig.setArtifactType(ArtifactType.MODULE);
-        } else if (artifactTypeName.equals(ArtifactType.LIBRARY.getArtifactTypeName())) {
-            compilerConfig.setArtifactType(ArtifactType.LIBRARY);
-        } else if (artifactTypeName.equals(ArtifactType.EXE.getArtifactTypeName())) {
-            compilerConfig.setArtifactType(ArtifactType.EXE);
-        } else if (artifactTypeName.equals(ArtifactType.WINEXE.getArtifactTypeName())) {
-            compilerConfig.setArtifactType(ArtifactType.WINEXE);
-        } else if (artifactTypeName.equals(ArtifactType.NAR.getArtifactTypeName())) {
-            compilerConfig.setArtifactType(ArtifactType.LIBRARY);
-        } else {
-            throw new MojoExecutionException("NMAVEN-900-001: Unrecognized artifact type: Language = " + language
-                    + ", Vendor = " + vendor + ", ArtifactType = " + artifactTypeName);
-        }
-
-        try {
-            CompilerExecutable compilerExecutable = netExecutableFactory.getCompilerExecutableFor(compilerRequirement,
-                    compilerConfig, project, profileAssemblyPath);
+        if ( artifactTypeName.equals( ArtifactType.MODULE.getArtifactTypeName() ) )
+        {
+            compilerConfig.setArtifactType( ArtifactType.MODULE );
+        }
+        else if ( artifactTypeName.equals( ArtifactType.LIBRARY.getArtifactTypeName() ) )
+        {
+            compilerConfig.setArtifactType( ArtifactType.LIBRARY );
+        }
+        else if ( artifactTypeName.equals( ArtifactType.EXE.getArtifactTypeName() ) )
+        {
+            compilerConfig.setArtifactType( ArtifactType.EXE );
+        }
+        else if ( artifactTypeName.equals( ArtifactType.WINEXE.getArtifactTypeName() ) )
+        {
+            compilerConfig.setArtifactType( ArtifactType.WINEXE );
+        }
+        else if ( artifactTypeName.equals( ArtifactType.NAR.getArtifactTypeName() ) )
+        {
+            compilerConfig.setArtifactType( ArtifactType.LIBRARY );
+        }
+        else
+        {
+            throw new MojoExecutionException( "NMAVEN-900-001: Unrecognized artifact type: Language = " + language +
+                ", Vendor = " + vendor + ", ArtifactType = " + artifactTypeName );
+        }
+
+        if ( keyfile != null )
+        {
+            KeyInfo keyInfo = KeyInfo.Factory.createDefaultKeyInfo();
+            keyInfo.setKeyFileUri( keyfile.getAbsolutePath() );
+            compilerConfig.setKeyInfo( keyInfo );
+        }
+
+        try
+        {
+            CompilerExecutable compilerExecutable = netExecutableFactory.getCompilerExecutableFor( compilerRequirement,
+                                                                                                   compilerConfig,
+                                                                                                   project,
+                                                                                                   profileAssemblyPath );
             compilerExecutable.execute();
-            project.getArtifact().setFile(compilerExecutable.getCompiledArtifact());
-        } catch (PlatformUnsupportedException e) {
-            throw new MojoExecutionException("NMAVEN-900-003: Unsupported Platform: Language = " + language
-                    + ", Vendor = " + vendor + ", ArtifactType = " + artifactTypeName, e);
-        } catch (ExecutionException e) {
-            throw new MojoExecutionException("NMAVEN-900-004: Unable to Compile: Language = " + language
-                    + ", Vendor = " + vendor + ", ArtifactType = " + artifactTypeName + ", Source Directory = "
-                    + project.getBuild().getSourceDirectory(), e);
+            project.getArtifact().setFile( compilerExecutable.getCompiledArtifact() );
+        }
+        catch ( PlatformUnsupportedException e )
+        {
+            throw new MojoExecutionException( "NMAVEN-900-003: Unsupported Platform: Language = " + language +
+                ", Vendor = " + vendor + ", ArtifactType = " + artifactTypeName, e );
+        }
+        catch ( ExecutionException e )
+        {
+            throw new MojoExecutionException( "NMAVEN-900-004: Unable to Compile: Language = " + language +
+                ", Vendor = " + vendor + ", ArtifactType = " + artifactTypeName + ", Source Directory = " +
+                project.getBuild().getSourceDirectory(), e );
         }
     }
 }

Modified: incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/TestCompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/TestCompilerMojo.java?view=diff&rev=487379&r1=487378&r2=487379
==============================================================================
--- incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/TestCompilerMojo.java (original)
+++ incubator/nmaven/branches/SI_SIGNING/plugins/maven-compile-plugin/src/main/java/org/apache/maven/dotnet/plugin/compile/TestCompilerMojo.java Thu Dec 14 14:45:24 2006
@@ -38,7 +38,9 @@
  * @phase test-compile
  * @description Maven Mojo for compiling Test Class files to the .NET Intermediate Language
  */
-public final class TestCompilerMojo extends AbstractMojo {
+public final class TestCompilerMojo
+    extends AbstractMojo
+{
 
     /**
      * @parameter expression="${settings.localRepository}"
@@ -69,7 +71,7 @@
     private boolean skipTestCompile;
 
     /**
-     * @parameter expression = "${testFrameworkVersion}" 
+     * @parameter expression = "${testFrameworkVersion}"
      */
     private String testFrameworkVersion;
 
@@ -120,47 +122,69 @@
      * @throws MojoExecutionException thrown if MOJO is unable to compile the class files or if the environment is not
      *                                properly set.
      */
-    public void execute() throws MojoExecutionException {
-        String skipTests = System.getProperty("maven.test.skip");
-        if ((skipTests != null && skipTests.equalsIgnoreCase("true")) || skipTestCompile) {
-            getLog().warn("NMAVEN-903-004: Disabled unit tests: -Dmaven.test.skip=true");
+    public void execute()
+        throws MojoExecutionException
+    {
+        String skipTests = System.getProperty( "maven.test.skip" );
+        if ( ( skipTests != null && skipTests.equalsIgnoreCase( "true" ) ) || skipTestCompile )
+        {
+            getLog().warn( "NMAVEN-903-004: Disabled unit tests: -Dmaven.test.skip=true" );
             return;
         }
-        FileUtils.mkdir("target");
+        FileUtils.mkdir( "target" );
 
-        if (testLanguage == null) testLanguage = language;
-        if (testVendor == null) testVendor = vendor;
+        if ( testLanguage == null )
+        {
+            testLanguage = language;
+        }
+        if ( testVendor == null )
+        {
+            testVendor = vendor;
+        }
 
         //Requirement
         CompilerRequirement compilerRequirement = CompilerRequirement.Factory.createDefaultCompilerRequirement();
-        compilerRequirement.setLanguage(language);
-        compilerRequirement.setFrameworkVersion(testFrameworkVersion);
-        compilerRequirement.setProfile("FULL");
-        compilerRequirement.setVendorVersion(testVendorVersion);
-        try {
-            if(vendor != null) compilerRequirement.setVendor(VendorFactory.createVendorFromName(vendor));
-        } catch (PlatformUnsupportedException e) {
-            throw new MojoExecutionException("NMAVEN-900-000: Unknown Vendor: Vendor = " + vendor, e);
+        compilerRequirement.setLanguage( language );
+        compilerRequirement.setFrameworkVersion( testFrameworkVersion );
+        compilerRequirement.setProfile( "FULL" );
+        compilerRequirement.setVendorVersion( testVendorVersion );
+        try
+        {
+            if ( vendor != null )
+            {
+                compilerRequirement.setVendor( VendorFactory.createVendorFromName( vendor ) );
+            }
+        }
+        catch ( PlatformUnsupportedException e )
+        {
+            throw new MojoExecutionException( "NMAVEN-900-000: Unknown Vendor: Vendor = " + vendor, e );
         }
-
 
         //Config
         CompilerConfig compilerConfig = (CompilerConfig) CompilerConfig.Factory.createDefaultExecutableConfig();
-        if (testParameters != null) compilerConfig.setCommands(testParameters);
-        compilerConfig.setArtifactType(ArtifactType.LIBRARY);
-        compilerConfig.setTestCompile(true);
-        compilerConfig.setLocalRepository(localRepository);
-
-        try {
-            CompilerExecutable compilerExecutable = netExecutableFactory.getCompilerExecutableFor(compilerRequirement,
-                    compilerConfig, project, null);
+        if ( testParameters != null )
+        {
+            compilerConfig.setCommands( testParameters );
+        }
+        compilerConfig.setArtifactType( ArtifactType.LIBRARY );
+        compilerConfig.setTestCompile( true );
+        compilerConfig.setLocalRepository( localRepository );
+
+        try
+        {
+            CompilerExecutable compilerExecutable =
+                netExecutableFactory.getCompilerExecutableFor( compilerRequirement, compilerConfig, project, null );
             compilerExecutable.execute();
-        } catch (PlatformUnsupportedException e) {
-            throw new MojoExecutionException("NMAVEN-903-003: Unsupported Platform: Language = " + language
-                    + ", Vendor = " + vendor, e);
-        } catch (ExecutionException e) {
-            throw new MojoExecutionException("NMAVEN-903-002: Unable to Compile: Language = " + language
-                    + ", Vendor = " + vendor, e);
+        }
+        catch ( PlatformUnsupportedException e )
+        {
+            throw new MojoExecutionException(
+                "NMAVEN-903-003: Unsupported Platform: Language = " + language + ", Vendor = " + vendor, e );
+        }
+        catch ( ExecutionException e )
+        {
+            throw new MojoExecutionException(
+                "NMAVEN-903-002: Unable to Compile: Language = " + language + ", Vendor = " + vendor, e );
         }
     }
 }