Author: epunzalan Date: Tue Dec 13 15:55:33 2005 New Revision: 356653 URL: http://svn.apache.org/viewcvs?rev=356653&view=rev Log: PR: MRM-6 Submitted by: Maria Odea Ching
Validation of artifact physical location against its pom and the pom inside its package Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom (with props) maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt (with props) Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java?rev=356653&r1=356652&r2=356653&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java (original) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java Tue Dec 13 15:55:33 2005 @@ -129,12 +129,12 @@ if ( !repository.getProtocol().equals( "file" ) ) { isLocal = false; - repositoryUrl = repository.getUrl(); + repositoryUrl = repository.getUrl() + "/"; filename = metadata.getRemoteFilename(); } else { - repositoryUrl = repository.getBasedir(); + repositoryUrl = repository.getBasedir() + "/"; filename = metadata.getLocalFilename( repository ); } Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java Tue Dec 13 15:55:33 2005 @@ -0,0 +1,276 @@ +package org.apache.maven.repository.reporting; + +/* + * 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. + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.net.URL; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.model.Model; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.codehaus.plexus.util.FileUtils; + +/** + * Validate the location of the artifact based on the values indicated + * in its pom (both the pom packaged with the artifact & the pom in the + * file system). + */ +public class LocationArtifactReportProcessor + implements ArtifactReportProcessor +{ + private boolean isLocal = true; + + private InputStream is; + + /** + * Check whether the artifact is in its proper location. The location of the artifact + * is validated first against the groupId, artifactId and versionId in the specified model + * object (pom in the file system). Then unpack the artifact (jar file) and get the model (pom) + * included in the package. If a model exists inside the package, then check if the artifact's + * location is valid based on the location specified in the pom. Check if the both the location + * specified in the file system pom and in the pom included in the package is the same. + * + * @param model Represents the pom in the file system. + * @param artifact + * @param reporter + * @param repository + */ + public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter, + ArtifactRepository repository ) + { + boolean fsPomLocation = false, pkgPomLocation = false; + String repositoryUrl = "", modelArtifactLocation = ""; + + if ( !repository.getProtocol().equals( "file" ) ) + { + isLocal = false; + repositoryUrl = repository.getUrl(); + } + else + { + repositoryUrl = repository.getBasedir(); + } + + //check if the artifact is located in its proper location based on the info + //specified in the model object/pom + modelArtifactLocation = repositoryUrl + model.getGroupId() + "/" + model.getArtifactId() + "/" + + model.getVersion() + "/" + model.getArtifactId() + "-" + model.getVersion() + "." + model.getPackaging(); + fsPomLocation = validateArtifactLocation( modelArtifactLocation ); + + //get the location of the artifact itself + String artifactLocation = repositoryUrl + artifact.getGroupId() + "/" + artifact.getArtifactId() + "/" + + artifact.getVersion() + "/" + artifact.getArtifactId() + "-" + artifact.getVersion() + "." + + artifact.getType(); + + //unpack the artifact (using the groupId, artifactId & version specified in the artifact object itself + //check if the pom is included in the package + Model extractedModel = unpackArtifact( artifactLocation, artifact.getGroupId(), artifact.getArtifactId(), + artifact.getVersion() ); + + if ( extractedModel != null ) + { + + String pkgPomArtifactLocation = repositoryUrl + extractedModel.getGroupId() + "/" + + extractedModel.getArtifactId() + "/" + extractedModel.getVersion() + "/" + + extractedModel.getArtifactId() + "-" + extractedModel.getVersion() + "." + + extractedModel.getPackaging(); + pkgPomLocation = validateArtifactLocation( pkgPomArtifactLocation ); + + //check the conditions + if ( fsPomLocation == true && pkgPomLocation == true ) + { + reporter.addSuccess( artifact ); + + } + else if ( fsPomLocation == false && pkgPomLocation == true ) + { + reporter + .addFailure( artifact, + "The artifact is out of place. It does not match the specified location in the file system pom." ); + + } + else if ( fsPomLocation == true && pkgPomLocation == false ) + { + reporter + .addFailure( artifact, + "The artifact is out of place. It does not match the specified location in the packaged pom." ); + + } + else if ( fsPomLocation == false && pkgPomLocation == false ) + { + reporter.addFailure( artifact, "The artifact is out of place." ); + } + + } + else + { + + if ( fsPomLocation ) + { + reporter.addSuccess( artifact ); + + } + else + { + reporter.addFailure( artifact, "The artifact is out of place." ); + } + } + } + + /** + * Validate the if the artifact exists in the specified location. + * + * @param filename + * @return + */ + private boolean validateArtifactLocation( String filename ) + { + try + { + if ( isLocal ) + { + is = new FileInputStream( filename ); + } + else + { + URL url = new URL( filename ); + is = url.openStream(); + } + + is.close(); + } + catch ( Exception e ) + { + return false; + } + return true; + } + + /** + * Extract the contents of the artifact/jar file. + * + * @param filename + * @param groupId + * @param artifactId + * @param version + */ + private Model unpackArtifact( String filename, String groupId, String artifactId, String version ) + { + String basedir = ""; + Model modelObj = null; + + basedir = System.getProperty( "basedir" ); + File f = new File( basedir + "/" + "temp" ); + boolean b = f.mkdirs(); + + try + { + JarFile jar = new JarFile( filename ); + + try + { + //Get the entry and its input stream. + JarEntry entry = jar.getJarEntry( "META-INF/maven/" + groupId + "/" + artifactId + "/pom.xml" ); + + // If the entry is not null, extract it. + if ( entry != null ) + { + InputStream entryStream = jar.getInputStream( entry ); + + try + { + + //Create the output file (clobbering the file if it exists). + FileOutputStream file = new FileOutputStream( basedir + "/temp/pom.xml" ); + + try + { + byte[] buffer = new byte[1024]; + int bytesRead; + + while ( ( bytesRead = entryStream.read( buffer ) ) != -1 ) + { + file.write( buffer, 0, bytesRead ); + } + + } + finally + { + file.close(); + } + InputStream inputStream = new FileInputStream( basedir + "/temp/pom.xml" ); + Reader isReader = new InputStreamReader( inputStream ); + + try + { + MavenXpp3Reader pomReader = new MavenXpp3Reader(); + modelObj = pomReader.read( isReader ); + } + finally + { + isReader.close(); + inputStream.close(); + } + + } + finally + { + entryStream.close(); + } + } + else + { + return modelObj; + } + + } + finally + { + jar.close(); + } + + } + catch ( Exception e ) + { + return modelObj; + + } + finally + { + try + { + FileUtils.deleteDirectory( new File( basedir + "/temp" ) ); + } + catch ( IOException ie ) + { + return modelObj; + } + } + return modelObj; + } + +} Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml?rev=356653&r1=356652&r2=356653&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml (original) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml Tue Dec 13 15:55:33 2005 @@ -19,7 +19,7 @@ </component> <component> <role>org.apache.maven.repository.reporting.ArtifactReportProcessor</role> - <role-hint>default</role-hint> + <role-hint>checksum</role-hint> <implementation>org.apache.maven.repository.reporting.ChecksumArtifactReporter</implementation> <instantiation-strategy>per-lookup</instantiation-strategy> </component> @@ -29,5 +29,11 @@ <implementation>org.apache.maven.repository.reporting.ChecksumArtifactReporter</implementation> <instantiation-strategy>per-lookup</instantiation-strategy> </component> + <component> + <role>org.apache.maven.repository.reporting.ArtifactReportProcessor</role> + <role-hint>artifact-location</role-hint> + <implementation>org.apache.maven.repository.reporting.LocationArtifactReportProcessor</implementation> + <instantiation-strategy>per-lookup</instantiation-strategy> + </component> </components> </component-set> Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java?rev=356653&r1=356652&r2=356653&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java (original) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java Tue Dec 13 15:55:33 2005 @@ -35,6 +35,20 @@ */ protected ArtifactRepository repository; + protected static final String remoteRepoUrl = "http://public.planetmirror.com/pub/maven2/"; + + protected static final String remoteArtifactGroup = "HTTPClient"; + + protected static final String remoteArtifactId = "HTTPClient"; + + protected static final String remoteArtifactVersion = "0.3-3"; + + protected static final String remoteArtifactScope = "compile"; + + protected static final String remoteArtifactType = "jar"; + + protected static final String remoteRepoId = "remote-repo"; + protected void setUp() throws Exception { @@ -45,7 +59,7 @@ ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" ); repository = - factory.createArtifactRepository( "test", repositoryDirectory.toURL().toString(), layout, null, null ); + factory.createArtifactRepository( "repository", repositoryDirectory.toURL().toString(), layout, null, null ); } } Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java?rev=356653&r1=356652&r2=356653&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java (original) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java Tue Dec 13 15:55:33 2005 @@ -45,20 +45,6 @@ private MetadataReportProcessor metadataReportProcessor; - private static final String remoteRepoUrl = "http://public.planetmirror.com/pub/maven2/"; - - private static final String remoteArtifactGroup = "HTTPClient"; - - private static final String remoteArtifactId = "HTTPClient"; - - private static final String remoteArtifactVersion = "0.3-3"; - - private static final String remoteArtifactScope = "compile"; - - private static final String remoteArtifactType = "jar"; - - private static final String remoteRepoId = "remote-repo"; - public ChecksumArtifactReporterTest() { @@ -68,7 +54,7 @@ throws Exception { super.setUp(); - artifactReportProcessor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "default" ); + artifactReportProcessor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "checksum" ); metadataReportProcessor = (MetadataReportProcessor) lookup( MetadataReportProcessor.ROLE, "checksum-metadata" ); } @@ -107,18 +93,10 @@ VersionRange version = VersionRange.createFromVersion( "1.0" ); Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "", handler ); - ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/" - + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() ); artifactReportProcessor.processArtifact( null, artifact, reporter, repository ); - Iterator iter = reporter.getArtifactSuccessIterator(); - int ctr = 0; - while ( iter.hasNext() ) - { - ArtifactResult result = (ArtifactResult) iter.next(); - ctr++; - } - //System.out.println( "ARTIFACT Number of success --- " + ctr ); + assertTrue( reporter.getSuccesses() == 2 ); + //System.out.println( "1 - SUCCESS ---> " + reporter.getSuccesses() ); } catch ( Exception e ) @@ -139,20 +117,10 @@ VersionRange version = VersionRange.createFromVersion( "1.0" ); Artifact artifact = new DefaultArtifact( "checksumTest", "invalidArtifact", version, "compile", "jar", "", handler ); - ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/" - + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() ); artifactReportProcessor.processArtifact( null, artifact, reporter, repository ); - - Iterator iter = reporter.getArtifactFailureIterator(); - int ctr = 0; - while ( iter.hasNext() ) - { - ArtifactResult result = (ArtifactResult) iter.next(); - ctr++; - } - //System.out.println( "ARTIFACT Number of failures --- " + ctr ); - + assertTrue( reporter.getFailures() == 2 ); + //System.out.println( "2 - FAILURES ---> " + reporter.getFailures() ); } catch ( Exception e ) { @@ -170,34 +138,26 @@ try { ArtifactHandler handler = new DefaultArtifactHandler( "jar" ); - ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/" - + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() ); VersionRange version = VersionRange.createFromVersion( "1.0" ); Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "", handler ); - //Version level metadata + //Version level metadata RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact ); - metadataReportProcessor.processMetadata( metadata, repository, reporter ); - - //Artifact level metadata + metadataReportProcessor.processMetadata( metadata, repository, reporter ); + + //Artifact level metadata metadata = new ArtifactRepositoryMetadata( artifact ); metadataReportProcessor.processMetadata( metadata, repository, reporter ); - - - //Group level metadata - metadata = new GroupRepositoryMetadata( "checksumTest" ); + //Group level metadata + metadata = new GroupRepositoryMetadata( "checksumTest" ); metadataReportProcessor.processMetadata( metadata, repository, reporter ); + Iterator iter = reporter.getRepositoryMetadataSuccessIterator(); - int ctr = 0; - while ( iter.hasNext() ) - { - RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next(); - ctr++; - } - //System.out.println( "METADATA Number of success --- " + ctr ); - + //System.out.println( "3 - META SUCCESS ---> " + iter.hasNext() ); + assertTrue( "check if there is a success", iter.hasNext() ); + } catch ( Exception e ) { @@ -215,8 +175,6 @@ try { ArtifactHandler handler = new DefaultArtifactHandler( "jar" ); - ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/" - + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() ); VersionRange version = VersionRange.createFromVersion( "1.0" ); Artifact artifact = new DefaultArtifact( "checksumTest", "invalidArtifact", version, "compile", "jar", "", handler ); @@ -224,14 +182,11 @@ RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact ); metadataReportProcessor.processMetadata( metadata, repository, reporter ); + //System.out.println("reporter.getFailures() ---> " + reporter.getFailures()); + Iterator iter = reporter.getRepositoryMetadataFailureIterator(); - int ctr = 0; - while ( iter.hasNext() ) - { - RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next(); - ctr++; - } - //System.out.println( "METADATA Number of failures --- " + ctr ); + //System.out.println( "4 - META FAILURE ---> " + iter.hasNext() ); + assertTrue( "check if there is a failure", iter.hasNext() ); } catch ( Exception e ) @@ -253,14 +208,12 @@ new DefaultRepositoryLayout() ); artifactReportProcessor.processArtifact( null, artifact, reporter, repository ); - Iterator iter = reporter.getArtifactSuccessIterator(); - int ctr = 0; - while ( iter.hasNext() ) - { - ArtifactResult result = (ArtifactResult) iter.next(); - ctr++; - } - //System.out.println( "[REMOTE] ARTIFACT Number of success --- " + ctr ); + if ( reporter.getFailures() == 2 ) + assertTrue( reporter.getFailures() == 2 ); + + if ( reporter.getSuccesses() == 2 ) + assertTrue( reporter.getSuccesses() == 2 ); + } /** @@ -277,19 +230,18 @@ remoteArtifactScope, remoteArtifactType, "", handler ); ArtifactRepository repository = new DefaultArtifactRepository( remoteRepoId, remoteRepoUrl, new DefaultRepositoryLayout() ); - + RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact ); metadataReportProcessor.processMetadata( metadata, repository, reporter ); Iterator iter = reporter.getRepositoryMetadataFailureIterator(); - int ctr = 0; - while ( iter.hasNext() ) - { - RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next(); - ctr++; - } - //System.out.println( "[REMOTE] METADATA in version directory, Number of sucess --- " + ctr ); - + if ( iter.hasNext() ) + assertTrue( "check if there is a failure", iter.hasNext() ); + + iter = reporter.getRepositoryMetadataSuccessIterator(); + if ( iter.hasNext() ) + assertTrue( "check if there is a success", iter.hasNext() ); + } catch ( Exception e ) { @@ -302,63 +254,50 @@ */ public void testDeleteChecksumFiles() { - //System.out.println("TESTDELETE CHECKSUM FILES....." + deleteChecksumFiles("jar")); - - assertTrue( deleteChecksumFiles("jar")); + assertTrue( deleteChecksumFiles( "jar" ) ); } - + /** * Test deletion of the test directories created. */ public void testDeleteTestDirectory() - { + { assertTrue( deleteTestDirectory( new File( repository.getBasedir() + "checksumTest" ) ) ); } /** * Test the conditional when the checksum files of the artifact & metadata do not exist. */ - public void testChecksumFilesDoNotExist(){ - createChecksumFile("VALID"); - createMetadataFile("VALID"); - boolean b = deleteChecksumFiles("jar"); - + public void testChecksumFilesDoNotExist() + { + createChecksumFile( "VALID" ); + createMetadataFile( "VALID" ); + boolean b = deleteChecksumFiles( "jar" ); + try { ArtifactHandler handler = new DefaultArtifactHandler( "jar" ); VersionRange version = VersionRange.createFromVersion( "1.0" ); Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "", handler ); - ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/" - + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() ); artifactReportProcessor.processArtifact( null, artifact, reporter, repository ); - Iterator iter = reporter.getArtifactFailureIterator(); - int ctr = 0; - while ( iter.hasNext() ) - { - ArtifactResult result = (ArtifactResult) iter.next(); - ctr++; - } - //System.out.println( "[FILE DOES NOT EXIST] ARTIFACT Number of failures --- " + ctr ); - + //System.out.println( "5 - ART FAILURE ---> " + reporter.getFailures() ); + assertTrue( reporter.getFailures() == 2 ); + RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact ); metadataReportProcessor.processMetadata( metadata, repository, reporter ); - iter = reporter.getRepositoryMetadataFailureIterator(); - ctr = 0; - while ( iter.hasNext() ) - { - RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next(); - ctr++; - } - //System.out.println( "[FILE DOES NOT EXIST] METADATA Number of failures --- " + ctr ); + Iterator iter = reporter.getRepositoryMetadataFailureIterator(); + //System.out.println( "5 - META FAILURE ---> " + iter.hasNext() ); + assertTrue( "check if there is a failure", iter.hasNext() ); + } catch ( Exception e ) { e.printStackTrace(); - } - + } + b = deleteTestDirectory( new File( repository.getBasedir() + "checksumTest" ) ); } } Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom?rev=356653&r1=356652&r2=356653&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom (original) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom Tue Dec 13 15:55:33 2005 @@ -0,0 +1,6 @@ +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>groupId</groupId> + <artifactId>artifactId</artifactId> + <version>1.0-alpha-1</version> +</project> Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom?rev=356653&r1=356652&r2=356653&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom (original) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom Tue Dec 13 15:55:33 2005 @@ -0,0 +1,6 @@ +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>groupId</groupId> + <artifactId>artifactId</artifactId> + <version>1.0-alpha-2</version> +</project> Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom Tue Dec 13 15:55:33 2005 @@ -0,0 +1,31 @@ +<project> + <parent> + <artifactId>maven</artifactId> + <groupId>org.apache.maven</groupId> + <version>2.1</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>maven-archiver</artifactId> + <name>Maven Archiver</name> + <version>2.1</version> + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-archiver</artifactId> + <version>1.0-alpha-3</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>2.0</version> + </dependency> + </dependencies> + <distributionManagement> + <status>deployed</status> + </distributionManagement> +</project> Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt Tue Dec 13 15:55:33 2005 @@ -0,0 +1,4 @@ +- The artifact location does not match the location specified in the file system, but + matches the location specified in the pom included in the package. +- The groupId, artifactId and version of the pom in the file system does not match + the groupId, artifactId and version of the pom included in the package. Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom Tue Dec 13 15:55:33 2005 @@ -0,0 +1,86 @@ +<project> + <parent> + <artifactId>maven</artifactId> + <groupId>org.apache.maven</groupId> + <version>2.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + <name>Maven Model</name> + <version>2.0</version> + <description>Maven Model</description> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>xpp3-writer</goal> + <goal>java</goal> + <goal>xpp3-reader</goal> + <goal>xsd</goal> + </goals> + </execution> + </executions> + <configuration> + <version>4.0.0</version> + <model>maven.mdo</model> + </configuration> + </plugin> + </plugins> + </build> + <profiles> + <profile> + <id>all-models</id> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <executions> + <execution> + <id>v3</id> + <goals> + <goal>xpp3-writer</goal> + <goal>java</goal> + <goal>xpp3-reader</goal> + <goal>xsd</goal> + </goals> + <configuration> + <version>3.0.0</version> + <packageWithVersion>true</packageWithVersion> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + <configuration> + <classifier>all</classifier> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + </dependencies> + <distributionManagement> + <status>deployed</status> + </distributionManagement> +</project> Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt Tue Dec 13 15:55:33 2005 @@ -0,0 +1,3 @@ +- The artifact is located in the proper location. +- The groupId, artifactId and version of the pom in the file system matches + the groupId, artifactId and version of the pom included in the package. Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom Tue Dec 13 15:55:33 2005 @@ -0,0 +1,15 @@ +<project> + <parent> + <artifactId>maven</artifactId> + <groupId>org.apache.maven</groupId> + <version>2.1</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven</groupId> + <artifactId>maven-monitor</artifactId> + <name>Maven Monitor</name> + <version>2.1</version> + <distributionManagement> + <status>deployed</status> + </distributionManagement> +</project> Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt Tue Dec 13 15:55:33 2005 @@ -0,0 +1,4 @@ +- The artifact location matches the location specified in the file system, but + does not match the location specified in the pom included in the package. +- The groupId, artifactId and version of the pom in the file system does not match + the groupId, artifactId and version of the pom included in the package. Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom Tue Dec 13 15:55:33 2005 @@ -0,0 +1,52 @@ +<project> + <parent> + <artifactId>maven</artifactId> + <groupId>org.apache.maven</groupId> + <version>2.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>maven-project</artifactId> + <name>Maven Project Builder</name> + <version>2.0</version> + <description>This library is used to not only read Maven project object model files, but to assemble inheritence + and to retrieve remote models as required.</description> + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-test</artifactId> + <version>2.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-profile</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + </dependencies> + <distributionManagement> + <status>deployed</status> + </distributionManagement> +</project> Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt?rev=356653&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt (added) +++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt Tue Dec 13 15:55:33 2005 @@ -0,0 +1,4 @@ +- The artifact location does not match both the location specified in the file system pom + and in the pom included in the package. +- The groupId, artifactId and version of the pom in the file system does not match + the groupId, artifactId and version of the pom included in the package. Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision"