brett 2005/03/23 21:18:41
Modified: maven-artifact/src/main/java/org/apache/maven/artifact/deployer DefaultArtifactDeployer.java maven-artifact/src/main/java/org/apache/maven/artifact/handler/manager ArtifactHandlerManager.java DefaultArtifactHandlerManager.java maven-artifact/src/main/java/org/apache/maven/artifact/installer DefaultArtifactInstaller.java maven-artifact/src/main/java/org/apache/maven/artifact/manager DefaultWagonManager.java maven-artifact/src/main/java/org/apache/maven/artifact/resolver DefaultArtifactResolver.java maven-artifact/src/main/resources/META-INF/plexus components.xml Log: correct placement of transformations Revision Changes Path 1.5 +5 -3 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java Index: DefaultArtifactDeployer.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- DefaultArtifactDeployer.java 24 Mar 2005 05:01:05 -0000 1.4 +++ DefaultArtifactDeployer.java 24 Mar 2005 05:18:40 -0000 1.5 @@ -23,10 +23,8 @@ import org.apache.maven.artifact.repository.ArtifactRepository; import java.io.File; +import java.util.List; -/** - * @todo snapshot notions need to be dealt with in one place. - */ public class DefaultArtifactDeployer implements ArtifactDeployer { @@ -34,6 +32,8 @@ private ArtifactHandlerManager artifactHandlerManager; + private List artifactTransformations; + public void deploy( String basedir, Artifact artifact, ArtifactRepository deploymentRepository ) throws ArtifactDeploymentException { @@ -54,6 +54,8 @@ public void deploy( File source, Artifact artifact, ArtifactRepository deploymentRepository ) throws ArtifactDeploymentException { + // TODO: perform transformations + try { wagonManager.putArtifact( source, artifact, deploymentRepository ); 1.6 +1 -10 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/handler/manager/ArtifactHandlerManager.java Index: ArtifactHandlerManager.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/handler/manager/ArtifactHandlerManager.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ArtifactHandlerManager.java 23 Mar 2005 08:42:56 -0000 1.5 +++ ArtifactHandlerManager.java 24 Mar 2005 05:18:40 -0000 1.6 @@ -16,10 +16,7 @@ * limitations under the License. */ -import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.handler.ArtifactHandler; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.layout.ArtifactPathFormatException; /** * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> @@ -31,10 +28,4 @@ ArtifactHandler getArtifactHandler( String type ) throws ArtifactHandlerNotFoundException; - - String getLocalRepositoryArtifactPath( Artifact artifact, ArtifactRepository localRepository ) - throws ArtifactPathFormatException; - - String getRemoteRepositoryArtifactPath( Artifact artifact, ArtifactRepository remoteRepository ) - throws ArtifactPathFormatException; } \ No newline at end of file 1.13 +1 -36 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/handler/manager/DefaultArtifactHandlerManager.java Index: DefaultArtifactHandlerManager.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/handler/manager/DefaultArtifactHandlerManager.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- DefaultArtifactHandlerManager.java 23 Mar 2005 15:10:38 -0000 1.12 +++ DefaultArtifactHandlerManager.java 24 Mar 2005 05:18:40 -0000 1.13 @@ -16,15 +16,9 @@ * limitations under the License. */ -import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.handler.ArtifactHandler; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.layout.ArtifactPathFormatException; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.apache.maven.artifact.transform.ArtifactTransformation; -import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.Set; @@ -36,8 +30,6 @@ public class DefaultArtifactHandlerManager implements ArtifactHandlerManager { - private List artifactTransformations; - private Map artifactHandlers; private ArtifactRepositoryLayout artifactRepositoryLayout; @@ -59,31 +51,4 @@ { return artifactHandlers.keySet(); } - - public String getRemoteRepositoryArtifactPath( Artifact artifact, ArtifactRepository remoteRepository ) - throws ArtifactPathFormatException - { - // TODO: note that these are currrently assuming only PUT operations, not GET operations - // TODO: note also that these add metadata to the artifacts, so it is assumed this is only called once per artifact - needs to be fixed - - for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); ) - { - ArtifactTransformation transform = (ArtifactTransformation) i.next(); - artifact = transform.transformRemoteArtifact( artifact, remoteRepository ); - } - - return remoteRepository.pathOf( artifact ); - } - - public String getLocalRepositoryArtifactPath( Artifact artifact, ArtifactRepository localRepository ) - throws ArtifactPathFormatException - { - for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); ) - { - ArtifactTransformation transform = (ArtifactTransformation) i.next(); - artifact = transform.transformLocalArtifact( artifact, localRepository ); - } - - return localRepository.getBasedir() + "/" + localRepository.pathOf( artifact ); - } -} \ No newline at end of file +} 1.11 +13 -2 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java Index: DefaultArtifactInstaller.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- DefaultArtifactInstaller.java 24 Mar 2005 05:01:05 -0000 1.10 +++ DefaultArtifactInstaller.java 24 Mar 2005 05:18:40 -0000 1.11 @@ -22,12 +22,14 @@ import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactPathFormatException; +import org.apache.maven.artifact.transform.ArtifactTransformation; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.util.FileUtils; import java.io.File; import java.io.IOException; import java.util.Iterator; +import java.util.List; public class DefaultArtifactInstaller extends AbstractLogEnabled @@ -35,6 +37,8 @@ { private ArtifactHandlerManager artifactHandlerManager; + private List artifactTransformations; + public void install( String basedir, Artifact artifact, ArtifactRepository localRepository ) throws ArtifactInstallationException { @@ -57,12 +61,19 @@ { try { - String localPath = artifactHandlerManager.getLocalRepositoryArtifactPath( artifact, localRepository ); + // TODO: better to have a transform manager, or reuse the handler manager again so we don't have these requirements duplicated all over? + for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); ) + { + ArtifactTransformation transform = (ArtifactTransformation) i.next(); + artifact = transform.transformLocalArtifact( artifact, localRepository ); + } + + String localPath = localRepository.pathOf( artifact ); getLogger().info( "Installing " + source.getPath() + " to " + localPath ); // TODO: use a file: wagon and the wagon manager? - File destination = new File( localPath ); + File destination = new File( localRepository.getBasedir(), localPath ); if ( !destination.getParentFile().exists() ) { destination.getParentFile().mkdirs(); 1.21 +2 -3 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Index: DefaultWagonManager.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- DefaultWagonManager.java 24 Mar 2005 05:01:05 -0000 1.20 +++ DefaultWagonManager.java 24 Mar 2005 05:18:40 -0000 1.21 @@ -91,7 +91,7 @@ wagon.connect( repository, getProxy( repository.getProtocol() ) ); - wagon.put( source, artifactHandlerManager.getRemoteRepositoryArtifactPath( artifact, repository ) ); + wagon.put( source, repository.pathOf( artifact ) ); wagon.disconnect(); @@ -107,11 +107,10 @@ { ArtifactRepository repository = (ArtifactRepository) iter.next(); - // TODO: should we avoid doing the transforms on this every time, and instead transform outside the loop? String remotePath = null; try { - remotePath = artifactHandlerManager.getRemoteRepositoryArtifactPath( artifact, repository ); + remotePath = repository.pathOf( artifact ); } catch ( ArtifactPathFormatException e ) { 1.28 +13 -5 maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Index: DefaultArtifactResolver.java =================================================================== RCS file: /home/cvs/maven-components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- DefaultArtifactResolver.java 24 Mar 2005 05:01:05 -0000 1.27 +++ DefaultArtifactResolver.java 24 Mar 2005 05:18:41 -0000 1.28 @@ -25,6 +25,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactPathFormatException; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; +import org.apache.maven.artifact.transform.ArtifactTransformation; import org.apache.maven.wagon.TransferFailedException; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.logging.Logger; @@ -56,6 +57,8 @@ private ArtifactHandlerManager artifactHandlerManager; + private List artifactTransformations; + // ---------------------------------------------------------------------- // Implementation // ---------------------------------------------------------------------- @@ -67,27 +70,32 @@ // ---------------------------------------------------------------------- // Check for the existence of the artifact in the specified local // ArtifactRepository. If it is present then simply return as the - // request - // for resolution has been satisfied. + // request for resolution has been satisfied. // ---------------------------------------------------------------------- Logger logger = getLogger(); logger.debug( "Resolving: " + artifact.getId() + " from:\n" + "{localRepository: " + localRepository + "}\n" + "{remoteRepositories: " + remoteRepositories + "}" ); + // TODO: better to have a transform manager, or reuse the handler manager again so we don't have these requirements duplicated all over? + for ( Iterator i = artifactTransformations.iterator(); i.hasNext(); ) + { + ArtifactTransformation transform = (ArtifactTransformation) i.next(); + artifact = transform.transformLocalArtifact( artifact, localRepository ); + } + String localPath; try { - localPath = artifactHandlerManager.getLocalRepositoryArtifactPath( artifact, localRepository ); + localPath = localRepository.pathOf( artifact ); } catch ( ArtifactPathFormatException e ) { throw new ArtifactResolutionException( "Error resolving artifact: ", e ); } - // TODO: what if it were a snapshot that was transformed? - File destination = new File( localPath ); + File destination = new File( localRepository.getBasedir(), localPath ); artifact.setFile( destination ); if ( destination.exists() ) 1.15 +12 -4 maven-components/maven-artifact/src/main/resources/META-INF/plexus/components.xml Index: components.xml =================================================================== RCS file: /home/cvs/maven-components/maven-artifact/src/main/resources/META-INF/plexus/components.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- components.xml 23 Mar 2005 08:42:57 -0000 1.14 +++ components.xml 24 Mar 2005 05:18:41 -0000 1.15 @@ -25,6 +25,10 @@ <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> + <requirement> + <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> + <field-name>artifactTransformations</field-name> + </requirement> </requirements> </component> @@ -55,6 +59,10 @@ <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> + <requirement> + <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> + <field-name>artifactTransformations</field-name> + </requirement> </requirements> </component> @@ -73,6 +81,10 @@ <requirement> <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> </requirement> + <requirement> + <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> + <field-name>artifactTransformations</field-name> + </requirement> </requirements> </component> @@ -111,10 +123,6 @@ <role>org.apache.maven.artifact.handler.ArtifactHandler</role> <field-name>artifactHandlers</field-name> </requirement> - <requirement> - <role>org.apache.maven.artifact.transform.ArtifactTransformation</role> - <field-name>artifactTransformations</field-name> - </requirement> </requirements> </component>