jdcasey 2005/04/20 16:39:30 Modified: sandbox/repoclean/src/main/resources/META-INF/plexus components.xml sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean RepositoryCleaner.java Added: sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/artifact/layout AlphaBridgingRepositoryLayout.java Log: o Fixed, pending changes to DefaultRepositoryLayout as outlined in MNG-321 PR: MNG-332 Revision Changes Path 1.1 maven-components/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/artifact/layout/AlphaBridgingRepositoryLayout.java Index: AlphaBridgingRepositoryLayout.java =================================================================== package org.apache.maven.tools.repoclean.artifact.layout; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.artifact.repository.layout.ArtifactPathFormatException; import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout; /* * Copyright 2001-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class AlphaBridgingRepositoryLayout extends DefaultRepositoryLayout { public String pathOfMetadata( ArtifactMetadata metadata ) throws ArtifactPathFormatException { Artifact artifact = metadata.getArtifact(); StringBuffer path = new StringBuffer(); path.append( artifact.getGroupId().replace( '.', '/' ) ).append( '/' ); path.append( artifact.getArtifactId() ).append( '/' ); path.append( artifact.getBaseVersion() ).append( '/' ); path.append( metadata.getFilename() ); return path.toString(); } } 1.8 +15 -0 maven-components/sandbox/repoclean/src/main/resources/META-INF/plexus/components.xml Index: components.xml =================================================================== RCS file: /home/cvs/maven-components/sandbox/repoclean/src/main/resources/META-INF/plexus/components.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- components.xml 7 Apr 2005 21:26:21 -0000 1.7 +++ components.xml 20 Apr 2005 23:39:30 -0000 1.8 @@ -1,5 +1,15 @@ <component-set> <components> + <component> + <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role> + <role-hint>alpha-bridging</role-hint> + <implementation>org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout</implementation> + <requirements> + <requirement> + <role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role> + </requirement> + </requirements> + </component> <!-- | | @@ -100,6 +110,11 @@ <implementation>org.apache.maven.tools.repoclean.RepositoryCleaner</implementation> <requirements> <requirement> + <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role> + <role-hint>alpha-bridging</role-hint> + <field-name>bridgingLayout</field-name> + </requirement> + <requirement> <role>org.apache.maven.tools.repoclean.digest.ArtifactDigestVerifier</role> </requirement> <requirement> 1.15 +33 -1 maven-components/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java Index: RepositoryCleaner.java =================================================================== RCS file: /home/cvs/maven-components/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- RepositoryCleaner.java 20 Apr 2005 21:51:25 -0000 1.14 +++ RepositoryCleaner.java 20 Apr 2005 23:39:30 -0000 1.15 @@ -25,6 +25,8 @@ import org.apache.maven.tools.repoclean.discover.ArtifactDiscoverer; import org.apache.maven.tools.repoclean.index.ArtifactIndexer; import org.apache.maven.tools.repoclean.report.FileReporter; +import org.apache.maven.tools.repoclean.report.ReportWriteException; +import org.apache.maven.tools.repoclean.report.Reporter; import org.apache.maven.tools.repoclean.rewrite.ArtifactPomRewriter; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; @@ -62,6 +64,8 @@ private ArtifactDigestVerifier artifactDigestVerifier; + private ArtifactRepositoryLayout bridgingLayout; + private MailSender mailSender; private ArtifactIndexer artifactIndexer; @@ -241,7 +245,7 @@ Logger logger = getLogger(); ArtifactPomRewriter artifactPomRewriter = null; - + try { logger.info( "Rewriting up to " + artifacts.size() + " artifacts (Should be " + ( artifacts.size() * 2 ) @@ -337,11 +341,15 @@ File sourcePom = new File( sourceRepositoryBase, sourceRepo.pathOfMetadata( pom ) ); File targetPom = new File( targetRepositoryBase, targetRepo.pathOfMetadata( pom ) ); + + File bridgedTargetPom = new File( targetRepositoryBase, bridgingLayout.pathOfMetadata( pom ) ); try { artifactPomRewriter.rewrite( artifact, sourcePom, targetPom, artifactReporter, configuration.reportOnly() ); + + bridgePomLocations( targetPom, bridgedTargetPom, artifactReporter ); } catch ( Exception e ) { @@ -393,6 +401,30 @@ } } + private void bridgePomLocations( File targetPom, File bridgedTargetPom, Reporter reporter ) throws IOException, ReportWriteException + { + if(targetPom.equals(bridgedTargetPom)) + { + reporter.warn("Cannot create legacy-compatible copy of POM at: " + targetPom + "; legacy-compatible path is the same as the converted POM itself."); + } + + FileInputStream in = null; + FileOutputStream out = null; + + try + { + in = new FileInputStream(targetPom); + out = new FileOutputStream(bridgedTargetPom); + + IOUtil.copy(in, out); + } + finally + { + IOUtil.close(in); + IOUtil.close(out); + } + } + private String buildArtifactReportPath( Artifact artifact ) { String classifier = artifact.getClassifier();
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]