mirror of https://github.com/apache/archiva.git
use a new bean rather than a lot of params to ease futur enhancements
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1401289 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
38788585d7
commit
ef66c2d19f
|
@ -34,6 +34,7 @@ import org.apache.archiva.metadata.repository.MetadataRepository;
|
|||
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.ReadMetadataRequest;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
|
||||
|
@ -54,11 +55,9 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* Take an artifact off of disk and put it into the metadata repository.
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Service( "knownRepositoryContentConsumer#create-archiva-metadata" )
|
||||
@Scope( "prototype" )
|
||||
@Service ("knownRepositoryContentConsumer#create-archiva-metadata")
|
||||
@Scope ("prototype")
|
||||
public class ArchivaMetadataCreationConsumer
|
||||
extends AbstractMonitoredConsumer
|
||||
implements KnownRepositoryContentConsumer, RegistryListener
|
||||
|
@ -98,7 +97,7 @@ public class ArchivaMetadataCreationConsumer
|
|||
* factory.
|
||||
*/
|
||||
@Inject
|
||||
@Named( value = "repositoryStorage#maven2" )
|
||||
@Named (value = "repositoryStorage#maven2")
|
||||
private RepositoryStorage repositoryStorage;
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger( ArchivaMetadataCreationConsumer.class );
|
||||
|
@ -170,13 +169,16 @@ public class ArchivaMetadataCreationConsumer
|
|||
ProjectVersionMetadata versionMetadata = null;
|
||||
try
|
||||
{
|
||||
versionMetadata = repositoryStorage.readProjectVersionMetadata( repoId, artifact.getNamespace(),
|
||||
artifact.getProject(), projectVersion );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( repoId ).namespace( artifact.getNamespace() ).projectId(
|
||||
artifact.getProject() ).projectVersion( projectVersion );
|
||||
versionMetadata = repositoryStorage.readProjectVersionMetadata( readMetadataRequest );
|
||||
createVersionMetadata = true;
|
||||
}
|
||||
catch ( RepositoryStorageMetadataNotFoundException e )
|
||||
{
|
||||
log.warn( "Missing or invalid POM for artifact:{} (repository:{}); creating empty metadata" , path, repoId );
|
||||
log.warn( "Missing or invalid POM for artifact:{} (repository:{}); creating empty metadata", path,
|
||||
repoId );
|
||||
|
||||
versionMetadata = new ProjectVersionMetadata();
|
||||
versionMetadata.setId( projectVersion );
|
||||
|
@ -185,7 +187,8 @@ public class ArchivaMetadataCreationConsumer
|
|||
}
|
||||
catch ( RepositoryStorageMetadataInvalidException e )
|
||||
{
|
||||
log.warn( "Error occurred resolving POM for artifact:{} (repository:{}); message: {}" , new Object[] { path, repoId, e.getMessage() } );
|
||||
log.warn( "Error occurred resolving POM for artifact:{} (repository:{}); message: {}",
|
||||
new Object[]{ path, repoId, e.getMessage() } );
|
||||
}
|
||||
|
||||
// read the metadata and update it if it is newer or doesn't exist
|
||||
|
@ -202,12 +205,16 @@ public class ArchivaMetadataCreationConsumer
|
|||
}
|
||||
catch ( MetadataRepositoryException e )
|
||||
{
|
||||
log.warn( "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(), new Object[] { path, repoId, e.getMessage() }, e );
|
||||
log.warn(
|
||||
"Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(),
|
||||
new Object[]{ path, repoId, e.getMessage() }, e );
|
||||
repositorySession.revert();
|
||||
}
|
||||
catch ( RepositoryStorageRuntimeException e )
|
||||
{
|
||||
log.warn( "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(), new Object[] { path, repoId, e.getMessage() }, e );
|
||||
log.warn(
|
||||
"Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(),
|
||||
new Object[]{ path, repoId, e.getMessage() }, e );
|
||||
repositorySession.revert();
|
||||
}
|
||||
finally
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.apache.archiva.metadata.model.ProjectMetadata;
|
|||
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
|
||||
import org.apache.archiva.metadata.model.ProjectVersionReference;
|
||||
import org.apache.archiva.metadata.repository.filter.ExcludesFilter;
|
||||
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
|
||||
|
@ -56,7 +57,7 @@ import java.util.List;
|
|||
* unknowingly by the caller.
|
||||
* <p/>
|
||||
*/
|
||||
@Service( "metadataResolver#default" )
|
||||
@Service ("metadataResolver#default")
|
||||
public class DefaultMetadataResolver
|
||||
implements MetadataResolver
|
||||
{
|
||||
|
@ -72,7 +73,7 @@ public class DefaultMetadataResolver
|
|||
* appropriate methods to pass in the already determined repository configuration, for example, instead of the ID
|
||||
*/
|
||||
@Inject
|
||||
@Named( value = "repositoryStorage#maven2" )
|
||||
@Named (value = "repositoryStorage#maven2")
|
||||
private RepositoryStorage repositoryStorage;
|
||||
|
||||
/**
|
||||
|
@ -98,7 +99,10 @@ public class DefaultMetadataResolver
|
|||
{
|
||||
try
|
||||
{
|
||||
metadata = repositoryStorage.readProjectVersionMetadata( repoId, namespace, projectId, projectVersion );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( repoId ).namespace( namespace ).projectId(
|
||||
projectId ).projectVersion( projectVersion );
|
||||
metadata = repositoryStorage.readProjectVersionMetadata( readMetadataRequest );
|
||||
|
||||
log.debug( "Resolved project version metadata from storage: {}", metadata );
|
||||
|
||||
|
@ -309,9 +313,11 @@ public class DefaultMetadataResolver
|
|||
{
|
||||
try
|
||||
{
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( repoId ).namespace( namespace ).projectId(
|
||||
projectId ).projectVersion( projectVersion );
|
||||
ProjectVersionMetadata versionMetadata =
|
||||
repositoryStorage.readProjectVersionMetadata( repoId, namespace, projectId,
|
||||
projectVersion );
|
||||
repositoryStorage.readProjectVersionMetadata( readMetadataRequest );
|
||||
for ( RepositoryListener listener : listeners )
|
||||
{
|
||||
listener.addArtifact( session, repoId, namespace, projectId, versionMetadata );
|
||||
|
@ -365,8 +371,13 @@ public class DefaultMetadataResolver
|
|||
Collection<ArtifactMetadata> artifacts =
|
||||
metadataRepository.getArtifacts( repoId, namespace, projectId, projectVersion );
|
||||
ExcludesFilter<String> filter = new ExcludesFilter<String>( createArtifactIdList( artifacts ) );
|
||||
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( repoId ).namespace( namespace ).projectId( projectId ).projectVersion(
|
||||
projectVersion ).filter( filter );
|
||||
|
||||
Collection<ArtifactMetadata> storageArtifacts =
|
||||
repositoryStorage.readArtifactsMetadata( repoId, namespace, projectId, projectVersion, filter );
|
||||
repositoryStorage.readArtifactsMetadata( readMetadataRequest );
|
||||
if ( storageArtifacts != null && !storageArtifacts.isEmpty() )
|
||||
{
|
||||
|
||||
|
|
|
@ -31,8 +31,7 @@ public interface RepositoryStorage
|
|||
{
|
||||
ProjectMetadata readProjectMetadata( String repoId, String namespace, String projectId );
|
||||
|
||||
ProjectVersionMetadata readProjectVersionMetadata( String repoId, String namespace, String projectId,
|
||||
String projectVersion )
|
||||
ProjectVersionMetadata readProjectVersionMetadata( ReadMetadataRequest readMetadataRequest )
|
||||
throws RepositoryStorageMetadataInvalidException, RepositoryStorageMetadataNotFoundException,
|
||||
RepositoryStorageRuntimeException;
|
||||
|
||||
|
@ -48,8 +47,7 @@ public interface RepositoryStorage
|
|||
Collection<String> listProjectVersions( String repoId, String namespace, String projectId, Filter<String> filter )
|
||||
throws RepositoryStorageRuntimeException;
|
||||
|
||||
Collection<ArtifactMetadata> readArtifactsMetadata( String repoId, String namespace, String projectId,
|
||||
String projectVersion, Filter<String> filter )
|
||||
Collection<ArtifactMetadata> readArtifactsMetadata( ReadMetadataRequest readMetadataRequest )
|
||||
throws RepositoryStorageRuntimeException;
|
||||
|
||||
// FIXME: reconsider this API, do we want to expose storage format in the form of a path?
|
||||
|
|
|
@ -36,6 +36,7 @@ import org.apache.archiva.metadata.model.ArtifactMetadata;
|
|||
import org.apache.archiva.metadata.model.ProjectMetadata;
|
||||
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
|
||||
import org.apache.archiva.metadata.repository.filter.Filter;
|
||||
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
|
||||
|
@ -91,7 +92,7 @@ import java.util.Map;
|
|||
* within the session in the context of a single managed repository's resolution needs.
|
||||
* <p/>
|
||||
*/
|
||||
@Service( "repositoryStorage#maven2" )
|
||||
@Service ("repositoryStorage#maven2")
|
||||
public class Maven2RepositoryStorage
|
||||
implements RepositoryStorage
|
||||
{
|
||||
|
@ -119,13 +120,13 @@ public class Maven2RepositoryStorage
|
|||
*
|
||||
*/
|
||||
@Inject
|
||||
@Named( value = "repositoryPathTranslator#maven2" )
|
||||
@Named (value = "repositoryPathTranslator#maven2")
|
||||
private RepositoryPathTranslator pathTranslator;
|
||||
|
||||
@Inject
|
||||
private WagonFactory wagonFactory;
|
||||
|
||||
private final static Logger log = LoggerFactory.getLogger( Maven2RepositoryStorage.class );
|
||||
private static final Logger log = LoggerFactory.getLogger( Maven2RepositoryStorage.class );
|
||||
|
||||
private static final String METADATA_FILENAME_START = "maven-metadata";
|
||||
|
||||
|
@ -146,35 +147,39 @@ public class Maven2RepositoryStorage
|
|||
return null;
|
||||
}
|
||||
|
||||
public ProjectVersionMetadata readProjectVersionMetadata( String repoId, String namespace, String projectId,
|
||||
String projectVersion )
|
||||
public ProjectVersionMetadata readProjectVersionMetadata( ReadMetadataRequest readMetadataRequest )
|
||||
throws RepositoryStorageMetadataNotFoundException, RepositoryStorageMetadataInvalidException,
|
||||
RepositoryStorageRuntimeException
|
||||
{
|
||||
try
|
||||
{
|
||||
ManagedRepository managedRepository = managedRepositoryAdmin.getManagedRepository( repoId );
|
||||
ManagedRepository managedRepository =
|
||||
managedRepositoryAdmin.getManagedRepository( readMetadataRequest.getRepoId() );
|
||||
|
||||
String artifactVersion = projectVersion;
|
||||
if ( VersionUtil.isSnapshot( projectVersion ) ) // skygo trying to improve speed by honoring managed configuration MRM-1658
|
||||
String artifactVersion = readMetadataRequest.getProjectVersion();
|
||||
if ( VersionUtil.isSnapshot(
|
||||
readMetadataRequest.getProjectVersion() ) ) // skygo trying to improve speed by honoring managed configuration MRM-1658
|
||||
{
|
||||
if ( managedRepository.isReleases() && !managedRepository.isSnapshots() )
|
||||
{
|
||||
throw new RepositoryStorageRuntimeException("lookforsnaponreleaseonly", "managed repo is configured for release only");
|
||||
throw new RepositoryStorageRuntimeException( "lookforsnaponreleaseonly",
|
||||
"managed repo is configured for release only" );
|
||||
}
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !managedRepository.isReleases() && managedRepository.isSnapshots() )
|
||||
{
|
||||
throw new RepositoryStorageRuntimeException("lookforsreleaseonsneponly", "managed repo is configured for snapshot only");
|
||||
throw new RepositoryStorageRuntimeException( "lookforsreleaseonsneponly",
|
||||
"managed repo is configured for snapshot only" );
|
||||
}
|
||||
}
|
||||
File basedir = new File( managedRepository.getLocation() );
|
||||
if ( VersionUtil.isSnapshot( projectVersion ) )
|
||||
if ( VersionUtil.isSnapshot( readMetadataRequest.getProjectVersion() ) )
|
||||
{
|
||||
File metadataFile =
|
||||
pathTranslator.toFile( basedir, namespace, projectId, projectVersion, METADATA_FILENAME );
|
||||
File metadataFile = pathTranslator.toFile( basedir, readMetadataRequest.getNamespace(),
|
||||
readMetadataRequest.getProjectId(),
|
||||
readMetadataRequest.getProjectVersion(), METADATA_FILENAME );
|
||||
try
|
||||
{
|
||||
ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
|
||||
|
@ -197,8 +202,10 @@ public class Maven2RepositoryStorage
|
|||
}
|
||||
|
||||
// TODO: won't work well with some other layouts, might need to convert artifact parts to ID by path translator
|
||||
String id = projectId + "-" + artifactVersion + ".pom";
|
||||
File file = pathTranslator.toFile( basedir, namespace, projectId, projectVersion, id );
|
||||
String id = readMetadataRequest.getProjectId() + "-" + artifactVersion + ".pom";
|
||||
File file =
|
||||
pathTranslator.toFile( basedir, readMetadataRequest.getNamespace(), readMetadataRequest.getProjectId(),
|
||||
readMetadataRequest.getProjectVersion(), id );
|
||||
|
||||
if ( !file.exists() )
|
||||
{
|
||||
|
@ -213,7 +220,7 @@ public class Maven2RepositoryStorage
|
|||
Map<String, NetworkProxy> networkProxies = new HashMap<String, NetworkProxy>();
|
||||
|
||||
Map<String, List<ProxyConnector>> proxyConnectorsMap = proxyConnectorAdmin.getProxyConnectorAsMap();
|
||||
List<ProxyConnector> proxyConnectors = proxyConnectorsMap.get( repoId );
|
||||
List<ProxyConnector> proxyConnectors = proxyConnectorsMap.get( readMetadataRequest.getRepoId() );
|
||||
if ( proxyConnectors != null )
|
||||
{
|
||||
for ( ProxyConnector proxyConnector : proxyConnectors )
|
||||
|
@ -273,11 +280,11 @@ public class Maven2RepositoryStorage
|
|||
"Using defaults for project version metadata.." );
|
||||
|
||||
ProjectVersionMetadata metadata = new ProjectVersionMetadata();
|
||||
metadata.setId( projectVersion );
|
||||
metadata.setId( readMetadataRequest.getProjectVersion() );
|
||||
|
||||
MavenProjectFacet facet = new MavenProjectFacet();
|
||||
facet.setGroupId( namespace );
|
||||
facet.setArtifactId( projectId );
|
||||
facet.setGroupId( readMetadataRequest.getNamespace() );
|
||||
facet.setArtifactId( readMetadataRequest.getProjectId() );
|
||||
facet.setPackaging( "jar" );
|
||||
metadata.addFacet( facet );
|
||||
|
||||
|
@ -286,13 +293,13 @@ public class Maven2RepositoryStorage
|
|||
? problem.getMessage()
|
||||
: problem.getException().getMessage() );
|
||||
RepositoryProblemFacet repoProblemFacet = new RepositoryProblemFacet();
|
||||
repoProblemFacet.setRepositoryId( repoId );
|
||||
repoProblemFacet.setId( repoId );
|
||||
repoProblemFacet.setRepositoryId( readMetadataRequest.getRepoId() );
|
||||
repoProblemFacet.setId( readMetadataRequest.getRepoId() );
|
||||
repoProblemFacet.setMessage( errMsg );
|
||||
repoProblemFacet.setProblem( errMsg );
|
||||
repoProblemFacet.setProject( projectId );
|
||||
repoProblemFacet.setVersion( projectVersion );
|
||||
repoProblemFacet.setNamespace( namespace );
|
||||
repoProblemFacet.setProject( readMetadataRequest.getProjectId() );
|
||||
repoProblemFacet.setVersion( readMetadataRequest.getProjectVersion() );
|
||||
repoProblemFacet.setNamespace( readMetadataRequest.getNamespace() );
|
||||
|
||||
metadata.addFacet( repoProblemFacet );
|
||||
|
||||
|
@ -304,9 +311,9 @@ public class Maven2RepositoryStorage
|
|||
}
|
||||
|
||||
// Check if the POM is in the correct location
|
||||
boolean correctGroupId = namespace.equals( model.getGroupId() );
|
||||
boolean correctArtifactId = projectId.equals( model.getArtifactId() );
|
||||
boolean correctVersion = projectVersion.equals( model.getVersion() );
|
||||
boolean correctGroupId = readMetadataRequest.getNamespace().equals( model.getGroupId() );
|
||||
boolean correctArtifactId = readMetadataRequest.getProjectId().equals( model.getArtifactId() );
|
||||
boolean correctVersion = readMetadataRequest.getProjectVersion().equals( model.getVersion() );
|
||||
if ( !correctGroupId || !correctArtifactId || !correctVersion )
|
||||
{
|
||||
StringBuilder message = new StringBuilder( "Incorrect POM coordinates in '" + file + "':" );
|
||||
|
@ -329,7 +336,7 @@ public class Maven2RepositoryStorage
|
|||
ProjectVersionMetadata metadata = new ProjectVersionMetadata();
|
||||
metadata.setCiManagement( convertCiManagement( model.getCiManagement() ) );
|
||||
metadata.setDescription( model.getDescription() );
|
||||
metadata.setId( projectVersion );
|
||||
metadata.setId( readMetadataRequest.getProjectVersion() );
|
||||
metadata.setIssueManagement( convertIssueManagement( model.getIssueManagement() ) );
|
||||
metadata.setLicenses( convertLicenses( model.getLicenses() ) );
|
||||
metadata.setMailingLists( convertMailingLists( model.getMailingLists() ) );
|
||||
|
@ -561,21 +568,25 @@ public class Maven2RepositoryStorage
|
|||
return getSortedFiles( dir, filter );
|
||||
}
|
||||
|
||||
public Collection<ArtifactMetadata> readArtifactsMetadata( String repoId, String namespace, String projectId,
|
||||
String projectVersion, Filter<String> filter )
|
||||
public Collection<ArtifactMetadata> readArtifactsMetadata( ReadMetadataRequest readMetadataRequest )
|
||||
throws RepositoryStorageRuntimeException
|
||||
{
|
||||
File dir = pathTranslator.toFile( getRepositoryBasedir( repoId ), namespace, projectId, projectVersion );
|
||||
File dir = pathTranslator.toFile( getRepositoryBasedir( readMetadataRequest.getRepoId() ),
|
||||
readMetadataRequest.getNamespace(), readMetadataRequest.getProjectId(),
|
||||
readMetadataRequest.getProjectVersion() );
|
||||
|
||||
// all files that are not metadata and not a checksum / signature are considered artifacts
|
||||
File[] files = dir.listFiles( new ArtifactDirectoryFilter( filter ) );
|
||||
File[] files = dir.listFiles( new ArtifactDirectoryFilter( readMetadataRequest.getFilter() ) );
|
||||
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>();
|
||||
if ( files != null )
|
||||
{
|
||||
for ( File file : files )
|
||||
{
|
||||
ArtifactMetadata metadata = getArtifactFromFile( repoId, namespace, projectId, projectVersion, file );
|
||||
ArtifactMetadata metadata =
|
||||
getArtifactFromFile( readMetadataRequest.getRepoId(), readMetadataRequest.getNamespace(),
|
||||
readMetadataRequest.getProjectId(), readMetadataRequest.getProjectVersion(),
|
||||
file );
|
||||
artifacts.add( metadata );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,15 +19,7 @@ package org.apache.archiva.metadata.repository.storage.maven2;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.archiva.admin.model.beans.RepositoryGroup;
|
||||
import org.apache.archiva.common.utils.FileUtil;
|
||||
import org.apache.archiva.configuration.ArchivaConfiguration;
|
||||
import org.apache.archiva.configuration.Configuration;
|
||||
|
@ -42,7 +34,7 @@ import org.apache.archiva.metadata.model.MailingList;
|
|||
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
|
||||
import org.apache.archiva.metadata.repository.filter.AllFilter;
|
||||
import org.apache.archiva.metadata.repository.filter.Filter;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageRuntimeException;
|
||||
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
||||
import org.apache.archiva.proxy.common.WagonFactory;
|
||||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
@ -50,25 +42,34 @@ import org.apache.maven.wagon.Wagon;
|
|||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
@RunWith( ArchivaSpringJUnit4ClassRunner.class )
|
||||
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
|
||||
@ContextConfiguration ( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
|
||||
public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
||||
extends TestCase
|
||||
{
|
||||
private static final Filter<String> ALL = new AllFilter<String>();
|
||||
|
||||
@Inject
|
||||
@Named( value = "repositoryStorage#maven2" )
|
||||
@Named ( value = "repositoryStorage#maven2" )
|
||||
private Maven2RepositoryStorage storage;
|
||||
|
||||
private static final String TEST_REPO_ID = "test";
|
||||
|
||||
|
||||
private static final String TEST_SNAP_REPO_ID = "tests";
|
||||
|
||||
|
||||
private static final String TEST_REPO_GROUP_ID = "testrg";
|
||||
|
||||
private static final String TEST_REMOTE_REPO_ID = "central";
|
||||
|
@ -95,11 +96,11 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
private WagonFactory wagonFactory;
|
||||
|
||||
ManagedRepositoryConfiguration testRepo;
|
||||
|
||||
|
||||
ManagedRepositoryConfiguration testRepoS;
|
||||
|
||||
|
||||
Configuration c;
|
||||
|
||||
|
||||
@Before
|
||||
@Override
|
||||
public void setUp()
|
||||
|
@ -108,21 +109,21 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
super.setUp();
|
||||
|
||||
c = new Configuration();
|
||||
|
||||
|
||||
testRepo = new ManagedRepositoryConfiguration();
|
||||
testRepo.setId( TEST_REPO_ID );
|
||||
testRepo.setLocation( new File( "target/test-repository" ).getAbsolutePath() );
|
||||
testRepo.setReleases( true );
|
||||
testRepo.setSnapshots( false );
|
||||
c.addManagedRepository( testRepo );
|
||||
|
||||
|
||||
testRepoS = new ManagedRepositoryConfiguration();
|
||||
testRepoS.setId( TEST_SNAP_REPO_ID );
|
||||
testRepoS.setLocation( new File( "target/test-repositorys" ).getAbsolutePath() );
|
||||
testRepoS.setReleases( false );
|
||||
testRepoS.setSnapshots( true );
|
||||
c.addManagedRepository( testRepoS );
|
||||
|
||||
|
||||
RemoteRepositoryConfiguration testRemoteRepo = new RemoteRepositoryConfiguration();
|
||||
testRemoteRepo.setId( TEST_REMOTE_REPO_ID );
|
||||
testRemoteRepo.setLayout( "default" );
|
||||
|
@ -142,24 +143,24 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
proxyConnectors.setTargetRepoId( TEST_REMOTE_REPO_ID );
|
||||
proxyConnectors.setDisabled( false );
|
||||
c.addProxyConnector( proxyConnectors );
|
||||
|
||||
|
||||
List<String> repos = new ArrayList<String>();
|
||||
repos.add( TEST_REPO_ID );
|
||||
repos.add( TEST_SNAP_REPO_ID );
|
||||
|
||||
RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration( );
|
||||
RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration();
|
||||
repoGroup.setId( TEST_REPO_GROUP_ID );
|
||||
repoGroup.setRepositories( repos );
|
||||
c.addRepositoryGroup( repoGroup );
|
||||
|
||||
|
||||
configuration.save( c );
|
||||
|
||||
assertFalse ( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertTrue ( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
|
||||
assertTrue ( c.getManagedRepositories().get( 1 ).isSnapshots() );
|
||||
assertFalse ( c.getManagedRepositories().get( 1 ).isReleases() );
|
||||
|
||||
assertFalse( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertTrue( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
|
||||
assertTrue( c.getManagedRepositories().get( 1 ).isSnapshots() );
|
||||
assertFalse( c.getManagedRepositories().get( 1 ).isReleases() );
|
||||
|
||||
wagonFactory = mock( WagonFactory.class );
|
||||
|
||||
storage.setWagonFactory( wagonFactory );
|
||||
|
@ -176,8 +177,10 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-a",
|
||||
"target/test-repository/com/example/test/test-artifact-module-a" );
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "test-artifact-module-a", "1.0" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"test-artifact-module-a" ).projectVersion( "1.0" );
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
assertEquals( "jar", facet.getPackaging() );
|
||||
|
@ -226,8 +229,10 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-a",
|
||||
"target/test-repository/com/example/test/test-artifact-module-a" );
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "test-artifact-module-a", "1.0" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"test-artifact-module-a" ).projectVersion( "1.0" );
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
assertEquals( "1.0", metadata.getId() );
|
||||
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
|
@ -251,8 +256,11 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-a",
|
||||
"target/test-repository/com/example/test/test-artifact-module-a" );
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-parent", "1.1" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"missing-parent" ).projectVersion( "1.1" );
|
||||
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
|
||||
assertEquals( "1.1", metadata.getId() );
|
||||
|
||||
|
@ -278,9 +286,12 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
"target/test-repositorys/com/example/test/test-snapshot-artifact-module-a" );
|
||||
copyTestArtifactWithParent( "target/test-classes/com/example/test/test-snapshot-artifact-root",
|
||||
"target/test-repositorys/com/example/test/test-snapshot-artifact-root" );
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_SNAP_REPO_ID, "com.example.test", "test-snapshot-artifact-module-a",
|
||||
"1.1-SNAPSHOT" );
|
||||
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().namespace( TEST_SNAP_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"test-snapshot-artifact-module-a" ).projectVersion( "1.1-SNAPSHOT" );
|
||||
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
assertEquals( "jar", facet.getPackaging() );
|
||||
|
@ -319,9 +330,10 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
copyTestArtifactWithParent( "target/test-classes/com/example/test/test-snapshot-artifact-module-a",
|
||||
"target/test-repositorys/com/example/test/test-snapshot-artifact-module-a" );
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_SNAP_REPO_ID, "com.example.test", "test-snapshot-artifact-module-a",
|
||||
"1.1-SNAPSHOT" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_SNAP_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"test-snapshot-artifact-module-a" ).projectVersion( "1.1-SNAPSHOT" );
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
assertEquals( "jar", facet.getPackaging() );
|
||||
|
@ -353,7 +365,7 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
|
||||
deleteTestArtifactWithParent( paths );
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetProjectVersionMetadataWithParentSnapshotVersionAndSnapNotAllowed2()
|
||||
throws Exception
|
||||
|
@ -361,9 +373,11 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-b",
|
||||
"target/test-repository/com/example/test/test-artifact-module-b" );
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "test-artifact-module-b",
|
||||
"1.0" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"test-artifact-module-b" ).projectVersion( "1.0" );
|
||||
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
assertEquals( "jar", facet.getPackaging() );
|
||||
|
@ -413,7 +427,7 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
|
|||
assertNull( dependency.getClassifier() );
|
||||
assertNull( dependency.getSystemPath() );
|
||||
}
|
||||
|
||||
|
||||
private void assertArtifact( ArtifactMetadata artifact, String id, int size, String sha1, String md5 )
|
||||
{
|
||||
assertEquals( id, artifact.getId() );
|
||||
|
|
|
@ -19,12 +19,11 @@ package org.apache.archiva.metadata.repository.storage.maven2;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import org.apache.archiva.configuration.ArchivaConfiguration;
|
||||
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
|
||||
import org.apache.archiva.metadata.repository.filter.AllFilter;
|
||||
import org.apache.archiva.metadata.repository.filter.Filter;
|
||||
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageRuntimeException;
|
||||
import org.apache.archiva.proxy.common.WagonFactory;
|
||||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
|
||||
|
@ -33,16 +32,19 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
@RunWith( ArchivaSpringJUnit4ClassRunner.class )
|
||||
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
|
||||
|
||||
@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
|
||||
@ContextConfiguration ( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
|
||||
public class Maven2RepositoryMetadataResolverManagedReleaseTest
|
||||
extends Maven2RepositoryMetadataResolverTest
|
||||
{
|
||||
private static final Filter<String> ALL = new AllFilter<String>();
|
||||
|
||||
@Inject
|
||||
@Named( value = "repositoryStorage#maven2" )
|
||||
@Named ( value = "repositoryStorage#maven2" )
|
||||
private Maven2RepositoryStorage storage;
|
||||
|
||||
private static final String TEST_REPO_ID = "test";
|
||||
|
@ -79,57 +81,65 @@ public class Maven2RepositoryMetadataResolverManagedReleaseTest
|
|||
|
||||
testRepo.setReleases( true );
|
||||
testRepo.setSnapshots( false );
|
||||
|
||||
|
||||
configuration.save( c );
|
||||
|
||||
assertFalse ( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertTrue ( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
|
||||
assertFalse( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertTrue( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testModelWithJdkProfileActivation()
|
||||
public void testModelWithJdkProfileActivation()
|
||||
throws Exception
|
||||
{
|
||||
// skygo IMHO must fail because TEST_REPO_ID ( is snap ,no release) and we seek for a snapshot
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.maven", "maven-archiver", "2.4.1" );
|
||||
}
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class)
|
||||
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "org.apache.maven" ).projectId(
|
||||
"maven-archiver" ).projectVersion( "2.4.1" );
|
||||
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
}
|
||||
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testGetProjectVersionMetadataForTimestampedSnapshotMissingMetadata()
|
||||
throws Exception
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT" );
|
||||
{
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"missing-metadata" ).projectVersion( "1.0-SNAPSHOT" );
|
||||
storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
}
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class)
|
||||
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testGetProjectVersionMetadataForTimestampedSnapshotMalformedMetadata()
|
||||
throws Exception
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "malformed-metadata",
|
||||
"1.0-SNAPSHOT" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectVersion(
|
||||
"malformed-metadata" ).projectVersion( "1.0-SNAPSHOT" );
|
||||
storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
}
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class)
|
||||
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testGetProjectVersionMetadataForTimestampedSnapshot()
|
||||
throws Exception
|
||||
{
|
||||
super.testGetProjectVersionMetadataForTimestampedSnapshot();
|
||||
}
|
||||
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class)
|
||||
|
||||
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testGetProjectVersionMetadataForTimestampedSnapshotIncompleteMetadata()
|
||||
throws Exception
|
||||
{
|
||||
super.testGetProjectVersionMetadataForTimestampedSnapshotIncompleteMetadata();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -19,14 +19,11 @@ package org.apache.archiva.metadata.repository.storage.maven2;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import org.apache.archiva.configuration.ArchivaConfiguration;
|
||||
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
|
||||
import org.apache.archiva.metadata.repository.filter.AllFilter;
|
||||
import org.apache.archiva.metadata.repository.filter.Filter;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
|
||||
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageRuntimeException;
|
||||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
|
||||
import org.junit.Before;
|
||||
|
@ -34,16 +31,19 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
@RunWith( ArchivaSpringJUnit4ClassRunner.class )
|
||||
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
|
||||
|
||||
@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
|
||||
@ContextConfiguration ( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
|
||||
public class Maven2RepositoryMetadataResolverManagedSnapshotTest
|
||||
extends Maven2RepositoryMetadataResolverTest
|
||||
{
|
||||
private static final Filter<String> ALL = new AllFilter<String>();
|
||||
|
||||
@Inject
|
||||
@Named( value = "repositoryStorage#maven2" )
|
||||
@Named ( value = "repositoryStorage#maven2" )
|
||||
private Maven2RepositoryStorage storage;
|
||||
|
||||
private static final String TEST_REPO_ID = "test";
|
||||
|
@ -79,54 +79,66 @@ public class Maven2RepositoryMetadataResolverManagedSnapshotTest
|
|||
|
||||
testRepo.setReleases( false );
|
||||
testRepo.setSnapshots( true );
|
||||
|
||||
|
||||
configuration.save( c );
|
||||
|
||||
assertTrue ( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertFalse ( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
assertTrue( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertFalse( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
}
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class)
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testModelWithJdkProfileActivation()
|
||||
public void testModelWithJdkProfileActivation()
|
||||
throws Exception
|
||||
{
|
||||
// skygo IMHO must fail because TEST_REPO_ID ( is snap ,no release) and we seek for a snapshot
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.maven", "maven-archiver", "2.4.1" );
|
||||
}
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class )
|
||||
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "org.apache.maven" ).projectId(
|
||||
"maven-archiver" ).projectVersion( "2.4.1" );
|
||||
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
}
|
||||
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testGetProjectVersionMetadataForMislocatedPom()
|
||||
throws Exception
|
||||
throws Exception
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "mislocated-pom", "1.0" );
|
||||
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"mislocated-pom" ).projectVersion( "1.0" );
|
||||
storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testGetProjectVersionMetadata()
|
||||
throws Exception
|
||||
{
|
||||
// super test is on release
|
||||
}
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class )
|
||||
// super test is on release
|
||||
}
|
||||
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testGetProjectVersionMetadataForInvalidPom()
|
||||
throws Exception
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "invalid-pom", "1.0" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"invalid-pom" ).projectVersion( "1.0" );
|
||||
storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
}
|
||||
|
||||
@Test( expected = RepositoryStorageRuntimeException.class )
|
||||
|
||||
@Test ( expected = RepositoryStorageRuntimeException.class )
|
||||
@Override
|
||||
public void testGetProjectVersionMetadataForMissingPom()
|
||||
throws Exception
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-pom", "1.0" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
|
||||
"missing-pom" ).projectVersion( "1.0" );
|
||||
storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.archiva.metadata.repository.storage.maven2;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.archiva.common.utils.FileUtil;
|
||||
import org.apache.archiva.configuration.ArchivaConfiguration;
|
||||
import org.apache.archiva.configuration.Configuration;
|
||||
|
@ -33,9 +34,11 @@ import org.apache.archiva.metadata.model.ProjectVersionMetadata;
|
|||
import org.apache.archiva.metadata.repository.filter.AllFilter;
|
||||
import org.apache.archiva.metadata.repository.filter.ExcludesFilter;
|
||||
import org.apache.archiva.metadata.repository.filter.Filter;
|
||||
import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
|
||||
import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
|
||||
import org.apache.archiva.proxy.common.WagonFactory;
|
||||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.maven.wagon.Wagon;
|
||||
import org.junit.Before;
|
||||
|
@ -53,21 +56,19 @@ import java.util.Collection;
|
|||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith( ArchivaSpringJUnit4ClassRunner.class )
|
||||
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
|
||||
@RunWith (ArchivaSpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration (locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" })
|
||||
public class Maven2RepositoryMetadataResolverTest
|
||||
extends TestCase
|
||||
{
|
||||
private static final Filter<String> ALL = new AllFilter<String>();
|
||||
|
||||
@Inject
|
||||
@Named( value = "repositoryStorage#maven2" )
|
||||
@Named (value = "repositoryStorage#maven2")
|
||||
private Maven2RepositoryStorage storage;
|
||||
|
||||
private static final String TEST_REPO_ID = "test";
|
||||
|
@ -96,9 +97,9 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
private WagonFactory wagonFactory;
|
||||
|
||||
ManagedRepositoryConfiguration testRepo;
|
||||
|
||||
|
||||
Configuration c;
|
||||
|
||||
|
||||
@Before
|
||||
@Override
|
||||
public void setUp()
|
||||
|
@ -113,7 +114,6 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
testRepo.setReleases( true );
|
||||
testRepo.setSnapshots( true );
|
||||
c.addManagedRepository( testRepo );
|
||||
|
||||
|
||||
RemoteRepositoryConfiguration testRemoteRepo = new RemoteRepositoryConfiguration();
|
||||
testRemoteRepo.setId( TEST_REMOTE_REPO_ID );
|
||||
|
@ -131,9 +131,9 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
|
||||
configuration.save( c );
|
||||
|
||||
assertTrue ( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertTrue ( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
|
||||
assertTrue( c.getManagedRepositories().get( 0 ).isSnapshots() );
|
||||
assertTrue( c.getManagedRepositories().get( 0 ).isReleases() );
|
||||
|
||||
wagonFactory = mock( WagonFactory.class );
|
||||
|
||||
storage.setWagonFactory( wagonFactory );
|
||||
|
@ -146,9 +146,10 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
public void testModelWithJdkProfileActivation()
|
||||
throws Exception
|
||||
{
|
||||
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.maven", "maven-archiver", "2.4.1" );
|
||||
ReadMetadataRequest readMetadataRequest =
|
||||
new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "org.apache.maven" ).projectId(
|
||||
"maven-archiver" ).projectVersion( "2.4.1" );
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
}
|
||||
|
||||
|
@ -156,8 +157,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
public void testGetProjectVersionMetadata()
|
||||
throws Exception
|
||||
{
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.archiva", "archiva-common", "1.2.1" );
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "org.apache.archiva", "archiva-common", "1.2.1" ) );
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
assertEquals( "jar", facet.getPackaging() );
|
||||
assertEquals( "http://archiva.apache.org/ref/1.2.1/archiva-base/archiva-common", metadata.getUrl() );
|
||||
|
@ -211,8 +212,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
public void testGetArtifactMetadata()
|
||||
throws Exception
|
||||
{
|
||||
Collection<ArtifactMetadata> springArtifacts =
|
||||
storage.readArtifactsMetadata( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL );
|
||||
Collection<ArtifactMetadata> springArtifacts = storage.readArtifactsMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL ) );
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( springArtifacts );
|
||||
Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
|
||||
{
|
||||
|
@ -253,8 +254,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
public void testGetArtifactMetadataSnapshots()
|
||||
throws Exception
|
||||
{
|
||||
Collection<ArtifactMetadata> testArtifacts =
|
||||
storage.readArtifactsMetadata( TEST_REPO_ID, "com.example.test", "test-artifact", "1.0-SNAPSHOT", ALL );
|
||||
Collection<ArtifactMetadata> testArtifacts = storage.readArtifactsMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "test-artifact", "1.0-SNAPSHOT", ALL ) );
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( testArtifacts );
|
||||
Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
|
||||
{
|
||||
|
@ -336,8 +337,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
public void testGetProjectVersionMetadataForTimestampedSnapshot()
|
||||
throws Exception
|
||||
{
|
||||
ProjectVersionMetadata metadata =
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache", "apache", "5-SNAPSHOT" );
|
||||
ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "org.apache", "apache", "5-SNAPSHOT" ) );
|
||||
MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
|
||||
assertEquals( "pom", facet.getPackaging() );
|
||||
assertEquals( "http://www.apache.org/", metadata.getUrl() );
|
||||
|
@ -376,7 +377,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
{
|
||||
try
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT" );
|
||||
storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT" ) );
|
||||
fail( "Should not be found" );
|
||||
}
|
||||
catch ( RepositoryStorageMetadataNotFoundException e )
|
||||
|
@ -391,8 +393,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
{
|
||||
try
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "malformed-metadata",
|
||||
"1.0-SNAPSHOT" );
|
||||
storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "malformed-metadata", "1.0-SNAPSHOT" ) );
|
||||
fail( "Should not be found" );
|
||||
}
|
||||
catch ( RepositoryStorageMetadataNotFoundException e )
|
||||
|
@ -407,8 +409,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
{
|
||||
try
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "incomplete-metadata",
|
||||
"1.0-SNAPSHOT" );
|
||||
storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "incomplete-metadata", "1.0-SNAPSHOT" ) );
|
||||
fail( "Should not be found" );
|
||||
}
|
||||
catch ( RepositoryStorageMetadataNotFoundException e )
|
||||
|
@ -423,7 +425,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
{
|
||||
try
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "invalid-pom", "1.0" );
|
||||
storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "invalid-pom", "1.0" ) );
|
||||
fail( "Should have received an exception due to invalid POM" );
|
||||
}
|
||||
catch ( RepositoryStorageMetadataInvalidException e )
|
||||
|
@ -438,7 +441,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
{
|
||||
try
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "mislocated-pom", "1.0" );
|
||||
storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "mislocated-pom", "1.0" ) );
|
||||
fail( "Should have received an exception due to mislocated POM" );
|
||||
}
|
||||
catch ( RepositoryStorageMetadataInvalidException e )
|
||||
|
@ -453,7 +457,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
{
|
||||
try
|
||||
{
|
||||
storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-pom", "1.0" );
|
||||
storage.readProjectVersionMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "missing-pom", "1.0" ) );
|
||||
fail( "Should not be found" );
|
||||
}
|
||||
catch ( RepositoryStorageMetadataNotFoundException e )
|
||||
|
@ -551,8 +556,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
public void testGetArtifacts()
|
||||
throws Exception
|
||||
{
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>(
|
||||
storage.readArtifactsMetadata( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL ) );
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( storage.readArtifactsMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL ) ) );
|
||||
assertEquals( 3, artifacts.size() );
|
||||
Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
|
||||
{
|
||||
|
@ -574,8 +579,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
{
|
||||
ExcludesFilter<String> filter =
|
||||
new ExcludesFilter<String>( Collections.singletonList( "plexus-spring-1.2.pom" ) );
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>(
|
||||
storage.readArtifactsMetadata( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", filter ) );
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( storage.readArtifactsMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", filter ) ) );
|
||||
assertEquals( 2, artifacts.size() );
|
||||
Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
|
||||
{
|
||||
|
@ -593,9 +598,8 @@ public class Maven2RepositoryMetadataResolverTest
|
|||
public void testGetArtifactsTimestampedSnapshots()
|
||||
throws Exception
|
||||
{
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>(
|
||||
storage.readArtifactsMetadata( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT",
|
||||
ALL ) );
|
||||
List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( storage.readArtifactsMetadata(
|
||||
new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT", ALL ) ) );
|
||||
assertEquals( 1, artifacts.size() );
|
||||
|
||||
ArtifactMetadata artifact = artifacts.get( 0 );
|
||||
|
|
Loading…
Reference in New Issue