org.gradle.plugin.repository.internal.AbstractArtifactPluginRepository Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-api Show documentation
Show all versions of gradle-api Show documentation
Gradle 6.9.1 API redistribution.
/*
* Copyright 2016 the original author or authors.
*
* Licensed 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.
*/
package org.gradle.plugin.repository.internal;
import org.gradle.api.Action;
import org.gradle.api.artifacts.dsl.RepositoryHandler;
import org.gradle.api.artifacts.repositories.ArtifactRepository;
import org.gradle.api.artifacts.repositories.AuthenticationContainer;
import org.gradle.api.artifacts.repositories.AuthenticationSupported;
import org.gradle.api.artifacts.repositories.PasswordCredentials;
import org.gradle.api.credentials.Credentials;
import org.gradle.api.internal.artifacts.DependencyResolutionServices;
import org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionSelectorScheme;
import org.gradle.api.internal.file.FileResolver;
import org.gradle.internal.artifacts.repositories.AuthenticationSupportedInternal;
import org.gradle.plugin.use.resolve.internal.ArtifactRepositoryPluginResolver;
import org.gradle.plugin.use.resolve.internal.PluginResolver;
import java.net.URI;
abstract class AbstractArtifactPluginRepository extends AbstractPluginRepository implements AuthenticationSupported, PluginRepositoryInternal, BackedByArtifactRepositories {
private static final String REPOSITORY_PREFIX = "__pluginRepository__";
private final FileResolver fileResolver;
private final DependencyResolutionServices dependencyResolutionServices;
private final VersionSelectorScheme versionSelectorScheme;
private final AuthenticationSupportedInternal authenticationSupport;
private String name;
private Object url;
private PluginResolver resolver;
AbstractArtifactPluginRepository(
String defaultName, FileResolver fileResolver, DependencyResolutionServices dependencyResolutionServices,
VersionSelectorScheme versionSelectorScheme, AuthenticationSupportedInternal authenticationSupport) {
this.authenticationSupport = authenticationSupport;
this.fileResolver = fileResolver;
this.dependencyResolutionServices = dependencyResolutionServices;
this.versionSelectorScheme = versionSelectorScheme;
this.name = defaultName;
}
AuthenticationSupportedInternal authenticationSupport() {
return authenticationSupport;
}
String getArtifactRepositoryName() {
return REPOSITORY_PREFIX + name;
}
protected abstract ArtifactRepository internalCreateArtifactRepository(RepositoryHandler repositoryHandler);
@Override
public void createArtifactRepositories(RepositoryHandler repositoryHandler) {
internalCreateArtifactRepository(repositoryHandler);
}
public URI getUrl() {
return fileResolver.resolveUri(url);
}
public void setUrl(Object url) {
checkMutable();
this.url = url;
}
@Override
public PasswordCredentials getCredentials() {
return authenticationSupport.getCredentials();
}
@Override
public T getCredentials(Class credentialsType) {
return authenticationSupport.getCredentials(credentialsType);
}
@Override
public void credentials(Action super PasswordCredentials> action) {
checkMutable();
authenticationSupport.credentials(action);
}
@Override
public void credentials(Class credentialsType, Action super T> action) {
checkMutable();
authenticationSupport.credentials(credentialsType, action);
}
@Override
public void authentication(Action super AuthenticationContainer> action) {
checkMutable();
authenticationSupport.authentication(action);
}
@Override
public AuthenticationContainer getAuthentication() {
return authenticationSupport.getAuthentication();
}
@Override
public PluginResolver internalAsResolver() {
if (resolver == null) {
createArtifactRepositories(dependencyResolutionServices.getResolveRepositoryHandler());
resolver = new ArtifactRepositoryPluginResolver(name + '(' + url + ')', dependencyResolutionServices, versionSelectorScheme);
}
return resolver;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy