remove dependency on repository-layer from repository-statistics module

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@921791 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Porter 2010-03-11 10:39:33 +00:00
parent 5c18f8b344
commit 51acb7acd7
4 changed files with 26 additions and 66 deletions

View File

@ -50,6 +50,10 @@
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-scanner</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-layer</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-scheduler-repository</artifactId>

View File

@ -32,6 +32,11 @@
<groupId>org.apache.archiva</groupId>
<artifactId>metadata-repository-api</artifactId>
</dependency>
<!-- TODO: look at making this optional -->
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>maven2-repository</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-spring</artifactId>
@ -51,9 +56,5 @@
<artifactId>jcl-over-slf4j</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-layer</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -19,6 +19,12 @@
* under the License.
*/
import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.storage.maven2.MavenArtifactFacet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -28,15 +34,6 @@
import java.util.List;
import java.util.TimeZone;
import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @plexus.component role="org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager" role-hint="default"
*/
@ -50,11 +47,6 @@ public class DefaultRepositoryStatisticsManager
*/
private MetadataRepository metadataRepository;
/**
* @plexus.requirement
*/
private RepositoryContentFactory repositoryContentFactory;
private static final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone( "UTC" );
public RepositoryStatistics getLastStatistics( String repositoryId )
@ -74,12 +66,11 @@ public RepositoryStatistics getLastStatistics( String repositoryId )
}
}
private void walkRepository( RepositoryStatistics stats, String repositoryId, String ns,
ManagedRepositoryContent repositoryContent )
private void walkRepository( RepositoryStatistics stats, String repositoryId, String ns )
{
for ( String namespace : metadataRepository.getNamespaces( repositoryId, ns ) )
{
walkRepository( stats, repositoryId, ns + "." + namespace, repositoryContent );
walkRepository( stats, repositoryId, ns + "." + namespace );
}
Collection<String> projects = metadataRepository.getProjects( repositoryId, ns );
@ -98,18 +89,12 @@ private void walkRepository( RepositoryStatistics stats, String repositoryId, St
stats.setTotalArtifactCount( stats.getTotalArtifactCount() + 1 );
stats.setTotalArtifactFileSize( stats.getTotalArtifactFileSize() + artifact.getSize() );
// TODO: need a maven2 metadata repository API equivalent
try
MavenArtifactFacet facet = (MavenArtifactFacet) artifact.getFacet( MavenArtifactFacet.FACET_ID );
if ( facet != null )
{
String type = repositoryContent.toArtifactReference(
ns.replace( '.', '/' ) + "/" + project + "/" + version + "/" +
artifact.getId() ).getType();
String type = facet.getType();
stats.setTotalCountForType( type, stats.getTotalCountForType( type ) + 1 );
}
catch ( LayoutException e )
{
// ignore
}
}
}
}
@ -138,16 +123,7 @@ public void addStatisticsAfterScan( String repositoryId, Date startTime, Date en
// it on the fly
for ( String ns : metadataRepository.getRootNamespaces( repositoryId ) )
{
ManagedRepositoryContent content;
try
{
content = repositoryContentFactory.getManagedRepositoryContent( repositoryId );
}
catch ( RepositoryException e )
{
throw new RuntimeException( e );
}
walkRepository( repositoryStatistics, repositoryId, ns, content );
walkRepository( repositoryStatistics, repositoryId, ns );
}
log.info( "Repository walk for statistics executed in " + ( System.currentTimeMillis() - startWalk ) + "ms" );
@ -199,9 +175,4 @@ public void setMetadataRepository( MetadataRepository metadataRepository )
{
this.metadataRepository = metadataRepository;
}
public void setRepositoryContentFactory( RepositoryContentFactory repositoryContentFactory )
{
this.repositoryContentFactory = repositoryContentFactory;
}
}

View File

@ -19,6 +19,11 @@
* under the License.
*/
import junit.framework.TestCase;
import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.easymock.MockControl;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -30,15 +35,6 @@
import java.util.Map;
import java.util.TimeZone;
import junit.framework.TestCase;
import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.repository.RepositoryContentFactory;
import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
import org.easymock.MockControl;
import org.easymock.classextension.MockClassControl;
public class RepositoryStatisticsManagerTest
extends TestCase
{
@ -76,18 +72,6 @@ protected void setUp()
metadataRepositoryControl = MockControl.createControl( MetadataRepository.class );
metadataRepository = (MetadataRepository) metadataRepositoryControl.getMock();
repositoryStatisticsManager.setMetadataRepository( metadataRepository );
ManagedRepositoryConfiguration repository = new ManagedRepositoryConfiguration();
repository.setId( TEST_REPO_ID );
repository.setLocation( "" );
ManagedDefaultRepositoryContent content = new ManagedDefaultRepositoryContent();
content.setRepository( repository );
MockControl control = MockClassControl.createControl( RepositoryContentFactory.class );
RepositoryContentFactory contentFactory = (RepositoryContentFactory) control.getMock();
contentFactory.getManagedRepositoryContent( TEST_REPO_ID );
control.setDefaultReturnValue( content );
control.replay();
repositoryStatisticsManager.setRepositoryContentFactory( contentFactory );
}
public void testGetLatestStats()