From 5b36f0bddef58c1ea208d84fe0677d497082c922 Mon Sep 17 00:00:00 2001 From: brett Date: Fri, 29 Jul 2005 12:33:13 +0000 Subject: [PATCH] PR: MPARTIFACT-54, MPARTIFACT-55 - start 1.6, make it work with Maven 1.1 (and only Maven 1.1) - fix file:// deployment bug git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@226359 13f79535-47bb-0310-9956-ffa450edef68 --- artifact/plugin.jelly | 11 +++++ artifact/project.xml | 45 +++---------------- .../apache/maven/artifact/PomRewriter.java | 43 ++---------------- .../artifact/deployer/ArtifactDeployer.java | 11 +++-- .../deployer/DefaultArtifactDeployer.java | 26 ----------- .../maven/artifact/deployer/DeployBean.java | 22 +++------ .../artifact/deployer/RepositoryBuilder.java | 17 ++++--- .../maven/artifact/deployer/UploadMeter.java | 9 ++-- .../maven/artifact/PomRewriterTest.java | 3 +- artifact/xdocs/changes.xml | 4 ++ 10 files changed, 50 insertions(+), 141 deletions(-) diff --git a/artifact/plugin.jelly b/artifact/plugin.jelly index 0e6313f7..586afe30 100644 --- a/artifact/plugin.jelly +++ b/artifact/plugin.jelly @@ -28,6 +28,17 @@ xmlns:deploy="deploy" > + + + + Maven Artifact Plugin v${plugin.currentVersion} requires Maven 1.1 or above. + To correct this installation, remove: + ${maven.home}/plugins/maven-artifact-plugin-${plugin.currentVersion}.jar + and run: + maven plugin:download -DgroupId=maven -DartifactId=maven-artifact-plugin -Dversion=1.5.2 + + + diff --git a/artifact/project.xml b/artifact/project.xml index 4589593f..a415fe2a 100644 --- a/artifact/project.xml +++ b/artifact/project.xml @@ -25,8 +25,8 @@ Maven Artifact Plugin - 1.5.2 - Tools to manage artifacts and deployment. + 1.6-SNAPSHOT + Tools to manage artifacts and deployment. Requires Maven 1.1. Tools to manage artifacts and deployment http://maven.apache.org/reference/plugins/artifact/ http://jira.codehaus.org/browse/MPARTIFACT @@ -77,23 +77,13 @@ maven maven - 1.0 + 1.1-beta-1 plexus plexus-utils 1.0-alpha-3 - - commons-betwixt - commons-betwixt - 1.0-beta-1.20030111.103454 - - - commons-digester - commons-digester - 1.4.1 - commons-collections commons-collections @@ -104,11 +94,6 @@ commons-beanutils 1.6.1 - - dom4j - dom4j - 1.4 - commons-net commons-net @@ -177,7 +162,7 @@ org.apache.maven.wagon wagon-file - 1.0-alpha-3 + 1.0-alpha-5-SNAPSHOT maven @@ -186,36 +171,16 @@ - - maven - maven-jelly-tags - 1.0.1 - - - werkz - werkz - 20040426.222000 - commons-jelly commons-jelly-tags-ant - 1.0 + 1.1 commons-jexl commons-jexl 1.0-beta-1 - - forehead - forehead - 1.0-beta-5 - - - commons-grant - commons-grant - 1.0-beta-4 - src/test/java diff --git a/artifact/src/main/org/apache/maven/artifact/PomRewriter.java b/artifact/src/main/org/apache/maven/artifact/PomRewriter.java index 5ba00e64..c0ece80b 100644 --- a/artifact/src/main/org/apache/maven/artifact/PomRewriter.java +++ b/artifact/src/main/org/apache/maven/artifact/PomRewriter.java @@ -16,9 +16,6 @@ package org.apache.maven.artifact; * limitations under the License. */ -import org.apache.commons.betwixt.XMLIntrospector; -import org.apache.commons.betwixt.io.BeanWriter; -import org.apache.commons.betwixt.strategy.DecapitalizeNameMapper; import org.apache.commons.jelly.JellyContext; import org.apache.maven.MavenException; import org.apache.maven.MavenUtils; @@ -29,19 +26,15 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.apache.maven.project.Project; import org.codehaus.plexus.util.IOUtil; -import org.codehaus.plexus.util.StringUtils; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.StringReader; import java.lang.reflect.Method; -import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import java.util.Properties; /** * Rewrite a full model for publishing. Inheritence and expression will have been resolved. @@ -83,7 +76,7 @@ public class PomRewriter Model model; try { - // Very gross, but in Maven 1.0 we can't get access, and we don't want initialize() called + // Very gross, but we don't want initialize() called // A future version should use use project.getModel() and serialize that Method m = MavenUtils.class.getDeclaredMethod( "getNonJellyProject", new Class[]{File.class, MavenJellyContext.class, @@ -107,17 +100,7 @@ public class PomRewriter for ( Iterator i = p.getDependencies().iterator(); i.hasNext(); ) { org.apache.maven.project.Dependency d = (org.apache.maven.project.Dependency) i.next(); - Map properties; - try - { - // Maven 1.0.2 - properties = (Map) d.getClass().getMethod( "resolvedProperties", new Class[] {} ).invoke( d, null ); - } - catch ( NoSuchMethodException e ) - { - // Maven 1.1 - properties = (Map) d.getClass().getMethod( "getProperties", new Class[] {} ).invoke( d, null ); - } + Map properties = d.getProperties(); if ( properties != null && !properties.isEmpty() ) { depProperties.put( d.getId(), properties ); @@ -125,16 +108,7 @@ public class PomRewriter } } - ByteArrayOutputStream projectStream = new ByteArrayOutputStream(); - - BeanWriter beanWriter = new BeanWriter( projectStream ); - beanWriter.setXMLIntrospector( createXMLIntrospector() ); - - beanWriter.enablePrettyPrint(); - beanWriter.setWriteIDs( false ); - beanWriter.write( p ); - - String asString = projectStream.toString( System.getProperty( "file.encoding" ) ); + String asString = p.getProjectAsString(); MavenXpp3Reader reader = new MavenXpp3Reader(); model = reader.read( new StringReader( asString ) ); @@ -174,15 +148,4 @@ public class PomRewriter } return model; } - - private static XMLIntrospector createXMLIntrospector() - { - XMLIntrospector introspector = new XMLIntrospector(); - - introspector.setAttributesForPrimitives( false ); - introspector.setElementNameMapper( new DecapitalizeNameMapper() ); - - return introspector; - } - } diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/ArtifactDeployer.java b/artifact/src/main/org/apache/maven/artifact/deployer/ArtifactDeployer.java index 8a88e6b1..4bb5b8d7 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/ArtifactDeployer.java +++ b/artifact/src/main/org/apache/maven/artifact/deployer/ArtifactDeployer.java @@ -50,7 +50,7 @@ public interface ArtifactDeployer * * @throws MavenException */ - public void deploy(String artifact, String type, Project project, ArtifactTypeHandler handler) + void deploy(String artifact, String type, Project project, ArtifactTypeHandler handler) throws MavenException; /** @@ -60,11 +60,10 @@ public interface ArtifactDeployer * (like war, jar) * @param project The project which is a producer of the artifact * @param handler the type handler for the artifact - * @see ArtifactDeployer#deploy(String, String, Project) - * + * * @throws MavenException */ - public void deploySnapshot(String artifact, String type, Project project, ArtifactTypeHandler handler) + void deploySnapshot(String artifact, String type, Project project, ArtifactTypeHandler handler) throws MavenException; /** @@ -76,7 +75,7 @@ public interface ArtifactDeployer * @param handler the type handler for the artifact * @throws MavenException */ - public void install(String artifact, String type, Project project, ArtifactTypeHandler handler) + void install(String artifact, String type, Project project, ArtifactTypeHandler handler) throws MavenException; /** @@ -88,7 +87,7 @@ public interface ArtifactDeployer * @param handler the type handler for the artifact * @throws MavenException */ - public void installSnapshot(String artifact, String type, Project project, ArtifactTypeHandler handler) + void installSnapshot(String artifact, String type, Project project, ArtifactTypeHandler handler) throws MavenException; } diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java b/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java index c7467aa9..743b3241 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java +++ b/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java @@ -16,21 +16,12 @@ package org.apache.maven.artifact.deployer; * limitations under the License. */ -import org.apache.commons.betwixt.XMLIntrospector; -import org.apache.commons.betwixt.io.BeanWriter; -import org.apache.commons.betwixt.strategy.DecapitalizeNameMapper; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.maven.MavenConstants; import org.apache.maven.MavenException; -import org.apache.maven.MavenUtils; import org.apache.maven.artifact.PomRewriter; -import org.apache.maven.jelly.MavenJellyContext; -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Model; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.apache.maven.project.Project; import org.apache.maven.repository.ArtifactTypeHandler; import org.apache.maven.repository.DefaultArtifactTypeHandler; @@ -51,14 +42,9 @@ import org.apache.maven.wagon.providers.ssh.SftpWagon; import org.apache.maven.wagon.providers.sshext.ScpExternalWagon; import org.apache.maven.wagon.repository.Repository; import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.IOUtil; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileWriter; import java.io.IOException; -import java.io.StringReader; -import java.lang.reflect.Method; import java.net.MalformedURLException; import java.security.NoSuchAlgorithmException; import java.text.DateFormat; @@ -462,9 +448,6 @@ public class DefaultArtifactDeployer } } - /** - * @return - */ private String getSnapshotSignature() { DateFormat fmt = new SimpleDateFormat( SNAPSHOT_FORMAT ); @@ -472,10 +455,6 @@ public class DefaultArtifactDeployer return fmt.format( new Date() ); } - /** - * @param artifact - * @return - */ private File getFileForArtifact( String artifact ) throws MavenException { @@ -500,11 +479,6 @@ public class DefaultArtifactDeployer /** * Create a file which contains timestamp of the latetst snapshot - * - * @param snapshotVersion - * @param project - * @param type - * @return */ private File createSnapshotVersionFile( File artifact, String snapshotVersion, Project project, String type ) throws MavenException diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/DeployBean.java b/artifact/src/main/org/apache/maven/artifact/deployer/DeployBean.java index 7218c6e7..f8b6aac9 100644 --- a/artifact/src/main/org/apache/maven/artifact/deployer/DeployBean.java +++ b/artifact/src/main/org/apache/maven/artifact/deployer/DeployBean.java @@ -32,21 +32,18 @@ import org.apache.maven.repository.DefaultArtifactTypeHandler; */ public class DeployBean { - ArtifactDeployer artifactDeployer = null; + private ArtifactDeployer artifactDeployer; - private Project project = null; - private String artifact = null; - private String type = null; - private ArtifactTypeHandler typeHandler = null; + private Project project; + private String artifact; + private String type; + private ArtifactTypeHandler typeHandler; public DeployBean() { artifactDeployer = new DefaultArtifactDeployer(); } - /** - * @return - */ public ArtifactTypeHandler getTypeHandler() { return typeHandler; @@ -60,9 +57,6 @@ public class DeployBean this.typeHandler = typeHandler; } - /** - * @return - */ public String getArtifact() { return artifact; @@ -76,9 +70,6 @@ public class DeployBean this.artifact = artifact; } - /** - * @return - */ public Project getProject() { return project; @@ -92,9 +83,6 @@ public class DeployBean this.project = project; } - /** - * @return - */ public String getType() { return type; diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/RepositoryBuilder.java b/artifact/src/main/org/apache/maven/artifact/deployer/RepositoryBuilder.java index 918ca6a8..78ce28b1 100755 --- a/artifact/src/main/org/apache/maven/artifact/deployer/RepositoryBuilder.java +++ b/artifact/src/main/org/apache/maven/artifact/deployer/RepositoryBuilder.java @@ -22,14 +22,12 @@ import org.apache.commons.logging.LogFactory; import org.apache.maven.MavenException; import org.apache.maven.project.Project; import org.apache.maven.wagon.authentication.AuthenticationInfo; -import org.apache.maven.wagon.providers.sshext.ScpExternalWagon; import org.apache.maven.wagon.providers.ftp.FtpWagon; +import org.apache.maven.wagon.providers.sshext.ScpExternalWagon; import org.apache.maven.wagon.proxy.ProxyInfo; import org.apache.maven.wagon.repository.Repository; import org.apache.maven.wagon.repository.RepositoryPermissions; -import java.net.MalformedURLException; - /** * Perform mapping between project's properties and attributes of Wagon Repository class. * @@ -52,6 +50,11 @@ public class RepositoryBuilder Repository repository = new Repository( id, url ); String dir = (String) project.getContext().getVariable( "maven.repo." + id + ".directory" ); + if ( repository.getBasedir() != null ) + { + dir = repository.getBasedir() + dir; + } + repository.setBasedir( dir ); if ( dir == null ) { @@ -173,10 +176,10 @@ public class RepositoryBuilder { ProxyInfo proxyInfo = new ProxyInfo(); - String proxyHost = (String) project.getContext().getProxyHost(); - String proxyUser = (String) project.getContext().getProxyUserName(); - String proxyPassword = (String) project.getContext().getProxyPassword(); - String proxyPort = (String) project.getContext().getProxyPort(); + String proxyHost = project.getContext().getProxyHost(); + String proxyUser = project.getContext().getProxyUserName(); + String proxyPassword = project.getContext().getProxyPassword(); + String proxyPort = project.getContext().getProxyPort(); if ( proxyPort != null ) { diff --git a/artifact/src/main/org/apache/maven/artifact/deployer/UploadMeter.java b/artifact/src/main/org/apache/maven/artifact/deployer/UploadMeter.java index ce1ce7a5..e0f6fe36 100755 --- a/artifact/src/main/org/apache/maven/artifact/deployer/UploadMeter.java +++ b/artifact/src/main/org/apache/maven/artifact/deployer/UploadMeter.java @@ -21,7 +21,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.maven.wagon.events.TransferEvent; import org.apache.maven.wagon.events.TransferListener; -import org.apache.maven.util.BootstrapDownloadMeter; /** * Bootstrap download progress meter. @@ -34,12 +33,14 @@ public class UploadMeter implements TransferListener /** log for debug output */ private static final Log log = LogFactory.getLog(UploadMeter.class); - private int shownSoFar = 0; + private int shownSoFar; private final int numHashes; private final char hashChar; - private long complete = 0; + private long complete; private long total; + private static final int KB = 1024; + public UploadMeter() { this( 20, '.' ); @@ -80,7 +81,7 @@ public class UploadMeter implements TransferListener public void transferCompleted( TransferEvent transferEvent ) { - System.out.println(" (" + (total/1024) + "K)"); + System.out.println(" (" + total / KB + "K)"); } public void transferError( TransferEvent transferEvent ) diff --git a/artifact/src/test/java/org/apache/maven/artifact/PomRewriterTest.java b/artifact/src/test/java/org/apache/maven/artifact/PomRewriterTest.java index ec7d7da7..909ed6c2 100644 --- a/artifact/src/test/java/org/apache/maven/artifact/PomRewriterTest.java +++ b/artifact/src/test/java/org/apache/maven/artifact/PomRewriterTest.java @@ -25,6 +25,7 @@ import org.apache.maven.MavenUtils; import org.apache.maven.MavenConstants; import java.io.File; +import java.io.FileReader; /** * Test the POM rewriter. @@ -45,7 +46,7 @@ public class PomRewriterTest } public void testPropertiesRewriting() - throws MavenException + throws Exception { String resourceName = "pom-with-properties.xml"; diff --git a/artifact/xdocs/changes.xml b/artifact/xdocs/changes.xml index ca6bbbf0..7de2a866 100644 --- a/artifact/xdocs/changes.xml +++ b/artifact/xdocs/changes.xml @@ -25,6 +25,10 @@ Vincent Massol + + Correct basedir for file:// URLs + Fix handling of dependencies with properties + Correct the translation of dependency properties on deployment of the POM Upgrade Wagon SSH External provider to allow the use of no private key, and to correctly pass the private key and port arguments