diff options
Diffstat (limited to 'archiva-modules/archiva-base/archiva-repository-layer')
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; |