Author: sisbell Date: Fri May 11 13:55:49 2007 New Revision: 537287 URL: http://svn.apache.org/viewvc?view=rev&rev=537287 Log: The initializing of artifacthandlers is now done by initializing the artifactContext. This means that standalone plugins are no longer responsible for programatically setting up the artifact handlers.
Modified: incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/resources/META-INF/plexus/components.xml incubator/nmaven/branches/SI_XPT/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java Modified: incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java?view=diff&rev=537287&r1=537286&r2=537287 ============================================================================== --- incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java (original) +++ incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ArtifactContext.java Fri May 11 13:55:49 2007 @@ -19,6 +19,7 @@ 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; @@ -119,16 +120,18 @@ * * @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. + * @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 mavenProject the maven project * @param remoteArtifactRepositories - * @param localRepository the file location of the local maven repository + * @param localRepository the file location of the local maven repository * @throws NullPointerException if localRepository parameter is null */ void init( MavenProject mavenProject, List<ArtifactRepository> remoteArtifactRepositories, File localRepository ); Modified: incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java?view=diff&rev=537287&r1=537286&r2=537287 ============================================================================== --- incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java (original) +++ incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java Fri May 11 13:55:49 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. */ @@ -264,7 +270,7 @@ } /** - * @see ArtifactContext#init(org.apache.maven.project.MavenProject,java.util.List + * @see ArtifactContext#init(org.apache.maven.project.MavenProject,java.util.List, File */ public void init( MavenProject mavenProject, List<ArtifactRepository> remoteArtifactRepositories, File localRepository ) @@ -272,6 +278,24 @@ this.project = mavenProject; this.localRepository = localRepository.getAbsolutePath(); 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" ); } /** @@ -291,5 +315,83 @@ } } return true; + } + + private class Handler + implements ArtifactHandler + { + private String extension, directory, classifier, packaging, language; + + private boolean includesDependencies, addedToClasspath; + + public void setExtension( String extension ) + { + this.extension = extension; + } + + public String getExtension() + { + return extension; + } + + public void setDirectory( String directory ) + { + this.directory = directory; + } + + public String getDirectory() + { + return directory; + } + + public void setClassifier( String classifier ) + { + this.classifier = classifier; + } + + public String getClassifier() + { + return classifier; + } + + public void setPackaging( String packaging ) + { + this.packaging = packaging; + } + + public String getPackaging() + { + return packaging; + } + + public void setIncludesDependencies( boolean includesDependencies ) + { + this.includesDependencies = includesDependencies; + } + + public boolean isIncludesDependencies() + { + return includesDependencies; + } + + public void setLanguage( String language ) + { + this.language = language; + } + + public String getLanguage() + { + return language; + } + + public void setAddedToClasspath( boolean addedToClasspath ) + { + this.addedToClasspath = addedToClasspath; + } + + public boolean isAddedToClasspath() + { + return addedToClasspath; + } } } Modified: incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=537287&r1=537286&r2=537287 ============================================================================== --- incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/resources/META-INF/plexus/components.xml (original) +++ incubator/nmaven/branches/SI_XPT/components/dotnet-artifact/src/main/resources/META-INF/plexus/components.xml Fri May 11 13:55:49 2007 @@ -1,6 +1,104 @@ <component-set> <components> <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>module</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>netmodule</extension> + <type>module</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>exe.config</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>exe.config</extension> + <type>exe.config</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>library</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>dll</extension> + <type>library</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>winexe</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>exe</extension> + <type>winexe</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>gac</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>dll</extension> + <type>gac</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>gac_generic</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>dll</extension> + <type>gac_generic</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>gac_msil</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>dll</extension> + <type>gac_msil</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>gac_32</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>dll</extension> + <type>gac_32</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>nar</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>nar</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>netplugin</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>dll</extension> + <type>netplugin</type> + </configuration> + </component> + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>visual-studio-addin</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <extension>dll</extension> + <type>visual-studio-addin</type> + </configuration> + </component> + <component> <role>org.apache.maven.dotnet.artifact.ArtifactContext</role> <implementation>org.apache.maven.dotnet.artifact.impl.ArtifactContextImpl</implementation> <requirements> @@ -23,6 +121,13 @@ <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role> <role-hint>net</role-hint> </requirement> + <requirement> + <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> + </requirement> + <requirement> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <field-name>artifactHandlers</field-name> + </requirement> </requirements> </component> <component> @@ -43,7 +148,7 @@ </requirement> <requirement> <role>org.apache.maven.dotnet.artifact.AssemblyResolver</role> - </requirement> + </requirement> <requirement> <role>org.apache.maven.dotnet.registry.RepositoryRegistry</role> </requirement> Modified: incubator/nmaven/branches/SI_XPT/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_XPT/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java?view=diff&rev=537287&r1=537286&r2=537287 ============================================================================== --- incubator/nmaven/branches/SI_XPT/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java (original) +++ incubator/nmaven/branches/SI_XPT/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java Fri May 11 13:55:49 2007 @@ -69,11 +69,6 @@ public void execute() throws MojoExecutionException, MojoFailureException { - Map handlers = new HashMap(); - handlers.put( "library", createArtifactHandler( "library", "dll" ) ); - handlers.put( "netplugin", createArtifactHandler( "netplugin", "dll" ) ); - handlers.put( "visual-studio-addin", createArtifactHandler( "visual-studio-addin", "dll" ) ); - artifactHandlerManager.addHandlers( handlers ); ArtifactRepository remoteArtifactRepository = new DefaultArtifactRepository( "nmaven", "http://localhost:8080/repository", new DefaultRepositoryLayout() );