aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-base/archiva-repository-layer
diff options
context:
space:
mode:
authorMartin Stockhammer <martin.stockhammer@ars.de>2017-11-08 22:59:33 +0100
committerMartin Stockhammer <martin.stockhammer@ars.de>2017-11-08 22:59:33 +0100
commite2cdbc2b7229b4c141a61c8f9aa118304bee2632 (patch)
treebf4a96c6e9d43c8796c4ab38c49c400a4973fd49 /archiva-modules/archiva-base/archiva-repository-layer
parent2ab8942ccff2a85c356b878875632410a3999ce8 (diff)
downloadarchiva-e2cdbc2b7229b4c141a61c8f9aa118304bee2632.tar.gz
archiva-e2cdbc2b7229b4c141a61c8f9aa118304bee2632.zip
Rearranging modules and adding indexer api
Combining the indexer api and repository api into archiva-repository-api They have bidirectional dependencies so they are put together in one module. Adding new classes for a generalized indexer api that will be used for interfaces and implementation independent tasks.
Diffstat (limited to 'archiva-modules/archiva-base/archiva-repository-layer')
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/pom.xml4
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java7
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ContentNotFoundException.java50
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableManagedRepository.java56
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRemoteRepository.java82
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRepository.java124
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepository.java49
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java226
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ReleaseScheme.java27
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepository.java73
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepositoryContent.java83
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/Repository.java162
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCapabilities.java99
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContent.java52
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentFactory.java216
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentProvider.java82
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCredentials.java31
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryException.java51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryNotFoundException.java49
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryProvider.java139
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryType.java29
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/StandardCapabilities.java131
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedFeatureException.java47
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedURIException.java51
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/PathParser.java2
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/features/RepositoryFeature.java41
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/layout/LayoutException.java40
-rw-r--r--archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/MetadataTools.java2
28 files changed, 13 insertions, 1992 deletions
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
index 8f2153439..2b03400ce 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
+++ b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
@@ -43,6 +43,10 @@
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
+ <artifactId>archiva-repository-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
<artifactId>archiva-configuration</artifactId>
</dependency>
<dependency>
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java
index 0ff3cb1ad..ab1c3fa83 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/AbstractRepository.java
@@ -23,6 +23,7 @@ import com.cronutils.model.CronType;
import com.cronutils.model.definition.CronDefinition;
import com.cronutils.model.definition.CronDefinitionBuilder;
import com.cronutils.parser.CronParser;
+import org.apache.archiva.indexer.ArchivaIndexingContext;
import org.apache.archiva.repository.features.RepositoryFeature;
import java.net.URI;
@@ -237,4 +238,10 @@ public abstract class AbstractRepository implements EditableRepository
protected <T extends RepositoryFeature<T>> void addFeature(RepositoryFeature<T> feature) {
featureMap.put( (Class<? extends RepositoryFeature<?>>) feature.getClass(), feature);
}
+
+ @Override
+ public ArchivaIndexingContext getIndexingContext() {
+ // TODO: Implement
+ return null;
+ }
}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ContentNotFoundException.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ContentNotFoundException.java
deleted file mode 100644
index 7579debfe..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ContentNotFoundException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-/**
- * ContentNotFoundException is thrown in response for requests for content that is not the repository.
- *
- *
- */
-public class ContentNotFoundException
- extends RepositoryException
-{
-
- public ContentNotFoundException()
- {
- super();
- }
-
- public ContentNotFoundException( String message, Throwable cause )
- {
- super( message, cause );
- }
-
- public ContentNotFoundException( String message )
- {
- super( message );
- }
-
- public ContentNotFoundException( Throwable cause )
- {
- super( cause );
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableManagedRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableManagedRepository.java
deleted file mode 100644
index 4596201c8..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableManagedRepository.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-/**
- * The editable part of a managed repository.
- */
-public interface EditableManagedRepository extends EditableRepository, ManagedRepository
-{
- /**
- * If true, the repository blocks redeployments of artifacts with the same version.
- * @param blocksRedeployment The flag for blocking redeployments.
- */
- void setBlocksRedeployment(boolean blocksRedeployment);
-
- /**
- * Sets the content
- * @param content
- */
- void setContent(ManagedRepositoryContent content);
-
- /**
- * Adds an active release scheme. Release schemes may be combined.
- * @param scheme the scheme to add.
- */
- void addActiveReleaseScheme(ReleaseScheme scheme);
-
- /**
- * Removes an active release scheme from the set.
- * @param scheme the scheme to remove.
- */
- void removeActiveReleaseScheme(ReleaseScheme scheme);
-
- /**
- * Clears all active release schemes.
- */
- void clearActiveReleaseSchemes();
-
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRemoteRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRemoteRepository.java
deleted file mode 100644
index f8a054f21..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRemoteRepository.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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 java.time.Duration;
-import java.util.Map;
-
-/**
- * The editable part of a remote repository
- */
-public interface EditableRemoteRepository extends EditableRepository, RemoteRepository
-{
-
- /**
- * Sets the login credentials for login to the remote repository.
- * @param credentials
- */
- void setCredentials(RepositoryCredentials credentials);
-
- /**
- * Sets the path relative to the root url of the repository that should be used to check
- * the availability of the repository.
- *
- * @param path The path string.
- */
- void setCheckPath(String path);
-
- /**
- * Sets additional parameters to be used to access the remote repository.
- * @param params A map of parameters, may not be null.
- */
- void setExtraParameters(Map<String,String> params);
-
- /**
- * Adds an additional parameter.
- * @param key The key of the parameter
- * @param value The value of the parameter
- */
- void addExtraParameter(String key, String value);
-
- /**
- * Sets the extra headers, that are added to the requests to the remote repository.
- */
- void setExtraHeaders(Map<String,String> headers);
-
- /**
- * Adds an extra header.
- * @param header The header name
- * @param value The header value
- */
- void addExtraHeader(String header, String value);
-
- /**
- * Sets the timeout for requests to the remote repository.
- *
- * @param duration The amount of time, after that the request is aborted.
- */
- void setTimeout(Duration duration);
-
- /**
- * Sets the content.
- * @param content
- */
- void setContent(RemoteRepositoryContent content);
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRepository.java
deleted file mode 100644
index b27549211..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/EditableRepository.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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 java.net.URI;
-import java.util.Locale;
-
-/**
- * This is the editable part of a repository.
- * Normally a repository should also implement this interface but it is not
- * required.
- *
- * Capabilities and features are a integral part of the implementation and not
- * provided here by the interface.
- * Feature setting methods are provided by the features itself.
- *
- */
-public interface EditableRepository extends Repository
-{
-
- /**
- * Returns the primary locale used for setting the default values for
- * name and description.
- *
- * @return The locale used for name and description when they are not set
- */
- Locale getPrimaryLocale();
-
- /**
- * Sets the name for the given locale
- *
- * @param locale the locale for which the name is set
- * @param name The name value in the language that matches the locale
- */
- void setName( Locale locale, String name);
-
- /**
- * Sets the description for the given locale
- *
- * @param locale the locale for which the description is set
- * @param description The description in the language that matches the locale.
- */
- void setDescription(Locale locale, String description);
-
- /**
- * Sets the location of the repository. May be a URI that is suitable for the
- * repository implementation. Not all implementations will accept the same URI schemes.
- * @param location the location URI
- * @throws UnsupportedURIException if the URI scheme is not supported by the repository type.
- */
- void setLocation(URI location) throws UnsupportedURIException;
-
- /**
- * Sets the base uri for relative location uris.
- *
- * @param baseUri
- */
- void setBaseUri(URI baseUri);
-
- /**
- * Adds a failover location for the repository.
- *
- * @param location The location that should be used as failover.
- * @throws UnsupportedURIException if the URI scheme is not supported by the repository type.
- */
- void addFailoverLocation(URI location) throws UnsupportedURIException;
-
- /**
- * Removes a failover location from the set.
- *
- * @param location the location uri to remove
- */
- void removeFailoverLocation(URI location);
-
- /**
- * Clears the failover location set.
- */
- void clearFailoverLocations();
-
- /**
- * Sets the flag for scanning the repository. If true, the repository will be scanned.
- * You have to set the scheduling times, if you set this to true.
- *
- * @param scanned if true, the repository is scanned regulary.
- */
- void setScanned(boolean scanned);
-
- /**
- * Sets the scheduling definition, that defines the times, when the regular repository
- * jobs are started. The <code>cronExpression</code> must be a valid
- * quartz cron definition.
- *
- * @See http://www.quartz-scheduler.org/api/2.2.1/org/quartz/CronExpression.html
- *
- * @param cronExpression the cron expression.
- * @throws IllegalArgumentException if the cron expression is not valid.
- */
- void setSchedulingDefinition(String cronExpression) throws IllegalArgumentException;
-
- /**
- * Sets the layout string.
- * @param layout
- */
- void setLayout(String layout);
-
-
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepository.java
deleted file mode 100644
index b4ab89d98..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepository.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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 java.util.Set;
-
-/**
- * Represents a managed repository, that is readable and writable.
- */
-public interface ManagedRepository extends Repository {
-
- /**
- * Returns the interface to access the contents of this repository.
- *
- * @return The repository content.
- */
- ManagedRepositoryContent getContent();
-
- /**
- * Returns true, if repeated deployments of the same artifact with the same version throws exceptions.
- * @return
- */
- boolean blocksRedeployments();
-
- /**
- * Returns the release schemes that are active by this repository. E.g. for maven repositories
- * this may either be a release repository, a snapshot repository or a combined repository.
- * @return
- */
- Set<ReleaseScheme> getActiveReleaseSchemes();
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
deleted file mode 100644
index 5baf32fdb..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ManagedRepositoryContent.java
+++ /dev/null
@@ -1,226 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.model.ArchivaArtifact;
-import org.apache.archiva.model.ArtifactReference;
-import org.apache.archiva.model.ProjectReference;
-import org.apache.archiva.model.VersionedReference;
-import org.apache.archiva.repository.layout.LayoutException;
-
-import java.nio.file.Path;
-import java.util.Set;
-
-/**
- * ManagedRepositoryContent interface for interacting with a managed repository in an abstract way,
- * without the need for processing based on filesystem paths, or working with the database.
- */
-public interface ManagedRepositoryContent extends RepositoryContent
-{
-
-
-
- /**
- * Delete from the managed repository all files / directories associated with the
- * provided version reference.
- *
- * @param reference the version reference to delete.
- * @throws ContentNotFoundException
- */
- void deleteVersion( VersionedReference reference )
- throws ContentNotFoundException;
-
- /**
- * delete a specified artifact from the repository
- *
- * @param artifactReference
- * @throws ContentNotFoundException
- */
- void deleteArtifact( ArtifactReference artifactReference )
- throws ContentNotFoundException;
-
- /**
- * @param groupId
- * @throws ContentNotFoundException
- * @since 1.4-M3
- */
- void deleteGroupId( String groupId )
- throws ContentNotFoundException;
-
- /**
- *
- * @param namespace groupId for maven
- * @param projectId artifactId for maven
- * @throws ContentNotFoundException
- */
- void deleteProject( String namespace, String projectId )
- throws RepositoryException;
-
- /**
- * <p>
- * Convenience method to get the repository id.
- * </p>
- * <p>
- * Equivalent to calling <code>.getRepository().getId()</code>
- * </p>
- *
- * @return the repository id.
- */
- String getId();
-
- /**
- * <p>
- * Gather up the list of related artifacts to the ArtifactReference provided.
- * This typically inclues the pom files, and those things with
- * classifiers (such as doc, source code, test libs, etc...)
- * </p>
- * <p>
- * <strong>NOTE:</strong> Some layouts (such as maven 1 "legacy") are not compatible with this query.
- * </p>
- *
- * @param reference the reference to work off of.
- * @return the set of ArtifactReferences for related artifacts.
- * @throws ContentNotFoundException if the initial artifact reference does not exist within the repository.
- */
- Set<ArtifactReference> getRelatedArtifacts( ArtifactReference reference )
- throws ContentNotFoundException;
-
- /**
- * <p>
- * Convenience method to get the repository (on disk) root directory.
- * </p>
- * <p>
- * Equivalent to calling <code>.getRepository().getLocation()</code>
- * </p>
- *
- * @return the repository (on disk) root directory.
- */
- String getRepoRoot();
-
- /**
- * Get the repository configuration associated with this
- * repository content.
- *
- * @return the repository that is associated with this repository content.
- */
- ManagedRepository getRepository();
-
- /**
- * Given a specific {@link ProjectReference}, return the list of available versions for
- * that project reference.
- *
- * @param reference the project reference to work off of.
- * @return the list of versions found for that project reference.
- * @throws ContentNotFoundException if the project reference does nto exist within the repository.
- * @throws LayoutException
- */
- Set<String> getVersions( ProjectReference reference )
- throws ContentNotFoundException, LayoutException;
-
- /**
- * <p>
- * Given a specific {@link VersionedReference}, return the list of available versions for that
- * versioned reference.
- * </p>
- * <p>
- * <strong>NOTE:</strong> This is really only useful when working with SNAPSHOTs.
- * </p>
- *
- * @param reference the versioned reference to work off of.
- * @return the set of versions found.
- * @throws ContentNotFoundException if the versioned reference does not exist within the repository.
- */
- Set<String> getVersions( VersionedReference reference )
- throws ContentNotFoundException;
-
- /**
- * Determines if the artifact referenced exists in the repository.
- *
- * @param reference the artifact reference to check for.
- * @return true if the artifact referenced exists.
- */
- boolean hasContent( ArtifactReference reference );
-
- /**
- * Determines if the project referenced exists in the repository.
- *
- * @param reference the project reference to check for.
- * @return true it the project referenced exists.
- */
- boolean hasContent( ProjectReference reference );
-
- /**
- * Determines if the version reference exists in the repository.
- *
- * @param reference the version reference to check for.
- * @return true if the version referenced exists.
- */
- boolean hasContent( VersionedReference reference );
-
- /**
- * Set the repository configuration to associate with this
- * repository content.
- *
- * @param repo the repository to associate with this repository content.
- */
- void setRepository( org.apache.archiva.repository.ManagedRepository repo );
-
- /**
- * Given an {@link ArtifactReference}, return the file reference to the artifact.
- *
- * @param reference the artifact reference to use.
- * @return the relative path to the artifact.
- */
- Path toFile( ArtifactReference reference );
-
- /**
- * Given an {@link ArchivaArtifact}, return the file reference to the artifact.
- *
- * @param reference the archiva artifact to use.
- * @return the relative path to the artifact.
- */
- Path toFile( ArchivaArtifact reference );
-
- /**
- * Given a {@link ProjectReference}, return the path to the metadata for
- * the project.
- *
- * @param reference the reference to use.
- * @return the path to the metadata file, or null if no metadata is appropriate.
- */
- String toMetadataPath( ProjectReference reference );
-
- /**
- * Given a {@link VersionedReference}, return the path to the metadata for
- * the specific version of the project.
- *
- * @param reference the reference to use.
- * @return the path to the metadata file, or null if no metadata is appropriate.
- */
- String toMetadataPath( VersionedReference reference );
-
- /**
- * Given an {@link ArchivaArtifact}, return the relative path to the artifact.
- *
- * @param reference the archiva artifact to use.
- * @return the relative path to the artifact.
- */
- String toPath( ArchivaArtifact reference );
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ReleaseScheme.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ReleaseScheme.java
deleted file mode 100644
index 0868d35b4..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/ReleaseScheme.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-/**
- * Repository release schemes that change the handling of artifacts
- */
-public enum ReleaseScheme {
- RELEASE,SNAPSHOT
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepository.java
deleted file mode 100644
index 5a7c1e8ed..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepository.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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 java.time.Duration;
-import java.util.Map;
-
-/**
- * This represents a repository that is not fully managed by archiva. Its some kind of proxy that
- * forwards requests to the remote repository and is able to cache artifacts locally.
- */
-public interface RemoteRepository extends Repository {
-
- /**
- * Returns the interface to access the content of the repository.
- * @return
- */
- RemoteRepositoryContent getContent();
-
- /**
- * Returns the credentials used to login to the remote repository.
- * @return the credentials, null if not set.
- */
- RepositoryCredentials getLoginCredentials();
-
- /**
- * Returns the path relative to the root url of the repository that should be used
- * to check the availability of the repository.
- * @return The check path, null if not set.
- */
- String getCheckPath();
-
-
- /**
- * Returns additional parameters, that are used for accessing the remote repository.
- * @return A map of key, value pairs.
- */
- Map<String,String> getExtraParameters();
-
-
- /**
- * Returns extra headers that are added to the request to the remote repository.
- * @return
- */
- Map<String,String> getExtraHeaders();
-
- /**
- * Returns the time duration, after that the request is aborted and a error is returned, if the remote repository
- * does not respond.
- * @return The timeout.
- */
- Duration getTimeout();
-
-
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepositoryContent.java
deleted file mode 100644
index 7002d7ebe..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RemoteRepositoryContent.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.model.ArtifactReference;
-import org.apache.archiva.model.RepositoryURL;
-import org.apache.archiva.repository.layout.LayoutException;
-
-/**
- * RemoteRepositoryContent interface for interacting with a remote repository in an abstract way,
- * without the need for processing based on URLs, or working with the database.
- *
- *
- */
-public interface RemoteRepositoryContent extends RepositoryContent
-{
- /**
- * <p>
- * Convenience method to get the repository id.
- * </p>
- *
- * <p>
- * Equivalent to calling <code>.getRepository().getId()</code>
- * </p>
- *
- * @return the repository id.
- */
- String getId();
-
- /**
- * Get the repository configuration associated with this
- * repository content.
- *
- * @return the repository that is associated with this repository content.
- */
- RemoteRepository getRepository();
-
- /**
- * <p>
- * Convenience method to get the repository url.
- * </p>
- *
- * <p>
- * Equivalent to calling <code>new RepositoryURL( this.getRepository().getUrl() )</code>
- * </p>
- *
- * @return the repository url.
- */
- RepositoryURL getURL();
-
- /**
- * Set the repository configuration to associate with this
- * repository content.
- *
- * @param repo the repository to associate with this repository content.
- */
- void setRepository( RemoteRepository repo );
-
- /**
- * Given an ArtifactReference, return the url to the artifact.
- *
- * @param reference the artifact reference to use.
- * @return the relative path to the artifact.
- */
- RepositoryURL toURL( ArtifactReference reference );
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/Repository.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/Repository.java
deleted file mode 100644
index 68c00d621..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/Repository.java
+++ /dev/null
@@ -1,162 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.features.RepositoryFeature;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Locale;
-import java.util.Set;
-
-/**
- *
- * Base interface for repositories.
- *
- * Created by Martin Stockhammer on 21.09.17.
- */
-public interface Repository {
-
- /**
- * Return the identifier of the repository. Repository identifier should be unique at least
- * for the same type.
- * @return The identifier.
- */
- String getId();
-
- /**
- * This is the display name of the repository. This string is presented in the user interface.
- *
- * @return The display name of the repository
- */
- String getName();
-
- /**
- * Returns the name in the given locale.
- * @param locale
- * @return
- */
- String getName(Locale locale);
-
- /**
- * Returns a description of this repository.
- * @return The description.
- */
- String getDescription();
-
- /**
- * Returns the description for the given locale.
- * @param locale
- * @return
- */
- String getDescription(Locale locale);
-
- /**
- * This identifies the type of repository. Archiva does only support certain types of repositories.
- *
- * @return A unique identifier for the repository type.
- */
- RepositoryType getType();
-
-
- /**
- * Returns the location of this repository. For local repositories this might be a file URI, for
- * remote repositories a http URL or some very repository specific schemes.
- * Each repository has only one unique location.
- *
- * @return The repository location.
- */
- URI getLocation();
-
- /**
- * This returns the absolute location uri of this repository. Some repository locations may be relative to
- * the base repository directory or uri. This returns the absolute path of the repository.
- * If the location is absolute already this method returns the same URI as getLocation().
- *
- * @return the absolute uri of the location.
- */
- URI getAbsoluteLocation();
-
- /**
- * A repository may allow additional locations that can be used, if the primary location is not available.
- * @return
- */
- Set<URI> getFailoverLocations();
-
- /**
- * True, if this repository is scanned regularly.
- */
- boolean isScanned();
-
- /**
- * Returns the definition, when the repository jobs are executed.
- * This must return a valid a cron string.
- *
- * @See http://www.quartz-scheduler.org/api/2.2.1/org/quartz/CronExpression.html
- *
- * @return
- */
- String getSchedulingDefinition();
-
- /**
- * Returns true, if this repository has a index available
- * @return
- */
- boolean hasIndex();
-
- /**
- * Returns a layout definition. The returned string may be implementation specific and is not
- * standardized.
- *
- * @return
- */
- String getLayout();
-
-
- /**
- * Returns the capabilities of the repository implementation.
- * @return
- */
- RepositoryCapabilities getCapabilities();
-
-
- /**
- * Extension method that allows to provide different features that are not supported by all
- * repository types.
- *
- * @param clazz The feature class that is requested
- * @param <T> This is the class of the feature
- * @return The feature implementation for this repository instance, if it is supported
- * @throws UnsupportedFeatureException if the feature is not supported by this repository type
- */
- <T extends RepositoryFeature<T>> RepositoryFeature<T> getFeature(Class<T> clazz) throws UnsupportedFeatureException;
-
-
- /**
- * Returns true, if the requested feature is supported by this repository.
- *
- * @param clazz The requested feature class
- * @param <T> The requested feature class
- * @return True, if the feature is supported, otherwise false.
- */
- <T extends RepositoryFeature<T>> boolean supportsFeature(Class<T> clazz);
-
-
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCapabilities.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCapabilities.java
deleted file mode 100644
index 525d52130..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCapabilities.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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 java.util.Set;
-
-/**
- * Describe the capabilities a repository implementation supports.
- */
-public interface RepositoryCapabilities {
-
- /**
- * Returns true, if this repository has a mechanism for indexes
- * @return true, if this repository is indexable, otherwise false.
- */
- default boolean isIndexable() {
- return true;
- }
-
- /**
- * Returns true, if this repository type is storing its artifacts on the filesystem.
- * @return true, if this is a file based repository, otherwise false.
- */
- default boolean isFileBased() {
- return true;
- }
-
- /**
- * Returns true, if this repository allows to block redeployments to prevent overriding
- * released artifacts
- * @return true, if this repo can block redeployments, otherwise false.
- */
- default boolean canBlockRedeployments() {
- return true;
- }
-
- /**
- * Returns true, if the artifacts can be scanned for metadata retrieval or maintenance tasks
- * @return true, if this repository can be scanned regularily, otherwise false.
- */
- default boolean isScannable() {
- return true;
- }
-
- /**
- * Returns true, if this repository can use failover repository urls
- * @return true, if there is a failover mechanism for repository access, otherwise false.
- */
- default boolean allowsFailover() {
- return false;
- }
-
- /**
- * Returns the release schemes this repository type can handle
- */
- Set<ReleaseScheme> supportedReleaseSchemes();
-
- /**
- * Returns the layouts this repository type can provide
- * @return The list of layouts supported by this repository.
- */
- Set<String> supportedLayouts();
-
- /**
- * Returns additional capabilities, that this repository type implements.
- * @return A list of custom capabilities.
- */
- Set<String> customCapabilities();
-
- /**
- * Returns the supported features this repository type supports. This method returns
- * string that corresponds to fully qualified class names.
- * We use string representation to allow implementations provide their own feature
- * implementations if necessary and to avoid class errors.
- *
- * @return The list of supported features as string values.
- */
- Set<String> supportedFeatures();
-
-
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContent.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContent.java
deleted file mode 100644
index 2ceedec10..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContent.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.model.ArtifactReference;
-import org.apache.archiva.model.VersionedReference;
-import org.apache.archiva.repository.layout.LayoutException;
-
-
-/**
- * Common aspects of content provider interfaces
- */
-public interface RepositoryContent
-{
-
-
- /**
- * Given a repository relative path to a filename, return the {@link VersionedReference} object suitable for the path.
- *
- * @param path the path relative to the repository base dir for the artifact.
- * @return the {@link ArtifactReference} representing the path. (or null if path cannot be converted to
- * a {@link ArtifactReference})
- * @throws LayoutException if there was a problem converting the path to an artifact.
- */
- ArtifactReference toArtifactReference( String path )
- throws LayoutException;
-
- /**
- * Given an {@link ArtifactReference}, return the relative path to the artifact.
- *
- * @param reference the artifact reference to use.
- * @return the relative path to the artifact.
- */
- String toPath( ArtifactReference reference );
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentFactory.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentFactory.java
deleted file mode 100644
index 65d54e605..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentFactory.java
+++ /dev/null
@@ -1,216 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.ArchivaConfiguration;
-import org.apache.archiva.configuration.ConfigurationNames;
-import org.apache.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
-import org.apache.archiva.redback.components.registry.Registry;
-import org.apache.archiva.redback.components.registry.RegistryListener;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * RepositoryContentRequest
- */
-@Service( "repositoryContentFactory#default" )
-public class RepositoryContentFactory
- implements RegistryListener
-{
- /**
- *
- */
- @Inject
- private ArchivaConfiguration archivaConfiguration;
-
- @Inject
- private ApplicationContext applicationContext;
-
- @Inject
- private List<RepositoryContentProvider> repositoryContentProviders;
-
- private final Map<String, ManagedRepositoryContent> managedContentMap;
-
- private final Map<String, RemoteRepositoryContent> remoteContentMap;
-
-
- public RepositoryContentFactory( )
- {
- managedContentMap = new ConcurrentHashMap<String, ManagedRepositoryContent>( );
- remoteContentMap = new ConcurrentHashMap<String, RemoteRepositoryContent>( );
- }
-
- /**
- * Get the ManagedRepositoryContent object for the repository Id specified.
- *
- * @param repoId the repository id to fetch.
- * @return the ManagedRepositoryContent object associated with the repository id.
- * @throws RepositoryNotFoundException if the repository id does not exist within the configuration.
- * @throws RepositoryException the repository content object cannot be loaded due to configuration issue.
- */
- public ManagedRepositoryContent getManagedRepositoryContent( String repoId )
- throws RepositoryException
- {
- ManagedRepositoryContent repo = managedContentMap.get( repoId );
-
- if ( repo != null )
- {
- return repo;
- }
- else
- {
- throw new RepositoryNotFoundException(
- "Unable to find managed repository configuration for id " + repoId );
- }
-
- }
-
- private RepositoryContentProvider getProvider(final String layout, final RepositoryType repoType) throws RepositoryException
- {
- return repositoryContentProviders.stream().filter(p->p.supports( repoType ) && p.supportsLayout( layout )).
- findFirst().orElseThrow( ( ) -> new RepositoryException( "Could not find content provider for repository type "+repoType+" and layout "+layout ) );
- }
-
- public ManagedRepositoryContent getManagedRepositoryContent( org.apache.archiva.repository.ManagedRepository mRepo )
- throws RepositoryException
- {
- final String id = mRepo.getId();
- ManagedRepositoryContent content = managedContentMap.get( id );
-
- if ( content != null && content.getRepository()==mRepo)
- {
- return content;
- }
-
- RepositoryContentProvider contentProvider = getProvider( mRepo.getLayout( ), mRepo.getType( ) );
- content = contentProvider.createManagedContent( mRepo );
- if (content==null) {
- throw new RepositoryException( "Could not create repository content instance for "+mRepo.getId() );
- }
- ManagedRepositoryContent previousContent = managedContentMap.put( id, content );
- if (previousContent!=null) {
- previousContent.setRepository( null );
- }
-
- return content;
- }
-
- public RemoteRepositoryContent getRemoteRepositoryContent( String repoId )
- throws RepositoryException
- {
- RemoteRepositoryContent repo = remoteContentMap.get( repoId );
-
- if ( repo != null )
- {
- return repo;
- }
- else
- {
- throw new RepositoryNotFoundException(
- "Unable to find remote repository configuration for id:" + repoId );
- }
-
- }
-
- public RemoteRepositoryContent getRemoteRepositoryContent( RemoteRepository mRepo )
- throws RepositoryException
- {
- final String id = mRepo.getId();
- RemoteRepositoryContent content = remoteContentMap.get( id );
-
- if ( content != null && content.getRepository()==mRepo)
- {
- return content;
- }
-
- RepositoryContentProvider contentProvider = getProvider( mRepo.getLayout( ), mRepo.getType( ) );
- content = contentProvider.createRemoteContent( mRepo );
- if (content==null) {
- throw new RepositoryException( "Could not create repository content instance for "+mRepo.getId() );
- }
- RemoteRepositoryContent previousContent = remoteContentMap.put( id, content );
- if (previousContent!=null) {
- previousContent.setRepository( null );
- }
- return content;
- }
-
-
- @Override
- public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
- {
- if ( ConfigurationNames.isManagedRepositories( propertyName ) || ConfigurationNames.isRemoteRepositories(
- propertyName ) )
- {
- initMaps( );
- }
- }
-
- @Override
- public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue )
- {
- /* do nothing */
- }
-
- @PostConstruct
- public void initialize( )
- {
- archivaConfiguration.addChangeListener( this );
- }
-
- private void initMaps( )
- {
- // olamy we use concurent so no need of synchronize
- //synchronized ( managedContentMap )
- //{
- managedContentMap.clear( );
- //}
-
- //synchronized ( remoteContentMap )
- //{
- remoteContentMap.clear( );
- //}
- }
-
- public ArchivaConfiguration getArchivaConfiguration( )
- {
- return archivaConfiguration;
- }
-
- public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration )
- {
- this.archivaConfiguration = archivaConfiguration;
- }
-
- public void setRepositoryContentProviders(List<RepositoryContentProvider> providers) {
- this.repositoryContentProviders = providers;
- }
-
- public List<RepositoryContentProvider> getRepositoryContentProviders() {
- return repositoryContentProviders;
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentProvider.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentProvider.java
deleted file mode 100644
index 823444925..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryContentProvider.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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 java.util.Set;
-
-/**
- * A repository content provider creates repository content instances for specific repository types.
- */
-public interface RepositoryContentProvider
-{
- /**
- * Returns true, if this content object supports the given layout otherwise, false.
- * @param layout the layout string
- * @return true, if layout is supported, otherwise false.
- */
- boolean supportsLayout(String layout);
-
- /**
- * Returns the repository types, this content object can be used for.
- *
- * @return all supported repository types.
- */
- Set<RepositoryType> getSupportedRepositoryTypes();
-
-
- /**
- * Returns true, if this content object supports the given repository type.
- *
- * @param type the type to check.
- * @return true, if the type is supported, otherwise false.
- */
- boolean supports(RepositoryType type);
-
- /**
- * Creates a new instance of RemoteRepositoryContent. The returned instance should be initialized
- * from the given repository data.
- *
- * @param repository the repository
- * @return a repository content instance
- * @throws RepositoryException if the layout is not supported, or a error occured during initialization
- */
- RemoteRepositoryContent createRemoteContent(RemoteRepository repository) throws RepositoryException;
-
- /**
- * Creates a new instance of ManagedRepositoryContent.
- *
- * @param repository the repository
- * @return a new instance
- * @throws RepositoryException if the layout is not supported, or a error occured during initialization
- */
- ManagedRepositoryContent createManagedContent(ManagedRepository repository) throws RepositoryException;
-
- /**
- * Creates a generic content object.
- *
- * @param repository the repository
- * @param clazz the content class
- * @param <T> the generic type of the content
- * @param <V> the generic type of the repository (must correspond to the content class)
- * @return a new instance
- * @throws RepositoryException if the clazz, or layout is not supported, or something went wrong during initialization
- */
- <T extends RepositoryContent, V extends Repository> T createContent(Class<T> clazz, V repository) throws RepositoryException;
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCredentials.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCredentials.java
deleted file mode 100644
index 2751bc05e..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryCredentials.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-
-/**
- * Credentials used to login to a remote repository.
- */
-public interface RepositoryCredentials {
-
-
-}
-
-
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryException.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryException.java
deleted file mode 100644
index b9dca9553..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryException.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-/**
- * RepositoryException
- *
- *
- */
-public class RepositoryException
- extends Exception
-{
-
- public RepositoryException()
- {
- super();
- }
-
- public RepositoryException( String message, Throwable cause )
- {
- super( message, cause );
- }
-
- public RepositoryException( String message )
- {
- super( message );
- }
-
- public RepositoryException( Throwable cause )
- {
- super( cause );
- }
-
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryNotFoundException.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryNotFoundException.java
deleted file mode 100644
index ad4ad9b2f..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryNotFoundException.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-/**
- * RepositoryNotFoundException
- *
- *
- */
-public class RepositoryNotFoundException
- extends RepositoryException
-{
-
- public RepositoryNotFoundException()
- {
- }
-
- public RepositoryNotFoundException( String message, Throwable cause )
- {
- super( message, cause );
- }
-
- public RepositoryNotFoundException( String message )
- {
- super( message );
- }
-
- public RepositoryNotFoundException( Throwable cause )
- {
- super( cause );
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryProvider.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryProvider.java
deleted file mode 100644
index a501514da..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryProvider.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.ManagedRepositoryConfiguration;
-import org.apache.archiva.configuration.RemoteRepositoryConfiguration;
-
-import java.util.Set;
-
-/**
- *
- * This interface must be implemented by the repository implementations. The repository provider knows all
- * about the repositories and should be the only part that uses the repository specific classes and libraries
- * (e.g. the maven libraries).
- *
- * Newly created instances should always be filled with default values that make sense. null values should
- * be avoided.
- *
- * References like staging repositories must not be set.
- *
- *
- */
-public interface RepositoryProvider
-{
-
- /**
- * Returns the types of repositories this provider can handle.
- *
- * @return the set of supported repository types
- */
- Set<RepositoryType> provides();
-
- /**
- * Creates a editable managed repository instance. The provider must not check the uniqueness of the
- * id parameter and must not track the already created instances. Each call to this method will create
- * a new instance.
- *
- * @param id the repository identifier
- * @param name the repository name
- * @return a new created managed repository instance
- */
- EditableManagedRepository createManagedInstance(String id, String name);
-
- /**
- * Creates a editable remote repository instance. The provider must not check the uniqueness of the
- * id parameter and must not track the already created instances. Each call to this method will create
- * a new instance.
- *
- * @param id the repository identifier
- * @param name the repository name
- * @return a new created remote repository instance
- */
- EditableRemoteRepository createRemoteInstance(String id, String name);
-
- /**
- * Creates a new managed repository instance from the given configuration. All attributes are filled from the
- * provided configuration object.
- *
- * @param configuration the repository configuration that contains the repository data
- * @return a new created managed repository instance
- * @throws RepositoryException if some of the configuration values are not valid
- */
- ManagedRepository createManagedInstance( ManagedRepositoryConfiguration configuration) throws RepositoryException;
-
- /**
- * Updates the given managed repository instance from the given configuration. All attributes are filled from the
- * provided configuration object.
- *
- * @param repo the repository instance that should be updated
- * @param configuration the repository configuration that contains the repository data
- * @throws RepositoryException if some of the configuration values are not valid
- */
- void updateManagedInstance( EditableManagedRepository repo, ManagedRepositoryConfiguration configuration) throws RepositoryException;
-
- /**
- * Creates a new managed staging repository instance from the given configuration. All attributes are filled from the
- * provided configuration object.
- *
- * @param baseConfiguration the repository configuration of the base repository that references the staging repository
- * @return a new created managed staging repository instance
- * @throws RepositoryException if some of the configuration values are not valid
- */
- ManagedRepository createStagingInstance(ManagedRepositoryConfiguration baseConfiguration) throws RepositoryException;
-
- /**
- * Creates a new remote repository instance from the given configuration. All attributes are filled from the
- * provided configuration object.
- *
- * @param configuration the repository configuration that contains the repository data
- * @return a new created remote repository instance
- * @throws RepositoryException if some of the configuration values are not valid
- */
- RemoteRepository createRemoteInstance( RemoteRepositoryConfiguration configuration) throws RepositoryException;
-
- /**
- * Updates the given remote repository instance from the given configuration. All attributes are filled from the
- * provided configuration object.
- *
- * @param repo the repository instance that should be updated
- * @param configuration the repository configuration that contains the repository data
- * @throws RepositoryException if some of the configuration values are not valid
- */
- void updateRemoteInstance(EditableRemoteRepository repo, RemoteRepositoryConfiguration configuration) throws RepositoryException;
-
- /**
- * Returns a configuration object from the given remote repository instance.
- *
- * @param remoteRepository the remote repository instance
- * @return the repository configuration with all the data that is stored in the repository instance
- * @throws RepositoryException if the data cannot be converted
- */
- RemoteRepositoryConfiguration getRemoteConfiguration(RemoteRepository remoteRepository) throws RepositoryException;
-
- /**
- * Returns a configuration object from the given managed repository instance.
- *
- * @param managedRepository the managed repository instance
- * @return the repository configuration with all the data that is stored in the repository instance
- * @throws RepositoryException if the data cannot be converted
- */
- ManagedRepositoryConfiguration getManagedConfiguration(ManagedRepository managedRepository) throws RepositoryException;
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryType.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryType.java
deleted file mode 100644
index f60c65787..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryType.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-
-/**
- * The repository types that are known to the system.
- */
-public enum RepositoryType {
-
- MAVEN, NPM
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/StandardCapabilities.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/StandardCapabilities.java
deleted file mode 100644
index 0a41c0497..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/StandardCapabilities.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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 java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Capability implementation.
- */
-public class StandardCapabilities implements RepositoryCapabilities
-{
- private final Set<ReleaseScheme> supportedReleaseSchemes;
- private final Set<ReleaseScheme> uSupportedReleaseSchemes;
- private final Set<String> supportedLayouts;
- private final Set<String> uSupportedLayouts;
- private final Set<String> customCapabilities;
- private final Set<String> uCustomCapabilities;
- private final Set<String> supportedFeatures;
- private final Set<String> uSupportedFeatures;
- private final boolean indexable;
- private final boolean fileBased;
- private final boolean canBlockRedeployments;
- private final boolean scannable;
- private final boolean allowsFailover;
-
-
- public StandardCapabilities( ReleaseScheme[] supportedReleaseSchemes, String[] supportedLayouts,
- String[] customCapabilities, String[] supportedFeatures,
- boolean indexable, boolean fileBased,
- boolean canBlockRedeployments, boolean scannable, boolean allowsFailover )
- {
- this.supportedReleaseSchemes = new HashSet();
- for (ReleaseScheme scheme : supportedReleaseSchemes) {
- this.supportedReleaseSchemes.add(scheme);
- }
- this.uSupportedReleaseSchemes = Collections.unmodifiableSet( this.supportedReleaseSchemes);
- this.supportedLayouts = new HashSet<>( );
- for (String layout : supportedLayouts) {
- this.supportedLayouts.add(layout);
- }
- this.uSupportedLayouts = Collections.unmodifiableSet( this.supportedLayouts );
- this.customCapabilities = new HashSet<>( );
- for (String cap : customCapabilities) {
- this.customCapabilities.add(cap);
- }
- this.uCustomCapabilities = Collections.unmodifiableSet( this.customCapabilities );
- this.supportedFeatures = new HashSet<>( );
- for (String feature : supportedFeatures) {
- this.supportedFeatures.add(feature);
- }
- this.uSupportedFeatures = Collections.unmodifiableSet( this.supportedFeatures );
- this.indexable = indexable;
- this.fileBased = fileBased;
- this.canBlockRedeployments = canBlockRedeployments;
- this.scannable = scannable;
- this.allowsFailover = allowsFailover;
- }
-
- @Override
- public Set<ReleaseScheme> supportedReleaseSchemes( )
- {
- return uSupportedReleaseSchemes;
- }
-
- @Override
- public Set<String> supportedLayouts( )
- {
- return uSupportedLayouts;
- }
-
- @Override
- public Set<String> customCapabilities( )
- {
- return uCustomCapabilities;
- }
-
- @Override
- public Set<String> supportedFeatures( )
- {
- return uSupportedFeatures;
- }
-
- @Override
- public boolean isIndexable( )
- {
- return indexable;
- }
-
- @Override
- public boolean isFileBased( )
- {
- return fileBased;
- }
-
- @Override
- public boolean canBlockRedeployments( )
- {
- return canBlockRedeployments;
- }
-
- @Override
- public boolean isScannable( )
- {
- return scannable;
- }
-
- @Override
- public boolean allowsFailover( )
- {
- return allowsFailover;
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedFeatureException.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedFeatureException.java
deleted file mode 100644
index 112f3075d..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedFeatureException.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-/**
- * This exception is thrown if a given feature is not supported by the repository.
- * This is a runtime exception.
- *
- */
-public class UnsupportedFeatureException extends RuntimeException {
-
- public UnsupportedFeatureException() {
- }
-
- public UnsupportedFeatureException(String message) {
- super(message);
- }
-
- public UnsupportedFeatureException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public UnsupportedFeatureException(Throwable cause) {
- super(cause);
- }
-
- public UnsupportedFeatureException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
- super(message, cause, enableSuppression, writableStackTrace);
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedURIException.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedURIException.java
deleted file mode 100644
index 5f7f96f8a..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/UnsupportedURIException.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.apache.archiva.repository;
-
-/*
- * 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.
- */
-
-/**
- * Exception is thrown, if the URI is syntactically correct, but is not
- * supported by the underlying repository implementation
- */
-public class UnsupportedURIException extends Exception
-{
- public UnsupportedURIException( )
- {
- }
-
- public UnsupportedURIException( String message )
- {
- super( message );
- }
-
- public UnsupportedURIException( String message, Throwable cause )
- {
- super( message, cause );
- }
-
- public UnsupportedURIException( Throwable cause )
- {
- super( cause );
- }
-
- public UnsupportedURIException( String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace )
- {
- super( message, cause, enableSuppression, writableStackTrace );
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/PathParser.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/PathParser.java
index 5dc960913..ddbcb6d59 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/PathParser.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/content/PathParser.java
@@ -20,7 +20,7 @@ package org.apache.archiva.repository.content;
*/
import org.apache.archiva.model.ArtifactReference;
-import org.apache.archiva.repository.layout.LayoutException;
+import org.apache.archiva.repository.LayoutException;
/**
* PathParser interface.
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/features/RepositoryFeature.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/features/RepositoryFeature.java
deleted file mode 100644
index a4df8a2a9..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/features/RepositoryFeature.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.apache.archiva.repository.features;
-
-/*
- * 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.
- */
-
-
-/**
- * Created by martin on 30.09.17.
- */
-public interface RepositoryFeature<T extends RepositoryFeature<T>> {
-
- default String getId() {
- return this.getClass().getName();
- }
-
- default boolean isFeature(String featureId) {
- return this.getClass().getName().equals(featureId);
- }
-
- default <K extends RepositoryFeature<K>> boolean isFeature(Class<K> clazz) {
- return this.getClass().equals(clazz);
- }
-
- T get();
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/layout/LayoutException.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/layout/LayoutException.java
deleted file mode 100644
index 6e3a77996..000000000
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/layout/LayoutException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.apache.archiva.repository.layout;
-
-/*
- * 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.common.ArchivaException;
-
-/**
- * LayoutException
- *
- *
- */
-public class LayoutException extends ArchivaException
-{
- public LayoutException( String message, Throwable cause )
- {
- super( message, cause );
- }
-
- public LayoutException( String message )
- {
- super( message );
- }
-}
diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/MetadataTools.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/MetadataTools.java
index 8706759a9..062169273 100644
--- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/MetadataTools.java
+++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/MetadataTools.java
@@ -36,7 +36,7 @@ import org.apache.archiva.redback.components.registry.RegistryListener;
import org.apache.archiva.repository.ContentNotFoundException;
import org.apache.archiva.repository.ManagedRepositoryContent;
import org.apache.archiva.repository.RemoteRepositoryContent;
-import org.apache.archiva.repository.layout.LayoutException;
+import org.apache.archiva.repository.LayoutException;
import org.apache.archiva.xml.XMLException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;