You are viewing a plain text version of this content. The canonical link for it is here.
Posted to nmaven-commits@incubator.apache.org by si...@apache.org on 2007/05/19 07:47:53 UTC

svn commit: r539709 [2/7] - in /incubator/nmaven/trunk: ./ archetypes/ archetypes/maven-archetype-netexecutable/ archetypes/maven-archetype-netexecutable/src/ archetypes/maven-archetype-netexecutable/src/main/ archetypes/maven-archetype-netexecutable/s...

Modified: incubator/nmaven/trunk/README.txt
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/README.txt?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/README.txt (original)
+++ incubator/nmaven/trunk/README.txt Sat May 19 00:47:30 2007
@@ -3,18 +3,49 @@
 * NUnit must be installed or otherwise configured, see http://incubator.apache.org/nmaven/getting-started.html
 
 Initial Build
+* The latest version of NMaven requires .NET 2.0+ to build and run NMaven. This is due to needing the .NET 2.0 AppDomainManagers for
+ executing Maven .NET plugins. You may still target your own projects with .NET 1.1 build.
 * On the first build, for Windows execute
-    bootstrap-build.bat or
-    bootstrap-build.bat -DwithIDE
+    bootstrap-build.bat [ -DMicrosoft | -DVisualStudio2005 | -DMono ]
  Or on *nix,
     bootstrap-build.sh
 
-Note that the -DwithIDE option requires Microsoft 2.0 or higher. If this is a clean build (meaning that you do not have a ~./m2/nmaven-settings.xml file)
-then you will also need to make sure that you have csc within your path. On subsequent builds, you can just type mvn install from
+If this is a clean build (meaning that you do not have a ~./m2/nmaven-settings.xml file)
+then you will also need to make sure that you have csc within your path. On subsequent builds, you can just type mvn -f pom.xml install from
 the command prompt.
 
 IntelliJ IDEA Setup
 * Do the initial build. This will create the dotnet modello model source code and will download all of the maven
 binary dependencies. Next, click the maven-dotnet.ipr file. Go to settings/Path variables and set localRepository
  to your ~/.m2/repository directory (specify the absolute path). Exit IntelliJ and click the maven-dotnet.ipr file.
- Now all of the binary dependencies will be mapped to the local maven repo.
\ No newline at end of file
+ Now all of the binary dependencies will be mapped to the local maven repo.
+
+Deploying NMaven Artifacts (File System Only)
+* On the command line
+    set phase=deploy
+    set deploy.directory=${remoteRepository}
+    bootstrap-build.bat
+* Due to a bug with not being able to use snapshots with an executables exe.config file, you will need to do this
+  next step manually: Copy ${localRepository}\NMaven\Plugins\NMaven.Plugin.Resx\0.14\NMaven.Plugin.Resx.exe.config to
+  ${remoteRepository}\NMaven\Plugins\NMaven.Plugin.Resx\0.14\NMaven.Plugin.Resx.exe.config
+
+ To set up a remote repository accessible to others, you can transfer the contents of ${remoteRepository}
+ from your file system to a web server.
+
+Generating CS Project Files and Solutions:
+ * Go to the directory containing a pom file.
+ * type: mvn org.apache.maven.dotnet.plugins:maven-solution-plugin:solution
+
+ If the project was multi-module, the plugin will pick those up as well.
+
+Setting up the Visual Studio 2005 Addin:
+ After building the project with bootstrap-build -DVisualStudio2005
+ * Deploy the components/dotnet-service/embedder/target/dotnet-service-embedder.war file on a standard web server
+ running port 8080.
+ * To generate the Addin for VisualStudio type: mvn org.apache.maven.dotnet.plugins:maven-vsinstaller-plugin:install
+ * Start the IDE
+ * Click on an NMaven project
+ * Click on Tools/NMaven Addin
+
+ A small box will appear showing a tree view of all the projects. Right click to build the project. You will see
+  the build results within the output window.
\ No newline at end of file

Modified: incubator/nmaven/trunk/assemblies/NMaven.Core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Core/pom.xml?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Core/pom.xml (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Core/pom.xml Sat May 19 00:47:30 2007
@@ -1,26 +1,44 @@
+<?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">
   <parent>
     <groupId>NMaven</groupId>
-    <version>0.14</version>
+    <version>0.14-SNAPSHOT</version>
     <artifactId>NMaven.Assemblies</artifactId>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>NMaven.Core</groupId>
   <artifactId>NMaven.Core</artifactId>
   <packaging>library</packaging>
-  <version>0.14</version>
+  <version>0.14-SNAPSHOT</version>
   <name>NMaven.Core</name>
   <dependencies>
     <dependency>
       <groupId>NMaven.Model</groupId>
       <artifactId>NMaven.Model.Pom</artifactId>
       <type>library</type>
-      <version>0.14</version>
+      <version>0.14-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>Microsoft.Build.Engine</groupId>
       <artifactId>Microsoft.Build.Engine</artifactId>
-      <type>gac</type>
+      <type>gac_msil</type>
       <version>2.0.0.0__b03f5f7f11d50a3a</version>
     </dependency>
     <dependency>
@@ -30,20 +48,6 @@
       <type>library</type>
     </dependency>
   </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.dotnet.plugins</groupId>
-        <artifactId>maven-link-plugin</artifactId>
-        <configuration>
-          <netModules>
-            <netModule>${basedir}/target/NMaven.Core.netmodule</netModule>
-          </netModules>
-          <outputFile>${basedir}/target/NMaven.Core.dll</outputFile>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
   <profiles>
     <profile>
       <activation>

Modified: incubator/nmaven/trunk/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Core/src/main/csharp/Core/Impl/ProjectGeneratorImpl.cs Sat May 19 00:47:30 2007
@@ -132,14 +132,17 @@
 		                                       string baseIntermediateOutputPath,
 		                                       List<IProjectReference> projectReferences)
 		{
-			if(model == null || sourceFileDirectory == null || projectGuid == null)
+			if(model == null || sourceFileDirectory == null)
 			{
 				throw new ExecutionException("NMAVEN-000-000: Missing required parameter.");
 			}
             Engine engine = new Engine(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727");
             Project project = new Project(engine);
-            
-            
+
+            Console.WriteLine("ProjectGuid = " + projectGuid.ToString() + ", RootNameSpace = " +
+                model.groupId + ", AssemblyName = " + assemblyName + ", BaseIntPath = " +
+                baseIntermediateOutputPath + ", OutputType = " + GetOutputType(model.packaging) + 
+                ", Packaging = " + model.packaging);
             //Main Properties
             BuildPropertyGroup groupProject = project.AddNewPropertyGroup(false);
             groupProject.AddNewProperty("ProjectGuid", "{" + projectGuid.ToString() + "}");
@@ -296,7 +299,8 @@
 		
 		private string GetOutputType(String type)
 		{
-			if (type.Equals("library")) return "Library";
+			if (type.Equals("library") || type.Equals("netplugin") || type.Equals("visual-studio-addin")
+                || type.Equals("sharp-develop-addin")) return "Library";
 			else if (type.Equals("exe")) return "Exe";
 			else if (type.Equals("winexe")) return "WinExe";
 			else if (type.Equals("module")) return "Module";
@@ -305,7 +309,7 @@
 		
 		private string GetExtension(String type)
 		{
-			if (type.Equals("library")) return "dll";
+			if (type.Equals("library") || type.Equals("netplugin") ) return "dll";
 			else if (type.Equals("exe")) return "exe";
 			else if (type.Equals("winexe")) return "exe";
 			else if (type.Equals("module")) return "netmodule";
@@ -342,12 +346,9 @@
 			        {
 			            Console.WriteLine(e.Message);
 			        }
-
 				}
-				
 				return dependencies;
-			}
-		
+			}		
 		}		
 	}
 }

