@@ -25,7 +25,7 @@ import org.apache.archiva.consumers.ConsumerException; | |||
import org.apache.archiva.consumers.InvalidRepositoryContentConsumer; | |||
import org.apache.archiva.consumers.KnownRepositoryContentConsumer; | |||
import org.apache.archiva.consumers.RepositoryContentConsumer; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.scanner.RepositoryScanStatistics; | |||
import org.apache.archiva.repository.scanner.RepositoryScanner; | |||
import org.apache.archiva.repository.scanner.RepositoryScannerException; | |||
@@ -36,8 +36,6 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
import java.nio.file.Files; | |||
import java.nio.file.Path; | |||
import java.nio.file.Paths; | |||
import java.util.ArrayList; | |||
import java.util.Arrays; |
@@ -19,6 +19,7 @@ package org.apache.archiva.configuration; | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.components.registry.Registry; | |||
import org.apache.archiva.components.registry.RegistryException; | |||
import org.apache.archiva.components.registry.RegistryListener; | |||
@@ -138,5 +139,11 @@ public interface ArchivaConfiguration | |||
* @return | |||
*/ | |||
public Path getDataDirectory(); | |||
/** | |||
* Return the used configuration registry | |||
* @return | |||
*/ | |||
Registry getRegistry( ); | |||
} | |||
@@ -23,9 +23,8 @@ import org.apache.archiva.configuration.ManagedRepositoryConfiguration; | |||
import org.apache.archiva.configuration.RemoteRepositoryConfiguration; | |||
import org.apache.archiva.configuration.RepositoryGroupConfiguration; | |||
import org.apache.archiva.event.EventHandler; | |||
import org.apache.archiva.event.EventType; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.BasicRemoteRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.remote.BasicRemoteRepository; | |||
import org.apache.archiva.repository.EditableManagedRepository; | |||
import org.apache.archiva.repository.EditableRemoteRepository; | |||
import org.apache.archiva.repository.RepositoryGroup; |
@@ -21,7 +21,7 @@ package $package; | |||
import org.apache.archiva.metadata.repository.MetadataRepository; | |||
import org.apache.archiva.metadata.repository.RepositorySessionFactory; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.RepositoryException; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.junit.Before; |
@@ -4,7 +4,7 @@ import org.apache.archiva.checksum.ChecksumAlgorithm; | |||
import org.apache.archiva.checksum.ChecksummedFile; | |||
import org.apache.archiva.common.utils.PathUtil; | |||
import org.apache.archiva.consumers.KnownRepositoryContentConsumer; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.EditableManagedRepository; | |||
import org.apache.commons.io.FileUtils; | |||
import org.assertj.core.api.Assertions; |
@@ -24,11 +24,9 @@ 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.repository.ManagedRepositoryContent; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.maven.metadata.storage.Maven2RepositoryPathTranslator; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.ReleaseScheme; | |||
import org.apache.archiva.repository.RepositoryContentProvider; | |||
import org.apache.archiva.metadata.audit.RepositoryListener; | |||
@@ -43,7 +41,6 @@ import org.junit.Before; | |||
import org.junit.runner.RunWith; | |||
import org.slf4j.LoggerFactory; | |||
import org.springframework.context.ApplicationContext; | |||
import org.springframework.test.annotation.DirtiesContext; | |||
import org.springframework.test.context.ContextConfiguration; | |||
import javax.inject.Inject; |
@@ -23,8 +23,8 @@ import org.apache.archiva.configuration.ManagedRepositoryConfiguration; | |||
import org.apache.archiva.configuration.RemoteRepositoryConfiguration; | |||
import org.apache.archiva.configuration.RepositoryGroupConfiguration; | |||
import org.apache.archiva.event.EventHandler; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.BasicRemoteRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.remote.BasicRemoteRepository; | |||
import org.apache.archiva.repository.EditableManagedRepository; | |||
import org.apache.archiva.repository.EditableRemoteRepository; | |||
import org.apache.archiva.repository.EditableRepositoryGroup; |
@@ -25,9 +25,9 @@ import org.apache.archiva.configuration.ArchivaConfiguration; | |||
import org.apache.archiva.configuration.FileTypes; | |||
import org.apache.archiva.components.taskqueue.TaskQueueException; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.ReleaseScheme; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.scheduler.ArchivaTaskScheduler; | |||
import org.apache.archiva.scheduler.indexing.ArtifactIndexingTask; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; |
@@ -31,11 +31,10 @@ import org.apache.archiva.configuration.ArchivaConfiguration; | |||
import org.apache.archiva.redback.role.RoleManager; | |||
import org.apache.archiva.redback.users.User; | |||
import org.apache.archiva.redback.users.memory.SimpleUser; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.junit.Before; | |||
import org.junit.BeforeClass; | |||
import org.junit.runner.RunWith; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; |
@@ -26,7 +26,7 @@ import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest; | |||
import org.apache.archiva.metadata.model.facets.AuditEvent; | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.junit.Test; | |||
import javax.inject.Inject; |
@@ -18,8 +18,10 @@ package org.apache.archiva.repository; | |||
*/ | |||
import org.apache.archiva.configuration.Configuration; | |||
import org.apache.archiva.repository.validation.CheckedResult; | |||
import org.apache.archiva.repository.validation.RepositoryChecker; | |||
import org.apache.archiva.repository.validation.RepositoryValidator; | |||
import org.apache.archiva.repository.validation.ValidationResponse; | |||
import java.util.Collection; | |||
import java.util.Map; | |||
@@ -165,6 +167,28 @@ public interface RepositoryHandler<R extends Repository, C> | |||
*/ | |||
RepositoryValidator<R> getValidator( ); | |||
/** | |||
* Validates the set attributes of the given repository instance and returns the validation result. | |||
* The repository registry uses all available validators and applies their validateRepository method to the given | |||
* repository. Validation results will be merged per field. | |||
* | |||
* @param repository the repository to validate against | |||
* @return the result of the validation. | |||
*/ | |||
ValidationResponse<R> validateRepository( R repository); | |||
/** | |||
* Validates the set attributes of the given repository instance for a repository update and returns the validation result. | |||
* The repository registry uses all available validators and applies their validateRepositoryForUpdate method to the given | |||
* repository. Validation results will be merged per field. | |||
* | |||
* @param repository the repository to validate against | |||
* @return the result of the validation. | |||
*/ | |||
ValidationResponse<R> validateRepositoryForUpdate( R repository); | |||
/** | |||
* Returns <code>true</code>, if the repository is registered with the given id, otherwise <code>false</code> | |||
* @param id the repository identifier |
@@ -29,6 +29,7 @@ import org.apache.archiva.indexer.ArchivaIndexManager; | |||
import org.apache.archiva.indexer.IndexUpdateFailedException; | |||
import org.apache.archiva.repository.metadata.MetadataReader; | |||
import org.apache.archiva.repository.storage.StorageAsset; | |||
import org.apache.archiva.repository.validation.CheckedResult; | |||
import org.apache.archiva.repository.validation.ValidationError; | |||
import org.apache.archiva.repository.validation.ValidationResponse; | |||
@@ -17,16 +17,26 @@ package org.apache.archiva.repository.validation; | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.repository.CheckedResult; | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import java.util.ArrayList; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
/** | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
public abstract class AbstractRepositoryValidator<R extends Repository> implements RepositoryValidator<R> | |||
{ | |||
protected RepositoryRegistry repositoryRegistry; | |||
private final String category; | |||
public AbstractRepositoryValidator( String category ) | |||
{ | |||
this.category = category; | |||
} | |||
@Override | |||
public void setRepositoryRegistry( RepositoryRegistry repositoryRegistry ) | |||
@@ -34,6 +44,23 @@ public abstract class AbstractRepositoryValidator<R extends Repository> implemen | |||
this.repositoryRegistry = repositoryRegistry; | |||
} | |||
protected String getCategory() { | |||
return this.category; | |||
} | |||
protected Map<String, List<ValidationError>> appendError( Map<String, List<ValidationError>> errorMap, String attribute, String type, Object... parameter ) | |||
{ | |||
String errorKey = getCategory( ) + "." + attribute + "." + type; | |||
Map<String, List<ValidationError>> result; | |||
result = errorMap == null ? new HashMap<>( ) : errorMap; | |||
ValidationError error = ValidationError.ofKey( errorKey, parameter ); | |||
List<ValidationError> errList = result.computeIfAbsent( error.getAttribute( ), k -> new ArrayList<>( ) ); | |||
errList.add( error ); | |||
return result; | |||
} | |||
protected abstract ValidationResponse<R> apply( R repo, boolean update ); | |||
@Override |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository; | |||
package org.apache.archiva.repository.validation; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -17,6 +17,8 @@ package org.apache.archiva.repository; | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.repository.Repository; | |||
/** | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ |
@@ -0,0 +1,74 @@ | |||
package org.apache.archiva.repository.validation; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
* KIND, either express or implied. See the License for the | |||
* specific language governing permissions and limitations | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.commons.lang3.StringUtils; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
/** | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
public class CombinedValidationResponse<R extends Repository> implements CheckedResult<R, Map<String, List<ValidationError>>> | |||
{ | |||
private final Map<String, List<ValidationError>> errorMap = new HashMap<>( ); | |||
private final R repository; | |||
public CombinedValidationResponse( R repository ) | |||
{ | |||
this.repository = repository; | |||
} | |||
@Override | |||
public R getRepository( ) | |||
{ | |||
return repository; | |||
} | |||
@Override | |||
public boolean isValid( ) | |||
{ | |||
return errorMap.size()==0; | |||
} | |||
@Override | |||
public Map<String, List<ValidationError>> getResult( ) | |||
{ | |||
return errorMap; | |||
} | |||
public void addErrors(String key, List<ValidationError> errorList) { | |||
if ( StringUtils.isNotEmpty( key ) && errorList!=null && errorList.size()>0) { | |||
this.errorMap.put( key, errorList ); | |||
} | |||
} | |||
public void addErrors(Map<String, List<ValidationError>> errorMap) { | |||
if (errorMap!=null) { | |||
errorMap.entrySet( ).stream( ).forEach( e -> addErrors( e.getKey( ), e.getValue( ) ) ); | |||
} | |||
} | |||
public void addResult(CheckedResult<R, Map<String, List<ValidationError>>> result) { | |||
this.addErrors( result.getResult( ) ); | |||
} | |||
} |
@@ -0,0 +1,87 @@ | |||
package org.apache.archiva.repository.validation; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
* KIND, either express or implied. See the License for the | |||
* specific language governing permissions and limitations | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import java.util.List; | |||
import java.util.Map; | |||
/** | |||
* A combined validator cumulates the validation results of multiple validators | |||
* | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
public class CombinedValidator<R extends Repository> | |||
implements RepositoryValidator<R> { | |||
private final List<RepositoryValidator<R>> validatorList; | |||
private final Class<R> flavourClazz; | |||
public CombinedValidator( Class<R> flavourClazz, List<RepositoryValidator<R>> validatorList ) | |||
{ | |||
if (flavourClazz==null) { | |||
throw new IllegalArgumentException( "The flavour class may not be null" ); | |||
} | |||
this.flavourClazz = flavourClazz; | |||
if (validatorList==null) { | |||
throw new IllegalArgumentException( "The validator list may not be null" ); | |||
} | |||
this.validatorList = validatorList; | |||
} | |||
@Override | |||
public CheckedResult<R, Map<String, List<ValidationError>>> apply( R r ) | |||
{ | |||
CombinedValidationResponse<R> response = new CombinedValidationResponse<>( r ); | |||
validatorList.stream( ).forEach( | |||
v -> response.addResult( v.apply( r ) ) | |||
); | |||
return response; | |||
} | |||
@Override | |||
public CheckedResult<R, Map<String, List<ValidationError>>> applyForUpdate( R repo ) | |||
{ | |||
CombinedValidationResponse<R> response = new CombinedValidationResponse<>( repo ); | |||
validatorList.stream( ).forEach( | |||
v -> response.addResult( v.applyForUpdate( repo ) ) | |||
); | |||
return response; | |||
} | |||
@Override | |||
public void setRepositoryRegistry( RepositoryRegistry repositoryRegistry ) | |||
{ | |||
// Not used | |||
} | |||
@Override | |||
public Class<R> getFlavour( ) | |||
{ | |||
return flavourClazz; | |||
} | |||
@Override | |||
public boolean isFlavour( Class<?> clazz ) | |||
{ | |||
return flavourClazz.isAssignableFrom( clazz ); | |||
} | |||
} |
@@ -0,0 +1,38 @@ | |||
package org.apache.archiva.repository.validation; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
* KIND, either express or implied. See the License for the | |||
* specific language governing permissions and limitations | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.components.registry.Registry; | |||
/** | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
public interface ErrorKeys | |||
{ | |||
String ISNULL = "isnull"; | |||
String ISEMPTY = "empty"; | |||
String EXISTS = "exists"; | |||
String MANAGED_REPOSITORY_EXISTS = "managed_repo_exists"; | |||
String REMOTE_REPOSITORY_EXISTS = "remote_repo_exists"; | |||
String REPOSITORY_GROUP_EXISTS = "group_exists"; | |||
String MAX_LENGTH_EXCEEDED = "max_length"; | |||
String INVALID_CHARS = "invalid_chars"; | |||
String BELOW_MIN = "min"; | |||
String INVALID_SCHEDULING_EXPRESSION = "scheduling_exp_invalid"; | |||
String INVALID_LOCATION = "location_invalid"; | |||
} |
@@ -17,11 +17,9 @@ package org.apache.archiva.repository.validation; | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.repository.CheckedResult; | |||
import org.apache.archiva.repository.Repository; | |||
import java.util.function.Function; | |||
import java.util.function.Predicate; | |||
/** | |||
* @author Martin Stockhammer <martin_s@apache.org> |
@@ -33,6 +33,11 @@ import java.util.function.Function; | |||
public interface RepositoryValidator<R extends Repository> extends RepositoryChecker<R, Map<String, List<ValidationError>>>, Comparable<RepositoryValidator<R>> | |||
{ | |||
String REPOSITORY_ID_VALID_EXPRESSION = "^[a-zA-Z0-9._-]+$"; | |||
String REPOSITORY_NAME_VALID_EXPRESSION = "^([a-zA-Z0-9.)/_(-]|\\s)+$"; | |||
String REPOSITORY_LOCATION_VALID_EXPRESSION = "^[-a-zA-Z0-9._/~:?!&=\\\\]+$"; | |||
int DEFAULT_PRIORITY=1000; | |||
/** | |||
@@ -81,5 +86,16 @@ public interface RepositoryValidator<R extends Repository> extends RepositoryChe | |||
Class<R> getFlavour(); | |||
boolean isFlavour(Class<?> clazz); | |||
default boolean isFlavour(Class<?> clazz) { | |||
return getFlavour( ).isAssignableFrom( clazz ); | |||
} | |||
@SuppressWarnings( "unchecked" ) | |||
default <RR extends Repository> RepositoryValidator<RR> narrowTo( Class<RR> clazz ) { | |||
if (isFlavour( clazz )) { | |||
return (RepositoryValidator<RR>) this; | |||
} else { | |||
throw new IllegalArgumentException( "Could not narrow to " + clazz ); | |||
} | |||
} | |||
} |
@@ -17,7 +17,6 @@ package org.apache.archiva.repository.validation; | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.repository.CheckedResult; | |||
import org.apache.archiva.repository.Repository; | |||
import java.util.ArrayList; | |||
@@ -25,7 +24,6 @@ import java.util.Collections; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.function.Function; | |||
/** | |||
* A validation response gives information about the validation status for certain attributes. |
@@ -78,6 +78,10 @@ | |||
<groupId>org.apache.archiva.components.registry</groupId> | |||
<artifactId>archiva-components-spring-registry-api</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.archiva.components</groupId> | |||
<artifactId>archiva-components-spring-quartz</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.cronutils</groupId> | |||
<artifactId>cron-utils</artifactId> |
@@ -38,7 +38,8 @@ import org.apache.archiva.indexer.ArchivaIndexingContext; | |||
import org.apache.archiva.indexer.IndexCreationFailedException; | |||
import org.apache.archiva.indexer.IndexManagerFactory; | |||
import org.apache.archiva.indexer.IndexUpdateFailedException; | |||
import org.apache.archiva.repository.CheckedResult; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.validation.CheckedResult; | |||
import org.apache.archiva.repository.EditableManagedRepository; | |||
import org.apache.archiva.repository.EditableRemoteRepository; | |||
import org.apache.archiva.repository.EditableRepository; | |||
@@ -52,7 +53,6 @@ import org.apache.archiva.repository.RepositoryProvider; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.UnsupportedRepositoryTypeException; | |||
import org.apache.archiva.repository.base.validation.CommonGroupValidator; | |||
import org.apache.archiva.repository.event.LifecycleEvent; | |||
import org.apache.archiva.repository.event.RepositoryEvent; | |||
import org.apache.archiva.repository.event.RepositoryIndexEvent; | |||
@@ -61,7 +61,6 @@ import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.repository.features.StagingRepositoryFeature; | |||
import org.apache.archiva.repository.metadata.MetadataReader; | |||
import org.apache.archiva.repository.storage.StorageAsset; | |||
import org.apache.archiva.repository.validation.RepositoryChecker; | |||
import org.apache.archiva.repository.validation.RepositoryValidator; | |||
import org.apache.archiva.repository.validation.ValidationError; | |||
import org.apache.archiva.repository.validation.ValidationResponse; | |||
@@ -240,7 +239,7 @@ public class ArchivaRepositoryRegistry implements ConfigurationListener, EventHa | |||
} | |||
protected Map<RepositoryType, RepositoryProvider> getRepositoryProviderMap( ) | |||
public Map<RepositoryType, RepositoryProvider> getRepositoryProviderMap( ) | |||
{ | |||
Map<RepositoryType, RepositoryProvider> map = new HashMap<>( ); | |||
if ( repositoryProviders != null ) | |||
@@ -256,7 +255,7 @@ public class ArchivaRepositoryRegistry implements ConfigurationListener, EventHa | |||
return map; | |||
} | |||
protected RepositoryProvider getProvider( RepositoryType type ) throws RepositoryException | |||
public RepositoryProvider getProvider( RepositoryType type ) throws RepositoryException | |||
{ | |||
return repositoryProviders.stream( ).filter( repositoryProvider -> repositoryProvider.provides( ).contains( type ) ).findFirst( ).orElseThrow( ( ) -> new RepositoryException( "Repository type cannot be handled: " + type ) ); | |||
} |
@@ -72,7 +72,7 @@ public class ConfigurationHandler | |||
archivaConfiguration.save( configuration, "" ); | |||
} | |||
ReentrantReadWriteLock getLock() { | |||
public ReentrantReadWriteLock getLock() { | |||
return lock; | |||
} | |||
} |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository.base; | |||
package org.apache.archiva.repository.base.group; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.repository.base; | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
@@ -23,6 +22,7 @@ import org.apache.archiva.repository.EditableRepositoryGroup; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.RepositoryCapabilities; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.base.AbstractRepository; | |||
import org.apache.archiva.repository.storage.RepositoryStorage; | |||
import org.apache.commons.collections4.map.ListOrderedMap; | |||
@@ -38,7 +38,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; | |||
public class AbstractRepositoryGroup extends AbstractRepository implements EditableRepositoryGroup | |||
{ | |||
private ListOrderedMap<String, ManagedRepository> repositories = new ListOrderedMap<>(); | |||
private final ListOrderedMap<String, ManagedRepository> repositories = new ListOrderedMap<>(); | |||
private int mergedIndexTTL; | |||
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository.base.validation; | |||
package org.apache.archiva.repository.base.group; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -17,7 +17,6 @@ package org.apache.archiva.repository.base.validation; | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.RepositoryGroup; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.base.ConfigurationHandler; | |||
@@ -28,13 +27,13 @@ import org.apache.archiva.repository.validation.ValidationResponse; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.springframework.stereotype.Service; | |||
import java.util.ArrayList; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.regex.Matcher; | |||
import java.util.regex.Pattern; | |||
import static org.apache.archiva.repository.validation.ErrorKeys.*; | |||
/** | |||
* | |||
* A validator for repository groups. All validation errors are prefixed with category 'repository_group'. | |||
@@ -42,54 +41,47 @@ import java.util.regex.Pattern; | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
@Service( "repositoryValidator#common#group" ) | |||
public class CommonGroupValidator extends AbstractRepositoryValidator<RepositoryGroup> implements RepositoryValidator<RepositoryGroup> | |||
public class BasicRepositoryGroupValidator extends AbstractRepositoryValidator<RepositoryGroup> implements RepositoryValidator<RepositoryGroup> | |||
{ | |||
private static final Pattern REPO_GROUP_ID_PATTERN = Pattern.compile( "[A-Za-z0-9\\._\\-]+" ); | |||
private static final String CATEGORY = "repository_group"; | |||
private static final Pattern REPO_GROUP_ID_PATTERN = Pattern.compile( "[A-Za-z0-9._\\-]+" ); | |||
private final ConfigurationHandler configurationHandler; | |||
private RepositoryRegistry repositoryRegistry; | |||
public CommonGroupValidator( ConfigurationHandler configurationHandler ) | |||
public BasicRepositoryGroupValidator( ConfigurationHandler configurationHandler ) | |||
{ | |||
super( CATEGORY ); | |||
this.configurationHandler = configurationHandler; | |||
} | |||
private Map<String, List<ValidationError>> appendError( Map<String, List<ValidationError>> errorMap, String errorKey, Object... parameter ) | |||
{ | |||
Map<String, List<ValidationError>> result; | |||
result = errorMap == null ? new HashMap<>( ) : errorMap; | |||
ValidationError error = ValidationError.ofKey( errorKey, parameter ); | |||
List<ValidationError> errList = result.computeIfAbsent( error.getAttribute( ), k -> new ArrayList<ValidationError>( ) ); | |||
errList.add( error ); | |||
return result; | |||
} | |||
public ValidationResponse apply( RepositoryGroup repositoryGroup, boolean updateMode ) throws IllegalArgumentException | |||
@Override | |||
public ValidationResponse<RepositoryGroup> apply( RepositoryGroup repositoryGroup, boolean updateMode ) throws IllegalArgumentException | |||
{ | |||
final String repoGroupId = repositoryGroup.getId( ); | |||
Map<String, List<ValidationError>> errors = null; | |||
if ( StringUtils.isBlank( repoGroupId ) ) | |||
{ | |||
errors = appendError( errors, "repository_group.id.empty" ); | |||
errors = appendError( null, "id", ISEMPTY ); | |||
} | |||
if ( repoGroupId.length( ) > 100 ) | |||
{ | |||
errors = appendError( errors, "repository_group.id.max_length", repoGroupId, Integer.toString( 100 ) ); | |||
errors = appendError( errors, "id", MAX_LENGTH_EXCEEDED, repoGroupId, Integer.toString( 100 ) ); | |||
} | |||
Matcher matcher = REPO_GROUP_ID_PATTERN.matcher( repoGroupId ); | |||
if ( !matcher.matches( ) ) | |||
{ | |||
errors = appendError( errors, "repository_group.id.invalid_chars", "alphanumeric, '.', '-','_'" ); | |||
errors = appendError( errors, "id", INVALID_CHARS, repoGroupId, new String[]{"alphanumeric, '.', '-','_'"} ); | |||
} | |||
if ( repositoryGroup.getMergedIndexTTL( ) <= 0 ) | |||
{ | |||
errors = appendError( errors, "repository_group.merged_index_ttl.min", "0" ); | |||
errors = appendError( errors, "merged_index_ttl",BELOW_MIN, "0" ); | |||
} | |||
@@ -97,18 +89,18 @@ public class CommonGroupValidator extends AbstractRepositoryValidator<Repository | |||
{ | |||
if ( repositoryRegistry.hasRepositoryGroup( repoGroupId ) ) | |||
{ | |||
errors = appendError( errors, "repository_group.id.group_exists", repoGroupId ); | |||
errors = appendError( errors, "id", REPOSITORY_GROUP_EXISTS, repoGroupId ); | |||
} | |||
else if ( repositoryRegistry.hasManagedRepository( repoGroupId ) ) | |||
{ | |||
errors = appendError( errors, "repository_group.id.managed_exists" ); | |||
errors = appendError( errors, "id", MANAGED_REPOSITORY_EXISTS ); | |||
} | |||
else if ( repositoryRegistry.hasRemoteRepository( repoGroupId ) ) | |||
{ | |||
errors = appendError( errors, "repository_group.id.remote_exists" ); | |||
errors = appendError( errors, "id", REMOTE_REPOSITORY_EXISTS ); | |||
} | |||
} | |||
return new ValidationResponse(repositoryGroup, errors ); | |||
return new ValidationResponse<>(repositoryGroup, errors ); | |||
} | |||
@@ -136,9 +128,4 @@ public class CommonGroupValidator extends AbstractRepositoryValidator<Repository | |||
return RepositoryGroup.class; | |||
} | |||
@Override | |||
public boolean isFlavour( Class<?> clazz ) | |||
{ | |||
return RepositoryGroup.class.isAssignableFrom( clazz ); | |||
} | |||
} |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository.base; | |||
package org.apache.archiva.repository.base.group; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -20,13 +20,15 @@ package org.apache.archiva.repository.base; | |||
import org.apache.archiva.components.registry.RegistryException; | |||
import org.apache.archiva.configuration.Configuration; | |||
import org.apache.archiva.configuration.IndeterminateConfigurationException; | |||
import org.apache.archiva.configuration.ManagedRepositoryConfiguration; | |||
import org.apache.archiva.configuration.RepositoryGroupConfiguration; | |||
import org.apache.archiva.indexer.merger.MergedRemoteIndexesScheduler; | |||
import org.apache.archiva.repository.CheckedResult; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.ConfigurationHandler; | |||
import org.apache.archiva.repository.validation.CheckedResult; | |||
import org.apache.archiva.repository.EditableRepository; | |||
import org.apache.archiva.repository.EditableRepositoryGroup; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.RepositoryException; | |||
import org.apache.archiva.repository.RepositoryGroup; | |||
import org.apache.archiva.repository.RepositoryHandler; | |||
@@ -35,8 +37,10 @@ import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.event.RepositoryEvent; | |||
import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.repository.storage.StorageAsset; | |||
import org.apache.archiva.repository.validation.CombinedValidator; | |||
import org.apache.archiva.repository.validation.RepositoryChecker; | |||
import org.apache.archiva.repository.validation.RepositoryValidator; | |||
import org.apache.archiva.repository.validation.ValidationResponse; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
@@ -90,13 +94,24 @@ public class RepositoryGroupHandler implements RepositoryHandler<RepositoryGroup | |||
public RepositoryGroupHandler( ArchivaRepositoryRegistry repositoryRegistry, | |||
ConfigurationHandler configurationHandler, | |||
@Named( "mergedRemoteIndexesScheduler#default" ) MergedRemoteIndexesScheduler mergedRemoteIndexesScheduler, | |||
@Named( "repositoryValidator#common#group") RepositoryValidator<RepositoryGroup> repositoryGroupValidator | |||
List<RepositoryValidator<? extends Repository>> repositoryGroupValidatorList | |||
) | |||
{ | |||
this.configurationHandler = configurationHandler; | |||
this.mergedRemoteIndexesScheduler = mergedRemoteIndexesScheduler; | |||
this.repositoryRegistry = repositoryRegistry; | |||
this.validator = repositoryGroupValidator; | |||
List<RepositoryValidator<RepositoryGroup>> validatorList = initValidators( repositoryGroupValidatorList ); | |||
this.validator = new CombinedValidator<>( RepositoryGroup.class, validatorList ); | |||
} | |||
private List<RepositoryValidator<RepositoryGroup>> initValidators(List<RepositoryValidator<? extends Repository>> repositoryGroupValidatorList) { | |||
if (repositoryGroupValidatorList!=null && repositoryGroupValidatorList.size()>0) { | |||
return repositoryGroupValidatorList.stream( ).filter( | |||
v -> v.isFlavour( RepositoryGroup.class ) | |||
).map( v -> v.narrowTo( RepositoryGroup.class ) ).collect( Collectors.toList( ) ); | |||
} else { | |||
return Collections.emptyList( ); | |||
} | |||
} | |||
@Override | |||
@@ -565,6 +580,18 @@ public class RepositoryGroupHandler implements RepositoryHandler<RepositoryGroup | |||
return this.validator; | |||
} | |||
@Override | |||
public ValidationResponse<RepositoryGroup> validateRepository( RepositoryGroup repository ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ValidationResponse<RepositoryGroup> validateRepositoryForUpdate( RepositoryGroup repository ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public boolean has( String id ) | |||
{ |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository.base; | |||
package org.apache.archiva.repository.base.managed; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.repository.base; | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
@@ -24,6 +23,7 @@ import org.apache.archiva.repository.EditableManagedRepository; | |||
import org.apache.archiva.repository.ManagedRepositoryContent; | |||
import org.apache.archiva.repository.ReleaseScheme; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.base.AbstractRepository; | |||
import org.apache.archiva.repository.storage.RepositoryStorage; | |||
import java.util.Collections; |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository.base; | |||
package org.apache.archiva.repository.base.managed; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.repository.base; | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
@@ -26,7 +25,6 @@ import org.apache.archiva.repository.RepositoryCapabilities; | |||
import org.apache.archiva.repository.RepositoryRequestInfo; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.StandardCapabilities; | |||
import org.apache.archiva.repository.storage.StorageAsset; | |||
import org.apache.archiva.repository.storage.fs.FilesystemStorage; | |||
import org.apache.archiva.repository.storage.RepositoryStorage; | |||
import org.apache.archiva.repository.features.ArtifactCleanupFeature; |
@@ -0,0 +1,149 @@ | |||
package org.apache.archiva.repository.base.managed; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
* KIND, either express or implied. See the License for the | |||
* specific language governing permissions and limitations | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.components.registry.Registry; | |||
import org.apache.archiva.repository.base.ConfigurationHandler; | |||
import org.apache.archiva.repository.validation.AbstractRepositoryValidator; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.validation.RepositoryValidator; | |||
import org.apache.archiva.repository.validation.ValidationError; | |||
import org.apache.archiva.repository.validation.ValidationResponse; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.springframework.stereotype.Service; | |||
import org.apache.archiva.components.scheduler.CronExpressionValidator; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.regex.Pattern; | |||
import static org.apache.archiva.repository.validation.ErrorKeys.*; | |||
/** | |||
* Validator for managed repository data. | |||
* | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
@Service( "repositoryValidator#common#managed" ) | |||
public class BasicManagedRepositoryValidator extends AbstractRepositoryValidator<ManagedRepository> implements RepositoryValidator<ManagedRepository> | |||
{ | |||
RepositoryRegistry repositoryRegistry; | |||
private static final String CATEGORY = "managed_repository"; | |||
private static final Pattern REPOSITORY_ID_VALID_EXPRESSION_PATTERN = Pattern.compile( REPOSITORY_ID_VALID_EXPRESSION ); | |||
private static final Pattern REPOSITORY_NAME_VALID_EXPRESSION_PATTERN = Pattern.compile( REPOSITORY_NAME_VALID_EXPRESSION ); | |||
private static final Pattern REPOSITORY_LOCATION_VALID_EXPRESSION_PATTERN = Pattern.compile( REPOSITORY_LOCATION_VALID_EXPRESSION ); | |||
private final ConfigurationHandler configurationHandler; | |||
public BasicManagedRepositoryValidator( ConfigurationHandler configurationHandler) | |||
{ | |||
super( CATEGORY ); | |||
this.configurationHandler = configurationHandler; | |||
} | |||
@Override | |||
public ValidationResponse<ManagedRepository> apply( ManagedRepository managedRepository, boolean update ) | |||
{ | |||
Map<String, List<ValidationError>> errors = null; | |||
if (managedRepository==null) { | |||
errors = appendError( errors, "id", ISNULL ); | |||
} | |||
final String repoId = managedRepository.getId( ); | |||
if ( StringUtils.isBlank( repoId ) ) { | |||
errors = appendError( errors, "id", ISEMPTY ); | |||
} | |||
if (!update) | |||
{ | |||
if ( repositoryRegistry.hasManagedRepository( managedRepository.getId( ) ) ) | |||
{ | |||
errors = appendError( errors, "id", MANAGED_REPOSITORY_EXISTS, repoId ); | |||
} | |||
else if ( repositoryRegistry.hasRemoteRepository( repoId ) ) | |||
{ | |||
errors = appendError( errors, "id", REMOTE_REPOSITORY_EXISTS, repoId ); | |||
} | |||
else if ( repositoryRegistry.hasRepositoryGroup( repoId ) ) | |||
{ | |||
errors = appendError( errors, "id", REPOSITORY_GROUP_EXISTS, repoId ); | |||
} | |||
} | |||
if ( !REPOSITORY_ID_VALID_EXPRESSION_PATTERN.matcher( repoId ).matches( ) ) | |||
{ | |||
errors = appendError( errors, "id", INVALID_CHARS, repoId, new String[]{"alphanumeric", "_", ".", "-"} ); | |||
} | |||
if ( StringUtils.isBlank( managedRepository.getName() ) ) | |||
{ | |||
errors = appendError( errors, "name", ISEMPTY ); | |||
} | |||
if ( !REPOSITORY_NAME_VALID_EXPRESSION_PATTERN.matcher( managedRepository.getName() ).matches( ) ) | |||
{ | |||
errors = appendError( errors, "name", INVALID_CHARS, managedRepository.getName( ), new String[]{"alphanumeric", "whitespace", "/", "(", ")", "_", ".", "-"} ); | |||
} | |||
String cronExpression = managedRepository.getSchedulingDefinition( ); | |||
if ( StringUtils.isNotBlank( cronExpression ) ) | |||
{ | |||
CronExpressionValidator validator = new CronExpressionValidator( ); | |||
if ( !validator.validate( cronExpression ) ) | |||
{ | |||
errors = appendError( errors, "scheduling_definition", INVALID_SCHEDULING_EXPRESSION, cronExpression ); | |||
} | |||
} | |||
// Cron expression may be empty | |||
String repoLocation = interpolateVars( managedRepository.getLocation( ).toString() ); | |||
if ( !REPOSITORY_LOCATION_VALID_EXPRESSION_PATTERN.matcher( repoLocation ).matches() ) | |||
{ | |||
errors = appendError( errors, "location", INVALID_LOCATION, repoLocation, new String[]{"alphanumeric", "=", "?", "!", "&", "/", "\\", "_", ".", ":", "~", "-"} ); | |||
} | |||
return new ValidationResponse<>( managedRepository, errors ); | |||
} | |||
public String interpolateVars( String directory ) | |||
{ | |||
Registry registry = configurationHandler.getArchivaConfiguration( ).getRegistry( ); | |||
String value = StringUtils.replace( directory, "${appserver.base}", | |||
registry.getString( "appserver.base", "${appserver.base}" ) ); | |||
value = StringUtils.replace( value, "${appserver.home}", | |||
registry.getString( "appserver.home", "${appserver.home}" ) ); | |||
return value; | |||
} | |||
@Override | |||
public void setRepositoryRegistry( RepositoryRegistry repositoryRegistry ) | |||
{ | |||
this.repositoryRegistry = repositoryRegistry; | |||
} | |||
@Override | |||
public Class<ManagedRepository> getFlavour( ) | |||
{ | |||
return ManagedRepository.class; | |||
} | |||
} |
@@ -0,0 +1,165 @@ | |||
package org.apache.archiva.repository.base.managed; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
* KIND, either express or implied. See the License for the | |||
* specific language governing permissions and limitations | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.configuration.Configuration; | |||
import org.apache.archiva.configuration.ManagedRepositoryConfiguration; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.ConfigurationHandler; | |||
import org.apache.archiva.repository.validation.CheckedResult; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.RepositoryException; | |||
import org.apache.archiva.repository.RepositoryHandler; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.validation.RepositoryChecker; | |||
import org.apache.archiva.repository.validation.RepositoryValidator; | |||
import org.apache.archiva.repository.validation.ValidationResponse; | |||
import javax.inject.Named; | |||
import java.util.Collection; | |||
import java.util.Map; | |||
/** | |||
* Handler implementation for managed repositories. | |||
* | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
public class ManagedRepositoryHandler | |||
implements RepositoryHandler<ManagedRepository, ManagedRepositoryConfiguration> | |||
{ | |||
public ManagedRepositoryHandler( ArchivaRepositoryRegistry repositoryRegistry, | |||
ConfigurationHandler configurationHandler, | |||
@Named( "repositoryValidator#common#managed") RepositoryValidator<ManagedRepository> managedRepositoryValidator ) | |||
{ | |||
} | |||
@Override | |||
public Map<String, ManagedRepository> newInstancesFromConfig( ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ManagedRepository newInstance( RepositoryType type, String id ) throws RepositoryException | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ManagedRepository newInstance( ManagedRepositoryConfiguration repositoryConfiguration ) throws RepositoryException | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ManagedRepository put( ManagedRepository repository ) throws RepositoryException | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ManagedRepository put( ManagedRepositoryConfiguration repositoryConfiguration ) throws RepositoryException | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ManagedRepository put( ManagedRepositoryConfiguration repositoryConfiguration, Configuration configuration ) throws RepositoryException | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public <D> CheckedResult<ManagedRepository, D> putWithCheck( ManagedRepositoryConfiguration repositoryConfiguration, RepositoryChecker<ManagedRepository, D> checker ) throws RepositoryException | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public void remove( String id ) throws RepositoryException | |||
{ | |||
} | |||
@Override | |||
public void remove( String id, Configuration configuration ) throws RepositoryException | |||
{ | |||
} | |||
@Override | |||
public ManagedRepository get( String id ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ManagedRepository clone( ManagedRepository repo ) throws RepositoryException | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public void updateReferences( ManagedRepository repo, ManagedRepositoryConfiguration repositoryConfiguration ) throws RepositoryException | |||
{ | |||
} | |||
@Override | |||
public Collection<ManagedRepository> getAll( ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public RepositoryValidator<ManagedRepository> getValidator( ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ValidationResponse<ManagedRepository> validateRepository( ManagedRepository repository ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public ValidationResponse<ManagedRepository> validateRepositoryForUpdate( ManagedRepository repository ) | |||
{ | |||
return null; | |||
} | |||
@Override | |||
public boolean has( String id ) | |||
{ | |||
return false; | |||
} | |||
@Override | |||
public void init( ) | |||
{ | |||
} | |||
@Override | |||
public void close( ) | |||
{ | |||
} | |||
} |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository.base; | |||
package org.apache.archiva.repository.base.remote; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.repository.base; | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
@@ -24,6 +23,7 @@ import org.apache.archiva.repository.EditableRemoteRepository; | |||
import org.apache.archiva.repository.RemoteRepositoryContent; | |||
import org.apache.archiva.repository.RepositoryCredentials; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.base.AbstractRepository; | |||
import org.apache.archiva.repository.storage.RepositoryStorage; | |||
import java.net.URI; |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.repository.base; | |||
package org.apache.archiva.repository.base.remote; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.repository.base; | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
@@ -30,6 +30,9 @@ import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.RepositoryException; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.remote.BasicRemoteRepository; | |||
import org.junit.jupiter.api.AfterAll; | |||
import org.junit.jupiter.api.AfterEach; | |||
import org.junit.jupiter.api.BeforeAll; |
@@ -0,0 +1,48 @@ | |||
package org.apache.archiva.repository.base.group; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* Unless required by applicable law or agreed to in writing, | |||
* software distributed under the License is distributed on an | |||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |||
* KIND, either express or implied. See the License for the | |||
* specific language governing permissions and limitations | |||
* under the License. | |||
*/ | |||
import org.junit.jupiter.api.Test; | |||
/** | |||
* @author Martin Stockhammer <martin_s@apache.org> | |||
*/ | |||
class BasicManagedRepositoryValidatorTest | |||
{ | |||
@Test | |||
void apply( ) | |||
{ | |||
} | |||
@Test | |||
void applyForUpdate( ) | |||
{ | |||
} | |||
@Test | |||
void getFlavour( ) | |||
{ | |||
} | |||
@Test | |||
void isFlavour( ) | |||
{ | |||
} | |||
} |
@@ -30,8 +30,8 @@ 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.StagingRepositoryFeature; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.BasicRemoteRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.remote.BasicRemoteRepository; | |||
import org.apache.archiva.repository.base.PasswordCredentials; | |||
import org.springframework.stereotype.Service; | |||
@@ -23,8 +23,8 @@ import junit.framework.TestCase; | |||
import org.apache.archiva.configuration.ArchivaConfiguration; | |||
import org.apache.archiva.consumers.InvalidRepositoryContentConsumer; | |||
import org.apache.archiva.consumers.KnownRepositoryContentConsumer; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.BasicRemoteRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.remote.BasicRemoteRepository; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.RemoteRepository; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; |
@@ -24,8 +24,8 @@ import org.apache.archiva.common.filelock.DefaultFileLockManager; | |||
import org.apache.archiva.common.filelock.FileLockManager; | |||
import org.apache.archiva.consumers.InvalidRepositoryContentConsumer; | |||
import org.apache.archiva.consumers.KnownRepositoryContentConsumer; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.BasicRemoteRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.remote.BasicRemoteRepository; | |||
import org.apache.archiva.repository.EditableManagedRepository; | |||
import org.apache.archiva.repository.EditableRemoteRepository; | |||
import org.apache.archiva.repository.ManagedRepository; |
@@ -24,7 +24,7 @@ import org.apache.archiva.indexer.ArchivaIndexingContext; | |||
import org.apache.archiva.indexer.IndexCreationFailedException; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.repository.features.RemoteIndexFeature; | |||
import org.apache.archiva.repository.maven.MavenManagedRepository; |
@@ -31,8 +31,7 @@ import org.apache.archiva.indexer.search.SearchResults; | |||
import org.apache.archiva.proxy.ProxyRegistry; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.base.ConfigurationHandler; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.apache.commons.lang3.SystemUtils; |
@@ -23,7 +23,7 @@ import org.apache.archiva.indexer.search.SearchFields; | |||
import org.apache.archiva.indexer.search.SearchResultHit; | |||
import org.apache.archiva.indexer.search.SearchResults; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.easymock.EasyMock; | |||
import org.junit.After; | |||
import org.junit.Test; |
@@ -24,12 +24,11 @@ import org.apache.archiva.indexer.search.SearchResultLimits; | |||
import org.apache.archiva.indexer.search.SearchResults; | |||
import org.apache.archiva.indexer.util.SearchUtil; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.junit.After; | |||
import org.junit.Test; | |||
import org.junit.runner.RunWith; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.test.context.ContextConfiguration; | |||
import javax.inject.Inject; |
@@ -24,7 +24,7 @@ import org.apache.archiva.configuration.*; | |||
import org.apache.archiva.policies.*; | |||
import org.apache.archiva.proxy.model.RepositoryProxyHandler; | |||
import org.apache.archiva.repository.*; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.storage.StorageAsset; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.apache.maven.wagon.Wagon; |
@@ -34,7 +34,7 @@ import org.apache.archiva.repository.content.BaseRepositoryContentLayout; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.ManagedRepositoryContent; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.content.Artifact; | |||
import org.apache.archiva.repository.storage.StorageAsset; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; |
@@ -205,4 +205,10 @@ public class MockConfiguration | |||
return getAppServerBaseDir().resolve("data"); | |||
} | |||
} | |||
@Override | |||
public Registry getRegistry( ) | |||
{ | |||
return null; | |||
} | |||
} |
@@ -23,8 +23,8 @@ import org.apache.archiva.configuration.ManagedRepositoryConfiguration; | |||
import org.apache.archiva.configuration.RemoteRepositoryConfiguration; | |||
import org.apache.archiva.configuration.RepositoryGroupConfiguration; | |||
import org.apache.archiva.event.EventHandler; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.BasicRemoteRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.remote.BasicRemoteRepository; | |||
import org.apache.archiva.repository.EditableManagedRepository; | |||
import org.apache.archiva.repository.EditableRemoteRepository; | |||
import org.apache.archiva.repository.EditableRepositoryGroup; |
@@ -28,7 +28,7 @@ import org.apache.archiva.repository.RepositoryRequestInfo; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.StandardCapabilities; | |||
import org.apache.archiva.repository.UnsupportedFeatureException; | |||
import org.apache.archiva.repository.base.AbstractManagedRepository; | |||
import org.apache.archiva.repository.base.managed.AbstractManagedRepository; | |||
import org.apache.archiva.repository.features.ArtifactCleanupFeature; | |||
import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.repository.features.RepositoryFeature; |
@@ -8,7 +8,7 @@ import org.apache.archiva.repository.RepositoryCapabilities; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.StandardCapabilities; | |||
import org.apache.archiva.repository.UnsupportedFeatureException; | |||
import org.apache.archiva.repository.base.AbstractRemoteRepository; | |||
import org.apache.archiva.repository.base.remote.AbstractRemoteRepository; | |||
import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.repository.features.RemoteIndexFeature; | |||
import org.apache.archiva.repository.features.RepositoryFeature; |
@@ -26,7 +26,7 @@ import org.apache.archiva.repository.ReleaseScheme; | |||
import org.apache.archiva.repository.RepositoryCapabilities; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.StandardCapabilities; | |||
import org.apache.archiva.repository.base.AbstractRepositoryGroup; | |||
import org.apache.archiva.repository.base.group.AbstractRepositoryGroup; | |||
import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.repository.storage.fs.FilesystemStorage; | |||
import org.slf4j.Logger; |
@@ -41,7 +41,7 @@ import org.apache.archiva.repository.RepositoryGroup; | |||
import org.apache.archiva.repository.RepositoryProvider; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.UnsupportedURIException; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.PasswordCredentials; | |||
import org.apache.archiva.repository.event.RepositoryEvent; | |||
import org.apache.archiva.repository.features.ArtifactCleanupFeature; |
@@ -201,7 +201,11 @@ public class MockConfiguration | |||
} | |||
} | |||
@Override | |||
public Registry getRegistry( ) | |||
{ | |||
return null; | |||
} | |||
} |
@@ -18,6 +18,7 @@ package org.apache.archiva.repository.maven.mock.configuration; | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.components.registry.Registry; | |||
import org.apache.archiva.components.registry.RegistryException; | |||
import org.apache.archiva.components.registry.RegistryListener; | |||
import org.apache.archiva.configuration.ArchivaConfiguration; | |||
@@ -149,4 +150,10 @@ public class StubConfiguration | |||
} | |||
} | |||
@Override | |||
public Registry getRegistry( ) | |||
{ | |||
return null; | |||
} | |||
} |
@@ -1,5 +1,6 @@ | |||
package org.apache.archiva.repository.maven.mock.configuration; | |||
import org.apache.archiva.components.registry.Registry; | |||
import org.apache.archiva.components.registry.RegistryException; | |||
import org.apache.archiva.components.registry.RegistryListener; | |||
import org.apache.archiva.configuration.ArchivaConfiguration; | |||
@@ -138,4 +139,10 @@ public class TestConfiguration | |||
return getAppServerBaseDir().resolve("data"); | |||
} | |||
} | |||
@Override | |||
public Registry getRegistry( ) | |||
{ | |||
return null; | |||
} | |||
} |
@@ -23,10 +23,10 @@ import junit.framework.TestCase; | |||
import org.apache.archiva.indexer.ArchivaIndexingContext; | |||
import org.apache.archiva.indexer.UnsupportedBaseContextException; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.ReleaseScheme; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.storage.StorageAsset; | |||
import org.apache.archiva.repository.features.IndexCreationFeature; | |||
import org.apache.archiva.scheduler.indexing.ArtifactIndexingTask; |
@@ -29,7 +29,7 @@ import org.apache.archiva.mock.MockRepositorySessionFactory; | |||
import org.apache.archiva.components.taskqueue.execution.TaskExecutor; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.scheduler.repository.model.RepositoryTask; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.junit.After; |
@@ -47,7 +47,7 @@ import org.apache.archiva.redback.system.SecuritySystem; | |||
import org.apache.archiva.redback.users.User; | |||
import org.apache.archiva.redback.users.UserManagerException; | |||
import org.apache.archiva.redback.users.UserNotFoundException; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.content.BaseRepositoryContentLayout; | |||
import org.apache.archiva.repository.content.ContentNotFoundException; | |||
import org.apache.archiva.repository.content.LayoutException; |
@@ -34,19 +34,15 @@ package org.apache.archiva.rest.services.v2;/* | |||
* under the License. | |||
*/ | |||
import org.apache.archiva.components.registry.RegistryException; | |||
import org.apache.archiva.components.rest.model.PagedResult; | |||
import org.apache.archiva.components.rest.util.QueryHelper; | |||
import org.apache.archiva.configuration.Configuration; | |||
import org.apache.archiva.configuration.IndeterminateConfigurationException; | |||
import org.apache.archiva.configuration.RepositoryGroupConfiguration; | |||
import org.apache.archiva.repository.CheckedResult; | |||
import org.apache.archiva.repository.validation.CheckedResult; | |||
import org.apache.archiva.repository.EditableRepositoryGroup; | |||
import org.apache.archiva.repository.RepositoryException; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.base.ConfigurationHandler; | |||
import org.apache.archiva.repository.validation.ValidationError; | |||
import org.apache.archiva.repository.validation.ValidationResponse; | |||
import org.apache.archiva.rest.api.model.v2.MergeConfiguration; | |||
import org.apache.archiva.rest.api.model.v2.RepositoryGroup; | |||
import org.apache.archiva.rest.api.services.v2.ArchivaRestServiceException; |
@@ -28,7 +28,7 @@ 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.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.Repository; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.storage.fs.FilesystemStorage; |
@@ -23,7 +23,7 @@ package org.apache.archiva.web.rss; | |||
import junit.framework.TestCase; | |||
import org.apache.archiva.common.filelock.DefaultFileLockManager; | |||
import org.apache.archiva.configuration.ArchivaConfiguration; | |||
import org.apache.archiva.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.repository.storage.fs.FilesystemStorage; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; |
@@ -30,7 +30,7 @@ import org.apache.archiva.indexer.ArchivaIndexingContext; | |||
import org.apache.archiva.repository.base.ArchivaRepositoryRegistry; | |||
import org.apache.archiva.repository.ManagedRepository; | |||
import org.apache.archiva.repository.RepositoryType; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.apache.archiva.webdav.httpunit.MkColMethodWebRequest; | |||
import org.apache.commons.io.FileUtils; |
@@ -34,7 +34,7 @@ import org.apache.archiva.configuration.FileTypes; | |||
import org.apache.archiva.configuration.RepositoryGroupConfiguration; | |||
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator; | |||
import org.apache.archiva.repository.ManagedRepositoryContent; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.maven.content.MavenContentHelper; | |||
import org.apache.archiva.repository.maven.metadata.storage.ArtifactMappingProvider; | |||
import org.apache.archiva.proxy.ProxyRegistry; |
@@ -35,7 +35,7 @@ import org.apache.archiva.redback.users.User; | |||
import org.apache.archiva.redback.users.memory.SimpleUser; | |||
import org.apache.archiva.repository.RepositoryRegistry; | |||
import org.apache.archiva.metadata.audit.TestAuditListener; | |||
import org.apache.archiva.repository.base.RepositoryGroupHandler; | |||
import org.apache.archiva.repository.base.group.RepositoryGroupHandler; | |||
import org.apache.archiva.security.ServletAuthenticator; | |||
import org.apache.archiva.security.common.ArchivaRoleConstants; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; |
@@ -28,7 +28,7 @@ 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.repository.base.BasicManagedRepository; | |||
import org.apache.archiva.repository.base.managed.BasicManagedRepository; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.junit.Before; | |||
import org.junit.Test; |