This is an automated email from the ASF dual-hosted git repository. martin_s pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/archiva.git
commit bf219edd1656cc03dc35d9e4379890d2c2124459 Author: Martin Stockhammer <[email protected]> AuthorDate: Fri Jul 2 19:59:13 2021 +0200 Refactoring of repository classes --- .../java/org/apache/archiva/cli/ArchivaCli.java | 4 +- .../configuration/ArchivaConfiguration.java | 7 + .../src/test/java/RepositoryProviderMock.java | 5 +- .../src/test/java/SimpleArtifactConsumerTest.java | 2 +- .../core/ArtifactMissingChecksumsConsumerTest.java | 2 +- .../repository/AbstractRepositoryPurgeTest.java | 7 +- .../repository/mock/RepositoryProviderMock.java | 4 +- .../consumers/lucene/NexusIndexerConsumerTest.java | 4 +- .../repository/AbstractRepositoryAdminTest.java | 3 +- .../repository/group/RepositoryGroupAdminTest.java | 2 +- .../archiva/repository/RepositoryHandler.java | 24 +++ .../archiva/repository/RepositoryRegistry.java | 1 + .../validation/AbstractRepositoryValidator.java | 29 +++- .../repository/{ => validation}/CheckedResult.java | 4 +- .../validation/CombinedValidationResponse.java | 74 +++++++++ .../repository/validation/CombinedValidator.java | 87 +++++++++++ .../{RepositoryChecker.java => ErrorKeys.java} | 24 +-- .../repository/validation/RepositoryChecker.java | 2 - .../repository/validation/RepositoryValidator.java | 18 ++- .../repository/validation/ValidationResponse.java | 2 - .../archiva-base/archiva-repository-layer/pom.xml | 4 + .../repository/base/ArchivaRepositoryRegistry.java | 9 +- .../repository/base/ConfigurationHandler.java | 2 +- .../base/{ => group}/AbstractRepositoryGroup.java | 8 +- .../BasicRepositoryGroupValidator.java} | 49 +++--- .../base/{ => group}/RepositoryGroupHandler.java | 37 ++++- .../{ => managed}/AbstractManagedRepository.java | 6 +- .../base/{ => managed}/BasicManagedRepository.java | 6 +- .../managed/BasicManagedRepositoryValidator.java | 149 +++++++++++++++++++ .../base/managed/ManagedRepositoryHandler.java | 165 +++++++++++++++++++++ .../{ => remote}/AbstractRemoteRepository.java | 6 +- .../base/{ => remote}/BasicRemoteRepository.java | 5 +- .../base/ArchivaRepositoryRegistryTest.java | 3 + .../BasicManagedRepositoryValidatorTest.java} | 29 +++- .../repository/mock/RepositoryProviderMock.java | 4 +- .../scanner/RepositoryContentConsumersTest.java | 4 +- .../repository/scanner/RepositoryScannerTest.java | 4 +- .../indexer/maven/MavenIndexManagerTest.java | 2 +- .../search/AbstractMavenRepositorySearch.java | 3 +- .../search/MavenRepositorySearchOSGITest.java | 2 +- .../search/MavenRepositorySearchPaginateTest.java | 3 +- .../archiva/proxy/AbstractProxyTestCase.java | 2 +- .../archiva/proxy/HttpProxyTransferTest.java | 2 +- .../apache/archiva/proxy/MockConfiguration.java | 6 + .../repository/mock/RepositoryProviderMock.java | 4 +- .../repository/maven/MavenManagedRepository.java | 2 +- .../repository/maven/MavenRemoteRepository.java | 2 +- .../repository/maven/MavenRepositoryGroup.java | 2 +- .../repository/maven/MavenRepositoryProvider.java | 2 +- .../metadata/storage/mock/MockConfiguration.java | 6 +- .../mock/configuration/StubConfiguration.java | 7 + .../mock/configuration/TestConfiguration.java | 7 + .../maven/ArchivaIndexingTaskExecutorTest.java | 4 +- ...tArchivaRepositoryScanningTaskExecutorTest.java | 2 +- .../rest/services/DefaultRepositoriesService.java | 2 +- .../services/v2/DefaultRepositoryGroupService.java | 6 +- .../NewVersionsOfArtifactRssFeedProcessorTest.java | 2 +- .../apache/archiva/web/rss/RssFeedServletTest.java | 2 +- .../webdav/AbstractRepositoryServletTestCase.java | 2 +- .../webdav/ArchivaDavResourceFactoryTest.java | 2 +- .../webdav/RepositoryServletSecurityTest.java | 2 +- .../consumers/DuplicateArtifactsConsumerTest.java | 2 +- 62 files changed, 734 insertions(+), 139 deletions(-) diff --git a/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java b/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java index 9204b4c..f8d901a 100644 --- a/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java +++ b/archiva-cli/src/main/java/org/apache/archiva/cli/ArchivaCli.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java index f230257..cf90a13 100644 --- a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java +++ b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java @@ -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( ); } diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java index 8abed28..10f9f2d 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/RepositoryProviderMock.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java index 2554a55..dcb9239 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-archetype/src/main/resources/archetype-resources/src/test/java/SimpleArtifactConsumerTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java index 27ad968..9fed19f 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/ArtifactMissingChecksumsConsumerTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java index b2f66aa..ed42ef4 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java index d11008a..0c8f71f 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-indexer-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-indexer-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java index 241eeb0..eb735e6 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-indexer-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-indexer-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java index 993151a..406faf3 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/group/RepositoryGroupAdminTest.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/group/RepositoryGroupAdminTest.java index 49fd385..767c70a 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/group/RepositoryGroupAdminTest.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/group/RepositoryGroupAdminTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryHandler.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryHandler.java index 4bb414c..5dbcfe5 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryHandler.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryHandler.java @@ -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; @@ -166,6 +168,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 * @return <code>true</code>, if it is registered, otherwise <code>false</code> diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java index 2a52106..ba96fe0 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/AbstractRepositoryValidator.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/AbstractRepositoryValidator.java index 319fc50..ae45419 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/AbstractRepositoryValidator.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/AbstractRepositoryValidator.java @@ -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 <[email protected]> */ 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 diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/CheckedResult.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CheckedResult.java similarity index 90% copy from archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/CheckedResult.java copy to archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CheckedResult.java index 41961a5..ebc10e8 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/CheckedResult.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CheckedResult.java @@ -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 <[email protected]> */ diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CombinedValidationResponse.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CombinedValidationResponse.java new file mode 100644 index 0000000..3883077 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CombinedValidationResponse.java @@ -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 <[email protected]> + */ +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( ) ); + } +} diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CombinedValidator.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CombinedValidator.java new file mode 100644 index 0000000..a0dd444 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/CombinedValidator.java @@ -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 <[email protected]> + */ +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 ); + } +} diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryChecker.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/ErrorKeys.java similarity index 60% copy from archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryChecker.java copy to archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/ErrorKeys.java index f208d10..315d4df 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryChecker.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/ErrorKeys.java @@ -17,20 +17,22 @@ 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; +import org.apache.archiva.components.registry.Registry; /** * @author Martin Stockhammer <[email protected]> */ -public interface RepositoryChecker<R extends Repository, D> extends Function<R, CheckedResult<R,D>> +public interface ErrorKeys { - - @Override - CheckedResult<R,D> apply( R r ); - - CheckedResult<R,D> applyForUpdate( R repo ); + 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"; } diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryChecker.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryChecker.java index f208d10..2897249 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryChecker.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryChecker.java @@ -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 <[email protected]> diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryValidator.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryValidator.java index 041fe8a..25382b3 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryValidator.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/RepositoryValidator.java @@ -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 ); + } + } } diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/ValidationResponse.java b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/ValidationResponse.java index 377a3cc..f52db1f 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/ValidationResponse.java +++ b/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/validation/ValidationResponse.java @@ -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. diff --git a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml index 4964503..8774879 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml +++ b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml @@ -79,6 +79,10 @@ <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> </dependency> diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistry.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistry.java index d3eb836..34a4f95 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistry.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistry.java @@ -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 ) ); } diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ConfigurationHandler.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ConfigurationHandler.java index 4c21083..9278e02 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ConfigurationHandler.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/ConfigurationHandler.java @@ -72,7 +72,7 @@ public class ConfigurationHandler archivaConfiguration.save( configuration, "" ); } - ReentrantReadWriteLock getLock() { + public ReentrantReadWriteLock getLock() { return lock; } } diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractRepositoryGroup.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/AbstractRepositoryGroup.java similarity index 95% rename from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractRepositoryGroup.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/AbstractRepositoryGroup.java index 155e575..d24f00e 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractRepositoryGroup.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/AbstractRepositoryGroup.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/validation/CommonGroupValidator.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/BasicRepositoryGroupValidator.java similarity index 63% rename from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/validation/CommonGroupValidator.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/BasicRepositoryGroupValidator.java index f9fd6fd..308dd3a 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/validation/CommonGroupValidator.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/BasicRepositoryGroupValidator.java @@ -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 <[email protected]> */ @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 ); - } } diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/RepositoryGroupHandler.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/RepositoryGroupHandler.java similarity index 93% rename from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/RepositoryGroupHandler.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/RepositoryGroupHandler.java index 8604ba9..dba60f8 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/RepositoryGroupHandler.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/group/RepositoryGroupHandler.java @@ -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 @@ -566,6 +581,18 @@ public class RepositoryGroupHandler implements RepositoryHandler<RepositoryGroup } @Override + public ValidationResponse<RepositoryGroup> validateRepository( RepositoryGroup repository ) + { + return null; + } + + @Override + public ValidationResponse<RepositoryGroup> validateRepositoryForUpdate( RepositoryGroup repository ) + { + return null; + } + + @Override public boolean has( String id ) { return repositoryGroups.containsKey( id ); diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractManagedRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/AbstractManagedRepository.java similarity index 94% rename from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractManagedRepository.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/AbstractManagedRepository.java index 57ce041..aaac150 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractManagedRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/AbstractManagedRepository.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/BasicManagedRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/BasicManagedRepository.java similarity index 96% rename from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/BasicManagedRepository.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/BasicManagedRepository.java index a82fd77..5840d22 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/BasicManagedRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/BasicManagedRepository.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/BasicManagedRepositoryValidator.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/BasicManagedRepositoryValidator.java new file mode 100644 index 0000000..5b9e3a7 --- /dev/null +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/BasicManagedRepositoryValidator.java @@ -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 <[email protected]> + */ +@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; + } + +} diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/ManagedRepositoryHandler.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/ManagedRepositoryHandler.java new file mode 100644 index 0000000..3aa65de --- /dev/null +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/managed/ManagedRepositoryHandler.java @@ -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 <[email protected]> + */ +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( ) + { + + } +} diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractRemoteRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/remote/AbstractRemoteRepository.java similarity index 96% rename from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractRemoteRepository.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/remote/AbstractRemoteRepository.java index 51d7a98..72f2fe8 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/AbstractRemoteRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/remote/AbstractRemoteRepository.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/BasicRemoteRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/remote/BasicRemoteRepository.java similarity index 97% rename from archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/BasicRemoteRepository.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/remote/BasicRemoteRepository.java index afec070..0b6d49b 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/BasicRemoteRepository.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/base/remote/BasicRemoteRepository.java @@ -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 diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistryTest.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistryTest.java index 00bbbc8..6601ad2 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistryTest.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/base/ArchivaRepositoryRegistryTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/CheckedResult.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/base/group/BasicManagedRepositoryValidatorTest.java similarity index 73% rename from archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/CheckedResult.java rename to archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/base/group/BasicManagedRepositoryValidatorTest.java index 41961a5..5b950f9 100644 --- a/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/CheckedResult.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/base/group/BasicManagedRepositoryValidatorTest.java @@ -1,4 +1,5 @@ -package org.apache.archiva.repository; +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,15 +18,31 @@ package org.apache.archiva.repository; * under the License. */ +import org.junit.jupiter.api.Test; + /** * @author Martin Stockhammer <[email protected]> */ -public interface CheckedResult<R extends Repository, D> +class BasicManagedRepositoryValidatorTest { - R getRepository(); - boolean isValid(); + @Test + void apply( ) + { + } + + @Test + void applyForUpdate( ) + { + } - D getResult(); + @Test + void getFlavour( ) + { + } -} + @Test + void isFlavour( ) + { + } +} \ No newline at end of file diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java index 90dd593..c98ba06 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java index adb5cb0..37989d9 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryContentConsumersTest.java @@ -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; diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java index 45476ee..8ac2979 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/test/java/org/apache/archiva/repository/scanner/RepositoryScannerTest.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java index e8fc6ce..793a190 100644 --- a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java +++ b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/MavenIndexManagerTest.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java index 575d078..a5b8f64 100644 --- a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java +++ b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/AbstractMavenRepositorySearch.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java index 90093ed..1120837 100644 --- a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java +++ b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchOSGITest.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java index f1aa3eb..124c4d1 100644 --- a/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java +++ b/archiva-modules/archiva-maven/archiva-maven-indexer/src/test/java/org/apache/archiva/indexer/maven/search/MavenRepositorySearchPaginateTest.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java index c442d51..ec1a531 100644 --- a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java +++ b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/AbstractProxyTestCase.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java index c59f0ee..a2ab1a2 100644 --- a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java +++ b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/HttpProxyTransferTest.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java index fb9fe0b..13e45d2 100644 --- a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java +++ b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java @@ -205,4 +205,10 @@ public class MockConfiguration return getAppServerBaseDir().resolve("data"); } } + + @Override + public Registry getRegistry( ) + { + return null; + } } diff --git a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java index e30a0f2..73ad62e 100644 --- a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java +++ b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/java/org/apache/archiva/repository/mock/RepositoryProviderMock.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenManagedRepository.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenManagedRepository.java index a09e1e6..4005b87 100644 --- a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenManagedRepository.java +++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenManagedRepository.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRemoteRepository.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRemoteRepository.java index 696eeff..6c73f65 100644 --- a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRemoteRepository.java +++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRemoteRepository.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryGroup.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryGroup.java index 5d2628f..c1be960 100644 --- a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryGroup.java +++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryGroup.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryProvider.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryProvider.java index 1deadfe..de7d279 100644 --- a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryProvider.java +++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/maven/MavenRepositoryProvider.java @@ -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; diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/metadata/storage/mock/MockConfiguration.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/metadata/storage/mock/MockConfiguration.java index 7085e96..35896ba 100644 --- a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/metadata/storage/mock/MockConfiguration.java +++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/metadata/storage/mock/MockConfiguration.java @@ -201,7 +201,11 @@ public class MockConfiguration } } - + @Override + public Registry getRegistry( ) + { + return null; + } } diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/StubConfiguration.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/StubConfiguration.java index 6a34278..b63208f 100644 --- a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/StubConfiguration.java +++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/StubConfiguration.java @@ -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; + } } diff --git a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/TestConfiguration.java b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/TestConfiguration.java index 78625d7..f88bd7c 100644 --- a/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/TestConfiguration.java +++ b/archiva-modules/archiva-maven/archiva-maven-repository/src/test/java/org/apache/archiva/repository/maven/mock/configuration/TestConfiguration.java @@ -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; + } } diff --git a/archiva-modules/archiva-maven/archiva-maven-scheduler/src/test/java/org/apache/archiva/scheduler/indexing/maven/ArchivaIndexingTaskExecutorTest.java b/archiva-modules/archiva-maven/archiva-maven-scheduler/src/test/java/org/apache/archiva/scheduler/indexing/maven/ArchivaIndexingTaskExecutorTest.java index d778d5c..f8c4a34 100644 --- a/archiva-modules/archiva-maven/archiva-maven-scheduler/src/test/java/org/apache/archiva/scheduler/indexing/maven/ArchivaIndexingTaskExecutorTest.java +++ b/archiva-modules/archiva-maven/archiva-maven-scheduler/src/test/java/org/apache/archiva/scheduler/indexing/maven/ArchivaIndexingTaskExecutorTest.java @@ -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; diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/AbstractArchivaRepositoryScanningTaskExecutorTest.java b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/AbstractArchivaRepositoryScanningTaskExecutorTest.java index 443078e..edacadf 100644 --- a/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/AbstractArchivaRepositoryScanningTaskExecutorTest.java +++ b/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/AbstractArchivaRepositoryScanningTaskExecutorTest.java @@ -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; diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java index 06c2e4e..8a8f0de 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java @@ -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; diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/v2/DefaultRepositoryGroupService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/v2/DefaultRepositoryGroupService.java index 2d73a53..4927b21 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/v2/DefaultRepositoryGroupService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/v2/DefaultRepositoryGroupService.java @@ -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; diff --git a/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java b/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java index 0a35b18..28b679a 100644 --- a/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java +++ b/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java @@ -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; diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java index a012a53..ad7ee23 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java @@ -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; diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java index e81e069..49974fd 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/AbstractRepositoryServletTestCase.java @@ -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; diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java index e2b259c..8d1bde6 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java @@ -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; diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletSecurityTest.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletSecurityTest.java index b8310c7..a73b2f4 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletSecurityTest.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/RepositoryServletSecurityTest.java @@ -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; diff --git a/archiva-modules/plugins/problem-reports/src/test/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumerTest.java b/archiva-modules/plugins/problem-reports/src/test/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumerTest.java index c3f39cf..4a81b5f 100644 --- a/archiva-modules/plugins/problem-reports/src/test/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumerTest.java +++ b/archiva-modules/plugins/problem-reports/src/test/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumerTest.java @@ -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;