Modified: incubator/nmaven/trunk/assemblies/NMaven.Model/Pom/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Model/Pom/pom.xml?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Model/Pom/pom.xml (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Model/Pom/pom.xml Sat May 19 00:47:30 2007
@@ -1,15 +1,33 @@
+<?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">
   <parent>
     <groupId>NMaven</groupId>
-    <version>0.14</version>
+    <version>0.14-SNAPSHOT</version>
     <artifactId>NMaven.Assemblies</artifactId>
     <relativePath>..\..\pom.xml</relativePath>
-  </parent>  
+  </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>NMaven.Model</groupId>
   <artifactId>NMaven.Model.Pom</artifactId>
   <packaging>library</packaging>
-  <version>0.14</version>
+  <version>0.14-SNAPSHOT</version>
   <name>NMaven.Model.Pom</name>
   <build>
     <plugins>
@@ -29,12 +47,18 @@
       </plugin>
       <plugin>
         <groupId>org.apache.maven.dotnet.plugins</groupId>
-        <artifactId>maven-link-plugin</artifactId>
+        <artifactId>maven-compile-plugin</artifactId>
+        <extensions>true</extensions>
         <configuration>
-          <netModules>
-            <netModule>${basedir}/target/NMaven.Model.Pom.netmodule</netModule>
-          </netModules>
-          <outputFile>${basedir}/target/NMaven.Model.Pom.dll</outputFile>
+          <keyfile>sample.snk</keyfile>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.dotnet.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <isGacInstall>true</isGacInstall>
         </configuration>
       </plugin>
     </plugins>

Modified: incubator/nmaven/trunk/assemblies/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/pom.xml?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/assemblies/pom.xml (original)
+++ incubator/nmaven/trunk/assemblies/pom.xml Sat May 19 00:47:30 2007
@@ -1,10 +1,28 @@
+<?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</groupId>
   <artifactId>NMaven.Assemblies</artifactId>
   <packaging>pom</packaging>
-  <version>0.14</version>
+  <version>0.14-SNAPSHOT</version>
   <name>NMaven.Assemblies</name>
   <url>http://incubator.apache.org/nmaven</url>
   <description>
@@ -115,8 +133,17 @@
     </developer>
   </developers>
   <modules>
-    <module>NMaven.Plugin.Resx</module>
-    <module>NMaven.Plugin.Settings</module>
+    <module>NMaven.Artifact</module>
+    <module>NMaven.Core</module>
+    <module>NMaven.IDE</module>
+    <module>NMaven.Logging</module>
+    <module>NMaven.Model/Pom</module>
+    <module>NMaven.Model/AutomationExtensibility</module>
+    <module>NMaven.Plugin</module>
+    <module>NMaven.Plugin.Loader</module>
+    <module>NMaven.Plugin.MojoGenerator</module>
+    <module>NMaven.Plugin.Runner</module>
+    <module>NMaven.Service/Embedder</module>
   </modules>
   <build>
     <sourceDirectory>src/main/csharp</sourceDirectory>
@@ -126,6 +153,9 @@
         <groupId>org.apache.maven.dotnet.plugins</groupId>
         <artifactId>maven-compile-plugin</artifactId>
         <extensions>true</extensions>
+        <configuration>
+          <frameworkVersion>2.0.50727</frameworkVersion>
+        </configuration>
       </plugin>
     </plugins>
   </build>
@@ -133,16 +163,35 @@
     <profile>
       <activation>
         <property>
-          <name>withIde</name>
+          <name>VisualStudio2005</name>
         </property>
       </activation>
       <modules>
-        <module>NMaven.Core</module>
-        <module>NMaven.Model/Pom</module>
-        <module>NMaven.Plugin.Resx</module>
-        <module>NMaven.Plugin.Settings</module>
-        <module>NMaven.Plugin.Solution</module>
+        <module>NMaven.VisualStudio</module>
+        <module>NMaven.VisualStudio.Addin</module>
       </modules>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.dotnet.plugins</groupId>
+            <artifactId>maven-compile-plugin</artifactId>
+            <extensions>true</extensions>
+            <configuration>
+              <vendor>MICROSOFT</vendor>
+              <frameworkVersion>2.0.50727</frameworkVersion>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
     </profile>
   </profiles>
+  <distributionManagement>
+    <snapshotRepository>
+      <uniqueVersion>true</uniqueVersion>
+      <id>snapshot repo</id>
+      <name>snapshot repo</name>
+      <url>file://${deploy.directory}</url>
+      <layout>default</layout>
+    </snapshotRepository>
+  </distributionManagement>
 </project>

Modified: incubator/nmaven/trunk/bootstrap-build.bat
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/bootstrap-build.bat?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/bootstrap-build.bat (original)
+++ incubator/nmaven/trunk/bootstrap-build.bat Sat May 19 00:47:30 2007
@@ -1,5 +1,50 @@
-call mvn -f ./components/pom.xml install
-call mvn -f ./plugins/pom.xml install
+@echo off
+IF "%phase%"=="" SET phase=install
+ECHO Executing Phase: %phase%
+
+call mvn %phase%
+IF errorlevel 1 GOTO END
+
+ECHO Building JavaBindings for the .NET Plugins
+call mvn -f ./plugins/NMaven.Plugin.Addin/pom-java.xml %phase%
+IF errorlevel 1 GOTO END
+
+call mvn -f ./plugins/NMaven.Plugin.Devenv/pom-java.xml %phase%
+IF errorlevel 1 GOTO END
+
+call mvn -f ./plugins/NMaven.Plugin.Settings/pom-java.xml %phase%
+IF errorlevel 1 GOTO END
+
+call mvn -f ./plugins/NMaven.Plugin.Solution/pom-java.xml %phase%
+IF errorlevel 1 GOTO END
+
+ECHO Installing 3rd Party Assemblies in the Local Repo
 call mvn org.apache.maven.dotnet.plugins:maven-install-plugin:install-file -Dfile=./thirdparty/NUnit/NUnit.Framework.dll -DgroupId=NUnit -DartifactId=NUnit.Framework -Dpackaging=dll -Dversion=2.2.8.0
-call mvn -f ./assemblies/pom.xml -Dmaven.test.skip=true -Dbootstrap install %*
-rem call mvn org.apache.maven.dotnet.plugins:maven-solution-plugin:solution
\ No newline at end of file
+IF errorlevel 1 GOTO END
+
+if "%1" == "-DMicrosoft" (
+    ECHO Compiling Assemblies with Microsoft
+    call mvn -f ./assemblies/pom.xml -Dmaven.test.skip=true -Dbootstrap -Dvendor=MICROSOFT %phase% %*
+    IF errorlevel 1 GOTO END
+
+    call mvn -f ./plugins/pom-netplugins.xml -Dmaven.test.skip=true -Dbootstrap -Dvendor=MICROSOFT %phase% %*
+    IF errorlevel 1 GOTO END
+
+ ) else  if "%1" == "-DMono" (
+    ECHO Compiling Assemblies with Mono
+    call mvn -f ./assemblies/pom.xml -Dmaven.test.skip=true -Dbootstrap -Dvendor=MONO %phase% %*
+    IF errorlevel 1 GOTO END
+
+    call mvn -f ./plugins/pom-netplugins.xml -Dmaven.test.skip=true -Dbootstrap -Dvendor=MONO %phase% %*
+    IF errorlevel 1 GOTO END
+
+ ) else (
+    ECHO Compiling Assemblies with Unknown Vendor
+    call mvn -f ./assemblies/pom.xml -Dmaven.test.skip=true -Dbootstrap %phase% %*
+    IF errorlevel 1 GOTO END
+
+    call mvn -f ./plugins/pom-netplugins.xml -Dmaven.test.skip=true -Dbootstrap %phase% %*
+    IF errorlevel 1 GOTO END
+ )
+
+:END
\ No newline at end of file

Modified: incubator/nmaven/trunk/bootstrap-build.sh
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/bootstrap-build.sh?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/bootstrap-build.sh (original)
+++ incubator/nmaven/trunk/bootstrap-build.sh Sat May 19 00:47:30 2007
@@ -1,4 +1,8 @@
-mvn -f ./components/pom.xml install
-mvn -f ./plugins/pom.xml install
+mvn install $*
+mvn -f ./plugins/NMaven.Plugin.Addin/pom-java.xml install $*
+mvn -f ./plugins/NMaven.Plugin.Devenv/pom-java.xml install $*
+mvn -f ./plugins/NMaven.Plugin.Settings/pom-java.xml install $*
+mvn -f ./plugins/NMaven.Plugin.Solution/pom-java.xml install $*
 mvn org.apache.maven.dotnet.plugins:maven-install-plugin:install-file -Dfile=thirdparty/NUnit/NUnit.Framework.dll -DgroupId=NUnit -DartifactId=NUnit.Framework -Dpackaging=dll -Dversion=2.2.8.0
 mvn -f ./assemblies/pom.xml -Dmaven.test.skip=true -Dbootstrap install $*
+mvn -f ./plugins/pom-netplugins.xml -Dmaven.test.skip=true -Dbootstrap install $*

Modified: incubator/nmaven/trunk/components/README.txt
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/README.txt?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/README.txt (original)
+++ incubator/nmaven/trunk/components/README.txt Sat May 19 00:47:30 2007
@@ -1,10 +1,14 @@
 Find the latest documentation at: http://incubator.apache.org/nmaven/
 
 Logs:
-000-019: nmaven-artifact
-020-039: nmaven-assembler
-040-059: nmaven-core
-060-079: nmaven-executable
-080-099: nmaven-registry
-100-019: nmaven-vendor
+000-019: dotnet-artifact
+020-039: dotnet-assembler
+040-059: dotnet-core
+120-139: dotnet-embedder
+060-079: dotnet-executable
+140-149: dotnet-jetty
+150-179: dotnet-plugin
+080-099: dotnet-registry
+180-189: dotnet-service
+100-119: dotnet-vendor
 

Modified: incubator/nmaven/trunk/components/dotnet-artifact/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/pom.xml?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/pom.xml (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/pom.xml Sat May 19 00:47:30 2007
@@ -1,3 +1,21 @@
+<?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">
   <parent>
@@ -11,18 +29,18 @@
   <version>0.14-SNAPSHOT</version>
   <name>dotnet-artifact</name>
   <description>
-    Maven Plugin for .NET
+   
   </description>
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
-      <version>2.0.4</version>
+      <version>2.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
-      <version>2.0.4</version>
+      <version>2.1-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.dotnet</groupId>

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java Sat May 19 00:47:30 2007
@@ -67,7 +67,8 @@
          * @return the application config for the specified artifact
          */
         public static ApplicationConfig createDefaultApplicationConfig( final Artifact artifact,
-                                                                        final MavenProject project )
+                                                                        final File projectBaseDirectory,
+                                                                        final File projectBuildDirectory)
         {
             return new ApplicationConfig()
             {
@@ -75,13 +76,13 @@
                 public String getConfigSourcePath()
                 {
                     return new File(
-                        project.getBasedir() + "/src/main/config/" + artifact.getArtifactId() + ".exe.config" )
+                        projectBaseDirectory + "/src/main/config/" + artifact.getArtifactId() + ".exe.config" )
                         .getAbsolutePath();
                 }
 
                 public String getConfigDestinationPath()
                 {
-                    return project.getBuild().getDirectory() + File.separator + artifact.getArtifactId() +
+                    return projectBuildDirectory + File.separator + artifact.getArtifactId() +
                         ".exe.config";
                 }
             };

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java Sat May 19 00:47:30 2007
@@ -19,6 +19,8 @@
 package org.apache.maven.dotnet.artifact;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.project.MavenProject;
 
 import java.util.List;
@@ -80,8 +82,14 @@
      */
     List<Artifact> getArtifactsFor( String groupId, String artifactId, String version, String type );
 
+    /**
+     * Returns the artifact for the specified ID
+     *
+     * @param id the artifact ID, as given in the net-dependencies.xml file
+     * @return the artifact for the specified ID.
+     */
     Artifact getArtifactByID( String id );
-    
+
     /**
      * Returns an artifact installer used for installing NMaven artifacts into the local Maven repository.
      *
@@ -100,14 +108,31 @@
      */
     ApplicationConfig getApplicationConfigFor( Artifact artifact );
 
+    /**
+     * Returns the directory containing the local Maven repository
+     *
+     * @return the directory containing the local Maven repository
+     */
     File getLocalRepository();
 
     /**
+     * Returns a list of .NET artifacts that reside within the specified repository.
+     *
+     * @param repository the local repository directory. If value is null, the localRepository reference will default to
+     *                   the specified localRepository passed to the init method of the context.
+     * @return list of .NET artifacts that reside within the specified repository.
+     */
+    List<Artifact> getAllNetArtifactsFromRepository( File repository );
+
+ //   ArtifactHandler createArtifactHandler( String packagingType, String extension );
+
+    /**
      * Initializes this artifact context. Neither parameter value should be null.
      *
-     * @param mavenProject    the maven project
-     * @param localRepository the file location of the local maven repository
+     * @param mavenProject               the maven project
+     * @param remoteArtifactRepositories
+     * @param localRepository            the file location of the local maven repository
      * @throws NullPointerException if localRepository parameter is null
      */
-    void init( MavenProject mavenProject, File localRepository );
+    void init( MavenProject mavenProject, List<ArtifactRepository> remoteArtifactRepositories, File localRepository );
 }

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java Sat May 19 00:47:30 2007
@@ -19,6 +19,9 @@
 package org.apache.maven.dotnet.artifact;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.installer.ArtifactInstallationException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.model.Dependency;
