Author: carlos
Date: Fri Dec 22 07:56:26 2006
New Revision: 489678
URL: http://svn.apache.org/viewvc?view=rev&rev=489678
Log:
[MRM-262] Reporting adds duplicated entries on each run
Added:
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ReportingDatabaseTest.java
(with props)
Modified:
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ReportingDatabase.java
maven/archiva/trunk/archiva-reports-standard/src/main/mdo/reporting.mdo
Modified:
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ReportingDatabase.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ReportingDatabase.java?view=diff&rev=489678&r1=489677&r2=489678
==============================================================================
---
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ReportingDatabase.java
(original)
+++
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/database/ReportingDatabase.java
Fri Dec 22 07:56:26 2006
@@ -92,8 +92,12 @@
public void addFailure( Artifact artifact, String processor, String
problem, String reason )
{
ArtifactResults results = getArtifactResults( artifact );
- results.addFailure( createResult( processor, problem, reason ) );
- numFailures++;
+ Result result = createResult( processor, problem, reason );
+ if ( !results.getFailures().contains( result ) )
+ {
+ results.addFailure( result );
+ numFailures++;
+ }
updateTimings();
if ( filteredDatabases.containsKey( problem ) )
@@ -107,8 +111,12 @@
public void addNotice( Artifact artifact, String processor, String
problem, String reason )
{
ArtifactResults results = getArtifactResults( artifact );
- results.addNotice( createResult( processor, problem, reason ) );
- numNotices++;
+ Result result = createResult( processor, problem, reason );
+ if ( !results.getNotices().contains( result ) )
+ {
+ results.addNotice( result );
+ numNotices++;
+ }
updateTimings();
if ( filteredDatabases.containsKey( problem ) )
@@ -122,8 +130,12 @@
public void addWarning( Artifact artifact, String processor, String
problem, String reason )
{
ArtifactResults results = getArtifactResults( artifact );
- results.addWarning( createResult( processor, problem, reason ) );
- numWarnings++;
+ Result result = createResult( processor, problem, reason );
+ if ( !results.getWarnings().contains( result ) )
+ {
+ results.addWarning( result );
+ numWarnings++;
+ }
updateTimings();
if ( filteredDatabases.containsKey( problem ) )
@@ -134,7 +146,7 @@
}
}
- private ArtifactResults getArtifactResults( Artifact artifact )
+ ArtifactResults getArtifactResults( Artifact artifact )
{
return getArtifactResults( artifact.getGroupId(),
artifact.getArtifactId(), artifact.getVersion(),
artifact.getType(),
artifact.getClassifier() );
@@ -203,8 +215,12 @@
{
metadataWithProblems.add( results );
}
- results.addFailure( createResult( processor, problem, reason ) );
- numFailures++;
+ Result result = createResult( processor, problem, reason );
+ if ( !results.getFailures().contains( result ) )
+ {
+ results.addFailure( result );
+ numFailures++;
+ }
updateTimings();
if ( filteredDatabases.containsKey( problem ) )
@@ -222,8 +238,12 @@
{
metadataWithProblems.add( results );
}
- results.addWarning( createResult( processor, problem, reason ) );
- numWarnings++;
+ Result result = createResult( processor, problem, reason );
+ if ( !results.getWarnings().contains( result ) )
+ {
+ results.addWarning( result );
+ numWarnings++;
+ }
updateTimings();
if ( filteredDatabases.containsKey( problem ) )
@@ -241,8 +261,12 @@
{
metadataWithProblems.add( results );
}
- results.addNotice( createResult( processor, problem, reason ) );
- numNotices++;
+ Result result = createResult( processor, problem, reason );
+ if ( !results.getNotices().contains( result ) )
+ {
+ results.addNotice( result );
+ numNotices++;
+ }
updateTimings();
if ( filteredDatabases.containsKey( problem ) )
@@ -346,7 +370,7 @@
metadataWithProblems.remove( results );
}
- private MetadataResults getMetadataResults( RepositoryMetadata metadata,
long lastModified )
+ MetadataResults getMetadataResults( RepositoryMetadata metadata, long
lastModified )
{
return getMetadataResults( metadata.getGroupId(),
metadata.getArtifactId(), metadata.getBaseVersion(),
lastModified );
Modified:
maven/archiva/trunk/archiva-reports-standard/src/main/mdo/reporting.mdo
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/src/main/mdo/reporting.mdo?view=diff&rev=489678&r1=489677&r2=489678
==============================================================================
--- maven/archiva/trunk/archiva-reports-standard/src/main/mdo/reporting.mdo
(original)
+++ maven/archiva/trunk/archiva-reports-standard/src/main/mdo/reporting.mdo Fri
Dec 22 07:56:26 2006
@@ -238,6 +238,41 @@
</description>
</field>
</fields>
+
+ <codeSegments>
+ <codeSegment>
+ <version>1.0.0</version>
+ <code><![CDATA[
+ public boolean equals( Object obj )
+ {
+ if ( obj instanceof Result )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+ Result rhs = (Result) obj;
+ return new org.apache.commons.lang.builder.EqualsBuilder()
+ .append( problem, rhs.problem )
+ .append( processor, rhs.processor )
+ .append( reason, rhs.reason )
+ .isEquals();
+ }
+ return false;
+ }
+
+ public int hashCode()
+ {
+ return new org.apache.commons.lang.builder.HashCodeBuilder(
19, 43 )
+ .append( getReason() )
+ .append( getProcessor() )
+ .append( getProblem() )
+ .toHashCode();
+ }
+ ]]></code>
+ </codeSegment>
+ </codeSegments>
+
</class>
</classes>
</model>
Added:
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ReportingDatabaseTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ReportingDatabaseTest.java?view=auto&rev=489678
==============================================================================
---
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ReportingDatabaseTest.java
(added)
+++
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ReportingDatabaseTest.java
Fri Dec 22 07:56:26 2006
@@ -0,0 +1,146 @@
+package org.apache.maven.archiva.reporting.database;
+
+/*
+ * Copyright 2006 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 junit.framework.TestCase;
+
+import org.apache.maven.archiva.reporting.model.ArtifactResults;
+import org.apache.maven.archiva.reporting.model.MetadataResults;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import
org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
+import org.apache.maven.artifact.versioning.VersionRange;
+
+/**
+ * Test for [EMAIL PROTECTED] ReportingDatabase}.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Carlos Sanchez</a>
+ * @version $Id$
+ */
+public class ReportingDatabaseTest
+ extends TestCase
+{
+ private Artifact artifact;
+ private String processor, problem, reason;
+ private ReportingDatabase reportingDatabase;
+ private RepositoryMetadata metadata;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ artifact = new DefaultArtifact( "group", "artifact",
VersionRange.createFromVersion( "1.0" ), "scope", "type",
+ "classifier", null );
+ processor = "processor";
+ problem = "problem";
+ reason = "reason";
+ reportingDatabase = new ReportingDatabase( null );
+
+ metadata = new ArtifactRepositoryMetadata( artifact );
+ }
+
+ public void testAddNoticeArtifactStringStringString()
+ {
+ reportingDatabase.addNotice( artifact, processor, problem, reason );
+ ArtifactResults artifactResults =
reportingDatabase.getArtifactResults( artifact );
+
+ assertEquals( 1, reportingDatabase.getNumNotices() );
+ assertEquals( 1, artifactResults.getNotices().size() );
+
+ reportingDatabase.addNotice( artifact, processor, problem, reason );
+ artifactResults = reportingDatabase.getArtifactResults( artifact );
+
+ assertEquals( 1, reportingDatabase.getNumNotices() );
+ assertEquals( 1, artifactResults.getNotices().size() );
+ }
+
+ public void testAddWarningArtifactStringStringString()
+ {
+ reportingDatabase.addWarning( artifact, processor, problem, reason );
+ ArtifactResults artifactResults =
reportingDatabase.getArtifactResults( artifact );
+
+ assertEquals( 1, reportingDatabase.getNumWarnings() );
+ assertEquals( 1, artifactResults.getWarnings().size() );
+
+ reportingDatabase.addWarning( artifact, processor, problem, reason );
+ artifactResults = reportingDatabase.getArtifactResults( artifact );
+
+ assertEquals( 1, reportingDatabase.getNumWarnings() );
+ assertEquals( 1, artifactResults.getWarnings().size() );
+ }
+
+ public void testAddFailureArtifactStringStringString()
+ {
+ reportingDatabase.addFailure( artifact, processor, problem, reason );
+ ArtifactResults artifactResults =
reportingDatabase.getArtifactResults( artifact );
+
+ assertEquals( 1, reportingDatabase.getNumFailures() );
+ assertEquals( 1, artifactResults.getFailures().size() );
+
+ reportingDatabase.addFailure( artifact, processor, problem, reason );
+ artifactResults = reportingDatabase.getArtifactResults( artifact );
+
+ assertEquals( 1, reportingDatabase.getNumFailures() );
+ assertEquals( 1, artifactResults.getFailures().size() );
+ }
+
+ public void testAddNoticeRepositoryMetadataStringStringString()
+ {
+ reportingDatabase.addNotice( metadata, processor, problem, reason );
+ MetadataResults metadataResults =
reportingDatabase.getMetadataResults( metadata, System.currentTimeMillis() );
+
+ assertEquals( 1, reportingDatabase.getNumNotices() );
+ assertEquals( 1, metadataResults.getNotices().size() );
+
+ reportingDatabase.addNotice( metadata, processor, problem, reason );
+ metadataResults = reportingDatabase.getMetadataResults( metadata,
System.currentTimeMillis() );
+
+ assertEquals( 1, reportingDatabase.getNumNotices() );
+ assertEquals( 1, metadataResults.getNotices().size() );
+ }
+
+ public void testAddWarningRepositoryMetadataStringStringString()
+ {
+ reportingDatabase.addWarning( metadata, processor, problem, reason );
+ MetadataResults metadataResults =
reportingDatabase.getMetadataResults( metadata, System.currentTimeMillis() );
+
+ assertEquals( 1, reportingDatabase.getNumWarnings() );
+ assertEquals( 1, metadataResults.getWarnings().size() );
+
+ reportingDatabase.addWarning( metadata, processor, problem, reason );
+ metadataResults = reportingDatabase.getMetadataResults( metadata,
System.currentTimeMillis() );
+
+ assertEquals( 1, reportingDatabase.getNumWarnings() );
+ assertEquals( 1, metadataResults.getWarnings().size() );
+ }
+
+ public void testAddFailureRepositoryMetadataStringStringString()
+ {
+ reportingDatabase.addFailure( metadata, processor, problem, reason );
+ MetadataResults metadataResults =
reportingDatabase.getMetadataResults( metadata, System.currentTimeMillis() );
+
+ assertEquals( 1, reportingDatabase.getNumFailures() );
+ assertEquals( 1, metadataResults.getFailures().size() );
+
+ reportingDatabase.addFailure( metadata, processor, problem, reason );
+ metadataResults = reportingDatabase.getMetadataResults( metadata,
System.currentTimeMillis() );
+
+ assertEquals( 1, reportingDatabase.getNumFailures() );
+ assertEquals( 1, metadataResults.getFailures().size() );
+ }
+}
Propchange:
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ReportingDatabaseTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/database/ReportingDatabaseTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"