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/26 06:27:32 UTC
svn commit: r541863 - in /incubator/nmaven/trunk: assemblies/NMaven.Plugin/
components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/
components/dotnet-core/src/main/resources/META-INF/nmaven/
plugins/maven-resolver-plugin/src/mai...
Author: sisbell
Date: Fri May 25 23:27:31 2007
New Revision: 541863
URL: http://svn.apache.org/viewvc?view=rev&rev=541863
Log:
The vsinstaller installs required assemblies into the GAC during resolution.
Removed:
incubator/nmaven/trunk/assemblies/NMaven.Plugin/sample-public.snk
Modified:
incubator/nmaven/trunk/assemblies/NMaven.Plugin/pom.xml
incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java
incubator/nmaven/trunk/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml
incubator/nmaven/trunk/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java
incubator/nmaven/trunk/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java
Modified: incubator/nmaven/trunk/assemblies/NMaven.Plugin/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/assemblies/NMaven.Plugin/pom.xml?view=diff&rev=541863&r1=541862&r2=541863
==============================================================================
--- incubator/nmaven/trunk/assemblies/NMaven.Plugin/pom.xml (original)
+++ incubator/nmaven/trunk/assemblies/NMaven.Plugin/pom.xml Fri May 25 23:27:31 2007
@@ -56,26 +56,4 @@
</plugin>
</plugins>
</build>
- <profiles>
- <profile>
- <activation>
- <property>
- <name>version</name>
- <value>1.1</value>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.dotnet.plugins</groupId>
- <artifactId>maven-compile-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <frameworkVersion>1.1.4322</frameworkVersion>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
</project>
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=541863&r1=541862&r2=541863
==============================================================================
--- 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 Fri May 25 23:27:31 2007
@@ -455,7 +455,13 @@
try
{
result = resolver.resolveTransitively( artifactDependencies, sourceArtifact, localArtifactRepository,
- remoteArtifactRepositories, metadata, new GacFilter() );
+ remoteArtifactRepositories, metadata, new ArtifactFilter()
+ {
+ public boolean include( org.apache.maven.artifact.Artifact artifact )
+ {
+ return !artifact.getType().startsWith( "gac" );
+ }
+ } );
}
catch ( ArtifactResolutionException e )
{
@@ -675,15 +681,6 @@
}
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-core/src/main/resources/META-INF/nmaven/net-dependencies.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml?view=diff&rev=541863&r1=541862&r2=541863
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml (original)
+++ incubator/nmaven/trunk/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml Fri May 25 23:27:31 2007
@@ -53,12 +53,14 @@
<artifactId>NMaven.Plugin</artifactId>
<version>0.14-SNAPSHOT</version>
<type>library</type>
+ <isGacInstall>true</isGacInstall>
</netDependency>
<netDependency>
<groupId>NMaven.Model</groupId>
<artifactId>NMaven.Model.Pom</artifactId>
<version>0.14-SNAPSHOT</version>
<type>library</type>
+ <isGacInstall>true</isGacInstall>
</netDependency>
<netDependency>
<groupId>NMaven.Plugin</groupId>
Modified: incubator/nmaven/trunk/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java?view=diff&rev=541863&r1=541862&r2=541863
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java Fri May 25 23:27:31 2007
@@ -89,6 +89,11 @@
private String frameworkVersion;
/**
+ * @parameter expression = "${installGacDependencies}" default-value="false"
+ */
+ private boolean isGacInstall;
+
+ /**
* @component
*/
private AssemblyResolver assemblyResolver;
@@ -178,39 +183,43 @@
//Do GAC Install, if needed
//TODO: Add in the dependencies from the MOJO config
- NetDependenciesRepository repository =
- (NetDependenciesRepository) repositoryRegistry.find( "net-dependencies" );
- getLog().info( "NMAVEN-1600-001: Found net dependencies: Number = " + dependencies.size() );
-
- List<NetDependencyMatchPolicy> gacInstallPolicies = new ArrayList<NetDependencyMatchPolicy>();
- gacInstallPolicies.add( new GacMatchPolicy( true ) );
- List<Dependency> gacInstallDependencies = repository.getDependenciesFor( gacInstallPolicies );
- for ( Dependency dependency : gacInstallDependencies )
- {
- List<Artifact> artifacts = artifactContext.getArtifactsFor( dependency.getGroupId(),
- dependency.getArtifactId(),
- dependency.getVersion(), dependency.getType() );
- try
- {
- NetExecutable netExecutable = netExecutableFactory.getNetExecutableFor( vendor, frameworkVersion,
- "GACUTIL",
- getGacInstallCommandsFor(
- artifacts.get( 0 ) ),
- null );
- netExecutable.execute();
- getLog().info( "NMAVEN-1600-004: Installed Assembly into GAC: Assembly = " +
- artifacts.get( 0 ).getFile().getAbsolutePath() + ", Vendor = " +
- netExecutable.getVendor().getVendorName() );
- }
- catch ( ExecutionException e )
- {
- throw new MojoExecutionException( "NMAVEN-1600-005: Unable to execute gacutil: Vendor " + vendor +
- ", frameworkVersion = " + frameworkVersion + ", Profile = " + profile, e );
- }
- catch ( PlatformUnsupportedException e )
+ if ( isGacInstall )
+ {
+ NetDependenciesRepository repository =
+ (NetDependenciesRepository) repositoryRegistry.find( "net-dependencies" );
+ getLog().info( "NMAVEN-1600-001: Found net dependencies: Number = " + dependencies.size() );
+
+ List<NetDependencyMatchPolicy> gacInstallPolicies = new ArrayList<NetDependencyMatchPolicy>();
+ gacInstallPolicies.add( new GacMatchPolicy( true ) );
+ List<Dependency> gacInstallDependencies = repository.getDependenciesFor( gacInstallPolicies );
+ for ( Dependency dependency : gacInstallDependencies )
{
- throw new MojoExecutionException( "NMAVEN-1600-006: Platform Unsupported: Vendor " + vendor +
- ", frameworkVersion = " + frameworkVersion + ", Profile = " + profile, e );
+ List<Artifact> artifacts = artifactContext.getArtifactsFor( dependency.getGroupId(),
+ dependency.getArtifactId(),
+ dependency.getVersion(),
+ dependency.getType() );
+ try
+ {
+ NetExecutable netExecutable = netExecutableFactory.getNetExecutableFor( vendor, frameworkVersion,
+ "GACUTIL",
+ getGacInstallCommandsFor(
+ artifacts.get( 0 ) ),
+ null );
+ netExecutable.execute();
+ getLog().info( "NMAVEN-1600-004: Installed Assembly into GAC: Assembly = " +
+ artifacts.get( 0 ).getFile().getAbsolutePath() + ", Vendor = " +
+ netExecutable.getVendor().getVendorName() );
+ }
+ catch ( ExecutionException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-1600-005: Unable to execute gacutil: Vendor " + vendor +
+ ", frameworkVersion = " + frameworkVersion + ", Profile = " + profile, e );
+ }
+ catch ( PlatformUnsupportedException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-1600-006: Platform Unsupported: Vendor " + vendor +
+ ", frameworkVersion = " + frameworkVersion + ", Profile = " + profile, e );
+ }
}
}
Modified: incubator/nmaven/trunk/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java?view=diff&rev=541863&r1=541862&r2=541863
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java Fri May 25 23:27:31 2007
@@ -11,7 +11,16 @@
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.artifact.Artifact;
import org.apache.maven.dotnet.artifact.ArtifactContext;
+import org.apache.maven.dotnet.artifact.NetDependenciesRepository;
+import org.apache.maven.dotnet.artifact.NetDependencyMatchPolicy;
+import org.apache.maven.dotnet.executable.NetExecutable;
+import org.apache.maven.dotnet.executable.ExecutionException;
+import org.apache.maven.dotnet.PlatformUnsupportedException;
+import org.apache.maven.dotnet.registry.RepositoryRegistry;
+import org.apache.maven.dotnet.vendor.Vendor;
+import org.apache.maven.dotnet.model.netdependency.NetDependency;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.IOUtil;
@@ -55,9 +64,31 @@
*/
private ArtifactHandlerManager artifactHandlerManager;
+ /**
+ * @component
+ */
+ private org.apache.maven.dotnet.NMavenRepositoryRegistry nmavenRegistry;
+
+ /**
+ * @component
+ */
+ private org.apache.maven.dotnet.executable.NetExecutableFactory netExecutableFactory;
+
public void execute()
throws MojoExecutionException, MojoFailureException
{
+
+ RepositoryRegistry repositoryRegistry;
+ try
+ {
+ repositoryRegistry = nmavenRegistry.createRepositoryRegistry();
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException(
+ "NMAVEN-1600-000: Failed to create the repository registry for this plugin", e );
+ }
+
ArtifactRepository remoteArtifactRepository = new DefaultArtifactRepository( "nmaven",
"http://localhost:8080/repository",
new DefaultRepositoryLayout() );
@@ -83,11 +114,43 @@
throw new MojoExecutionException( "NMAVEN-1600-005: Unable to resolve assemblies", e );
}
+ //GAC Installs
+ NetDependenciesRepository repository =
+ (NetDependenciesRepository) repositoryRegistry.find( "net-dependencies" );
+
+ List<NetDependencyMatchPolicy> gacInstallPolicies = new ArrayList<NetDependencyMatchPolicy>();
+ gacInstallPolicies.add( new GacMatchPolicy( true ) );
+ List<Dependency> gacInstallDependencies = repository.getDependenciesFor( gacInstallPolicies );
+ for ( Dependency dependency : gacInstallDependencies )
+ {
+ List<Artifact> artifacts = artifactContext.getArtifactsFor( dependency.getGroupId(),
+ dependency.getArtifactId(),
+ dependency.getVersion(), dependency.getType() );
+ try
+ {
+ NetExecutable netExecutable = netExecutableFactory.getNetExecutableFor(
+ Vendor.MICROSOFT.getVendorName(), "2.0.50727", "GACUTIL",
+ getGacInstallCommandsFor( artifacts.get( 0 ) ), null );
+ netExecutable.execute();
+ getLog().info( "NMAVEN-1600-004: Installed Assembly into GAC: Assembly = " +
+ artifacts.get( 0 ).getFile().getAbsolutePath() + ", Vendor = " +
+ netExecutable.getVendor().getVendorName() );
+ }
+ catch ( ExecutionException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-1600-005: Unable to execute gacutil:", e );
+ }
+ catch ( PlatformUnsupportedException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-1600-006: Platform Unsupported:", e );
+ }
+ }
+
OutputStreamWriter writer = null;
try
{
String addin =
- IOUtil.toString( VsInstallerMojo.class.getResourceAsStream( "/template/NMaven.VisualStudio.AddIn" ));
+ IOUtil.toString( VsInstallerMojo.class.getResourceAsStream( "/template/NMaven.VisualStudio.AddIn" ) );
File outputFile = new File( System.getProperty( "user.home" ) +
"\\My Documents\\Visual Studio 2005\\Addins\\NMaven.VisualStudio.AddIn" );
@@ -118,6 +181,32 @@
e.printStackTrace();
}
}
+ }
+
+ public List<String> getGacInstallCommandsFor( Artifact artifact )
+ throws MojoExecutionException
+ {
+ List<String> commands = new ArrayList<String>();
+ commands.add( "/nologo" );
+ commands.add( "/i" );
+ commands.add( artifact.getFile().getAbsolutePath() );
+ return commands;
+ }
+ private class GacMatchPolicy
+ implements NetDependencyMatchPolicy
+ {
+
+ private boolean isGacInstall;
+
+ public GacMatchPolicy( boolean isGacInstall )
+ {
+ this.isGacInstall = isGacInstall;
+ }
+
+ public boolean match( NetDependency netDependency )
+ {
+ return netDependency.isIsGacInstall() == isGacInstall;
+ }
}
}