Author: sisbell Date: Tue Feb 27 12:02:53 2007 New Revision: 512377 URL: http://svn.apache.org/viewvc?view=rev&rev=512377 Log: Added ability to install a file (without meta-data) into the local repo. This is needed to install the dll wrapper for netmodules, so that the IDE can reference the assemblies.
Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java?view=diff&rev=512377&r1=512376&r2=512377 ============================================================================== --- incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java (original) +++ incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactInstaller.java Tue Feb 27 12:02:53 2007 @@ -42,7 +42,7 @@ * will also check whether an exe.config file is associated with the artifact and install the exe.config into * the local maven repository. This will allow installed artifacts, with their associated configuration information, * to be directly executed from the local maven repository. - * + * <p/> * Typically the artifact parameter will be obtained directly through the maven project: * <code>MavenProject.getArtifact</code>. In those cases where the MavenProject object is unavailable, then * you can use the <code>installFile</code> method from this interface. @@ -66,6 +66,19 @@ * @throws ArtifactInstallationException if there is a problem installing the artifact */ void installFile( String groupId, String artifactId, String version, String packaging, File pomFile ) + throws ArtifactInstallationException; + + /** + * Installs a file into the local maven repository, without generating a pom.xml. This is used for placing + * files and resources into the local repository, where there are no explicit dependencies (as given in the pom file). + * + * @param groupId the group id of the file to install + * @param artifactId the artifact id of the file to install + * @param version the version of the file to install + * @param installFile the file to install + * @throws ArtifactInstallationException if there is a problem installing the artifact + */ + void installFileWithNoPom( String groupId, String artifactId, String version, File installFile ) throws ArtifactInstallationException; /** Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java?view=diff&rev=512377&r1=512376&r2=512377 ============================================================================== --- incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java (original) +++ incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java Tue Feb 27 12:02:53 2007 @@ -24,7 +24,6 @@ import org.apache.maven.dotnet.artifact.ApplicationConfig; import org.apache.maven.project.MavenProject; import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.resolver.filter.ArtifactFilter; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.installer.ArtifactInstallationException; @@ -46,7 +45,6 @@ import java.io.FileReader; import java.util.List; import java.util.ArrayList; -import java.util.Collections; /** * Provides an implementation of the <code>ArtifactInstaller</code> interface. @@ -129,9 +127,9 @@ { List<Dependency> dependencies = project.getDependencies(); List<Dependency> newDependencies = new ArrayList<Dependency>(); - for(Dependency dependency : dependencies) + for ( Dependency dependency : dependencies ) { - if(!dependency.getType().equals("gac")) + if ( !dependency.getType().equals( "gac" ) ) { newDependencies.add( dependency ); } @@ -187,6 +185,15 @@ if ( artifact.getFile() != null && artifact.getFile().exists() )//maybe just a test compile and no install { mavenInstaller.install( artifact.getFile(), artifact, artifactRepository ); + //Installing Linked file for IDE: + /* + File linkedFile = + new File( artifact.getFile().getParent() + File.separatorChar + artifact.getArtifactId() + ".dll" ); + if ( artifact.getType().equals( "module" ) && linkedFile.exists() ) + { + mavenInstaller.install( linkedFile, artifact, artifactRepository ); + } + */ } } catch ( ArtifactInstallationException e ) @@ -244,6 +251,32 @@ } + public void installFileWithNoPom( String groupId, String artifactId, String version, File installFile ) + throws ArtifactInstallationException { + StringBuffer path = new StringBuffer(); + path.append( localRepository.getAbsolutePath() ).append( File.separator ); + for ( String id : groupId.split( "[.]" ) ) + { + path.append( id ).append( File.separator ); + } + + path.append( artifactId ).append( File.separator ) + .append( version ).append( File.separator ); + + logger.info( "NMAVEN-002-014: Installing File: From = " + + installFile.getAbsolutePath() + ", To = " + path.toString() + artifactId + + ".dll" ); + try + { + FileUtils.copyFileToDirectory( installFile, new File( path.toString() ) ); + } + catch ( IOException e ) + { + throw new ArtifactInstallationException( "NMAVEN-002-015: Failed to copy artifact to local repository", + e ); + } + } + /** * @see org.apache.maven.dotnet.artifact.ArtifactInstaller#installNetModulesToTargetDirectory(org.apache.maven.artifact.Artifact) */ @@ -368,7 +401,7 @@ throw new IOException( "NMAVEN-002-013: Unable to read pom file" ); } List<Dependency> dest = new ArrayList<Dependency>(); - dest.addAll( model.getDependencies()); + dest.addAll( model.getDependencies() ); for ( Dependency dependency : dest ) { model.removeDependency( dependency ); Modified: incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java?view=diff&rev=512377&r1=512376&r2=512377 ============================================================================== --- incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java (original) +++ incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java Tue Feb 27 12:02:53 2007 @@ -94,16 +94,6 @@ public void execute() throws MojoExecutionException { - try - { - nmavenRegistry.createRepositoryRegistry(); - } - catch ( IOException e ) - { - throw new MojoExecutionException( - "NMAVEN-1000-001: Failed to create the repository registry for this plugin", e ); - } - artifactContext.init( project, localRepository ); try { Modified: incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java?view=diff&rev=512377&r1=512376&r2=512377 ============================================================================== --- incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java (original) +++ incubator/nmaven/branches/SI_IDE/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java Tue Feb 27 12:02:53 2007 @@ -23,7 +23,9 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.artifact.installer.ArtifactInstaller; import org.apache.maven.artifact.installer.ArtifactInstallationException; +import org.apache.maven.artifact.Artifact; import org.apache.maven.dotnet.artifact.ArtifactContext; +import org.apache.maven.dotnet.executable.compiler.ArtifactType; import java.io.File; @@ -69,13 +71,31 @@ public void execute() throws MojoExecutionException { + Artifact artifact = project.getArtifact(); try { - artifactContext.getArtifactInstaller().installArtifact( project.getArtifact(), pomFile ); + artifactContext.getArtifactInstaller().installArtifact( artifact, pomFile ); } catch ( ArtifactInstallationException e ) { throw new MojoExecutionException( "NMAVEN-1001-000: Failed to install artifacts", e ); } + + //For the IDE: If we see a dll with same name as netmodule, copy dll to the local repo. + File linkedFile = + new File( artifact.getFile().getParent() + File.separatorChar + artifact.getArtifactId() + ".dll" ); + if ( linkedFile.exists() && artifact.getType().equals( ArtifactType.MODULE.getArtifactTypeName() ) ) + { + try + { + artifactContext.getArtifactInstaller().installFileWithNoPom( artifact.getGroupId(), artifact.getArtifactId(), + artifact.getVersion(), linkedFile ); + } + catch ( org.apache.maven.artifact.installer.ArtifactInstallationException e ) + { + throw new MojoExecutionException( "NMAVEN-1001-001: Failed to install artifact file", e ); + } + } + } }