@@ -60,14 +63,15 @@
      * Installs a non-maven artifact into the local maven repository so that the artifact can be used within
      * a Maven build process.
      *
-     * @param groupId    the group id of the artifact to install
-     * @param artifactId the artifact id of the artifact to install
-     * @param version    the version of the artifact to install
-     * @param packaging  the packaging type of the artifact to install
-     * @param artifactFile    the artifact to install
+     * @param groupId      the group id of the artifact to install
+     * @param artifactId   the artifact id of the artifact to install
+     * @param version      the version of the artifact to install
+     * @param packaging    the packaging type of the artifact to install
+     * @param artifactFile the artifact to install
      * @throws ArtifactInstallationException if there is a problem installing the artifact
      */
-    void installFile( String groupId, String artifactId, String version, String packaging, File artifactFile )
+    void installFileWithGeneratedPom( String groupId, String artifactId, String version, String packaging,
+                                      File artifactFile )
         throws ArtifactInstallationException;
 
     /**
@@ -84,9 +88,9 @@
         throws ArtifactInstallationException;
 
     /**
-     * Installs the dependent libraries (or assemblies) of the specified artifact. 
+     * Installs the dependent libraries (or assemblies) of the specified artifact.
      *
-     * @param artifact the artifact associated with the specified dependencies
+     * @param artifact     the artifact associated with the specified dependencies
      * @param dependencies a list of dependencies of the specified artifact
      * @throws ArtifactInstallationException if there is a problem installing the artifact
      */
