org.gradle.api.internaldsl.DefaultRepositoryHandler 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 5.5.1 API redistribution.
/*
* Copyright 2010 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.api.internal.artifacts.dsl;
import groovy.lang.Closure;
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.FlatDirectoryArtifactRepository;
import org.gradle.api.artifacts.repositories.IvyArtifactRepository;
import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
import org.gradle.api.internal.ConfigureByMapAction;
import org.gradle.api.internal.CollectionCallbackActionDecorator;
import org.gradle.api.internal.artifacts.BaseRepositoryFactory;
import org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer;
import org.gradle.internal.reflect.Instantiator;
import org.gradle.util.ConfigureUtil;
import java.util.HashMap;
import java.util.Map;
import static org.gradle.util.CollectionUtils.flattenCollections;
public class DefaultRepositoryHandler extends DefaultArtifactRepositoryContainer implements RepositoryHandler {
public static final String GRADLE_PLUGIN_PORTAL_REPO_NAME = "Gradle Central Plugin Repository";
public static final String DEFAULT_BINTRAY_JCENTER_REPO_NAME = "BintrayJCenter";
public static final String BINTRAY_JCENTER_URL = "https://jcenter.bintray.com/";
public static final String GOOGLE_REPO_NAME = "Google";
public static final String FLAT_DIR_DEFAULT_NAME = "flatDir";
private static final String MAVEN_REPO_DEFAULT_NAME = "maven";
private static final String IVY_REPO_DEFAULT_NAME = "ivy";
private final BaseRepositoryFactory repositoryFactory;
public DefaultRepositoryHandler(BaseRepositoryFactory repositoryFactory, Instantiator instantiator, CollectionCallbackActionDecorator decorator) {
super(instantiator, decorator);
this.repositoryFactory = repositoryFactory;
}
public FlatDirectoryArtifactRepository flatDir(Action action) {
return addRepository(repositoryFactory.createFlatDirRepository(), FLAT_DIR_DEFAULT_NAME, action);
}
public FlatDirectoryArtifactRepository flatDir(Closure configureClosure) {
return flatDir(ConfigureUtil.configureUsing(configureClosure));
}
public FlatDirectoryArtifactRepository flatDir(Map args) {
Map modifiedArgs = new HashMap(args);
if (modifiedArgs.containsKey("dirs")) {
modifiedArgs.put("dirs", flattenCollections(modifiedArgs.get("dirs")));
}
return flatDir(new ConfigureByMapAction(modifiedArgs));
}
@Override
public ArtifactRepository gradlePluginPortal() {
return addRepository(repositoryFactory.createGradlePluginPortal(), GRADLE_PLUGIN_PORTAL_REPO_NAME);
}
@Override
public ArtifactRepository gradlePluginPortal(Action action) {
return addRepository(repositoryFactory.createGradlePluginPortal(), GRADLE_PLUGIN_PORTAL_REPO_NAME, action);
}
public MavenArtifactRepository mavenCentral() {
return addRepository(repositoryFactory.createMavenCentralRepository(), DEFAULT_MAVEN_CENTRAL_REPO_NAME);
}
@Override
public MavenArtifactRepository mavenCentral(Action action) {
return addRepository(repositoryFactory.createMavenCentralRepository(), DEFAULT_MAVEN_CENTRAL_REPO_NAME, action);
}
public MavenArtifactRepository jcenter() {
return addRepository(repositoryFactory.createJCenterRepository(), DEFAULT_BINTRAY_JCENTER_REPO_NAME);
}
public MavenArtifactRepository jcenter(Action action) {
return addRepository(repositoryFactory.createJCenterRepository(), DEFAULT_BINTRAY_JCENTER_REPO_NAME, action);
}
public MavenArtifactRepository mavenCentral(Map args) {
Map modifiedArgs = new HashMap(args);
return addRepository(repositoryFactory.createMavenCentralRepository(), DEFAULT_MAVEN_CENTRAL_REPO_NAME, new ConfigureByMapAction(modifiedArgs));
}
public MavenArtifactRepository mavenLocal() {
return addRepository(repositoryFactory.createMavenLocalRepository(), DEFAULT_MAVEN_LOCAL_REPO_NAME);
}
@Override
public MavenArtifactRepository mavenLocal(Action action) {
return addRepository(repositoryFactory.createMavenLocalRepository(), DEFAULT_MAVEN_LOCAL_REPO_NAME, action);
}
public MavenArtifactRepository google() {
return addRepository(repositoryFactory.createGoogleRepository(), GOOGLE_REPO_NAME);
}
@Override
public MavenArtifactRepository google(Action action) {
return addRepository(repositoryFactory.createGoogleRepository(), GOOGLE_REPO_NAME, action);
}
public MavenArtifactRepository maven(Action action) {
return addRepository(repositoryFactory.createMavenRepository(), MAVEN_REPO_DEFAULT_NAME, action);
}
public MavenArtifactRepository maven(Closure closure) {
return maven(ConfigureUtil.configureUsing(closure));
}
public IvyArtifactRepository ivy(Action action) {
return addRepository(repositoryFactory.createIvyRepository(), IVY_REPO_DEFAULT_NAME, action);
}
public IvyArtifactRepository ivy(Closure closure) {
return ivy(ConfigureUtil.configureUsing(closure));
}
}