You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/09/19 08:30:14 UTC
svn commit: r290069 - in /maven/components/trunk/sandbox/repoclean: ./
src/main/java/org/apache/maven/tools/repoclean/artifact/
src/main/java/org/apache/maven/tools/repoclean/digest/
src/main/java/org/apache/maven/tools/repoclean/phase/
Author: brett
Date: Sun Sep 18 23:30:04 2005
New Revision: 290069
URL: http://svn.apache.org/viewcvs?rev=290069&view=rev
Log:
enable repo clean for new metadata
Removed:
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/artifact/
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/DigestVerificationException.java
Modified:
maven/components/trunk/sandbox/repoclean/pom.xml
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java
Modified: maven/components/trunk/sandbox/repoclean/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/pom.xml?rev=290069&r1=290068&r2=290069&view=diff
==============================================================================
--- maven/components/trunk/sandbox/repoclean/pom.xml (original)
+++ maven/components/trunk/sandbox/repoclean/pom.xml Sun Sep 18 23:30:04 2005
@@ -34,6 +34,11 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>2.0-beta-1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-manager</artifactId>
<version>2.0-beta-1</version>
</dependency>
Modified: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java?rev=290069&r1=290068&r2=290069&view=diff
==============================================================================
--- maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java (original)
+++ maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java Sun Sep 18 23:30:04 2005
@@ -18,12 +18,15 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.metadata.ArtifactMetadata;
-import org.apache.maven.artifact.metadata.ReleaseArtifactMetadata;
-import org.apache.maven.artifact.metadata.SnapshotArtifactMetadata;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer;
+import org.apache.maven.project.artifact.ProjectArtifactMetadata;
import org.apache.maven.tools.repoclean.RepositoryCleanerConfiguration;
-import org.apache.maven.tools.repoclean.artifact.metadata.ProjectMetadata;
import org.apache.maven.tools.repoclean.digest.DigestException;
import org.apache.maven.tools.repoclean.digest.DigestVerifier;
import org.apache.maven.tools.repoclean.report.ReportWriteException;
@@ -40,6 +43,7 @@
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -51,7 +55,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.Reader;
import java.io.StringReader;
+import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -208,27 +214,25 @@
Reporter artifactReporter, boolean reportOnly )
throws Exception
{
- // SNAPSHOT metadata
- ArtifactMetadata snapshot = new SnapshotArtifactMetadata( artifact );
+ ArtifactMetadata metadata = new ArtifactRepositoryMetadata( artifact );
- File snapshotSource = new File( sourceBase, sourceRepo.pathOfArtifactMetadata( snapshot ) );
- File snapshotTarget = new File( targetBase, targetRepo.pathOfArtifactMetadata( snapshot ) );
+ File metadataSource = new File( sourceBase, sourceRepo.pathOfRemoteRepositoryMetadata( metadata ) );
+ File metadataTarget = new File( targetBase, targetRepo.pathOfRemoteRepositoryMetadata( metadata ) );
- freshenSupplementalMetadata( snapshotSource, snapshotTarget, transaction, artifactReporter, reportOnly );
+ mergeMetadata( metadataSource, metadataTarget, transaction, artifactReporter, reportOnly );
- // RELEASE metadata
- ArtifactMetadata release = new ReleaseArtifactMetadata( artifact );
+ metadata = new SnapshotArtifactRepositoryMetadata( artifact );
- File releaseSource = new File( sourceBase, sourceRepo.pathOfArtifactMetadata( release ) );
- File releaseTarget = new File( targetBase, targetRepo.pathOfArtifactMetadata( release ) );
+ metadataSource = new File( sourceBase, sourceRepo.pathOfRemoteRepositoryMetadata( metadata ) );
+ metadataTarget = new File( targetBase, targetRepo.pathOfRemoteRepositoryMetadata( metadata ) );
- freshenSupplementalMetadata( releaseSource, releaseTarget, transaction, artifactReporter, reportOnly );
+ mergeMetadata( metadataSource, metadataTarget, transaction, artifactReporter, reportOnly );
// The rest is for POM metadata - translation and bridging of locations in the target repo may be required.
- ArtifactMetadata pom = new ProjectMetadata( artifact );
+ ArtifactMetadata pom = new ProjectArtifactMetadata( artifact, null );
- File sourcePom = new File( sourceBase, sourceRepo.pathOfArtifactMetadata( pom ) );
- File targetPom = new File( targetBase, targetRepo.pathOfArtifactMetadata( pom ).replace( '+', '-' ) );
+ File sourcePom = new File( sourceBase, sourceRepo.pathOfRemoteRepositoryMetadata( pom ) );
+ File targetPom = new File( targetBase, targetRepo.pathOfRemoteRepositoryMetadata( pom ).replace( '+', '-' ) );
String pomContents = null;
@@ -242,7 +246,7 @@
{
shouldRewritePom = false;
- freshenSupplementalMetadata( sourcePom, targetPom, transaction, artifactReporter, reportOnly );
+ copyMetadata( sourcePom, targetPom, transaction, artifactReporter, reportOnly );
}
}
else if ( targetPom.exists() )
@@ -268,7 +272,7 @@
transaction.addFile( targetPom );
bridgedTargetPom = new File( targetBase,
- bridgingLayout.pathOfArtifactMetadata( pom ).replace( '+', '-' ) );
+ bridgingLayout.pathOfRemoteRepositoryMetadata( pom ).replace( '+', '-' ) );
transaction.addFile( bridgedTargetPom );
@@ -322,8 +326,78 @@
}
}
- private void freshenSupplementalMetadata( File source, File target, RewriteTransaction transaction,
- Reporter artifactReporter, boolean reportOnly )
+ private void mergeMetadata( File source, File target, RewriteTransaction transaction, Reporter artifactReporter,
+ boolean reportOnly )
+ throws IOException, DigestException, ReportWriteException, XmlPullParserException
+ {
+ if ( source.exists() )
+ {
+ if ( !target.exists() )
+ {
+ copyMetadata( source, target, transaction, artifactReporter, reportOnly );
+ }
+ else
+ {
+ MetadataXpp3Reader mappingReader = new MetadataXpp3Reader();
+
+ Metadata sourceMetadata = null;
+
+ Reader reader = null;
+
+ try
+ {
+ reader = new FileReader( source );
+
+ sourceMetadata = mappingReader.read( reader );
+ }
+ finally
+ {
+ IOUtil.close( reader );
+ reader = null;
+ }
+
+ Metadata targetMetadata = null;
+
+ try
+ {
+ reader = new FileReader( target );
+
+ targetMetadata = mappingReader.read( reader );
+ }
+ finally
+ {
+ IOUtil.close( reader );
+ }
+
+ boolean changed = false;
+
+ changed |= targetMetadata.merge( sourceMetadata );
+
+ if ( changed )
+ {
+ Writer writer = null;
+ try
+ {
+ target.getParentFile().mkdirs();
+ writer = new FileWriter( target );
+
+ MetadataXpp3Writer mappingWriter = new MetadataXpp3Writer();
+
+ mappingWriter.write( writer, targetMetadata );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+ }
+
+ digestVerifier.verifyDigest( source, target, transaction, artifactReporter, reportOnly );
+ }
+ }
+ }
+
+ private void copyMetadata( File source, File target, RewriteTransaction transaction, Reporter artifactReporter,
+ boolean reportOnly )
throws IOException, DigestException, ReportWriteException
{
if ( source.exists() )
@@ -428,7 +502,7 @@
return false;
}
- freshenSupplementalMetadata( targetPom, bridgedTargetPom, transaction, reporter, reportOnly );
+ copyMetadata( targetPom, bridgedTargetPom, transaction, reporter, reportOnly );
return true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org