@@ -94,6 +98,21 @@
         throws ArtifactInstallationException;
 
     /**
+     * Resolves the specified artifact (and its dependencies) and installs the artifact's dependencies into the
+     * artifact's directory within the local repository. This method should be used for exe, winexe and
+     * netplugins.
+     *
+     * @param dependency the dependency to resolve
+     * @throws ArtifactInstallationException
+     * @throws ArtifactNotFoundException
+     */
+    void resolveAndInstallLibraryDependenciesFor( Dependency dependency )
+        throws ArtifactInstallationException , ArtifactNotFoundException;
+
+    void resolveAndInstallNetDependenciesForProfile( String profile, List<Dependency> dependencies )
+        throws ArtifactResolutionException, ArtifactNotFoundException, ArtifactInstallationException;    
+
+    /**
      * Copies .netmodules, that the project is dependenct upon, from the local repo to the project's target directory.
      * This method handles placing all the .netmodules in the same directory as the compiled project artifact for use
      * in unit testing and/or packaging.
@@ -108,9 +127,15 @@
      * Initializes the installer.
      *
      * @param artifactContext the artifact context associated with this installer
-     * @param mavenProject    the maven project associated with the invoking plugin
+
+
+     @param mavenProject    the maven project associated with the invoking plugin
+
+
+      * @param remoteArtifactRepositories
      * @param localRepository the location of the local maven repository
      */
-    void init( ArtifactContext artifactContext, MavenProject mavenProject, File localRepository );
+    void init( ArtifactContext artifactContext, MavenProject mavenProject,
+               List<ArtifactRepository> remoteArtifactRepositories, File localRepository );
 
 }

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactType.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactType.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactType.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactType.java Sat May 19 00:47:30 2007
@@ -25,24 +25,39 @@
  */
 public enum ArtifactType
 {
-    MODULE( "module", "netmodule" ),
-    LIBRARY( "library", "dll" ),
-    EXE( "exe", "exe" ),
-    WINEXE( "winexe", "exe" ),
-    NAR( "nar", "nar" ),
-    EXECONFIG( "exe.config", "exe.config" ),
-    NULL( "null", "null" );
+    MODULE( "module", "module", "netmodule" ),
+    LIBRARY( "library", "library", "dll" ),
+    EXE( "exe", "exe", "exe" ),
+    WINEXE( "winexe", "winexe", "exe" ),
+    NAR( "nar", "null", "nar" ),
+    EXECONFIG( "exe.config", "null", "exe.config" ),
+    NETPLUGIN( "netplugin", "library", "dll" ),
+    VISUAL_STUDIO_ADDIN( "visual-studio-addin", "library", "dll" ),
+    SHARP_DEVELOP_ADDIN( "sharp-develop-addin", "library", "dll" ),
+    NULL( "null", "null", "null" );
 
+    /**
+     * The extension used for the artifact(netmodule, dll, exe)
+     */
     private String extension;
 
-    private String artifactTypeName;
+    /**
+     * The packaging type (as given in the package tag within the pom.xml) of the artifact.
+     */
+    private String packagingType;
+
+    /**
+     * The target types (module, library, winexe, exe) for the .NET platform.
+     */
+    private String targetCompileType;
 
     /**
      * Constructor
      */
-    ArtifactType( String artifactTypeName, String extension )
+    ArtifactType( String packagingType, String targetCompileType, String extension )
     {
-        this.artifactTypeName = artifactTypeName;
+        this.packagingType = packagingType;
+        this.targetCompileType = targetCompileType;
         this.extension = extension;
     }
 
@@ -57,73 +72,72 @@
     }
 
     /**
+     * Returns the packaging type (as given in the package tag within the pom.xml) of the artifact.
+     *
+     * @return the packaging type (as given in the package tag within the pom.xml) of the artifact.
+     */
+    public String getPackagingType()
+    {
+        return packagingType;
+    }
+
+    /**
      * Returns target types (module, library, winexe, exe) for the .NET platform.
      *
      * @return target types (module, library, winexe, exe) for the .NET platform.
      */
-    public String getArtifactTypeName()
+    public String getTargetCompileType()
     {
-        return artifactTypeName;
+        return targetCompileType;
     }
 
-    public static synchronized ArtifactType getArtifactTypeForName(String name)
+    /**
+     * Returns artifact type for the specified packaging name
+     *
+     * @param packagingName the package name (as given in the package tag within the pom.xml) of the artifact.
+     * @return the artifact type for the specified packaging name
+     */
+    public static synchronized ArtifactType getArtifactTypeForPackagingName( String packagingName )
     {
-        if ( name.equals( ArtifactType.MODULE.getArtifactTypeName() ) )
+        if ( packagingName.equals( ArtifactType.MODULE.getPackagingType() ) )
         {
             return ArtifactType.MODULE;
         }
-        else if ( name.equals( ArtifactType.LIBRARY.getArtifactTypeName() ) )
+        else if ( packagingName.equals( ArtifactType.LIBRARY.getPackagingType() ) )
         {
             return ArtifactType.LIBRARY;
         }
-        else if ( name.equals( ArtifactType.EXE.getArtifactTypeName() ) )
+        else if ( packagingName.equals( ArtifactType.EXE.getPackagingType() ) )
         {
             return ArtifactType.EXE;
         }
-        else if ( name.equals( ArtifactType.WINEXE.getArtifactTypeName() ) )
+        else if ( packagingName.equals( ArtifactType.WINEXE.getPackagingType() ) )
         {
             return ArtifactType.WINEXE;
         }
-        else if ( name.equals( ArtifactType.NAR.getArtifactTypeName() ) )
-        {
-           return ArtifactType.LIBRARY;
-        }
-        else if ( name.equals( ArtifactType.NAR.getArtifactTypeName() ) )
-        {
-           return ArtifactType.NAR;
-        }
-        else if ( name.equals( ArtifactType.EXECONFIG.getArtifactTypeName() ) )
+        else if ( packagingName.equals( ArtifactType.NAR.getPackagingType() ) )
         {
-           return ArtifactType.EXECONFIG;
-        }
-        return ArtifactType.NULL;
-    }
-
-    public static synchronized ArtifactType getArtifactTypeForExtension(String extension)
-    {
-        if ( extension.equals( ArtifactType.MODULE.getExtension()) )
-        {
-            return ArtifactType.MODULE;
+            return ArtifactType.LIBRARY;
         }
-        else if ( extension.equals( ArtifactType.LIBRARY.getExtension() ) )
+        else if ( packagingName.equals( ArtifactType.NAR.getPackagingType() ) )
         {
-            return ArtifactType.LIBRARY;
+            return ArtifactType.NAR;
         }
-        else if ( extension.equals( ArtifactType.EXE.getExtension() ) )
+        else if ( packagingName.equals( ArtifactType.EXECONFIG.getPackagingType() ) )
         {
-            return ArtifactType.EXE;
+            return ArtifactType.EXECONFIG;
         }
-        else if ( extension.equals( ArtifactType.WINEXE.getExtension() ) )
+        else if ( packagingName.equals( ArtifactType.NETPLUGIN.getPackagingType() ) )
         {
-            return ArtifactType.WINEXE;
+            return ArtifactType.NETPLUGIN;
         }
-        else if ( extension.equals( ArtifactType.NAR.getExtension() ) )
+        else if ( packagingName.equals( ArtifactType.SHARP_DEVELOP_ADDIN.getPackagingType() ) )
         {
-           return ArtifactType.LIBRARY;
+            return ArtifactType.SHARP_DEVELOP_ADDIN;
         }
-        else if ( extension.equals( ArtifactType.EXECONFIG.getExtension() ) )
+        else if ( packagingName.equals( ArtifactType.VISUAL_STUDIO_ADDIN.getPackagingType() ) )
         {
-           return ArtifactType.EXECONFIG;
+            return ArtifactType.VISUAL_STUDIO_ADDIN;
         }
         return ArtifactType.NULL;
     }

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/AssemblyResolver.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/AssemblyResolver.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/AssemblyResolver.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/AssemblyResolver.java Sat May 19 00:47:30 2007
@@ -21,10 +21,10 @@
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 
-import java.io.File;
 import java.util.List;
 
 /**
@@ -46,8 +46,8 @@
      * @param project             the maven project
      * @param sourceArtifact      the artifact to which the resolved dependencies belong
      * @param dependencies        the list of dependencies of the specified artifact
-     * @param pomFile             the pom file of the specified artifact
-     * @param localRepositoryPath the path of the local Maven repository
+     * @param remoteArtifactRepositories
+     * @param localArtifactRepository
      * @param addResolvedDependenciesToProject
      *                            true, if the resolved dependencies should be added the the specified
      *                            maven project, otherwise false. This value should be set to false if it is resolving
@@ -57,10 +57,8 @@
      * @throws ArtifactResolutionException
      * @throws ArtifactNotFoundException
      */
