Using the new repository interfaces where necessary.
@Override
- public String getFilePath( String requestPath, ManagedRepository managedRepository )
+ public String getFilePath( String requestPath, org.apache.archiva.repository.ManagedRepository managedRepository )
{
// managedRepository can be null
// extract artifact reference from url
* under the License.
*/
-import org.apache.archiva.admin.model.beans.ManagedRepository;
+import org.apache.archiva.common.utils.PathUtil;
import org.apache.archiva.configuration.FileTypes;
import org.apache.archiva.metadata.repository.storage.maven2.DefaultArtifactMappingProvider;
import org.apache.archiva.model.ArchivaArtifact;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.IOException;
+import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* ManagedDefaultRepositoryContent
*/
-@Service ("managedRepositoryContent#default")
+@Service ("managedRepositoryContent#maven")
@Scope ("prototype")
public class ManagedDefaultRepositoryContent
extends AbstractDefaultRepositoryContent
@Named ( "fileTypes" )
private FileTypes filetypes;
- private ManagedRepository repository;
+ private org.apache.archiva.repository.ManagedRepository repository;
public ManagedDefaultRepositoryContent()
{
throws ContentNotFoundException
{
Path artifactFile = toFile( reference );
- Path repoBase = Paths.get(repository.getLocation()).toAbsolutePath();
+ Path repoBase = PathUtil.getPathFromUri(repository.getLocation()).toAbsolutePath();
Path repoDir = artifactFile.getParent().toAbsolutePath();
if ( !Files.exists(repoDir))
@Override
public String getRepoRoot()
{
- return repository.getLocation();
+ return convertUriToPath( repository.getLocation() );
+ }
+
+ private String convertUriToPath( URI uri ) {
+ if (uri.getScheme()==null) {
+ return Paths.get(uri.getPath()).toString();
+ } else if ("file".equals(uri.getScheme())) {
+ return Paths.get(uri).toString();
+ } else {
+ return uri.toString();
+ }
}
@Override
- public ManagedRepository getRepository()
+ public org.apache.archiva.repository.ManagedRepository getRepository()
{
return repository;
}
path = path.substring( 0, idx );
}
- Path repoDir = Paths.get( repository.getLocation(), path );
+ Path repoDir = PathUtil.getPathFromUri( repository.getLocation() ).resolve( path );
if ( !Files.exists(repoDir) )
{
path = path.substring( 0, idx );
}
- Path repoBase = Paths.get(repository.getLocation());
+ Path repoBase = PathUtil.getPathFromUri(repository.getLocation());
Path repoDir = repoBase.resolve( path );
if ( !Files.exists(repoDir) )
}
@Override
- public void setRepository( ManagedRepository repository )
+ public void setRepository( org.apache.archiva.repository.ManagedRepository repository )
{
this.repository = repository;
}
public ArtifactReference toArtifactReference( String path )
throws LayoutException
{
- if ( ( path != null ) && path.startsWith( repository.getLocation() ) && repository.getLocation().length() > 0 )
+ String repoPath = convertUriToPath( repository.getLocation() );
+ if ( ( path != null ) && path.startsWith( repoPath ) && repoPath.length() > 0 )
{
- return super.toArtifactReference( path.substring( repository.getLocation().length() + 1 ) );
+ return super.toArtifactReference( path.substring( repoPath.length() + 1 ) );
}
return super.toArtifactReference( path );
@Override
public Path toFile( ArtifactReference reference )
{
- return Paths.get( repository.getLocation(), toPath( reference ) );
+ return PathUtil.getPathFromUri( repository.getLocation()).resolve( toPath( reference ) );
}
@Override
public Path toFile( ArchivaArtifact reference )
{
- return Paths.get( repository.getLocation(), toPath( reference ) );
+ return PathUtil.getPathFromUri( repository.getLocation()).resolve( toPath( reference ) );
}
/**
path = path.substring( 0, idx );
}
- Path repoBase = Paths.get(repository.getLocation()).toAbsolutePath();
+ Path repoBase = PathUtil.getPathFromUri(repository.getLocation()).toAbsolutePath();
Path repoDir = repoBase.resolve( path );
if ( !Files.exists(repoDir) )
* under the License.
*/
-import org.apache.archiva.admin.model.beans.RemoteRepository;
import org.apache.archiva.model.ArtifactReference;
import org.apache.archiva.model.RepositoryURL;
+import org.apache.archiva.repository.RemoteRepository;
import org.apache.archiva.repository.RemoteRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
import org.springframework.context.annotation.Scope;
/**
* RemoteDefaultRepositoryContent
- *
- *
*/
-@Service( "remoteRepositoryContent#default" )
+@Service( "remoteRepositoryContent#maven" )
@Scope( "prototype" )
public class RemoteDefaultRepositoryContent
extends AbstractDefaultRepositoryContent
private RemoteRepository repository;
@Override
- public String getId()
+ public String getId( )
{
- return repository.getId();
+ return repository.getId( );
}
@Override
- public RemoteRepository getRepository()
+ public RemoteRepository getRepository( )
{
return repository;
}
@Override
- public RepositoryURL getURL()
+ public RepositoryURL getURL( )
{
- return new RepositoryURL( repository.getUrl() );
+ try
+ {
+ return new RepositoryURL( repository.getLocation( ).toString( ) );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Could not convert location url {}", repository.getLocation( ) );
+ return new RepositoryURL( "" );
+ }
}
@Override
public ArtifactReference toArtifactReference( String path )
throws LayoutException
{
- if ( ( path != null ) && path.startsWith( repository.getUrl() ) )
+
+ if ( ( path != null ) && repository.getLocation()!=null && path.startsWith( repository.getLocation().toString() ) )
{
- return super.toArtifactReference( path.substring( repository.getUrl().length() ) );
+ return super.toArtifactReference( path.substring( repository.getLocation().toString().length( ) ) );
}
return super.toArtifactReference( path );
@Override
public RepositoryURL toURL( ArtifactReference reference )
{
- String url = repository.getUrl() + toPath( reference );
+ String url = repository.getLocation( ) + toPath( reference );
return new RepositoryURL( url );
}
}
* under the License.
*/
+import org.apache.archiva.common.utils.PathUtil;
import org.apache.archiva.repository.AbstractManagedRepository;
import org.apache.archiva.repository.ReleaseScheme;
import org.apache.archiva.repository.RepositoryCapabilities;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RepositoryFeature;
import org.apache.archiva.repository.features.StagingRepositoryFeature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.Collections;
import java.util.HashSet;
import java.util.Locale;
*/
public class MavenManagedRepository extends AbstractManagedRepository
{
+
+ private static final Logger log = LoggerFactory.getLogger( MavenManagedRepository.class );
+
public static final String DEFAULT_LAYOUT = "default";
public static final String LEGACY_LAYOUT = "legacy";
private ArtifactCleanupFeature artifactCleanupFeature = new ArtifactCleanupFeature( );
{
return indexCreationFeature.hasIndex();
}
+
+ @Override
+ public void setLocation( URI location )
+ {
+ super.setLocation( location );
+ Path newLoc = PathUtil.getPathFromUri( location );
+ if (!Files.exists( newLoc )) {
+ try
+ {
+ Files.createDirectories( newLoc );
+ }
+ catch ( IOException e )
+ {
+ log.error("Could not create directory {}",location, e);
+ }
+ }
+ }
}
import org.apache.archiva.repository.RepositoryType;
import org.apache.archiva.repository.StandardCapabilities;
import org.apache.archiva.repository.UnsupportedFeatureException;
-import org.apache.archiva.repository.features.ArtifactCleanupFeature;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RemoteIndexFeature;
import org.apache.archiva.repository.features.RepositoryFeature;
-import org.apache.archiva.repository.features.StagingRepositoryFeature;
import java.util.Locale;
* under the License.
*/
+import org.apache.archiva.common.utils.PathUtil;
import org.apache.archiva.configuration.AbstractRepositoryConfiguration;
import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
private URI getURIFromString( String uriStr) throws RepositoryException {
URI uri;
try {
+ if (StringUtils.isEmpty( uriStr )) {
+ return new URI("");
+ }
if (uriStr.startsWith("/")) {
// only absolute paths are prepended with file scheme
uri = new URI("file://"+uriStr);
throw new RepositoryException( "The config entry "+uriStr+" cannot be converted to URI." );
}
}
+ log.debug("Setting location uri: {}", uri);
return uri;
}
throw new RepositoryException( "The location entry is not a valid uri: "+cfg.getLocation() );
}
setBaseConfig( repo, cfg );
- Path repoDir = Paths.get(repo.getAbsoluteLocation());
+ Path repoDir = PathUtil.getPathFromUri(repo.getAbsoluteLocation());
if (!Files.exists(repoDir)) {
+ log.debug("Creating repo directory {}", repoDir);
try
{
Files.createDirectories( repoDir );
IndexCreationFeature indexCreationFeature = repo.getFeature( IndexCreationFeature.class ).get( );
indexCreationFeature.setSkipPackedIndexCreation( cfg.isSkipPackedIndexCreation() );
indexCreationFeature.setIndexPath( getURIFromString( cfg.getIndexDir() ) );
+ Path indexPath;
+ if (indexCreationFeature.getIndexPath().getScheme()==null) {
+ indexPath = Paths.get(indexCreationFeature.getIndexPath().getPath());
+ } else {
+ indexPath = Paths.get(indexCreationFeature.getIndexPath());
+ }
+ Path absoluteIndexPath;
+ if (indexPath.isAbsolute()) {
+ absoluteIndexPath = indexPath;
+ } else {
+ absoluteIndexPath = PathUtil.getPathFromUri( repo.getLocation()).resolve(indexCreationFeature.getIndexPath().getPath());
+ }
+ try
+ {
+ Files.createDirectories( absoluteIndexPath );
+ }
+ catch ( IOException e )
+ {
+ log.error("Could not create index directory {}", absoluteIndexPath);
+ throw new RepositoryException( "Could not create index directory "+absoluteIndexPath );
+ }
ArtifactCleanupFeature artifactCleanupFeature = repo.getFeature( ArtifactCleanupFeature.class ).get();
artifactCleanupFeature.setDeleteReleasedSnapshots( cfg.isDeleteReleasedSnapshots() );
artifactCleanupFeature.setRetentionCount( cfg.getRetentionCount() );
- artifactCleanupFeature.setRetentionTime( Period.ofDays( cfg.getRetentionTime() ) );
+ artifactCleanupFeature.setRetentionPeriod( Period.ofDays( cfg.getRetentionPeriod() ) );
}
@Override
public ManagedRepository createStagingInstance( ManagedRepositoryConfiguration baseConfiguration ) throws RepositoryException
{
+ log.debug("Creating staging instance for {}", baseConfiguration.getId());
return createManagedInstance( getStageRepoConfig( baseConfiguration ) );
}
return repo;
}
+ private String convertUriToPath(URI uri) {
+ if (uri.getScheme()==null) {
+ return uri.getPath();
+ } else if ("file".equals(uri.getScheme())) {
+ return Paths.get(uri).toString();
+ } else {
+ return uri.toString();
+ }
+ }
+
@Override
public void updateRemoteInstance( EditableRemoteRepository repo, RemoteRepositoryConfiguration cfg ) throws RepositoryException
{
}
repo.setExtraHeaders( cfg.getExtraHeaders() );
repo.setExtraParameters( cfg.getExtraParameters() );
- PasswordCredentials credentials = new PasswordCredentials();
+ PasswordCredentials credentials = new PasswordCredentials("", new char[0]);
if (cfg.getPassword()!=null && cfg.getUsername()!=null)
{
credentials.setPassword( cfg.getPassword( ).toCharArray( ) );
cfg.setRefreshCronExpression( remoteRepository.getSchedulingDefinition() );
IndexCreationFeature indexCreationFeature = remoteRepository.getFeature( IndexCreationFeature.class ).get();
- cfg.setIndexDir( indexCreationFeature.getIndexPath().toString());
+ cfg.setIndexDir( convertUriToPath( indexCreationFeature.getIndexPath()));
RemoteIndexFeature remoteIndexFeature = remoteRepository.getFeature( RemoteIndexFeature.class ).get();
cfg.setRemoteIndexUrl( remoteIndexFeature.getIndexUri().toString() );
cfg.setId( managedRepository.getId() );
cfg.setName( managedRepository.getName() );
cfg.setDescription( managedRepository.getDescription() );
- cfg.setLocation( managedRepository.getLocation().toString() );
+ cfg.setLocation( convertUriToPath( managedRepository.getLocation() ) );
cfg.setLayout( managedRepository.getLayout() );
cfg.setRefreshCronExpression( managedRepository.getSchedulingDefinition() );
cfg.setScanned( managedRepository.isScanned() );
cfg.setBlockRedeployments( managedRepository.blocksRedeployments() );
StagingRepositoryFeature stagingRepositoryFeature = managedRepository.getFeature( StagingRepositoryFeature.class ).get();
cfg.setStageRepoNeeded(stagingRepositoryFeature.isStageRepoNeeded());
-
-
IndexCreationFeature indexCreationFeature = managedRepository.getFeature( IndexCreationFeature.class ).get();
- cfg.setIndexDir( indexCreationFeature.getIndexPath().toString());
+ cfg.setIndexDir(convertUriToPath( indexCreationFeature.getIndexPath() ));
cfg.setSkipPackedIndexCreation( indexCreationFeature.isSkipPackedIndexCreation() );
ArtifactCleanupFeature artifactCleanupFeature = managedRepository.getFeature( ArtifactCleanupFeature.class ).get();
cfg.setRetentionCount( artifactCleanupFeature.getRetentionCount());
- cfg.setRetentionTime( artifactCleanupFeature.getRetentionTime().getDays() );
+ cfg.setRetentionPeriod( artifactCleanupFeature.getRetentionPeriod().getDays() );
cfg.setDeleteReleasedSnapshots(artifactCleanupFeature.isDeleteReleasedSnapshots());
if (managedRepository.getActiveReleaseSchemes().contains( ReleaseScheme.RELEASE )) {
stagingRepository.setLayout( repository.getLayout() );
stagingRepository.setName( repository.getName() + StagingRepositoryFeature.STAGING_REPO_POSTFIX );
stagingRepository.setBlockRedeployments( repository.isBlockRedeployments() );
- stagingRepository.setRetentionTime( repository.getRetentionTime() );
+ stagingRepository.setRetentionPeriod( repository.getRetentionPeriod() );
stagingRepository.setDeleteReleasedSnapshots( repository.isDeleteReleasedSnapshots() );
+ stagingRepository.setStageRepoNeeded( false );
String path = repository.getLocation();
int lastIndex = path.replace( '\\', '/' ).lastIndexOf( '/' );
if ( StringUtils.isNotBlank( repository.getIndexDir() ) )
{
- Path indexDir = Paths.get( repository.getIndexDir() );
- // in case of absolute dir do not use the same
- if ( indexDir.isAbsolute() )
+ Path indexDir = null;
+ try
{
- stagingRepository.setIndexDir( stagingRepository.getLocation() + "/.index" );
+ indexDir = Paths.get( new URI(repository.getIndexDir().startsWith( "file://" ) ? repository.getIndexDir() : "file://"+repository.getIndexDir()) );
+ if ( indexDir.isAbsolute() )
+ {
+ Path newDir = Paths.get(new URI(stagingRepository.getLocation().startsWith( "file://" ) ? stagingRepository.getLocation() : "file://"+stagingRepository.getLocation())).resolve(".index");
+ log.debug("Changing index directory {} -> {}", indexDir, newDir);
+ stagingRepository.setIndexDir( newDir.toString() );
+ }
+ else
+ {
+ log.debug("Keeping index directory {}", repository.getIndexDir());
+ stagingRepository.setIndexDir( repository.getIndexDir() );
+ }
}
- else
+ catch ( URISyntaxException e )
{
- stagingRepository.setIndexDir( repository.getIndexDir() );
+ log.error("Could not parse index path as uri {}", repository.getIndexDir());
+ stagingRepository.setIndexDir( "" );
}
+ // in case of absolute dir do not use the same
}
stagingRepository.setRefreshCronExpression( repository.getRefreshCronExpression() );
stagingRepository.setReleases( repository.isReleases() );
}
private void setBaseConfig( EditableRepository repo, AbstractRepositoryConfiguration cfg) throws RepositoryException {
- final String baseUriStr = archivaConfiguration.getConfiguration().getArchivaRuntimeConfiguration().getRepositoryBaseDirectory();
+ String baseUriStr = archivaConfiguration.getConfiguration().getArchivaRuntimeConfiguration().getRepositoryBaseDirectory();
+ if (baseUriStr==null) {
+ baseUriStr = Paths.get(System.getProperty( "appserver.base" )).resolve("repositories").normalize().toString();
+ }
try
{
URI baseUri = new URI(baseUriStr);
log.error("Could not set base URI {}: {}", baseUriStr, e.getMessage(), e);
throw new RepositoryException( "Could not set base URI "+ baseUriStr);
}
+ repo.setName( repo.getPrimaryLocale(), cfg.getName() );
repo.setDescription( repo.getPrimaryLocale(), cfg.getDescription() );
repo.setLayout( cfg.getLayout() );
-
}
public ArchivaConfiguration getArchivaConfiguration( )
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
/**
for ( RemoteRepositoryConfiguration repositoryConfiguration : archivaConfiguration.getConfiguration().getRemoteRepositories() )
{
RemoteRepository remoteRepository =
- new RemoteRepository( repositoryConfiguration.getId(), repositoryConfiguration.getName(),
+ new RemoteRepository( Locale.getDefault(), repositoryConfiguration.getId(), repositoryConfiguration.getName(),
repositoryConfiguration.getUrl(), repositoryConfiguration.getLayout(),
repositoryConfiguration.getUsername(), repositoryConfiguration.getPassword(),
repositoryConfiguration.getTimeout() );
{
if ( StringUtils.equals( repositoryId, repoConfig.getId() ) )
{
- return new ManagedRepository( repoConfig.getId(), repoConfig.getName(), repoConfig.getLocation(),
+ return new ManagedRepository( Locale.getDefault(), repoConfig.getId(), repoConfig.getName(), repoConfig.getLocation(),
repoConfig.getLayout(), repoConfig.isSnapshots(), repoConfig.isReleases(),
repoConfig.isBlockRedeployments(), repoConfig.getRefreshCronExpression(),
repoConfig.getIndexDir(), repoConfig.isScanned(),
- repoConfig.getRetentionTime(), repoConfig.getRetentionCount(),
+ repoConfig.getRetentionPeriod(), repoConfig.getRetentionCount(),
repoConfig.isDeleteReleasedSnapshots(), false );
}
}
return null; //To change body of implemented methods use File | Settings | File Templates.
}
+ @Override
+ public IndexingContext createIndexContext( org.apache.archiva.repository.ManagedRepository repository ) throws RepositoryAdminException
+ {
+ return null;
+ }
+
@Override
public List<ProxyConnector> getProxyConnectors()
throws RepositoryAdminException
import org.apache.archiva.redback.components.registry.RegistryListener;
import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Locale;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
{
// no op
}
+
+ @Override
+ public Locale getDefaultLocale( )
+ {
+ return Locale.getDefault();
+ }
+
+ @Override
+ public List<Locale.LanguageRange> getLanguagePriorities( )
+ {
+ return Locale.LanguageRange.parse("en,fr,de");
+ }
}
* under the License.
*/
-import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.common.utils.VersionComparator;
import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.FileType;
import org.apache.archiva.model.ArtifactReference;
import org.apache.archiva.model.ProjectReference;
import org.apache.archiva.model.VersionedReference;
+import org.apache.archiva.repository.EditableManagedRepository;
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
+import org.apache.archiva.repository.maven2.MavenManagedRepository;
import org.junit.Before;
import org.junit.Test;
import javax.inject.Named;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
{
Path repoDir = Paths.get( "src/test/repositories/default-repository" );
- ManagedRepository repository = createRepository( "testRepo", "Unit Test Repo", repoDir );
+ MavenManagedRepository repository = createRepository( "testRepo", "Unit Test Repo", repoDir );
FileType fileType = archivaConfiguration.getConfiguration().getRepositoryScanning().getFileTypes().get( 0 );
fileType.addPattern( "**/*.xml" );
// Use the test metadata-repository, which is already setup for
// These kind of version tests.
Path repoDir = Paths.get( "src/test/repositories/metadata-repository" );
- repoContent.getRepository().setLocation( repoDir.toAbsolutePath().toString() );
+ (( EditableManagedRepository)repoContent.getRepository()).setLocation( repoDir.toAbsolutePath().toUri() );
// Request the versions.
Set<String> testedVersionSet = repoContent.getVersions( reference );
// Use the test metadata-repository, which is already setup for
// These kind of version tests.
Path repoDir = Paths.get( "src/test/repositories/metadata-repository" );
- repoContent.getRepository().setLocation( repoDir.toAbsolutePath().toString() );
+ ((EditableManagedRepository)repoContent.getRepository()).setLocation( repoDir.toAbsolutePath().toUri() );
// Request the versions.
Set<String> testedVersionSet = repoContent.getVersions( reference );
* under the License.
*/
-import org.apache.archiva.admin.model.beans.RemoteRepository;
import org.apache.archiva.model.ArtifactReference;
+import org.apache.archiva.repository.RemoteRepository;
import org.apache.archiva.repository.RemoteRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
import org.junit.Before;
import org.springframework.stereotype.Service;
import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
import java.util.Set;
import static org.easymock.EasyMock.createNiceControl;
{
// no op
}
+
+ @Override
+ public Locale getDefaultLocale( )
+ {
+ return Locale.getDefault();
+ }
+
+ @Override
+ public List<Locale.LanguageRange> getLanguagePriorities( )
+ {
+ return Locale.LanguageRange.parse( "en,fr,de" );
+ }
}
import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.admin.model.beans.RemoteRepository;
+import org.apache.archiva.repository.maven2.MavenManagedRepository;
+import org.apache.archiva.repository.maven2.MavenRemoteRepository;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.junit.Rule;
import org.junit.rules.TestName;
import org.springframework.test.context.ContextConfiguration;
import javax.inject.Inject;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.nio.file.Path;
+import java.util.Locale;
/**
* AbstractRepositoryLayerTestCase
@Inject
protected ApplicationContext applicationContext;
- protected ManagedRepository createRepository( String id, String name, Path location )
+ protected MavenManagedRepository createRepository( String id, String name, Path location )
{
- ManagedRepository repo = new ManagedRepository();
- repo.setId( id );
- repo.setName( name );
- repo.setLocation( location.toAbsolutePath().toString() );
+ MavenManagedRepository repo = new MavenManagedRepository( id, name);
+ repo.setLocation( location.toAbsolutePath().toUri() );
return repo;
}
- protected RemoteRepository createRemoteRepository( String id, String name, String url )
+ protected MavenRemoteRepository createRemoteRepository( String id, String name, String url ) throws URISyntaxException
{
- RemoteRepository repo = new RemoteRepository();
- repo.setId( id );
- repo.setName( name );
- repo.setUrl( url );
+ MavenRemoteRepository repo = new MavenRemoteRepository(id, name);
+ repo.setLocation( new URI( url ) );
return repo;
}
String layout )
throws Exception
{
- ManagedRepository repo = new ManagedRepository();
- repo.setId( id );
- repo.setName( name );
- repo.setLocation( location.toAbsolutePath().toString() );
+ MavenManagedRepository repo = new MavenManagedRepository( id, name );
+ repo.setLocation( location.toAbsolutePath().toUri() );
repo.setLayout( layout );
ManagedRepositoryContent repoContent =
protected RemoteRepositoryContent createRemoteRepositoryContent( String id, String name, String url, String layout )
throws Exception
{
- RemoteRepository repo = new RemoteRepository();
- repo.setId( id );
- repo.setName( name );
- repo.setUrl( url );
+ MavenRemoteRepository repo = new MavenRemoteRepository(id, name);
+ repo.setLocation( new URI( url ) );
repo.setLayout( layout );
RemoteRepositoryContent repoContent =
* under the License.
*/
-import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.common.utils.FileUtils;
import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.model.ArtifactReference;
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
+import org.apache.archiva.repository.maven2.MavenManagedRepository;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.apache.commons.lang.StringUtils;
import org.junit.Before;
String layout )
throws Exception
{
- ManagedRepository repo = new ManagedRepository();
- repo.setId( id );
- repo.setName( name );
- repo.setLocation( location.toAbsolutePath().toString() );
+ MavenManagedRepository repo = new MavenManagedRepository( id, name);
+ repo.setLocation( location.toAbsolutePath().toUri() );
repo.setLayout( layout );
ManagedRepositoryContent repoContent =
*/
import org.apache.archiva.common.utils.FileUtils;
-import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.ArchivaRuntimeConfiguration;
-import org.apache.archiva.configuration.Configuration;
-import org.apache.archiva.configuration.ConfigurationListener;
-import org.apache.archiva.configuration.DefaultArchivaConfiguration;
-import org.apache.archiva.configuration.IndeterminateConfigurationException;
import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
import org.apache.archiva.metadata.repository.storage.maven2.conf.MockConfiguration;
-import org.apache.archiva.redback.components.registry.RegistryException;
-import org.apache.archiva.redback.components.registry.RegistryListener;
import org.apache.archiva.repository.ManagedRepository;
import org.apache.archiva.repository.PasswordCredentials;
import org.apache.archiva.repository.ReleaseScheme;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RemoteIndexFeature;
import org.apache.archiva.repository.features.StagingRepositoryFeature;
-import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.sonatype.aether.util.layout.RepositoryLayout;
-import org.springframework.test.context.ContextConfiguration;
-import javax.inject.Inject;
-import javax.inject.Named;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.time.Period;
import java.time.temporal.ChronoUnit;
-import java.time.temporal.TemporalUnit;
import java.util.HashMap;
import java.util.Map;
repo.setId("testm001");
repo.setName("Managed Test Repo 001");
repo.setDescription( "This is a managed test" );
- repo.setRetentionTime( 37 );
+ repo.setRetentionPeriod( 37 );
repoLocation = Files.createTempDirectory( "test-repo-001");
repo.setLocation( repoLocation.toAbsolutePath().toString() );
repo.setSnapshots( true );
assertEquals("4 0 0 ? * TUE", mr.getSchedulingDefinition());
assertTrue(mr.isScanned());
ArtifactCleanupFeature artifactCleanupFeature = mr.getFeature( ArtifactCleanupFeature.class ).get();
- assertEquals( Period.ofDays( 37), artifactCleanupFeature.getRetentionTime());
+ assertEquals( Period.ofDays( 37), artifactCleanupFeature.getRetentionPeriod());
assertTrue(artifactCleanupFeature.isDeleteReleasedSnapshots());
assertEquals(33, artifactCleanupFeature.getRetentionCount());
public void getManagedConfiguration() throws Exception {
MavenManagedRepository repo = new MavenManagedRepository( "test01", "My Test repo" );
- repo.setLocation( new URI("https://this.is/a/test") );
+ repo.setLocation( new URI("file:///this.is/a/test") );
repo.setScanned( true );
repo.setDescription( repo.getPrimaryLocale(), "This is a description" );
repo.setLayout( "maven2" );
indexCreationFeature.setIndexPath( new URI("test/.indexes") );
indexCreationFeature.setSkipPackedIndexCreation( true );
ArtifactCleanupFeature artifactCleanupFeature = repo.getFeature( ArtifactCleanupFeature.class ).get();
- artifactCleanupFeature.setRetentionTime( Period.ofDays( 5 ) );
+ artifactCleanupFeature.setRetentionPeriod( Period.ofDays( 5 ) );
artifactCleanupFeature.setRetentionCount( 7 );
artifactCleanupFeature.setDeleteReleasedSnapshots( true );
ManagedRepositoryConfiguration cfg = provider.getManagedConfiguration( repo );
- assertEquals("https://this.is/a/test", cfg.getLocation());
+ assertEquals("/this.is/a/test", cfg.getLocation());
assertTrue(cfg.isScanned());
assertEquals( "This is a description", cfg.getDescription() );
assertEquals("maven2", cfg.getLayout());
assertTrue(cfg.isStageRepoNeeded());
assertEquals("test/.indexes", cfg.getIndexDir());
assertTrue(cfg.isSkipPackedIndexCreation());
- assertEquals(5, cfg.getRetentionTime());
+ assertEquals(5, cfg.getRetentionPeriod());
assertEquals(7, cfg.getRetentionCount());
assertTrue(cfg.isDeleteReleasedSnapshots());
assertTrue(cfg.isReleases());
import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
+import org.apache.archiva.repository.maven2.MavenManagedRepository;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.junit.Assert;
import org.junit.Test;
import javax.inject.Inject;
import javax.inject.Named;
+import java.util.Locale;
/**
* @author Olivier Lamy
{
String href = "/repository/internal/org/apache/maven/someartifact.jar";
Assert.assertEquals( "/org/apache/maven/someartifact.jar",
- repositoryStorage.getFilePath( href, new ManagedRepository() ) );
+ repositoryStorage.getFilePath( href, new MavenManagedRepository( "repo01", "repo01") ) );
href = "repository/internal/org/apache/maven/someartifact.jar";
Assert.assertEquals( "/org/apache/maven/someartifact.jar",
- repositoryStorage.getFilePath( href, new ManagedRepository() ) );
+ repositoryStorage.getFilePath( href, new MavenManagedRepository( "repo01", "repo01" ) ) );
href = "repository/internal/org/apache/maven/";
- Assert.assertEquals( "/org/apache/maven/", repositoryStorage.getFilePath( href, new ManagedRepository() ) );
+ Assert.assertEquals( "/org/apache/maven/", repositoryStorage.getFilePath( href, new MavenManagedRepository("repo01", "repo01") ) );
href = "mypath";
- Assert.assertEquals( "/", repositoryStorage.getFilePath( href, new ManagedRepository() ) );
+ Assert.assertEquals( "/", repositoryStorage.getFilePath( href, new MavenManagedRepository("repo01", "repo01") ) );
}
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.RemoteRepositoryContent;
import org.apache.archiva.repository.layout.LayoutException;
+import org.apache.archiva.repository.maven2.MavenManagedRepository;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.custommonkey.xmlunit.DetailedDiff;
reference.setArtifactId( artifactId );
reference.setVersion( version );
- ManagedRepository repo =
+ MavenManagedRepository repo =
createRepository( "test-repo", "Test Repository: " + name.getMethodName(), repoRootDir );
ManagedRepositoryContent repoContent =
applicationContext.getBean( "managedRepositoryContent#default", ManagedRepositoryContent.class );
Files.createDirectories(repoRoot);
- ManagedRepository repoConfig =
+ MavenManagedRepository repoConfig =
createRepository( "test-repo", "Test Repository: " + name.getMethodName(), repoRoot );
ManagedRepositoryContent repoContent =
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config/>
- <context:component-scan base-package="org.apache.archiva.metadata.repository.storage.maven2.conf"/>
+ <context:component-scan base-package="org.apache.archiva.metadata.repository.storage.maven2.conf,org.apache.archiva.repository.content.maven2"/>
+
+ <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" />
+ <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" />
+
</beans>
\ No newline at end of file
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:property-placeholder system-properties-mode="OVERRIDE"/>
+ <context:component-scan base-package="org.apache.archiva.repository.content.maven2" />
<bean name="archivaConfiguration#repo-request-test" class="org.apache.archiva.configuration.DefaultArchivaConfiguration">
<property name="registry" ref="registry#configured"/>
</bean>
<alias name="archivaConfiguration#repo-request-test" alias="archivaConfiguration#default"/>
<alias name="archivaConfiguration#repo-request-test" alias="archivaConfiguration"/>
+ <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" />
+ <alias name="remoteRepositoryContent#maven" alias="remoteRepositoryContent#default" />
+
+
<bean name="registry#configured" class="org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry">
<property name="properties">
<value>
default-lazy-init="true">
<context:annotation-config/>
- <context:component-scan base-package="org.apache.archiva.configuration,org.apache.archiva.metadata.repository"/>
+ <context:component-scan base-package="org.apache.archiva.configuration,org.apache.archiva.metadata.repository,org.apache.archiva.repository.content.maven2"/>
+
+
<alias name="archivaConfiguration#test" alias="archivaConfiguration#default"/>
<alias name="archivaConfiguration#test" alias="archivaConfiguration"/>
+ <alias name="managedRepositoryContent#maven" alias="managedRepositoryContent#default" />
<alias name="metadataResolver#test" alias="metadataResolver#default"/>
</beans>
\ No newline at end of file