Browse Source

[MRM-1330] update DuplicateArtifactsConsumer to the session-based API

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1053554 13f79535-47bb-0310-9956-ffa450edef68
tags/archiva-1.4-M1
Brett Porter 13 years ago
parent
commit
e7c8bea2e6

+ 15
- 6
archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java View File

import org.apache.archiva.metadata.model.ArtifactMetadata; import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.MetadataRepositoryException; import org.apache.archiva.metadata.repository.MetadataRepositoryException;
import org.apache.archiva.metadata.repository.RepositorySession;
import org.apache.archiva.metadata.repository.RepositorySessionFactory;
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator; import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
import org.apache.archiva.reports.RepositoryProblemFacet; import org.apache.archiva.reports.RepositoryProblemFacet;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
*/ */
private FileTypes filetypes; private FileTypes filetypes;


/**
* FIXME: can be of other types
*
* @plexus.requirement
*/
private RepositorySessionFactory repositorySessionFactory;

private List<String> includes = new ArrayList<String>(); private List<String> includes = new ArrayList<String>();


private File repositoryDir; private File repositoryDir;


private String repoId; private String repoId;


/**
* @plexus.requirement
*/
private MetadataRepository metadataRepository;

/** /**
* FIXME: needs to be selected based on the repository in question * FIXME: needs to be selected based on the repository in question
* *
*/ */
private RepositoryPathTranslator pathTranslator; private RepositoryPathTranslator pathTranslator;


private RepositorySession repositorySession;

public String getId() public String getId()
{ {
return id; return id;
{ {
repoId = repo.getId(); repoId = repo.getId();
this.repositoryDir = new File( repo.getLocation() ); this.repositoryDir = new File( repo.getLocation() );
repositorySession = repositorySessionFactory.createSession();
} }


public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered, boolean executeOnEntireRepo ) public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered, boolean executeOnEntireRepo )
throw new ConsumerException( e.getMessage(), e ); throw new ConsumerException( e.getMessage(), e );
} }


MetadataRepository metadataRepository = repositorySession.getRepository();

List<ArtifactMetadata> results; List<ArtifactMetadata> results;
try try
{ {


public void completeScan() public void completeScan()
{ {
// nothing to do
repositorySession.close();
} }


public void completeScan( boolean executeOnEntireRepo ) public void completeScan( boolean executeOnEntireRepo )

+ 9
- 1
archiva-modules/plugins/problem-reports/src/test/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumerTest.java View File

import org.apache.archiva.metadata.model.ArtifactMetadata; import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.model.MetadataFacet; import org.apache.archiva.metadata.model.MetadataFacet;
import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.RepositorySession;
import org.apache.archiva.metadata.repository.RepositorySessionFactory;
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator; import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
import org.apache.archiva.reports.RepositoryProblemFacet; import org.apache.archiva.reports.RepositoryProblemFacet;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
config.setId( TEST_REPO ); config.setId( TEST_REPO );
config.setLocation( getTestFile( "target/test-repository" ).getAbsolutePath() ); config.setLocation( getTestFile( "target/test-repository" ).getAbsolutePath() );


metadataRepository = (MetadataRepository) lookup( MetadataRepository.class );
metadataRepository = mock( MetadataRepository.class );

RepositorySession session = mock( RepositorySession.class );
when( session.getRepository() ).thenReturn( metadataRepository );

RepositorySessionFactory factory = (RepositorySessionFactory) lookup( RepositorySessionFactory.class );
when( factory.createSession() ).thenReturn( session );


pathTranslator = (RepositoryPathTranslator) lookup( RepositoryPathTranslator.class, "maven2" ); pathTranslator = (RepositoryPathTranslator) lookup( RepositoryPathTranslator.class, "maven2" );
when( pathTranslator.getArtifactForPath( TEST_REPO, TEST_FILE ) ).thenReturn( TEST_METADATA ); when( pathTranslator.getArtifactForPath( TEST_REPO, TEST_FILE ) ).thenReturn( TEST_METADATA );

+ 3
- 3
archiva-modules/plugins/problem-reports/src/test/resources/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumerTest-context.xml View File

<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="metadataRepositoryFactory" class="org.apache.archiva.reports.consumers.MockitoFactory"
name="metadataRepository">
<constructor-arg value="org.apache.archiva.metadata.repository.MetadataRepository"/>
<bean id="repositorySessionFactoryFactory" class="org.apache.archiva.reports.consumers.MockitoFactory"
name="repositorySessionFactory">
<constructor-arg value="org.apache.archiva.metadata.repository.RepositorySessionFactory"/>
</bean> </bean>
<bean id="repositoryPathTranslatorFactory" class="org.apache.archiva.reports.consumers.MockitoFactory" <bean id="repositoryPathTranslatorFactory" class="org.apache.archiva.reports.consumers.MockitoFactory"
name="repositoryPathTranslator#maven2"> name="repositoryPathTranslator#maven2">

Loading…
Cancel
Save