-
     void resolveTransitivelyFor( MavenProject project, Artifact sourceArtifact, List<Dependency> dependencies,
-                                 File pomFile, String localRepositoryPath, boolean addResolvedDependenciesToProject )
+                                 List<ArtifactRepository> remoteArtifactRepositories, ArtifactRepository localArtifactRepository,
+                                 boolean addResolvedDependenciesToProject )
         throws ArtifactResolutionException, ArtifactNotFoundException;
-
-
 }

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java Sat May 19 00:47:30 2007
@@ -20,6 +20,11 @@
 
 import org.apache.maven.dotnet.model.netdependency.NetDependency;
 
+/**
+ * Provides a way for a developer to implement custom match policies for a net dependency.
+ *
+ * @author Shane Isbell
+ */
 public interface NetDependencyMatchPolicy
 {
     /**

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java Sat May 19 00:47:30 2007
@@ -26,6 +26,8 @@
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -91,6 +93,10 @@
      */
     private Logger logger;
 
+    private List<ArtifactHandler> artifactHandlers;
+
+    private ArtifactHandlerManager artifactHandlerManager;
+
     /**
      * Constructor. This method is intended to by invoked by the plexus-container, not by the application developer.
      */
@@ -106,9 +112,12 @@
         this.logger = logger;
     }
 
+    /**
+     * @see org.apache.maven.dotnet.artifact.ArtifactContext#getLocalRepository()
+     */
     public File getLocalRepository()
     {
-        return new File(localRepository);
+        return new File( localRepository );
     }
 
     /**
@@ -126,9 +135,18 @@
             return new ArrayList<Artifact>();
         }
         repository.init( artifactFactory );
-        return repository.getArtifactsFor( groupId, artifactId, version, type );
+        List<Artifact> artifacts = repository.getArtifactsFor( groupId, artifactId, version, type );
+        AssemblyRepositoryLayout layout = new AssemblyRepositoryLayout();
+        for ( Artifact artifact : artifacts )
+        {
+            artifact.setFile( new File( localRepository + File.separator + layout.pathOf( artifact ) ) );
+        }
+        return artifacts;
     }
 
+    /**
+     * @see ArtifactContext#getArtifactByID(String)
+     */
     public Artifact getArtifactByID( String id )
     {
         NetDependenciesRepositoryImpl repository =
@@ -150,7 +168,8 @@
      */
     public ApplicationConfig getApplicationConfigFor( Artifact artifact )
     {
-        return ApplicationConfig.Factory.createDefaultApplicationConfig( artifact, project );
+        return ApplicationConfig.Factory.createDefaultApplicationConfig( artifact, project.getBasedir(), new File(
+            project.getBuild().getDirectory() ) );
     }
 
     /**
@@ -160,11 +179,6 @@
     public List<Artifact> getDirectDependenciesFor( Artifact artifact, List<ArtifactMatchPolicy> matchPolicies )
         throws ArtifactException
     {
-        if ( project == null )
-        {
-            throw new ArtifactException( "NMAVEN-000-000: Artifact Context has not been initialized" );
-        }
-
         if ( artifact == null )
         {
             throw new ArtifactException( "NMAVEN-000-001: Cannot get dependenct artifacts of a null artifact" );
@@ -181,6 +195,7 @@
 
         Set depSet = new HashSet();
         List<Dependency> dep = project.getDependencies();
+
         for ( Dependency dependency : dep )
         {
             String scope = ( dependency.getScope() == null ) ? Artifact.SCOPE_COMPILE : dependency.getScope();
@@ -190,7 +205,10 @@
                                                                          dependency.getVersion() ),
                                                                      dependency.getType(), dependency.getClassifier(),
                                                                      scope, null );
-            if(!art.getType().equals( "gac")) depSet.add( art );
+            if ( !art.getType().startsWith( "gac" ) )
+            {
+                depSet.add( art );
+            }
         }
 
         try
@@ -246,20 +264,44 @@
         return getDirectDependenciesFor( artifact, matchPolicies );
     }
 
+    public List<Artifact> getAllNetArtifactsFromRepository( File repository )
+    {
+        return null;
+    }
+
     /**
-     * @see ArtifactContext#init(org.apache.maven.project.MavenProject, java.io.File)
+     * @see ArtifactContext#init(org.apache.maven.project.MavenProject,java.util.List, File
      */
-    public void init( MavenProject mavenProject, File localRepository )
+    public void init( MavenProject mavenProject, List<ArtifactRepository> remoteArtifactRepositories,
+                      File localRepository )
     {
         this.project = mavenProject;
         this.localRepository = localRepository.getAbsolutePath();
-        artifactInstaller.init( this, mavenProject, localRepository );
+        artifactInstaller.init( this, mavenProject, remoteArtifactRepositories, localRepository );
+        Map<String, ArtifactHandler> map = new HashMap<String, ArtifactHandler>();
+        for ( ArtifactHandler artifactHandler : artifactHandlers )
+        {
+            //If I add a handler that already exists, the runtime breaks.
+            if ( isDotNetHandler( artifactHandler ) )
+            {
+                map.put( artifactHandler.getPackaging(), artifactHandler );
+            }
+        }
+
+        artifactHandlerManager.addHandlers( map );
+    }
+
+    private boolean isDotNetHandler( ArtifactHandler artifactHandler )
+    {
+        String extension = artifactHandler.getExtension();
+        return extension.equals( "dll" ) || extension.equals( "nar" ) || extension.equals( "exe" ) ||
+            extension.equals( "exe.config" );
     }
 
     /**
      * Returns true if the artifact matches <i>all</i> match policies, otherwise returns false.
      *
-     * @param artifact the artifact to match against the match policies
+     * @param artifact      the artifact to match against the match policies
      * @param matchPolicies the match policies
      * @return true if the artifact matches <i>all</i> match policies, otherwise returns false
      */

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java Sat May 19 00:47:30 2007
@@ -23,13 +23,26 @@
 import org.apache.maven.dotnet.artifact.AssemblyRepositoryLayout;
 import org.apache.maven.dotnet.artifact.ApplicationConfig;
 import org.apache.maven.dotnet.artifact.ArtifactType;
+import org.apache.maven.dotnet.artifact.NetDependencyMatchPolicy;
+import org.apache.maven.dotnet.artifact.NetDependenciesRepository;
+import org.apache.maven.dotnet.artifact.AssemblyResolver;
+import org.apache.maven.dotnet.registry.RepositoryRegistry;
+import org.apache.maven.dotnet.model.netdependency.NetDependency;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.installer.ArtifactInstallationException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
@@ -44,8 +57,11 @@
 import java.io.IOException;
 import java.io.FileWriter;
 import java.io.FileReader;
+import java.io.FileNotFoundException;
 import java.util.List;
 import java.util.ArrayList;
+import java.util.Set;
+import java.util.HashSet;
 
 /**
  * Provides an implementation of the <code>ArtifactInstaller</code> interface.
@@ -57,11 +73,6 @@
 {
 
     /**
-     * A factory component used for creating artifacts from metadata
-     */
-    private ArtifactFactory mavenArtifactFactory;
-
-    /**
      * An installer component for installing artifacts into a local Maven repository.
      */
     private org.apache.maven.artifact.installer.ArtifactInstaller mavenInstaller;
@@ -98,6 +109,28 @@
     private Logger logger;
 
     /**
+     * An artifact resolver component for locating artifacts and pulling them into the local repo if they do not
+     * already exist.
+     */
+    private ArtifactResolver resolver;
+
+    /**
+     * Metadata component used by the <code>ArtifactResolver</code>.
+     */
+    private ArtifactMetadataSource metadata;
+
+    /**
+     * The artifact factory component, which is used for creating artifacts.
+     */
+    private ArtifactFactory artifactFactory;
+
+    private AssemblyResolver assemblyResolver;
+
+    private RepositoryRegistry repositoryRegistry;
+
+    private List<ArtifactRepository> remoteArtifactRepositories;
+
+    /**
      * Constructor. This method is intended to by invoked by the plexus-container, not by the application developer.
      */
     public ArtifactInstallerImpl()
@@ -112,6 +145,36 @@
         this.logger = logger;
     }
 
