You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2009/12/16 00:07:39 UTC
svn commit: r891064 [2/2] - in /archiva/branches/MRM-1025: ./
archiva-modules/
archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/
archiva-modules/archiva-base/archiva-model/src/...
Modified: archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java?rev=891064&r1=891063&r2=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java Tue Dec 15 23:07:36 2009
@@ -53,7 +53,7 @@
private static final String TEST_FACET_ID = "test-facet-id";
- private static final String TEST_NAME = "test-name";
+ private static final String TEST_NAME = "test/name";
private static final String TEST_VALUE = "test-value";
@@ -125,7 +125,7 @@
public void testGetMetadataFacet()
{
- repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) );
+ repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new TestMetadataFacet( TEST_VALUE ) );
assertEquals( new TestMetadataFacet( TEST_VALUE ),
repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
@@ -138,14 +138,14 @@
public void testGetMetadataFacetWhenUnknownName()
{
- repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) );
+ repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new TestMetadataFacet( TEST_VALUE ) );
assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, UNKNOWN ) );
}
public void testGetMetadataFacetWhenDefaultValue()
{
- repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( null ) );
+ repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new TestMetadataFacet( null ) );
assertEquals( new TestMetadataFacet( "test-metadata" ),
repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
@@ -153,14 +153,14 @@
public void testGetMetadataFacetWhenUnknownFacetId()
{
- repository.addMetadataFacet( TEST_REPO_ID, UNKNOWN, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) );
+ repository.addMetadataFacet( TEST_REPO_ID, UNKNOWN, new TestMetadataFacet( TEST_VALUE ) );
assertNull( repository.getMetadataFacet( TEST_REPO_ID, UNKNOWN, TEST_NAME ) );
}
public void testGetMetadataFacets()
{
- repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) );
+ repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new TestMetadataFacet( TEST_VALUE ) );
assertEquals( Collections.singletonList( TEST_NAME ),
repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ) );
@@ -174,8 +174,10 @@
public void testRemoveFacets()
{
+ repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new TestMetadataFacet( TEST_VALUE ) );
+
List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
- assertTrue( facets.isEmpty() );
+ assertFalse( facets.isEmpty() );
repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
@@ -185,10 +187,8 @@
public void testRemoveFacetsWhenEmpty()
{
- repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) );
-
List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
- assertFalse( facets.isEmpty() );
+ assertTrue( facets.isEmpty() );
repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
@@ -201,6 +201,40 @@
repository.removeMetadataFacets( TEST_REPO_ID, UNKNOWN );
}
+ public void testRemoveFacet()
+ {
+ TestMetadataFacet metadataFacet = new TestMetadataFacet( TEST_VALUE );
+ repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, metadataFacet );
+
+ assertEquals( metadataFacet, repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
+ List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
+ assertFalse( facets.isEmpty() );
+
+ repository.removeMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME );
+
+ assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
+ facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
+ assertTrue( facets.isEmpty() );
+ }
+
+ public void testRemoveFacetWhenEmpty()
+ {
+ List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
+ assertTrue( facets.isEmpty() );
+ assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
+
+ repository.removeMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME );
+
+ facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID );
+ assertTrue( facets.isEmpty() );
+ assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
+ }
+
+ public void testRemoveFacetWhenUnknown()
+ {
+ repository.removeMetadataFacet( TEST_REPO_ID, UNKNOWN, TEST_NAME );
+ }
+
public void testGetArtifacts()
{
ArtifactMetadata artifact1 = createArtifact();
@@ -246,8 +280,8 @@
public void testRepositories()
{
- repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) );
- repository.addMetadataFacet( OTHER_REPO, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) );
+ repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new TestMetadataFacet( TEST_VALUE ) );
+ repository.addMetadataFacet( OTHER_REPO, TEST_FACET_ID, new TestMetadataFacet( TEST_VALUE ) );
assertEquals( Arrays.asList( OTHER_REPO, TEST_REPO_ID ), repository.getRepositories() );
}
@@ -452,6 +486,11 @@
return TEST_FACET_ID;
}
+ public String getName()
+ {
+ return TEST_NAME;
+ }
+
public Map<String, String> toProperties()
{
if ( value != null )
Modified: archiva/branches/MRM-1025/archiva-modules/plugins/pom.xml
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/pom.xml?rev=891064&r1=891063&r2=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/pom.xml (original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/pom.xml Tue Dec 15 23:07:36 2009
@@ -30,5 +30,6 @@
<module>metadata-repository-file</module>
<module>maven2-repository</module>
<module>repository-statistics</module>
+ <module>problem-reports</module>
</modules>
</project>
\ No newline at end of file
Propchange: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Dec 15 23:07:36 2009
@@ -0,0 +1,2 @@
+target
+*.iml
Added: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/pom.xml
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/pom.xml?rev=891064&view=auto
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/pom.xml (added)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/pom.xml Tue Dec 15 23:07:36 2009
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+-->
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>plugins</artifactId>
+ <groupId>org.apache.archiva</groupId>
+ <version>1.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>problem-reports</artifactId>
+ <name>Archiva Problem Reporting Plugin</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>metadata-repository-api</artifactId>
+ </dependency>
+ <!-- TODO: we want to move the event handling, or perhaps centralise under deleteArtifact() in the metadata repository itself -->
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-checksum</artifactId>
+ </dependency>
+ </dependencies>
+</project>
Copied: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java (from r889234, archiva/branches/MRM-1025/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java)
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java?p2=archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java&p1=archiva/branches/MRM-1025/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java&r1=889234&r2=891064&rev=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java Tue Dec 15 23:07:36 2009
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.database;
+package org.apache.archiva.reports;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -9,7 +9,7 @@
* "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
+ * 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
@@ -19,64 +19,30 @@
* under the License.
*/
-import java.util.List;
-
-import org.apache.maven.archiva.database.constraints.RepositoryProblemByArtifactConstraint;
+import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.RepositoryProblem;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
import org.apache.maven.archiva.repository.events.RepositoryListener;
/**
* Process repository management events and respond appropriately.
*
- * @plexus.component role="org.apache.maven.archiva.repository.events.RepositoryListener" role-hint="database"
+ * @plexus.component role="org.apache.maven.archiva.repository.events.RepositoryListener" role-hint="problem-reports"
*/
-public class RepositoryDatabaseEventListener
+public class RepositoryProblemEventListener
implements RepositoryListener
{
/**
- * @plexus.requirement role-hint="jdo"
+ * @plexus.requirement
*/
- private ArtifactDAO artifactDAO;
-
- /**
- * @plexus.requirement role-hint="jdo"
- */
- private RepositoryProblemDAO repositoryProblemDAO;
+ private MetadataRepository metadataRepository;
public void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact )
{
- try
- {
- ArchivaArtifact queriedArtifact =
- artifactDAO.getArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(),
- artifact.getClassifier(), artifact.getType(), repository.getId() );
- artifactDAO.deleteArtifact( queriedArtifact );
- }
- catch ( ArchivaDatabaseException e )
- {
- // ignored
- }
-
- try
- {
- // Remove all repository problems related to this artifact
- Constraint artifactConstraint = new RepositoryProblemByArtifactConstraint( artifact );
- List<RepositoryProblem> repositoryProblems =
- repositoryProblemDAO.queryRepositoryProblems( artifactConstraint );
+ String name =
+ RepositoryProblemFacet.createName( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(),
+ repository.toFile( artifact ).getName() );
- if ( repositoryProblems != null )
- {
- for ( RepositoryProblem repositoryProblem : repositoryProblems )
- {
- repositoryProblemDAO.deleteRepositoryProblem( repositoryProblem );
- }
- }
- }
- catch ( ArchivaDatabaseException e )
- {
- // ignored
- }
+ metadataRepository.removeMetadataFacet( repository.getId(), RepositoryProblemFacet.FACET_ID, name );
}
-}
+}
\ No newline at end of file
Added: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java?rev=891064&view=auto
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java (added)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java Tue Dec 15 23:07:36 2009
@@ -0,0 +1,154 @@
+package org.apache.archiva.reports;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.util.HashMap;
+import java.util.Map;
+
+import org.apache.archiva.metadata.model.MetadataFacet;
+
+public class RepositoryProblemFacet
+ implements MetadataFacet
+{
+ public static final String FACET_ID = "org.apache.archiva.reports";
+
+ private String repositoryId;
+
+ private String namespace;
+
+ private String project;
+
+ private String version;
+
+ private String id;
+
+ private String message;
+
+ private String problem;
+
+ public String getFacetId()
+ {
+ return FACET_ID;
+ }
+
+ public String getName()
+ {
+ return createName( namespace, project, version, id );
+ }
+
+ public Map<String, String> toProperties()
+ {
+ Map<String, String> map = new HashMap<String, String>();
+ map.put( "repositoryId", repositoryId );
+ map.put( "namespace", namespace );
+ map.put( "project", project );
+ map.put( "version", version );
+ map.put( "id", id );
+ map.put( "message", message );
+ map.put( "problem", problem );
+ return map;
+ }
+
+ public void fromProperties( Map<String, String> properties )
+ {
+ repositoryId = properties.get( "repositoryId" );
+ namespace = properties.get( "namespace" );
+ project = properties.get( "project" );
+ version = properties.get( "version" );
+ id = properties.get( "id" );
+ message = properties.get( "message" );
+ problem = properties.get( "problem" );
+ }
+
+ public void setRepositoryId( String repositoryId )
+ {
+ this.repositoryId = repositoryId;
+ }
+
+ public void setNamespace( String namespace )
+ {
+ this.namespace = namespace;
+ }
+
+ public String getRepositoryId()
+ {
+ return repositoryId;
+ }
+
+ public String getNamespace()
+ {
+ return namespace;
+ }
+
+ public void setProject( String project )
+ {
+ this.project = project;
+ }
+
+ public String getProject()
+ {
+ return project;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setId( String id )
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setMessage( String message )
+ {
+ this.message = message;
+ }
+
+ public String getMessage()
+ {
+ return message;
+ }
+
+ public void setProblem( String problem )
+ {
+ this.problem = problem;
+ }
+
+ public String getProblem()
+ {
+ return problem;
+ }
+
+ static String createName( String namespace, String project, String projectVersion, String id )
+ {
+ return namespace + "/" + project + "/" + projectVersion + "/" + id;
+ }
+}
Added: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacetFactory.java
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacetFactory.java?rev=891064&view=auto
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacetFactory.java (added)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacetFactory.java Tue Dec 15 23:07:36 2009
@@ -0,0 +1,35 @@
+package org.apache.archiva.reports;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.archiva.metadata.model.MetadataFacet;
+import org.apache.archiva.metadata.model.MetadataFacetFactory;
+
+/**
+ * @plexus.component role="org.apache.archiva.metadata.model.MetadataFacetFactory" role-hint="org.apache.archiva.reports"
+ */
+public class RepositoryProblemFacetFactory
+ implements MetadataFacetFactory
+{
+ public MetadataFacet createMetadataFacet()
+ {
+ return new RepositoryProblemFacet();
+ }
+}
Copied: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java (from r889234, archiva/branches/MRM-1025/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactsConsumer.java)
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java?p2=archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java&p1=archiva/branches/MRM-1025/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactsConsumer.java&r1=889234&r2=891064&rev=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/DuplicateArtifactsConsumer.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java Tue Dec 15 23:07:36 2009
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.reporting.artifact;
+package org.apache.archiva.reports.consumers;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -20,11 +20,17 @@
*/
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
+import org.apache.archiva.checksum.ChecksumAlgorithm;
+import org.apache.archiva.checksum.ChecksummedFile;
+import org.apache.archiva.metadata.model.ArtifactMetadata;
+import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.archiva.reports.RepositoryProblemFacet;
import org.apache.commons.collections.CollectionUtils;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationNames;
@@ -33,18 +39,11 @@
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.database.ArchivaDAO;
-import org.apache.maven.archiva.database.ArchivaDatabaseException;
-import org.apache.maven.archiva.database.ObjectNotFoundException;
-import org.apache.maven.archiva.database.constraints.ArtifactsByChecksumConstraint;
-import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.RepositoryProblem;
+import org.apache.maven.archiva.model.ArtifactReference;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
import org.apache.maven.archiva.repository.RepositoryContentFactory;
import org.apache.maven.archiva.repository.RepositoryException;
import org.apache.maven.archiva.repository.layout.LayoutException;
-import org.codehaus.plexus.digest.Digester;
-import org.codehaus.plexus.digest.DigesterException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.registry.Registry;
@@ -89,11 +88,6 @@
private FileTypes filetypes;
/**
- * @plexus.requirement role-hint="jdo"
- */
- private ArchivaDAO dao;
-
- /**
* @plexus.requirement
*/
private RepositoryContentFactory repositoryFactory;
@@ -102,15 +96,15 @@
private File repositoryDir;
- /**
- * @plexus.requirement role-hint="sha1"
- */
- private Digester digestSha1;
-
private String repoId;
private ManagedRepositoryContent repository;
+ /**
+ * @plexus.requirement
+ */
+ private MetadataRepository metadataRepository;
+
public String getId()
{
return id;
@@ -159,31 +153,17 @@
// TODO: would be quicker to somehow make sure it ran after the update database consumer, or as a part of that
// perhaps could use an artifact context that is retained for all consumers? First in can set the SHA-1
String checksumSha1;
+ ChecksummedFile checksummedFile = new ChecksummedFile( artifactFile );
try
{
- checksumSha1 = digestSha1.calc( artifactFile );
+ checksumSha1 = checksummedFile.calculateChecksum( ChecksumAlgorithm.SHA1 );
}
- catch ( DigesterException e )
+ catch ( IOException e )
{
throw new ConsumerException( e.getMessage(), e );
}
- List<ArchivaArtifact> results;
- try
- {
- results = dao.getArtifactDAO().queryArtifacts(
- new ArtifactsByChecksumConstraint( checksumSha1, ArtifactsByChecksumConstraint.SHA1 ) );
- }
- catch ( ObjectNotFoundException e )
- {
- log.debug( "No duplicates for artifact: " + path + " (repository " + repoId + ")" );
- return;
- }
- catch ( ArchivaDatabaseException e )
- {
- log.warn( "Unable to query DB for potential duplicates with: " + path + " (repository " + repoId + "): " + e.getMessage(), e );
- return;
- }
+ List<ArtifactMetadata> results = metadataRepository.getArtifactsByChecksum( repoId, checksumSha1 );
if ( CollectionUtils.isNotEmpty( results ) )
{
@@ -194,45 +174,42 @@
return;
}
- ArchivaArtifact artifact;
+ ArtifactReference artifactReference;
try
{
- artifact = new ArchivaArtifact( repository.toArtifactReference( path ), repoId );
+ artifactReference = repository.toArtifactReference( path );
}
catch ( LayoutException e )
{
log.warn( "Unable to report problem for path: " + path );
return;
}
- for ( ArchivaArtifact dupArtifact : results )
+
+ for ( ArtifactMetadata dupArtifact : results )
{
- if ( dupArtifact.equals( artifact ) )
+ String id = path.substring( path.lastIndexOf( "/" ) + 1 );
+ if ( dupArtifact.getId().equals( id ) &&
+ dupArtifact.getNamespace().equals( artifactReference.getGroupId() ) &&
+ dupArtifact.getProject().equals( artifactReference.getArtifactId() ) &&
+ dupArtifact.getVersion().equals( artifactReference.getVersion() ) )
{
// Skip reference to itself.
continue;
}
- RepositoryProblem problem = new RepositoryProblem();
- problem.setRepositoryId( dupArtifact.getModel().getRepositoryId() );
- problem.setPath( path );
- problem.setGroupId( artifact.getGroupId() );
- problem.setArtifactId( artifact.getArtifactId() );
- problem.setVersion( artifact.getVersion() );
- problem.setType( DuplicateArtifactReport.PROBLEM_TYPE_DUPLICATE_ARTIFACTS );
- problem.setOrigin( getId() );
- problem.setMessage( "Duplicate Artifact Detected: " + artifact + " <--> " + dupArtifact );
+ RepositoryProblemFacet problem = new RepositoryProblemFacet();
+ problem.setRepositoryId( repoId );
+ problem.setNamespace( artifactReference.getGroupId() );
+ problem.setProject( artifactReference.getArtifactId() );
+ problem.setVersion( artifactReference.getVersion() );
+ problem.setId( id );
+ // TODO: proper path conversion for new metadata
+ problem.setMessage(
+ "Duplicate Artifact Detected: " + path + " <--> " + dupArtifact.getNamespace().replace( '.', '/' ) +
+ "/" + dupArtifact.getProject() + "/" + dupArtifact.getVersion() + "/" + dupArtifact.getId() );
+ problem.setProblem( "duplicate-artifact" );
- try
- {
- log.debug( "Found duplicate artifact: " + problem );
- dao.getRepositoryProblemDAO().saveRepositoryProblem( problem );
- }
- catch ( ArchivaDatabaseException e )
- {
- String emsg = "Unable to save problem with duplicate artifact to DB: " + e.getMessage();
- log.warn( emsg, e );
- throw new ConsumerException( emsg, e );
- }
+ metadataRepository.addMetadataFacet( repoId, RepositoryProblemFacet.FACET_ID, problem );
}
}
}
Propchange: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java?rev=891064&r1=891063&r2=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java Tue Dec 15 23:07:36 2009
@@ -19,9 +19,7 @@
* under the License.
*/
-import java.text.DateFormat;
import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -44,8 +42,6 @@
*/
private MetadataRepository metadataRepository;
- static final DateFormat SCAN_TIMESTAMP = new SimpleDateFormat( "yyyyMMdd.HHmmss.SSS" );
-
public RepositoryStatistics getLastStatistics( String repositoryId )
{
// TODO: consider a more efficient implementation that directly gets the last one from the content repository
@@ -81,9 +77,7 @@
// populate total project count from content repository
// repositoryStatistics.setTotalProjectCount( );
- metadataRepository.addMetadataFacet( repositoryId, RepositoryStatistics.FACET_ID,
- SCAN_TIMESTAMP.format( repositoryStatistics.getScanStartTime() ),
- repositoryStatistics );
+ metadataRepository.addMetadataFacet( repositoryId, RepositoryStatistics.FACET_ID, repositoryStatistics );
}
public void deleteStatistics( String repositoryId )
@@ -100,7 +94,7 @@
{
try
{
- Date date = SCAN_TIMESTAMP.parse( name );
+ Date date = RepositoryStatistics.SCAN_TIMESTAMP.parse( name );
if ( ( startTime == null || !date.before( startTime ) ) &&
( endTime == null || !date.after( endTime ) ) )
{
Modified: archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatistics.java
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatistics.java?rev=891064&r1=891063&r2=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatistics.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatistics.java Tue Dec 15 23:07:36 2009
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -46,6 +48,8 @@
public static String FACET_ID = "org.apache.archiva.metadata.repository.stats";
+ static final DateFormat SCAN_TIMESTAMP = new SimpleDateFormat( "yyyyMMdd.HHmmss.SSS" );
+
public Date getScanEndTime()
{
return scanEndTime;
@@ -136,6 +140,11 @@
return FACET_ID;
}
+ public String getName()
+ {
+ return SCAN_TIMESTAMP.format( scanStartTime );
+ }
+
public Map<String, String> toProperties()
{
Map<String, String> properties = new HashMap<String, String>();
Modified: archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java?rev=891064&r1=891063&r2=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java Tue Dec 15 23:07:36 2009
@@ -65,11 +65,10 @@
public void testGetLatestStats()
throws ParseException
{
- Date endTime =
- new Date( DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.parse( SECOND_TEST_SCAN ).getTime() + 60000 );
+ Date endTime = new Date( RepositoryStatistics.SCAN_TIMESTAMP.parse( SECOND_TEST_SCAN ).getTime() + 60000 );
RepositoryStatistics stats = new RepositoryStatistics();
- stats.setScanStartTime( DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.parse( SECOND_TEST_SCAN ) );
+ stats.setScanStartTime( RepositoryStatistics.SCAN_TIMESTAMP.parse( SECOND_TEST_SCAN ) );
stats.setScanEndTime( endTime );
stats.setTotalArtifactFileSize( 1314527915L );
stats.setNewFileCount( 123 );
@@ -94,8 +93,8 @@
assertEquals( 2031, stats.getTotalProjectCount() );
assertEquals( 529, stats.getTotalGroupCount() );
assertEquals( 56229, stats.getTotalFileCount() );
- assertEquals( SECOND_TEST_SCAN,
- DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( stats.getScanStartTime() ) );
+ assertEquals( SECOND_TEST_SCAN, RepositoryStatistics.SCAN_TIMESTAMP.format( stats.getScanStartTime() ) );
+ assertEquals( SECOND_TEST_SCAN, stats.getName() );
assertEquals( endTime, stats.getScanEndTime() );
metadataRepositoryControl.verify();
@@ -119,17 +118,15 @@
Date current = new Date();
Date startTime = new Date( current.getTime() - 12345 );
- RepositoryStatistics stats1 = createTestStats( startTime, current );
+ RepositoryStatistics stats = createTestStats( startTime, current );
- String startTimeAsString = DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( startTime );
- metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString, stats1 );
+ metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, stats );
metadataRepositoryControl.expectAndReturn(
metadataRepository.getMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ),
- Arrays.asList( startTimeAsString ) );
+ Arrays.asList( stats.getName() ) );
metadataRepositoryControl.expectAndReturn(
- metadataRepository.getMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString ),
- stats1 );
- RepositoryStatistics stats = stats1;
+ metadataRepository.getMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, stats.getName() ),
+ stats );
metadataRepositoryControl.replay();
@@ -155,19 +152,17 @@
Date startTime1 = new Date( current.getTime() - 12345 );
RepositoryStatistics stats1 = createTestStats( startTime1, new Date( current.getTime() - 6000 ) );
- String startTimeAsString1 = DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( startTime1 );
- metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString1, stats1 );
+ metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, stats1 );
Date startTime2 = new Date( current.getTime() - 3000 );
RepositoryStatistics stats2 = createTestStats( startTime2, current );
- String startTimeAsString2 = DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( startTime2 );
- metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString2, stats2 );
+ metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, stats2 );
metadataRepositoryControl.expectAndReturn(
metadataRepository.getMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ),
- Arrays.asList( startTimeAsString1, startTimeAsString2 ) );
+ Arrays.asList( stats1.getName(), stats2.getName() ) );
metadataRepositoryControl.expectAndReturn(
- metadataRepository.getMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString2 ),
+ metadataRepository.getMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, stats2.getName() ),
stats2 );
metadataRepository.removeMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID );
@@ -230,7 +225,7 @@
for ( RepositoryStatistics stats : statsCreated.values() )
{
- repositoryStatisticsManager.addStatisticsAfterScan( TEST_REPO_ID, stats );
+ repositoryStatisticsManager.addStatisticsAfterScan( TEST_REPO_ID, stats );
}
List<RepositoryStatistics> list =
@@ -396,9 +391,8 @@
private void addStats( Date startTime, Date endTime )
{
RepositoryStatistics stats = createTestStats( startTime, endTime );
- String startTimeAsString = DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( startTime );
- metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString, stats );
- statsCreated.put( startTimeAsString, stats );
+ metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, stats );
+ statsCreated.put( stats.getName(), stats );
}
private RepositoryStatistics createTestStats( Date startTime, Date endTime )
Modified: archiva/branches/MRM-1025/archiva-modules/pom.xml
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/pom.xml?rev=891064&r1=891063&r2=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/pom.xml (original)
+++ archiva/branches/MRM-1025/archiva-modules/pom.xml Tue Dec 15 23:07:36 2009
@@ -30,7 +30,6 @@
<modules>
<module>archiva-base</module>
<module>archiva-database</module>
- <module>archiva-reporting</module>
<module>archiva-scheduler</module>
<module>archiva-web</module>
<module>metadata</module>
Modified: archiva/branches/MRM-1025/pom.xml
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/pom.xml?rev=891064&r1=891063&r2=891064&view=diff
==============================================================================
--- archiva/branches/MRM-1025/pom.xml (original)
+++ archiva/branches/MRM-1025/pom.xml Tue Dec 15 23:07:36 2009
@@ -311,22 +311,22 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>maven2-repository</artifactId>
+ <artifactId>problem-reports</artifactId>
<version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-applet</artifactId>
+ <artifactId>maven2-repository</artifactId>
<version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-artifact-converter</artifactId>
+ <artifactId>archiva-applet</artifactId>
<version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-artifact-reports</artifactId>
+ <artifactId>archiva-artifact-converter</artifactId>
<version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
@@ -396,11 +396,6 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
- <artifactId>archiva-report-manager</artifactId>
- <version>1.3-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-layer</artifactId>
<version>1.3-SNAPSHOT</version>
</dependency>