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 br...@apache.org on 2008/09/30 18:21:29 UTC

svn commit: r700539 - in /incubator/nmaven/branches/NMAVEN-8-nunit: components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/ components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/ components/maven-...

Author: brett
Date: Tue Sep 30 11:21:28 2008
New Revision: 700539

URL: http://svn.apache.org/viewvc?rev=700539&view=rev
Log:
- make sure assemblies are copied with the right name for nunit tests
- add utility for adjusting the path in the local repository if needed

Added:
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetArtifactLocator.java   (with props)
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetArtifactLocatorImpl.java   (with props)
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITNUnit24Features.java   (with props)
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/pom.xml   (with props)
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/test/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/test/dotnet/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/test/dotnet/AppTest.cs
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/
      - copied from r700374, incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/MavenITmng-0007-CSharpCompileTestLibrary/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/src/test/dotnet/AppTest.cs
Removed:
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/resource/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/src/main/
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/src/test/dotnet/It0007.cs
Modified:
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerConfig.java
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerContext.java
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/NetCompilerConfigTest.java
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/CommandExecutor.java
    incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/IntegrationTestSuite.java
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITmng0019BuildFailureOnNUnitFailure.java
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/MavenITmng-0020-ShareTestSource/A/pom.xml
    incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/pom.xml
    incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
    incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
    incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/resources/META-INF/plexus/components.xml

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/CompilerConfig.java Tue Sep 30 11:21:28 2008
@@ -18,6 +18,7 @@
  */
 package org.apache.maven.dotnet.compiler;
 
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.dotnet.ProgrammingLanguage;
 import org.apache.maven.dotnet.Vendor;
 import org.apache.maven.dotnet.ArtifactType;
@@ -44,6 +45,13 @@
     boolean isTestCompile();
 
     /**
+     * Returns local repository
+     *
+     * @return local repository
+     */
+    ArtifactRepository getLocalRepository();
+
+    /**
      * Sets the artifact type for the compiler plugin: library, module, exe, winexe or nar
      *
      * @param artifactType the artifact type for the compiler plugin: library, module, exe, winexe or nar
@@ -57,6 +65,13 @@
      */
     void setTestCompile( boolean testCompile );
 
+    /**
+     * Sets local repository
+     *
+     * @param localRepository
+     */
+    void setLocalRepository( ArtifactRepository localRepository );
+
     void setCompilerSourceDirectory( File sourceDirectory );
 
     /**

Added: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetArtifactLocator.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetArtifactLocator.java?rev=700539&view=auto
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetArtifactLocator.java (added)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetArtifactLocator.java Tue Sep 30 11:21:28 2008
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.dotnet.compiler;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/**
+ * Assist in locating an artifact, including creating a shadow copy in the local repository or target workspace to
+ * ensure that the assembly filename is uncompromised for the linker.
+ * 
+ * This should be made redundant by changes to the Maven core to support this within the local repository.
+ */
+public interface DotnetArtifactLocator
+{
+    /**
+     * Get the correct file name for an assembly. A shadow copy will never be created.
+     * @param artifact the assembly artifact to determine the correct file name for
+     * @param localRepository the local repository to search in
+     * @return the file name
+     */
+    String getAssemblyFileName( Artifact artifact, ArtifactRepository localRepository );
+
+    /**
+     * Get a copy of the artifact from the local repository, with the correct file name for an assembly. 
+     * A shadow copy will be created if needed.
+     * @param artifact the assembly artifact to determine the correct file name for
+     * @param localRepository the local repository to search in
+     * @return the file in the local repository
+     */
+    File getArtifactFromLocalRepository( Artifact artifact, ArtifactRepository localRepository );
+}

Propchange: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetArtifactLocator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetArtifactLocator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerConfig.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerConfig.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerConfig.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerConfig.java Tue Sep 30 11:21:28 2008
@@ -18,13 +18,14 @@
  */
 package org.apache.maven.dotnet.compiler;
 
+import java.io.File;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.dotnet.ArtifactType;
 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;
-
 public interface DotnetCompilerConfig
     extends CompilerConfig
 {
@@ -73,6 +74,8 @@
 
                 private boolean isTestCompile;
 
+                private ArtifactRepository localRepository;
+
                 private File compileSourceDirectory;
 
                 private File targetDirectory;
@@ -145,6 +148,16 @@
                     isTestCompile = testCompile;
                 }
 