+    public void resolveAndInstallNetDependenciesForProfile( String profile, List<Dependency> dependencies )
+        throws ArtifactResolutionException, ArtifactNotFoundException, ArtifactInstallationException
+    {
+        if ( dependencies == null )
+        {
+            dependencies = new ArrayList<Dependency>();
+        }
+
+        NetDependenciesRepository repository =
+            (NetDependenciesRepository) repositoryRegistry.find( "net-dependencies" );
+        List<NetDependencyMatchPolicy> matchPolicies = new ArrayList<NetDependencyMatchPolicy>();
+        matchPolicies.add( new ProfileMatchPolicy( profile ) );
+        dependencies.addAll( repository.getDependenciesFor( matchPolicies ) );
+
+        ArtifactRepository localArtifactRepository = new DefaultArtifactRepository( "local", "file://" +
+            localRepository.getAbsolutePath(), new AssemblyRepositoryLayout() );
+
+        assemblyResolver.resolveTransitivelyFor( project, project.getArtifact(), dependencies,
+                                                 remoteArtifactRepositories, localArtifactRepository, false );
+
+        //Do Library Installs for Net Dependencies
+        matchPolicies = new ArrayList<NetDependencyMatchPolicy>();
+        matchPolicies.add( new ProfileMatchPolicy( profile ) );
+        matchPolicies.add( new ExecutableAndNetPluginAndAddinMatchPolicy() );
+        for ( Dependency dependency : repository.getDependenciesFor( matchPolicies ) )
+        {
+            resolveAndInstallLibraryDependenciesFor( dependency );
+        }
+    }
+
     /**
      * @see org.apache.maven.dotnet.artifact.ArtifactInstaller#installArtifact(org.apache.maven.artifact.Artifact, java.io.File)
      */
@@ -121,7 +184,6 @@
         installNetModules( artifact );
         ApplicationConfig applicationConfig = artifactContext.getApplicationConfigFor( artifact );
         File configExeFile = new File( applicationConfig.getConfigDestinationPath() );
-
         //TODO: Remove GAC dependencies before installing. This should be removed and replaced with solution in the core.
         artifact.getMetadataList().clear();
         try
@@ -130,7 +192,7 @@
             List<Dependency> newDependencies = new ArrayList<Dependency>();
             for ( Dependency dependency : dependencies )
             {
-                if ( !dependency.getType().equals( "gac" ) )
+                if ( !dependency.getType().startsWith( "gac" ) )
                 {
                     newDependencies.add( dependency );
                 }
@@ -147,14 +209,14 @@
         if ( configExeFile.exists() )
         {
             logger.info( "NMAVEN-002-000: Found config executable: File = " + configExeFile.getAbsolutePath() );
-            Dependency dependency = new Dependency();
-            dependency.setArtifactId( project.getArtifactId() );
-            dependency.setGroupId( project.getGroupId() );
-            dependency.setVersion( project.getVersion() );
-            dependency.setType( "exe.config" );
-            dependency.setScope( Artifact.SCOPE_RUNTIME );
+            Dependency configExeDependency = new Dependency();
+            configExeDependency.setArtifactId( project.getArtifactId() );
+            configExeDependency.setGroupId( project.getGroupId() );
+            configExeDependency.setVersion( project.getVersion() );
+            configExeDependency.setType( "exe.config" );
+            configExeDependency.setScope( Artifact.SCOPE_RUNTIME );
             List<Dependency> dep = new ArrayList<Dependency>();
-            dep.add( dependency );
+            dep.add( configExeDependency );
             project.setDependencies( dep );
             artifact.getMetadataList().clear();
             try
@@ -191,18 +253,20 @@
         catch ( ArtifactInstallationException e )
         {
             throw new ArtifactInstallationException( "NMAVEN-002-003: Failed to install artifact: ID = " +
-                artifact.getId() + ", File = " + artifact.getFile().getAbsolutePath(), e );
+                artifact.getId() + ", File = " +
+                ( ( artifact.getFile() != null ) ? artifact.getFile().getAbsolutePath() : "" ), e );
         }
     }
 
     /**
-     * @see org.apache.maven.dotnet.artifact.ArtifactInstaller#installFile(String, String, String, String, java.io.File)
+     * @see org.apache.maven.dotnet.artifact.ArtifactInstaller#installFileWithGeneratedPom(String, String, String, String, java.io.File)
      */
-    public void installFile( String groupId, String artifactId, String version, String packaging, File artifactFile )
+    public void installFileWithGeneratedPom( String groupId, String artifactId, String version, String packaging,
+                                             File artifactFile )
         throws ArtifactInstallationException
     {
         Artifact artifact =
-            mavenArtifactFactory.createArtifactWithClassifier( groupId, artifactId, version, packaging, null );
+            artifactFactory.createArtifactWithClassifier( groupId, artifactId, version, packaging, null );
         artifact.setFile( artifactFile );
 
         FileWriter fileWriter = null;
@@ -283,7 +347,7 @@
 
         for ( Dependency dependency : dependencies )
         {
-            if(!dependency.getType().equals( "library"))
+            if ( ! ( dependency.getType().equals( "library" ) || dependency.getType().equals( "netplugin" ) ) )
             {
                 continue;
             }
@@ -296,9 +360,8 @@
 
             depPath.append( dependency.getArtifactId() ).append( File.separator )
                 .append( dependency.getVersion() ).append( File.separator );
-            String extension = ArtifactType.getArtifactTypeForName( dependency.getType() ).getExtension();
-            File file =
-                new File( depPath.toString() + dependency.getArtifactId() + "." + extension );
+            String extension = ArtifactType.getArtifactTypeForPackagingName( dependency.getType() ).getExtension();
+            File file = new File( depPath.toString() + dependency.getArtifactId() + "." + extension );
 
             try
             {
@@ -312,7 +375,112 @@
                     "NMAVEN-002-017: Failed to install file into repo: File Name = " + file.getAbsolutePath() +
                         ", Extension = " + extension + ", Type = " + dependency.getType(), e );
             }
+        }
+    }
+
+    public void resolveAndInstallLibraryDependenciesFor( Dependency dependency )
+        throws ArtifactInstallationException, ArtifactNotFoundException
+    {
+
+        Artifact sourceArtifact = artifactFactory.createBuildArtifact( dependency.getGroupId(),
+                                                                       dependency.getArtifactId(),
+                                                                       dependency.getVersion(), dependency.getType() );
+        //Resolve the JavaBinding for the .NET plugin
+        ArtifactRepository localArtifactRepository =
+            new DefaultArtifactRepository( "local", "file://" + localRepository, new DefaultRepositoryLayout() );
+        if ( sourceArtifact.getType().equals( ArtifactType.NETPLUGIN.getPackagingType() ) )
+        {
+            Artifact javaBindingArtifact = artifactFactory.createBuildArtifact( sourceArtifact.getGroupId(),
+                                                                                sourceArtifact.getArtifactId() +
+                                                                                    ".JavaBinding",
+                                                                                sourceArtifact.getVersion(), "jar" );
+            try
+            {
+                resolver.resolve( javaBindingArtifact, remoteArtifactRepositories, localArtifactRepository );
+            }
+            catch ( ArtifactResolutionException e )
+            {
+                throw new ArtifactNotFoundException( "", sourceArtifact );
+            }
+        }
+
+        //Resolve all the specified dependencies
+        Artifact pomArtifact = artifactFactory.createProjectArtifact( dependency.getGroupId(),
+                                                                      dependency.getArtifactId(),
+                                                                      dependency.getVersion() );
+        File pomArtifactFile = new File( localRepository, new AssemblyRepositoryLayout().pathOf( pomArtifact ) );
+        FileReader fileReader;
+        try
+        {
+            fileReader = new FileReader( pomArtifactFile );
+        }
+        catch ( FileNotFoundException e )
+        {
+            throw new ArtifactNotFoundException( "NMAVEN-000-000: Unable to read pom", sourceArtifact );
+        }
+        MavenXpp3Reader reader = new MavenXpp3Reader();
+        Model model;
+        try
+        {
+            model = reader.read( fileReader );
+        }
+        catch ( XmlPullParserException e )
+        {
+            throw new ArtifactNotFoundException( "NMAVEN-000-000: Unable to read model", sourceArtifact );
+
+        }
+        catch ( IOException e )
+        {
+            throw new ArtifactNotFoundException( "NMAVEN-000-000: Unable to read model", sourceArtifact );
+        }
+        List<Dependency> sourceArtifactDependencies = model.getDependencies();
+        localArtifactRepository =
+            new DefaultArtifactRepository( "local", "file://" + localRepository, new AssemblyRepositoryLayout() );
+        Set<Artifact> artifactDependencies = new HashSet<Artifact>();
+        for ( Dependency d : sourceArtifactDependencies )
+        {
+            String scope = ( d.getScope() == null ) ? Artifact.SCOPE_COMPILE : d.getScope();
+            Artifact artifact1 = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(),
+                                                                           VersionRange.createFromVersion(
+                                                                               d.getVersion() ), d.getType(),
+                                                                                                 d.getClassifier(),
+                                                                                                 scope, null );
+            artifactDependencies.add( artifact1 );
+
+        }
+
+        ArtifactMetadataImpl meta = new ArtifactMetadataImpl( sourceArtifact, null );
+        sourceArtifact.addMetadata( meta );
+        ArtifactResolutionResult result;
+        try
+        {
+            result = resolver.resolveTransitively( artifactDependencies, sourceArtifact, localArtifactRepository,
+                                                   remoteArtifactRepositories, metadata, new GacFilter() );
+        }
+        catch ( ArtifactResolutionException e )
+        {
+            throw new ArtifactNotFoundException( "NMAVEN-000-000: ", sourceArtifact );
+        }
 
+        //Do local installing of the dependencies into exe and netplugin repo directories
+        AssemblyRepositoryLayout layout = new AssemblyRepositoryLayout();
+        Set<Artifact> artifacts = result.getArtifacts();
+
+        File destDir = new File( localRepository, layout.pathOf( sourceArtifact ) ).getParentFile();
+        for ( Artifact artifact : artifacts )
+        {
+            File destFile = new File( destDir, artifact.getFile().getName() );
+            if ( !destFile.exists() || destFile.lastModified() < artifact.getFile().lastModified() )
+            {
+                try
+                {
+                    FileUtils.copyFileToDirectory( artifact.getFile(), destDir );
+                }
+                catch ( IOException e )
+                {
+                    e.printStackTrace();
+                }
+            }
         }
     }
 
@@ -345,7 +513,12 @@
                 targetDirectory + File.separator + artifact.getFile().getName() );
             try
             {
-                FileUtils.copyFileToDirectory( artifact.getFile(), new File( targetDirectory ) );
+                File targetDirectoryFile = new File( targetDirectory );
+                if ( new File( targetDirectoryFile, artifact.getFile().getName() ).lastModified() <
+                    artifact.getFile().lastModified() )
+                {
+                    FileUtils.copyFileToDirectory( artifact.getFile(), targetDirectoryFile );
+                }
             }
             catch ( IOException e )
             {
@@ -357,12 +530,13 @@
     }
 
     /**
-     * @see org.apache.maven.dotnet.artifact.ArtifactInstaller#init(org.apache.maven.dotnet.artifact.ArtifactContext,
-     *      org.apache.maven.project.MavenProject, java.io.File)
+     * @see org.apache.maven.dotnet.artifact.ArtifactInstaller#init(org.apache.maven.dotnet.artifact.ArtifactContext,org.apache.maven.project.MavenProject,java.util.List, File
      */
-    public void init( ArtifactContext artifactContext, MavenProject mavenProject, File localRepository )
+    public void init( ArtifactContext artifactContext, MavenProject mavenProject,
+                      List<ArtifactRepository> remoteArtifactRepositories, File localRepository )
     {
         this.project = mavenProject;
+        this.remoteArtifactRepositories = remoteArtifactRepositories;
         this.localRepository = localRepository;
         this.artifactContext = artifactContext;
         this.assemblyRepositoryLayout = new AssemblyRepositoryLayout();
@@ -450,7 +624,7 @@
         {
             //TODO: This condition is only here since transitive gac dependencies break the build. This needs to be fixed
             //within the core.
-            if ( !dependency.getType().equals( "gac" ) )
+            if ( !dependency.getType().startsWith( "gac" ) )
             {
                 model.addDependency( dependency );
             }
@@ -462,6 +636,54 @@
         new MavenXpp3Writer().write( fileWriter, model );
         IOUtil.close( fileWriter );
         return new ArtifactMetadataImpl( artifact, tempFile );
+    }
 
+    private class ExecutableAndNetPluginAndAddinMatchPolicy
+        implements NetDependencyMatchPolicy
+    {
+        public boolean match( NetDependency netDependency )
+        {
+            return netDependency.getType().equals( ArtifactType.EXE.getPackagingType() ) ||
+                netDependency.getType().equals( ArtifactType.NETPLUGIN.getPackagingType() ) ||
+                netDependency.getType().equals( ArtifactType.VISUAL_STUDIO_ADDIN.getPackagingType() ) ||
+                netDependency.getType().equals( ArtifactType.SHARP_DEVELOP_ADDIN.getPackagingType() );
+        }
+    }
+
+    private class ProfileMatchPolicy
+        implements NetDependencyMatchPolicy
+    {
+
+        private String profile;
+
+        public ProfileMatchPolicy( String profile )
+        {
+            this.profile = profile;
+        }
+
+        public boolean match( NetDependency netDependency )
+        {
+            //If no profile is specified in net-dependencies.xml, it matches
+            if ( netDependency.getProfile() == null || netDependency.getProfile().trim().equals( "" ) )
+            {
+                return true;
+            }
+
+            if ( profile == null )
+            {
+                return false;
+            }
+
+            return profile.equals( netDependency.getProfile() );
+        }
+    }
+
+    private static class GacFilter
+        implements ArtifactFilter
+    {
+        public boolean include( org.apache.maven.artifact.Artifact artifact )
+        {
+            return !artifact.getType().startsWith( "gac" );
+        }
     }
 }

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactMetadataImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactMetadataImpl.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactMetadataImpl.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactMetadataImpl.java Sat May 19 00:47:30 2007
@@ -45,10 +45,10 @@
     }
 
     /**
-     *  Constructor. This method is intended to by invoked by the plexus-container, not by the application developer.
+     * Constructor. This method is intended to by invoked by the plexus-container, not by the application developer.
      *
-     * @param artifact  the artifact associated with the artifact metadata
-     * @param file      the pom file of the artifact
+     * @param artifact the artifact associated with the artifact metadata
+     * @param file     the pom file of the artifact
      */
     public ArtifactMetadataImpl( Artifact artifact, File file )
     {
@@ -59,7 +59,7 @@
      * Returns the file name of the pom located on a remote repository. Unlike its parent class method, the pom
      * file name does not include version info.
      *
-     * @return  the file name of the pom located on a remote repository
+     * @return the file name of the pom located on a remote repository
      * @see org.apache.maven.project.artifact.ProjectArtifactMetadata#getRemoteFilename()
      */
     public String getRemoteFilename()
@@ -79,7 +79,7 @@
     public String getLocalFilename( ArtifactRepository repository )
     {
         return super.getLocalFilename(repository);
-       // return getArtifactId() + ".pom";
+        //return getArtifactId() + ".pom";
     }
 
 

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java Sat May 19 00:47:30 2007
@@ -28,18 +28,19 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.model.Dependency;
+
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
 import java.util.Set;
 import java.util.HashSet;
 import java.util.List;
-import java.util.ArrayList;
+
 import java.io.File;
 
 /**
@@ -95,15 +96,14 @@
      * @see AssemblyResolver#resolveTransitivelyFor
      */
     public void resolveTransitivelyFor( MavenProject project, Artifact sourceArtifact, List<Dependency> dependencies,
-                                        File pomFile, String localRepositoryPath,
+                                        List<ArtifactRepository> remoteArtifactRepositories,
+                                        ArtifactRepository localArtifactRepository,
                                         boolean addResolvedDependenciesToProject )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
-        ArtifactMetadataImpl meta = new ArtifactMetadataImpl( sourceArtifact, pomFile );
-        sourceArtifact.addMetadata( meta );
-
         Set<Artifact> artifactDependencies = new HashSet<Artifact>();
         Set<Artifact> gacDependencies = new HashSet<Artifact>();
+        ArtifactFilter gacFilter = new GacFilter();
         for ( Dependency dependency : dependencies )
         {
             String scope = ( dependency.getScope() == null ) ? Artifact.SCOPE_COMPILE : dependency.getScope();
@@ -113,39 +113,50 @@
                                                                               dependency.getVersion() ),
                                                                           dependency.getType(),
                                                                           dependency.getClassifier(), scope, null );