+                public ArtifactRepository getLocalRepository()
+                {
+                    return localRepository;
+                }
+
+                public void setLocalRepository( ArtifactRepository localRepository )
+                {
+                    this.localRepository = localRepository;
+                }
+
                 public File getCompilerDirectory()
                 {
                     return compileSourceDirectory;
@@ -198,6 +211,11 @@
                         throw new IllegalArgumentException( "compilerPlatformVersion" );
                     }
 
+                    if ( localRepository == null || localRepository.getUrl() == null )
+                    {
+                        throw new IllegalArgumentException( "localRepository" );
+                    }
+
                     if ( compileSourceDirectory == null)
                     {
                         throw new IllegalArgumentException( "sourceDirectory" );
@@ -248,6 +266,10 @@
                     {
                         return false;
                     }
+                    if ( !localRepository.equals( that.getLocalRepository() ) )
+                    {
+                        return false;
+                    }
                     if ( programmingLanguage != that.getProgrammingLanguage() )
                     {
                         return false;
@@ -275,6 +297,7 @@
                     result = 29 * result + compilerPlatformVersion.hashCode();
                     result = 29 * result + artifactType.hashCode();
                     result = 29 * result + ( isTestCompile ? 1 : 0 );
+                    result = 29 * result + localRepository.hashCode();
                     result = 29 * result + compileSourceDirectory.hashCode();
                     result = 29 * result + targetDirectory.hashCode();
                     result = 29 * result + programmingLanguage.hashCode();

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerContext.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerContext.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerContext.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/DotnetCompilerContext.java Tue Sep 30 11:21:28 2008
@@ -85,4 +85,10 @@
      */
     Set<File> getWin32Resources();
 
+    /**
+     * The artifact locator, responsible for creating shadow copies of artifacts if needed.
+     * @return artifact locator
+     */
+    DotnetArtifactLocator getArtifactLocator();
+
 }

Added: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetArtifactLocatorImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetArtifactLocatorImpl.java?rev=700539&view=auto
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetArtifactLocatorImpl.java (added)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetArtifactLocatorImpl.java Tue Sep 30 11:21:28 2008
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.dotnet.compiler.impl;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.logging.Logger;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.dotnet.compiler.DotnetArtifactLocator;
+import org.apache.maven.model.Build;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
+import org.codehaus.plexus.util.FileUtils;
+
+/**
+ * Default implementation of the {@link DotnetArtifactLocator}. Note that the implementation reads metadata from the
+ * local repository to confirm the final name as it is not stored during the resolution process. This makes these calls
+ * inefficient to make repetitively.
+ */
+public final class DotnetArtifactLocatorImpl
+    implements DotnetArtifactLocator
+{
+    private MavenProjectBuilder projectBuilder;
+
+    // TODO: plexus logger?
+    private Logger logger = Logger.getAnonymousLogger();
+
+    public String getAssemblyFileName( Artifact artifact, ArtifactRepository localRepository )
+    {
+        String finalName = artifact.getFile().getName();
+        try
+        {
+            MavenProject project =
+                projectBuilder.buildFromRepository( artifact, Collections.EMPTY_LIST, localRepository );
+            Build build = project.getBuild();
+            if ( build != null && build.getFinalName() != null )
+            {
+                // XXX: 2.1.0-M1 doesn't interpolate this properly, workaround
+                if ( build.getFinalName().indexOf( "${" ) < 0 )
+                {
+                    finalName = build.getFinalName() + "." + artifact.getArtifactHandler().getExtension();
+                    logger.fine( "Using alternate final name for artifact: '" + artifact + "' = '" + finalName + "'" );
+                }
+            }
+        }
+        catch ( ProjectBuildingException e )
+        {
+            logger.info( "Error reading project from the local repository, using default assembly filename ("
+                + e.getMessage() + ")" );
+        }
+        return finalName;
+    }
+
+    public File getArtifactFromLocalRepository( Artifact artifact, ArtifactRepository localRepository )
+    {
+        String finalName = getAssemblyFileName( artifact, localRepository );
+
+        if ( !finalName.equals( artifact.getFile().getName() ) )
+        {
+            // adjust to a subdirectory for the version
+            File file = new File( localRepository.getBasedir(), localRepository.pathOf( artifact ) ).getParentFile();
+            file = new File( file, artifact.getVersion() );
+            file.mkdirs();
+            file = new File( file, finalName );
+
+            // make a copy of the file if it doesn't exist
+            if ( !file.exists() )
+            {
+                try
+                {
+                    FileUtils.copyFile( artifact.getFile(), file );
+                }
+                catch ( IOException e )
+                {
+                    logger.info( "Error copy file in the local repository, using original (" + e.getMessage() + ")" );
+                }
+            }
+
+            artifact.setFile( file );
+        }
+
+        return artifact.getFile();
+    }
+}

Propchange: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetArtifactLocatorImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetArtifactLocatorImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/main/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImpl.java Tue Sep 30 11:21:28 2008
@@ -34,6 +34,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.dotnet.compiler.ClassCompiler;
 import org.apache.maven.dotnet.compiler.CompilerConfig;
+import org.apache.maven.dotnet.compiler.DotnetArtifactLocator;
 import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
 import org.apache.maven.dotnet.compiler.DotnetCompilerContext;
 import org.apache.maven.dotnet.InitializationException;
@@ -84,6 +85,8 @@
 
     private Toolchain toolchain;
 
+    private DotnetArtifactLocator artifactLocator;
+
     public Set<String> getCoreAssemblyNames()
     {
         return null;
@@ -413,4 +416,9 @@
     {
         return value.replaceAll( "[/\\\\]+", "\\" + File.separator );
     }
+
+    public DotnetArtifactLocator getArtifactLocator()
+    {
+        return artifactLocator;
+    }
 }

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/NetCompilerConfigTest.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/NetCompilerConfigTest.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/NetCompilerConfigTest.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/NetCompilerConfigTest.java Tue Sep 30 11:21:28 2008
@@ -18,12 +18,16 @@
  */
 package org.apache.maven.dotnet.compiler;
 
+import org.junit.Assert;
 import org.junit.Test;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.dotnet.ProgrammingLanguage;
 import org.apache.maven.dotnet.Vendor;
 import org.apache.maven.dotnet.ArtifactType;
 
 import java.io.File;
+import java.net.MalformedURLException;
 
 public class NetCompilerConfigTest
 {
@@ -55,6 +59,16 @@
     }
 
     @Test(expected = IllegalArgumentException.class)
+    public void verifyCompilerConfig_WithNullLocalRepository()
+        throws IllegalArgumentException
+    {
+        DotnetCompilerConfig config = getDefaultDotnetCompilerConfig();
+        config.setLocalRepository( null);
+
+        config.verifyCompilerConfig();
+    }
+
+    @Test(expected = IllegalArgumentException.class)
     public void verifyCompilerConfig_WithNullProgrammingLanguage()
         throws IllegalArgumentException
     {
@@ -119,6 +133,15 @@
         DotnetCompilerConfig config = DotnetCompilerConfig.Factory.createDefaultCompilerConfig();
         config.setArtifactType( ArtifactType.LIBRARY );
         config.setCompilerPlatformVersion( DotnetCompilerPlatformVersion.VERSION_2_0_50727 );
+        try
+        {
+            config.setLocalRepository( new DefaultArtifactRepository( "local", new File( "." ).toURL().toExternalForm(),
+                                                                      new DefaultRepositoryLayout() ) );
+        }
+        catch ( MalformedURLException e )
+        {
+            Assert.fail( e.getMessage() );
+        }
         config.setProgrammingLanguage( ProgrammingLanguage.C_SHARP );
         config.setCompilerSourceDirectory( new File( "." ) );
         config.setTargetDirectory( new File( "." ) );

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-compiler/src/test/java/org/apache/maven/dotnet/compiler/impl/DotnetCompilerContextImplTest.java Tue Sep 30 11:21:28 2008
@@ -18,32 +18,34 @@
  */
 package org.apache.maven.dotnet.compiler.impl;
 
-import java.util.HashSet;
-import java.util.Set;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertThat;
+
 import java.io.File;
 import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.HashSet;
+import java.util.Set;
 
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.DefaultArtifactHandler;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.artifact.versioning.VersionRange;
-import org.apache.maven.model.Build;
-
-import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
+import org.apache.maven.dotnet.ArtifactScope;
 import org.apache.maven.dotnet.ArtifactType;
-import org.apache.maven.dotnet.compiler.DotnetCompilerPlatformVersion;
+import org.apache.maven.dotnet.InitializationException;
 import org.apache.maven.dotnet.ProgrammingLanguage;
 import org.apache.maven.dotnet.Vendor;
-import org.apache.maven.dotnet.InitializationException;
-import org.apache.maven.dotnet.ArtifactScope;
 import org.apache.maven.dotnet.compiler.ClassCompiler;
-
-import org.junit.Test;
-import static org.hamcrest.CoreMatchers.equalTo;
+import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
+import org.apache.maven.dotnet.compiler.DotnetCompilerPlatformVersion;
+import org.apache.maven.model.Build;
+import org.apache.maven.project.MavenProject;
 import org.hamcrest.BaseMatcher;
 import org.hamcrest.CoreMatchers;
-import static org.junit.Assert.*;
+import org.junit.Test;
 
 public class DotnetCompilerContextImplTest
 {
@@ -325,11 +327,13 @@
         ClassCompiler compiler = ctx.getClassCompiler();
     }
 
-    private static DotnetCompilerConfig getDefaultDotnetCompilerConfig()
+    private static DotnetCompilerConfig getDefaultDotnetCompilerConfig() throws MalformedURLException
     {
         DotnetCompilerConfig config = DotnetCompilerConfig.Factory.createDefaultCompilerConfig();
         config.setArtifactType( ArtifactType.LIBRARY );
         config.setCompilerPlatformVersion( DotnetCompilerPlatformVersion.VERSION_2_0_50727 );
+        config.setLocalRepository( new DefaultArtifactRepository( "local", new File( "." ).toURL().toExternalForm(),
+                                                                  new DefaultRepositoryLayout() ) );
         config.setProgrammingLanguage( ProgrammingLanguage.C_SHARP );
         config.setCompilerSourceDirectory( new File( "." ) );
         config.setTargetDirectory( new File( "." ) );

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/CommandExecutor.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/CommandExecutor.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/CommandExecutor.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/CommandExecutor.java Tue Sep 30 11:21:28 2008
@@ -18,17 +18,17 @@
  */
 package org.apache.maven.dotnet;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+
 import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.util.cli.StreamConsumer;
-import org.codehaus.plexus.util.cli.Commandline;
-import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
 import org.codehaus.plexus.util.cli.DefaultConsumer;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.util.logging.Level;
-import java.io.File;
+import org.codehaus.plexus.util.cli.StreamConsumer;
 
 /**
  * Provides services for executing commands such as compilers or executables. A  <code>ClassCompiler</code> implementation can use the

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/components/maven-dotnet-extensions/src/main/java/org/apache/maven/dotnet/extensions/compiler/CSharpClassCompiler.java Tue Sep 30 11:21:28 2008
@@ -96,8 +96,10 @@
         {
             for ( Artifact artifact : references )
             {
-                String path = artifact.getFile().getAbsolutePath();
-                commands.add( "/reference:" + path );
+                // It isn't necessary to rename the file for compilation, even if it was compiled with a different one,
+                // so use it straight from the repository
+                File file = artifact.getFile();
+                commands.add( "/reference:" + file.getAbsolutePath() );
             }
         }
 

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/IntegrationTestSuite.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/IntegrationTestSuite.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/IntegrationTestSuite.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/IntegrationTestSuite.java Tue Sep 30 11:21:28 2008
@@ -29,27 +29,25 @@
     {
         TestSuite suite = new TestSuite();
         
-        // NMAVEN-8
-        //suite.addTestSuite( MavenITmng0007CSharpCompileTestLibrary.class );
-        //suite.addTestSuite( MavenITmng0019BuildFailureOnNUnitFailure.class );
-        //suite.addTestSuite( MavenITmng0020ShareTestSource.class );
-
         // Fails occasionally with: 
         // error CS1548: Cryptographic failure while signing assembly ... The process cannot access the file because it is being used by another process. '
         // suite.addTestSuite( MavenITmng0017CSharpStrongNamedAssembly.class );
 
-        // Neeed to be able to locate the GAC root, perhaps using the toolchain
+        // Need to be able to locate the GAC root, perhaps using the toolchain
         // suite.addTestSuite( MavenITmng0009CSharpCompileWithProvidedGacDependency.class );
 
         // Currently requiring library in $M2_HOME/lib when extension should be enough
         // suite.addTestSuite( MavenITDotNetToolchain.class );
 
+        suite.addTestSuite( MavenITNUnit24Features.class );
+
         suite.addTestSuite( MavenITmng0000CSharpCompileLibrary.class );
         suite.addTestSuite( MavenITmng0001CSharpCompileExe.class );
         suite.addTestSuite( MavenITmng0002CSharpCompileModule.class );
         suite.addTestSuite( MavenITmng0003CSharpCompileWinexe.class );
         suite.addTestSuite( MavenITmng0004CSharpCompileWithDependency.class );
         suite.addTestSuite( MavenITmng0005CSharpCompileWithTransitiveDependency.class );
+        suite.addTestSuite( MavenITmng0007CSharpCompileTestLibrary.class );
         suite.addTestSuite( MavenITmng0008CSharpCompileWithProvidedDependency.class );
         suite.addTestSuite( MavenITmng0010DeployLibrary.class );
         suite.addTestSuite( MavenITmng0011DeployExe.class );
@@ -59,6 +57,11 @@
         suite.addTestSuite( MavenITmng0015DeployLibraryAsSnapshot.class );
         suite.addTestSuite( MavenITmng0016CSharpAssemblyInfoGeneration.class );
         suite.addTestSuite( MavenITmng0018CSharpSynchronizeTargetWithSource.class );
+        suite.addTestSuite( MavenITmng0019BuildFailureOnNUnitFailure.class );
+
+        // Looks to link to NMaven.Its.It0020B-1.0.0-test 0.0.0.0 instead of the correct version
+        //suite.addTestSuite( MavenITmng0020ShareTestSource.class );
+
         return suite;
     }
 }

Added: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITNUnit24Features.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITNUnit24Features.java?rev=700539&view=auto
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITNUnit24Features.java (added)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITNUnit24Features.java Tue Sep 30 11:21:28 2008
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.dotnet.integrationtests;
+
+import java.io.File;
+
+import org.apache.maven.it.VerificationException;
+import org.apache.maven.it.Verifier;
+
+public class MavenITNUnit24Features
+    extends AbstractNMavenIntegrationTestCase
+{
+    public void testNUnit24Features()
+        throws Exception
+    {
+        File testDir = extractAndTranslateResources( "/NUnit24Features/NUnit24" );
+        Verifier verifier = getVerifier( testDir );
+        verifier.executeGoal( "install" );
+        verifier.assertFilePresent( getAssemblyFile( "NMaven.It.NUnit24FeaturesNUnit24", "1.0.0", "dll", "test" ) );
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+
+        testDir = extractAndTranslateResources( "/NUnit24Features/NUnit22" );
+        verifier = getVerifier( testDir );
+        try
+        {
+            verifier.executeGoal( "install" );
+            fail( "Should have thrown an exception" );
+        }
+        catch ( VerificationException e )
+        {
+            // expected
+        }
+        verifier.resetStreams();
+    }
+}

Propchange: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITNUnit24Features.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITNUnit24Features.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITmng0019BuildFailureOnNUnitFailure.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITmng0019BuildFailureOnNUnitFailure.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITmng0019BuildFailureOnNUnitFailure.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/java/org/apache/maven/dotnet/integrationtests/MavenITmng0019BuildFailureOnNUnitFailure.java Tue Sep 30 11:21:28 2008
@@ -31,11 +31,10 @@
     {
         File testDir = extractAndTranslateResources( "/MavenITmng-0019-BuildFailureOnNUnitFailure" );
         Verifier verifier = getVerifier( testDir );
-        verifier.executeGoal( "test" );
 
         try
         {
-            verifier.verifyErrorFreeLog();
+            verifier.executeGoal( "test" );
             fail( "Log has no errors, expected test failure" );
         }
         catch ( VerificationException e )

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/MavenITmng-0020-ShareTestSource/A/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/MavenITmng-0020-ShareTestSource/A/pom.xml?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/MavenITmng-0020-ShareTestSource/A/pom.xml (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/MavenITmng-0020-ShareTestSource/A/pom.xml Tue Sep 30 11:21:28 2008
@@ -57,9 +57,9 @@
   </build>
   <dependencies>
     <dependency>
-      <groupId>org.apache.maven.dotnet</groupId>
+      <groupId>NUnit</groupId>
       <artifactId>NUnit.Framework</artifactId>
-      <version>2.4.8.0</version>
+      <version>2.2.8.0</version>
       <type>dotnet:library</type>
       <scope>test</scope>
     </dependency>
@@ -68,6 +68,7 @@
       <groupId>NMaven.Its</groupId>
       <artifactId>NMaven.It.It0020B</artifactId>
       <scope>test</scope>
+      <classifier>test</classifier>
       <version>1.0.0</version>
       <type>dotnet:library</type>
     </dependency>

Added: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/pom.xml?rev=700539&view=auto
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/pom.xml (added)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/pom.xml Tue Sep 30 11:21:28 2008
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>NMaven.Its</groupId>
+  <artifactId>NMaven.It.NUnit24FeaturesNUnit22</artifactId>
+  <packaging>dotnet:library</packaging>
+  <version>1.0.0</version>
+
+  <build>
+    <sourceDirectory>src/main/dotnet</sourceDirectory>
+    <testSourceDirectory>src/test/dotnet</testSourceDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.dotnet.plugins</groupId>
+        <artifactId>maven-dotnet-compiler-plugin</artifactId>
+        <version>${nmaven.version}</version>
+        <extensions>true</extensions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.dotnet.plugins</groupId>
+        <artifactId>maven-dotnet-test-plugin</artifactId>
+        <version>${nmaven.version}</version>
+        <configuration>
+            <arguments>
+                <param>/nologo</param>
+                <param>/labels</param>
+            </arguments>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>NUnit</groupId>
+      <artifactId>NUnit.Framework</artifactId>
+      <version>2.2.8.0</version>
+      <type>dotnet:library</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Propchange: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/test/dotnet/AppTest.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/test/dotnet/AppTest.cs?rev=700539&view=auto
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/test/dotnet/AppTest.cs (added)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit22/src/test/dotnet/AppTest.cs Tue Sep 30 11:21:28 2008
@@ -0,0 +1,36 @@
+#region Apache License, Version 2.0
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+#endregion
+using System;
+using NUnit.Framework;
+using NUnit.Framework.Constraints;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NMaven.IT {
+
+    [TestFixture]
+	public class AppTest {
+		[Test] 
+		public void testSimple1() {
+		             Assert.That( "Hello", Is.EqualTo("Hello") );
+		}
+		
+	}
+}

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/pom.xml?rev=700539&r1=700374&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/pom.xml (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/pom.xml Tue Sep 30 11:21:28 2008
@@ -22,10 +22,9 @@
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>NMaven.Its</groupId>
-  <artifactId>NMaven.It.It0007</artifactId>
+  <artifactId>NMaven.It.NUnit24FeaturesNUnit24</artifactId>
   <packaging>dotnet:library</packaging>
   <version>1.0.0</version>
-  <name>NMaven.It.It0007</name>
 
   <build>
     <sourceDirectory>src/main/dotnet</sourceDirectory>
@@ -54,7 +53,7 @@
     <dependency>
       <groupId>NUnit</groupId>
       <artifactId>NUnit.Framework</artifactId>
-      <version>2.2.8.0</version>
+      <version>2.4.8.0</version>
       <type>dotnet:library</type>
       <scope>test</scope>
     </dependency>

Added: incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/src/test/dotnet/AppTest.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/src/test/dotnet/AppTest.cs?rev=700539&view=auto
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/src/test/dotnet/AppTest.cs (added)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/core-integration-tests/src/test/resources/NUnit24Features/NUnit24/src/test/dotnet/AppTest.cs Tue Sep 30 11:21:28 2008
@@ -0,0 +1,36 @@
+#region Apache License, Version 2.0
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+#endregion
+using System;
+using NUnit.Framework;
+using NUnit.Framework.Constraints;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NMaven.IT {
+
+    [TestFixture]
+	public class AppTest {
+		[Test] 
+		public void testSimple1() {
+		             Assert.That( "Hello", Is.EqualTo("Hello") );
+		}
+		
+	}
+}

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java Tue Sep 30 11:21:28 2008
@@ -21,6 +21,7 @@
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.dotnet.compiler.DotnetCompilerContext;
 import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
 import org.apache.maven.dotnet.compiler.DotnetCompilerPlatformVersion;
@@ -59,6 +60,14 @@
     private MavenProject project;
 
     /**
+     * The location of the local Maven repository.
+     *
+     * @parameter expression="${localRepository}"
+     * @readonly
+     */
+    private ArtifactRepository localRepository;
+
+    /**
      * Specify a strong name key file.
      *
      * @parameter expression = "${keyfile}"
@@ -162,6 +171,7 @@
         keyInfo.setKeyContainerName( keycontainer );
         compilerConfig.setKeyInfo( keyInfo );
 
+        compilerConfig.setLocalRepository( localRepository );
         compilerConfig.setProgrammingLanguage( ProgrammingLanguage.C_SHARP );
         compilerConfig.setCompilerSourceDirectory( sourceDir );
         compilerConfig.setVendor( vendor );

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java Tue Sep 30 11:21:28 2008
@@ -28,6 +28,7 @@
 import org.apache.maven.dotnet.ProgrammingLanguage;
 import org.apache.maven.dotnet.Vendor;
 import org.apache.maven.dotnet.ArtifactScope;
+import org.apache.maven.dotnet.compiler.DotnetArtifactLocator;
 import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
 import org.apache.maven.dotnet.compiler.DotnetCompilerContext;
 import org.apache.maven.dotnet.compiler.DotnetCompilerPlatformVersion;
@@ -36,7 +37,10 @@
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.codehaus.plexus.util.FileUtils;
 
 /**
@@ -85,6 +89,21 @@
      */
     private DotnetCompilerContext compilerContext;
 
+    /** 
+     * @component 
+     */
+    private DotnetArtifactLocator artifactLocator;
+
+    /**
+     * @parameter expression="${localRepository}"
+     * @readonly
+     */
+    private ArtifactRepository localRepository;
+
+    /**
+     * @component
+     */
+    private MavenProjectHelper projectHelper;
 
     public void execute()
         throws MojoExecutionException, MojoFailureException
@@ -121,6 +140,7 @@
         compilerConfig.setArtifactType( ArtifactType.LIBRARY );
         compilerConfig.setCompilerPlatformVersion( DotnetCompilerPlatformVersion.valueFromVersion( frameworkVersion ) );
 
+        compilerConfig.setLocalRepository( localRepository );
         compilerConfig.setProgrammingLanguage( ProgrammingLanguage.C_SHARP );
         compilerConfig.setTestCompile( true );
         compilerConfig.setCompilerSourceDirectory( sourceDir );
@@ -146,6 +166,7 @@
         try
         {
             testAssembly = compilerContext.getClassCompiler().compile();
+            projectHelper.attachArtifact( project, "dotnet:library", "test", testAssembly );
         }
         catch ( InvalidArtifactException e )
         {
@@ -161,14 +182,15 @@
             throw new MojoExecutionException( "Unable to create test assemblies directory: " + testAssemblies );
         }
 
-       Set<Artifact> testDependencies = compilerContext.getLibraryDependenciesFor( ArtifactScope.TEST );
+        Set<Artifact> testDependencies = compilerContext.getLibraryDependenciesFor( ArtifactScope.TEST );
 
         try
         {
             for ( Artifact testDependency : testDependencies )
             {
                 File testDependencyFile = testDependency.getFile();
-                File testAssembliesFile = new File( testAssemblies, testDependencyFile.getName() );
+                File testAssembliesFile =
+                    new File( testAssemblies, artifactLocator.getAssemblyFileName( testDependency, localRepository ) );
                 FileUtils.copyFile( testDependencyFile, testAssembliesFile );
             }
 

Modified: incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/resources/META-INF/plexus/components.xml?rev=700539&r1=700538&r2=700539&view=diff
==============================================================================
--- incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ incubator/nmaven/branches/NMAVEN-8-nunit/plugins/maven-dotnet-compiler-plugin/src/main/resources/META-INF/plexus/components.xml Tue Sep 30 11:21:28 2008
@@ -288,6 +288,21 @@
     <component>
       <role>org.apache.maven.dotnet.compiler.DotnetCompilerContext</role>
       <implementation>org.apache.maven.dotnet.compiler.impl.DotnetCompilerContextImpl</implementation>
+       <requirements>
+	       <requirement>
+              <role>org.apache.maven.dotnet.compiler.DotnetArtifactLocator</role>
+	       </requirement>
+       </requirements>
+    </component>
+    <component>
+      <role>org.apache.maven.dotnet.compiler.DotnetArtifactLocator</role>
+      <implementation>org.apache.maven.dotnet.compiler.impl.DotnetArtifactLocatorImpl</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.project.MavenProjectBuilder</role>
+          <fieldName>projectBuilder</fieldName>
+        </requirement>
+      </requirements>
     </component>
     <component>
       <role>org.apache.maven.toolchain.ToolchainFactory</role>