-            if ( artifact.getType().equals( "gac" ) )
+            if ( artifact.getType().startsWith( "gac" ) )
             {
+                logger.debug(
+                    "NMAVEN-000-000: GAC Dependency = " + artifact.getType() + ", ID = " + artifact.getArtifactId() );
                 gacDependencies.add( artifact );
             }
             else
             {
+                logger.debug( "NMAVEN-000-000: Dependency: Type  = " + artifact.getType() + ", Artifact ID = " +
+                    artifact.getArtifactId() );
                 artifactDependencies.add( artifact );
             }
         }
 
-        ArtifactRepository localArtifactRepository =
-            new DefaultArtifactRepository( "local", "file://" + localRepositoryPath, new AssemblyRepositoryLayout() );
-
-        List<ArtifactRepository> newArtifactRepositories = new ArrayList<ArtifactRepository>();
-        List<ArtifactRepository> artifactRepositories = project.getRemoteArtifactRepositories();
-        for ( ArtifactRepository artifactRepository : artifactRepositories )
-        {
-            ArtifactRepository repo = artifactRepositoryFactory.createArtifactRepository( artifactRepository.getId(),
-                                                                                          artifactRepository.getUrl(),
-                                                                                          new AssemblyRepositoryLayout(),
-                                                                                          artifactRepository.getSnapshots(),
-                                                                                          artifactRepository.getReleases() );
-            newArtifactRepositories.add( repo );
-        }
         ArtifactResolutionResult result = resolver.resolveTransitively( artifactDependencies, sourceArtifact,
-                                                                        newArtifactRepositories,
-                                                                        localArtifactRepository, metadata );
+                                                                        localArtifactRepository,
+                                                                        remoteArtifactRepositories, metadata,
+                                                                        gacFilter );
+        Set<Artifact> resolvedDependencies = result.getArtifacts();
+        AssemblyRepositoryLayout layout = new AssemblyRepositoryLayout();
+
         if ( addResolvedDependenciesToProject )
         {
-            Set<Artifact> resolvedDependencies = result.getArtifacts();
+            for ( Artifact artifact : resolvedDependencies )
+            {
+                File originalFileWithVersion = artifact.getFile();
+                File targetFileWithoutVersion = new File( localArtifactRepository + "/" + layout.pathOf( artifact ) );
+              //  logger.info( "Original = " + originalFileWithVersion.getAbsolutePath() + ", Target = " +
+              //      targetFileWithoutVersion.getAbsolutePath() );
+                originalFileWithVersion.renameTo( targetFileWithoutVersion );
+               // artifact.setFile( targetFileWithoutVersion.getAbsoluteFile() );
+            }
+
             resolvedDependencies.addAll( gacDependencies );
             project.setDependencyArtifacts( resolvedDependencies );
         }
+    }
 
+    private static class GacFilter
+        implements ArtifactFilter
+    {
+        public boolean include( org.apache.maven.artifact.Artifact artifact )
+        {
+            return !artifact.getType().startsWith( "gac" );
+        }
     }
 }

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java Sat May 19 00:47:30 2007
@@ -39,7 +39,6 @@
 import java.io.Reader;
 import java.io.InputStreamReader;
 
-
 /**
  * Provides methods for loading and reading the net dependency config file.
  *
@@ -187,6 +186,12 @@
         return artifacts;
     }
 
+    /**
+     * Returns the artifact associated with the specified id.
+     *
+     * @param id the artifact ID
+     * @return the artifact associated with the specified id
+     */
     Artifact getArtifactByID( String id )
     {
         for ( NetDependency netDependency : netDependencies )

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/package.html
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/package.html?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/package.html (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/package.html Sat May 19 00:47:30 2007
@@ -1,27 +1,31 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <html>
 <head>
-<!--
+    <!--
 
-  @(#)package.html
+      @(#)package.html
 
-   Copyright 2006 Shane Isbell
+       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.
 
-   Licensed 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.
-
--->
+    -->
 </head>
+
 <body bgcolor="white">
-    Provides the implementation classes of the <i>org.apache.maven.dotnet.artifact</i> package.
+Provides the implementation classes of the <i>org.apache.maven.dotnet.artifact</i> package.
 </body>
 </html>

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/package.html
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/package.html?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/package.html (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/package.html Sat May 19 00:47:30 2007
@@ -1,29 +1,33 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <html>
 <head>
-<!--
+    <!--
 
-  @(#)package.html
+      @(#)package.html
 
-   Copyright 2006 Shane Isbell
+       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.
 
-   Licensed 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.
-
--->
+    -->
 </head>
+
 <body bgcolor="white">
-    Provides interfaces and classes for resolving and installing artifacts. The core interface of this package is
-    <code>ArtifactContext</code>, which provides the methods for handling artifacts and for providing a properly constructed
+Provides interfaces and classes for resolving and installing artifacts. The core interface of this package is
+<code>ArtifactContext</code>, which provides the methods for handling artifacts and for providing a properly constructed
 installer.
 </body>
 </html>

Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml?view=diff&rev=539709&r1=539708&r2=539709
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml Sat May 19 00:47:30 2007
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 
 <registry-config>
-   <repositories>
-      <repository>
-         <repository-name>net-dependencies</repository-name>
-         <repository-class>org.apache.maven.dotnet.artifact.impl.NetDependenciesRepositoryImpl</repository-class>
-         <repository-config>/META-INF/nmaven/net-dependencies.xml</repository-config>
-      </repository>
-    </repositories>
+  <repositories>
+    <repository>
+      <repository-name>net-dependencies</repository-name>
+      <repository-class>org.apache.maven.dotnet.artifact.impl.NetDependenciesRepositoryImpl</repository-class>
+      <repository-config>/META-INF/nmaven/net-dependencies.xml</repository-config>
+    </repository>
+  </repositories>
 </registry-config>