diff --git a/0001-Gradle-local-mode.patch b/0001-Gradle-local-mode.patch new file mode 100644 index 0000000000000000000000000000000000000000..7eb0c159a16bf303d1f3568cb06212168b02af80 --- /dev/null +++ b/0001-Gradle-local-mode.patch @@ -0,0 +1,77 @@ +From dbdd81c3c8cfa1b3c61bc2376a42702be2a3f476 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Wed, 15 Oct 2014 14:23:30 +0200 +Subject: [PATCH 01/18] Gradle local mode + +--- + build.gradle | 1 + + buildSrc/build.gradle | 3 +++ + subprojects/docs/docs.gradle | 1 + + subprojects/docs/src/transforms/release-notes.gradle | 1 + + subprojects/reporting/reporting.gradle | 1 + + 5 files changed, 7 insertions(+) + +diff --git a/build.gradle b/build.gradle +index 45faed9098b..b4504db8f7c 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -193,6 +193,7 @@ allprojects { + maven { url 'https://repo.gradle.org/gradle/libs-releases' } + maven { url 'https://repo.gradle.org/gradle/libs-milestones' } + maven { url "https://repo.gradle.org/gradle/libs-snapshots" } ++ xmvn() + } + + // patchExternalModules lives in the root project - we need to activate normalization there, too. +diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle +index b2eb858a3ce..e5b73f35ef5 100644 +--- a/buildSrc/build.gradle ++++ b/buildSrc/build.gradle +@@ -25,6 +25,9 @@ repositories { + maven { url 'https://repo.gradle.org/gradle/libs-releases' } + maven { url "https://repo.gradle.org/gradle/libs-snapshots" } + maven { url "https://plugins.gradle.org/m2/" } ++ xmvn() ++ maven { url 'https://repo.gradle.org/gradle/libs' } ++ mavenCentral() + } + + dependencies { +diff --git a/subprojects/docs/docs.gradle b/subprojects/docs/docs.gradle +index e876b265d16..5063c30e60e 100755 +--- a/subprojects/docs/docs.gradle ++++ b/subprojects/docs/docs.gradle +@@ -41,6 +41,7 @@ apply plugin: 'javascript-base' + apply plugin: 'org.asciidoctor.convert' + + repositories { ++ xmvn() + javaScript.googleApis() + + ivy { +diff --git a/subprojects/docs/src/transforms/release-notes.gradle b/subprojects/docs/src/transforms/release-notes.gradle +index c0c76884944..5aca84da33d 100644 +--- a/subprojects/docs/src/transforms/release-notes.gradle ++++ b/subprojects/docs/src/transforms/release-notes.gradle +@@ -1,5 +1,6 @@ + buildscript { + repositories { ++ xmvn() + mavenCentral() + } + dependencies { +diff --git a/subprojects/reporting/reporting.gradle b/subprojects/reporting/reporting.gradle +index a467c71be4d..92981631cb8 100644 +--- a/subprojects/reporting/reporting.gradle ++++ b/subprojects/reporting/reporting.gradle +@@ -7,6 +7,7 @@ configurations { + } + + repositories { ++ xmvn() + javaScript.googleApis() + } + +-- +2.20.1 + diff --git a/0002-Remove-Class-Path-from-manifest.patch b/0002-Remove-Class-Path-from-manifest.patch new file mode 100644 index 0000000000000000000000000000000000000000..c9b6170bd14141a61592d949fcd529b03b89a68b --- /dev/null +++ b/0002-Remove-Class-Path-from-manifest.patch @@ -0,0 +1,85 @@ +From 2378f2f2412a8f6684dd5a360102bce9a43881fe Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Sun, 9 Nov 2014 17:52:30 +0100 +Subject: [PATCH 02/18] Remove Class-Path from manifest + +--- + .../installation/CurrentGradleInstallationLocator.java | 8 +------- + .../org/gradle/api/internal/classpath/ManifestUtil.java | 3 +++ + subprojects/launcher/launcher.gradle | 3 +++ + .../launcher/daemon/client/DefaultDaemonStarter.java | 6 +----- + 4 files changed, 8 insertions(+), 12 deletions(-) + +diff --git a/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java b/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java +index 88d6b0be44d..fe9086c5c29 100644 +--- a/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java ++++ b/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java +@@ -51,13 +51,7 @@ abstract class CurrentGradleInstallationLocator { + } + + private static File findDistDir(Class clazz) { +- File codeSource = ClasspathUtil.getClasspathForClass(clazz); +- if (codeSource.isFile()) { +- return determineDistRootDir(codeSource); +- } else { +- // Loaded from a classes dir - assume we're running from the ide or tests +- return null; +- } ++ return new File("/usr/share/gradle"); + } + + /** +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java +index 193f91079a4..2f8bc364401 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java +@@ -71,6 +71,9 @@ public class ManifestUtil { + return EMPTY; + } + String classpathEntry = manifest.getMainAttributes().getValue("Class-Path"); ++ if (classpathEntry == null) { ++ classpathEntry = manifest.getMainAttributes().getValue("X-Gradle-Class-Path"); ++ } + if (classpathEntry == null || classpathEntry.trim().length() == 0) { + return EMPTY; + } +diff --git a/subprojects/launcher/launcher.gradle b/subprojects/launcher/launcher.gradle +index 23f161cfcee..db50238a34a 100644 +--- a/subprojects/launcher/launcher.gradle ++++ b/subprojects/launcher/launcher.gradle +@@ -49,6 +49,9 @@ task configureJar { + jar { + dependsOn configureJar + manifest.mainAttributes('Main-Class': "org.gradle.launcher.GradleMain") ++ doFirst { ++ jar.manifest.mainAttributes('X-Gradle-Class-Path': "${project(':core').jar.archivePath.name} ${project(':baseServices').jar.archivePath.name}") ++ } + } + + task startScripts(type: GradleStartScriptGenerator) { +diff --git a/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java b/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java +index 830aaf34cfe..2c57544bb51 100755 +--- a/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java ++++ b/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java +@@ -73,17 +73,13 @@ public class DefaultDaemonStarter implements DaemonStarter { + ModuleRegistry registry = new DefaultModuleRegistry(gradleInstallation); + ClassPath classpath; + List searchClassPath; +- if (gradleInstallation == null) { ++ { + // When not running from a Gradle distro, need runtime impl for launcher plus the search path to look for other modules + classpath = ClassPath.EMPTY; + for (Module module : registry.getModule("gradle-launcher").getAllRequiredModules()) { + classpath = classpath.plus(module.getClasspath()); + } + searchClassPath = registry.getAdditionalClassPath().getAsFiles(); +- } else { +- // When running from a Gradle distro, only need launcher jar. The daemon can find everything from there. +- classpath = registry.getModule("gradle-launcher").getImplementationClasspath(); +- searchClassPath = Collections.emptyList(); + } + if (classpath.isEmpty()) { + throw new IllegalStateException("Unable to construct a bootstrap classpath when starting the daemon"); +-- +2.20.1 + diff --git a/0003-Implement-XMvn-repository-factory-method.patch b/0003-Implement-XMvn-repository-factory-method.patch new file mode 100644 index 0000000000000000000000000000000000000000..954058ce493b72c1ffd4aed9a1ba98ce2fb39b84 --- /dev/null +++ b/0003-Implement-XMvn-repository-factory-method.patch @@ -0,0 +1,149 @@ +From e9d5a7bb3db32f2b9cf4accc862ba3a49048433e Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Sun, 9 Nov 2014 21:37:37 +0100 +Subject: [PATCH 03/18] Implement XMvn repository factory method + +--- + .../artifacts/BaseRepositoryFactory.java | 3 + + .../dsl/DefaultRepositoryHandler.java | 6 ++ + .../DefaultBaseRepositoryFactory.java | 63 +++++++++++++++++++ + 3 files changed, 72 insertions(+) + +diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java +index 00ea355013b..2b16b409d4d 100644 +--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java ++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java +@@ -15,6 +15,7 @@ + */ + package org.gradle.api.internal.artifacts; + ++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; +@@ -36,4 +37,6 @@ public interface BaseRepositoryFactory { + IvyArtifactRepository createIvyRepository(); + + MavenArtifactRepository createMavenRepository(); ++ ++ ArtifactRepository createXMvnResolver(); + } +diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java +index af092bab6b9..87ddd6ce6fd 100644 +--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java ++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java +@@ -18,6 +18,7 @@ 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; +@@ -41,6 +42,7 @@ public class DefaultRepositoryHandler extends DefaultArtifactRepositoryContainer + 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 static final String XMVN_REPO_DEFAULT_NAME = "xmvn"; + + private final BaseRepositoryFactory repositoryFactory; + +@@ -105,4 +107,8 @@ public class DefaultRepositoryHandler extends DefaultArtifactRepositoryContainer + public IvyArtifactRepository ivy(Closure closure) { + return ivy(ConfigureUtil.configureUsing(closure)); + } ++ ++ public ArtifactRepository xmvn() { ++ return addRepository(repositoryFactory.createXMvnResolver(), XMVN_REPO_DEFAULT_NAME); ++ } + } +diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java +index 408f346f6bd..73112106ae1 100644 +--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java ++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java +@@ -17,6 +17,7 @@ + package org.gradle.api.internal.artifacts.repositories; + + 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.FlatDirectoryArtifactRepository; + import org.gradle.api.artifacts.repositories.IvyArtifactRepository; +@@ -43,7 +44,14 @@ import org.gradle.internal.resource.local.FileStore; + import org.gradle.internal.resource.local.LocallyAvailableResourceFinder; + + import java.io.File; ++import java.lang.reflect.Method; ++import java.net.MalformedURLException; ++import java.net.URL; ++import java.net.URLClassLoader; ++import java.util.Arrays; ++import java.util.LinkedHashSet; + import java.util.Map; ++import java.util.Set; + + public class DefaultBaseRepositoryFactory implements BaseRepositoryFactory { + private final LocalMavenRepositoryLocator localMavenRepositoryLocator; +@@ -136,4 +144,59 @@ public class DefaultBaseRepositoryFactory implements BaseRepositoryFactory { + + return container; + } ++ ++ public ArtifactRepository createXMvnResolver() { ++ // Check if XMvn connector is available and inform user if it's not. ++ // This is more user-friendly as it prevents cryptic stack traces. ++ if (!new File("/usr/share/java/xmvn/xmvn-connector-gradle.jar").exists()) ++ throw new RuntimeException("Local mode for Gradle is not available because XMvn Gradle connector is not installed. " ++ + "To use local mode you need to install gradle-local package."); ++ ++ // XMvn connector for Gradle is an external library and it is not ++ // included in default Gradle classpath. Before it can be accessed ++ // we need to add its implementation JARs to current class loader. ++ /* ++ try { ++ ClassLoader classLoader = getClass().getClassLoader(); ++ Set newUrls = new LinkedHashSet(); ++ newUrls.add(new File("/usr/share/java/xmvn/xmvn-api.jar").toURI().toURL()); ++ newUrls.add(new File("/usr/share/java/xmvn/xmvn-launcher.jar").toURI().toURL()); ++ newUrls.add(new File("/usr/share/java/xmvn/xmvn-connector-gradle.jar").toURI().toURL()); ++ Method getterMethod = classLoader.getClass().getMethod("getURLs"); ++ Object[] currentUrls = (Object[]) getterMethod.invoke(classLoader); ++ newUrls.removeAll(Arrays.asList(currentUrls)); ++ Method adderMethod = classLoader.getClass().getMethod("addURLs", Iterable.class); ++ adderMethod.invoke(classLoader, newUrls); ++ } catch (ReflectiveOperationException e) { ++ throw new RuntimeException("Unable to inject XMvn JARs to Gradle class loader", e); ++ } catch (MalformedURLException e) { ++ // Should not happen ++ throw new RuntimeException(e); ++ } ++ */ ++ Class xmvnClass; ++ ++ try { ++ URL[] newUrls = new URL[] { ++ new File("/usr/share/java/xmvn/xmvn-api.jar").toURI().toURL(), ++ new File("/usr/share/java/xmvn/xmvn-core.jar").toURI().toURL(), ++ new File("/usr/share/java/xmvn/xmvn-connector-gradle.jar").toURI().toURL() ++ }; ++ ClassLoader classLoader = new URLClassLoader(newUrls, getClass().getClassLoader()); ++ String xmvnConnectorRole = "org.fedoraproject.xmvn.connector.gradle.GradleResolver"; ++ xmvnClass = classLoader.loadClass(xmvnConnectorRole); ++ } catch (ClassNotFoundException e) { ++ throw new RuntimeException("Unable to inject XMvn JARs to Gradle class loader", e); ++ } catch (MalformedURLException e) { ++ // Should not happen ++ throw new RuntimeException(e); ++ } ++ ++ try { ++ return (ArtifactRepository) xmvnClass.getConstructor(MetaDataParser.class, ImmutableModuleIdentifierFactory.class, FileResourceRepository.class) ++ .newInstance(pomParser, moduleIdentifierFactory, fileResourceRepository); ++ } catch (ReflectiveOperationException e) { ++ throw new RuntimeException("Failed to inject XMvn resolver", e); ++ } ++ } + } +-- +2.20.1 + diff --git a/0004-Use-unversioned-dependency-JAR-names.patch b/0004-Use-unversioned-dependency-JAR-names.patch new file mode 100644 index 0000000000000000000000000000000000000000..db26f4e080ded354906a7c5ca2ca13b306903742 --- /dev/null +++ b/0004-Use-unversioned-dependency-JAR-names.patch @@ -0,0 +1,39 @@ +From d89a4c6756ee0a02b3f71df07baebec95e4cef06 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Sat, 7 Feb 2015 15:28:03 +0100 +Subject: [PATCH 04/18] Use unversioned dependency JAR names + +--- + .../gradle/api/internal/classpath/DefaultModuleRegistry.java | 2 +- + .../java/org/gradle/api/internal/plugins/GroovyJarFile.java | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java +index bcd55e367d2..0ead27197d6 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java +@@ -227,7 +227,7 @@ public class DefaultModuleRegistry implements ModuleRegistry { + } + + private File findJar(String name) { +- Pattern pattern = Pattern.compile(Pattern.quote(name) + "-\\d.+\\.jar"); ++ Pattern pattern = Pattern.compile(Pattern.quote(name) + "(?:-\\d.+)?\\.jar"); + if (gradleInstallation != null) { + for (File libDir : gradleInstallation.getLibDirs()) { + for (File file : libDir.listFiles()) { +diff --git a/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java b/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java +index 5b7329999ae..c4c778e65a6 100644 +--- a/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java ++++ b/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java +@@ -23,7 +23,7 @@ import java.util.regex.Matcher; + import java.util.regex.Pattern; + + public class GroovyJarFile { +- private static final Pattern FILE_NAME_PATTERN = Pattern.compile("(groovy(?:-all)?)-(\\d.*?)(-indy)?.jar"); ++ private static final Pattern FILE_NAME_PATTERN = Pattern.compile("(groovy(?:-all)?)(?:-(\\d.*?))?(-indy)?.jar"); + + private final File file; + private final Matcher matcher; +-- +2.20.1 + diff --git a/0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch b/0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch new file mode 100644 index 0000000000000000000000000000000000000000..56c7bb8c5f1d48ddd9f826950cd207d5fa1db95f --- /dev/null +++ b/0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch @@ -0,0 +1,331 @@ +From a93f1964c73ab50e3c12e6f5192166a3fa77d3dd Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 6 Jul 2015 09:57:22 +0200 +Subject: [PATCH 05/18] Port to Maven 3.3.9 and Eclipse Aether + +--- + gradle/dependencies.gradle | 23 ++++++--- + .../internal/maven/MavenProjectsCreator.java | 7 +-- + .../action/AbstractMavenPublishAction.java | 49 +++++++++---------- + .../action/LoggingMavenTransferListener.java | 6 +-- + .../internal/action/MavenDeployAction.java | 31 ++++++------ + .../internal/action/MavenInstallAction.java | 10 ++-- + .../action/SnapshotVersionManager.java | 16 +++--- + 7 files changed, 76 insertions(+), 66 deletions(-) + +diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle +index 7045cd4c70f..7b7be2a583d 100755 +--- a/gradle/dependencies.gradle ++++ b/gradle/dependencies.gradle +@@ -115,12 +115,18 @@ libraries += [ + libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.maven}") { + dependency "org.apache.maven:maven-settings:${versions.maven}@jar" + dependency "org.apache.maven:maven-settings-builder:${versions.maven}@jar" ++ dependency "org.apache.maven:maven-builder-support:${versions.maven}@jar" ++ ++ //sisu: ++ dependency "org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.0@jar" ++ dependency "org.eclipse.sisu:org.eclipse.sisu.inject:0.3.0@jar" ++ dependency "org.sonatype.sisu:sisu-guice:3.2.5:no_aop@jar" ++ dependency "javax.inject:javax.inject:1@jar" + + //plexus: + dependency "org.codehaus.plexus:plexus-utils:2.0.6@jar" + dependency "org.codehaus.plexus:plexus-interpolation:1.14@jar" + dependency "org.codehaus.plexus:plexus-component-annotations:1.5.5@jar" +- dependency "org.codehaus.plexus:plexus-container-default:1.5.5@jar" + dependency "org.codehaus.plexus:plexus-classworlds:2.4@jar" + + //sonatype plexus +@@ -142,14 +148,17 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.m + dependency 'org.apache.maven.wagon:wagon-file:2.4@jar' + dependency 'org.apache.maven.wagon:wagon-http:2.4@jar' + dependency 'org.apache.maven.wagon:wagon-provider-api:2.4@jar' +- dependency 'org.apache.maven.wagon:wagon-http-shared4:2.4@jar' ++ dependency 'org.apache.maven.wagon:wagon-http-shared:2.4@jar' + + //eather: +- dependency "org.sonatype.aether:aether-api:1.13.1@jar" +- dependency "org.sonatype.aether:aether-impl:1.13.1@jar" +- dependency "org.sonatype.aether:aether-spi:1.13.1@jar" +- dependency "org.sonatype.aether:aether-util:1.13.1@jar" +- dependency 'org.sonatype.aether:aether-connector-wagon:1.13.1@jar' ++ dependency "org.eclipse.aether:aether-api:1.0.0.v20140518@jar" ++ dependency "org.eclipse.aether:aether-impl:1.0.0.v20140518@jar" ++ dependency "org.eclipse.aether:aether-spi:1.0.0.v20140518@jar" ++ dependency "org.eclipse.aether:aether-util:1.0.0.v20140518@jar" ++ dependency 'org.eclipse.aether:aether-connector-basic:1.0.0.v20140518@jar' ++ dependency 'org.eclipse.aether:aether-transport-wagon:1.0.0.v20140518@jar' ++ ++ dependency 'org.apache.commons:commons-lang3:3.4@jar' + } + + libraries.spock = [ +diff --git a/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java b/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java +index 7a858124b29..69a580405b4 100644 +--- a/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java ++++ b/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java +@@ -25,12 +25,13 @@ import org.apache.maven.settings.Settings; + import org.codehaus.plexus.ContainerConfiguration; + import org.codehaus.plexus.DefaultContainerConfiguration; + import org.codehaus.plexus.DefaultPlexusContainer; ++import org.codehaus.plexus.PlexusConstants; + import org.codehaus.plexus.PlexusContainerException; + import org.codehaus.plexus.classworlds.ClassWorld; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + import org.codehaus.plexus.configuration.PlexusConfigurationException; +-import org.sonatype.aether.RepositorySystemSession; +-import org.sonatype.aether.util.DefaultRepositorySystemSession; ++import org.eclipse.aether.DefaultRepositorySystemSession; ++import org.eclipse.aether.RepositorySystemSession; + import org.gradle.util.CollectionUtils; + + import java.io.File; +@@ -55,7 +56,7 @@ public class MavenProjectsCreator { + private Set createNow(Settings settings, File pomFile) throws PlexusContainerException, PlexusConfigurationException, ComponentLookupException, MavenExecutionRequestPopulationException, ProjectBuildingException { + ContainerConfiguration containerConfiguration = new DefaultContainerConfiguration() + .setClassWorld(new ClassWorld("plexus.core", ClassWorld.class.getClassLoader())) +- .setName("mavenCore"); ++ .setName("mavenCore").setClassPathScanning(PlexusConstants.SCANNING_INDEX).setAutoWiring(true); + + DefaultPlexusContainer container = new DefaultPlexusContainer(containerConfiguration); + ProjectBuilder builder = container.lookup(ProjectBuilder.class); +diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java +index 9dd6e695afd..7d65dde67e3 100644 +--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java ++++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java +@@ -18,11 +18,11 @@ package org.gradle.api.publication.maven.internal.action; + + import org.apache.maven.model.Model; + import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +-import org.apache.maven.repository.internal.MavenRepositorySystemSession; +-import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory; +-import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory; ++import org.apache.maven.repository.internal.MavenRepositorySystemUtils; ++import org.codehaus.plexus.ContainerConfiguration; + import org.codehaus.plexus.DefaultContainerConfiguration; + import org.codehaus.plexus.DefaultPlexusContainer; ++import org.codehaus.plexus.PlexusConstants; + import org.codehaus.plexus.PlexusContainer; + import org.codehaus.plexus.PlexusContainerException; + import org.codehaus.plexus.classworlds.ClassWorld; +@@ -30,16 +30,16 @@ import org.codehaus.plexus.classworlds.realm.ClassRealm; + import org.codehaus.plexus.component.repository.exception.ComponentLookupException; + import org.gradle.api.GradleException; + import org.gradle.internal.UncheckedException; +-import org.sonatype.aether.RepositoryException; +-import org.sonatype.aether.RepositorySystem; +-import org.sonatype.aether.RepositorySystemSession; +-import org.sonatype.aether.artifact.Artifact; +-import org.sonatype.aether.artifact.ArtifactType; +-import org.sonatype.aether.impl.Deployer; +-import org.sonatype.aether.impl.internal.DefaultDeployer; +-import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; +-import org.sonatype.aether.util.DefaultRepositorySystemSession; +-import org.sonatype.aether.util.artifact.DefaultArtifact; ++import org.eclipse.aether.RepositoryException; ++import org.eclipse.aether.RepositorySystem; ++import org.eclipse.aether.RepositorySystemSession; ++import org.eclipse.aether.artifact.Artifact; ++import org.eclipse.aether.artifact.ArtifactType; ++import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory; ++import org.eclipse.aether.repository.LocalRepository; ++import org.eclipse.aether.repository.NoLocalRepositoryManagerException; ++import org.eclipse.aether.DefaultRepositorySystemSession; ++import org.eclipse.aether.artifact.DefaultArtifact; + + import java.io.File; + import java.io.FileReader; +@@ -60,9 +60,8 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction { + + protected AbstractMavenPublishAction(File pomFile, List wagonJars) { + container = newPlexusContainer(wagonJars); +- session = new MavenRepositorySystemSession(); ++ session = MavenRepositorySystemUtils.newSession(); + session.setTransferListener(new LoggingMavenTransferListener()); +- session.getConfigProperties().put("maven.metadata.legacy", "true"); + + Model pom = parsePom(pomFile); + pomArtifact = new DefaultArtifact(pom.getGroupId(), pom.getArtifactId(), "pom", pom.getVersion()).setFile(pomFile); +@@ -70,7 +69,11 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction { + } + + public void setLocalMavenRepositoryLocation(File localMavenRepository) { +- session.setLocalRepositoryManager(new SimpleLocalRepositoryManager(localMavenRepository)); ++ try { ++ session.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(session, new LocalRepository(localMavenRepository))); ++ } catch (NoLocalRepositoryManagerException e) { ++ throw UncheckedException.throwAsUncheckedException(e); ++ } + } + + public void setMainArtifact(File file) { +@@ -117,7 +120,11 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction { + classRealm.addURL(jar.toURI().toURL()); + } + } +- return new DefaultPlexusContainer(new DefaultContainerConfiguration().setRealm(classRealm)); ++ ContainerConfiguration conf = new DefaultContainerConfiguration(); ++ conf.setClassPathScanning(PlexusConstants.SCANNING_INDEX); ++ conf.setAutoWiring(true); ++ conf.setRealm(classRealm); ++ return new DefaultPlexusContainer(conf); + } catch (PlexusContainerException e) { + throw UncheckedException.throwAsUncheckedException(e); + } catch (MalformedURLException e) { +@@ -127,14 +134,6 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction { + + private RepositorySystem newRepositorySystem() { + try { +- DefaultDeployer deployer = (DefaultDeployer) getContainer().lookup(Deployer.class); +- // This is a workaround for https://issues.gradle.org/browse/GRADLE-3324. +- // Somehow the ArrayList 'result' in `org.sonatype.aether.impl.internal.Utils#sortMetadataGeneratorFactories` ends up +- // being a list of nulls on windows and IBM's 1.6 JDK. +- deployer.setMetadataFactories(null); +- deployer.addMetadataGeneratorFactory(new VersionsMetadataGeneratorFactory()); +- deployer.addMetadataGeneratorFactory(new SnapshotMetadataGeneratorFactory()); +- deployer.addMetadataGeneratorFactory(snapshotVersionManager); + return container.lookup(RepositorySystem.class); + } catch (ComponentLookupException e) { + throw UncheckedException.throwAsUncheckedException(e); +diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java +index 5d75a16744b..46287cff506 100644 +--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java ++++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java +@@ -18,9 +18,9 @@ package org.gradle.api.publication.maven.internal.action; + + import org.slf4j.Logger; + import org.slf4j.LoggerFactory; +-import org.sonatype.aether.transfer.AbstractTransferListener; +-import org.sonatype.aether.transfer.TransferEvent; +-import org.sonatype.aether.transfer.TransferEvent.RequestType; ++import org.eclipse.aether.transfer.AbstractTransferListener; ++import org.eclipse.aether.transfer.TransferEvent; ++import org.eclipse.aether.transfer.TransferEvent.RequestType; + + class LoggingMavenTransferListener extends AbstractTransferListener { + private static final Logger LOGGER = LoggerFactory.getLogger(LoggingMavenTransferListener.class); +diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java +index 220e8535c18..c9891dfb583 100644 +--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java ++++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java +@@ -19,14 +19,15 @@ import org.apache.maven.artifact.ant.RemoteRepository; + import org.gradle.api.GradleException; + import org.slf4j.Logger; + import org.slf4j.LoggerFactory; +-import org.sonatype.aether.RepositorySystem; +-import org.sonatype.aether.RepositorySystemSession; +-import org.sonatype.aether.artifact.Artifact; +-import org.sonatype.aether.deployment.DeployRequest; +-import org.sonatype.aether.deployment.DeploymentException; +-import org.sonatype.aether.repository.Authentication; +-import org.sonatype.aether.repository.Proxy; +-import org.sonatype.aether.util.repository.DefaultProxySelector; ++import org.eclipse.aether.RepositorySystem; ++import org.eclipse.aether.RepositorySystemSession; ++import org.eclipse.aether.artifact.Artifact; ++import org.eclipse.aether.deployment.DeployRequest; ++import org.eclipse.aether.deployment.DeploymentException; ++import org.eclipse.aether.repository.Authentication; ++import org.eclipse.aether.repository.Proxy; ++import org.eclipse.aether.util.repository.AuthenticationBuilder; ++import org.eclipse.aether.util.repository.DefaultProxySelector; + + import java.io.File; + import java.util.Collection; +@@ -57,7 +58,7 @@ public class MavenDeployAction extends AbstractMavenPublishAction { + throw new GradleException("Must specify a repository for deployment"); + } + +- org.sonatype.aether.repository.RemoteRepository aetherRepo = createRepository(gradleRepo); ++ org.eclipse.aether.repository.RemoteRepository aetherRepo = createRepository(gradleRepo); + + DeployRequest request = new DeployRequest(); + request.setRepository(aetherRepo); +@@ -69,22 +70,22 @@ public class MavenDeployAction extends AbstractMavenPublishAction { + repositorySystem.deploy(session, request); + } + +- private org.sonatype.aether.repository.RemoteRepository createRepository(RemoteRepository gradleRepo) { +- org.sonatype.aether.repository.RemoteRepository repo = new org.sonatype.aether.repository.RemoteRepository("remote", gradleRepo.getLayout(), gradleRepo.getUrl()); ++ private org.eclipse.aether.repository.RemoteRepository createRepository(RemoteRepository gradleRepo) { ++ org.eclipse.aether.repository.RemoteRepository.Builder repoBuilder = new org.eclipse.aether.repository.RemoteRepository.Builder("remote", gradleRepo.getLayout(), gradleRepo.getUrl()); + + org.apache.maven.artifact.ant.Authentication auth = gradleRepo.getAuthentication(); + if (auth != null) { +- repo.setAuthentication(new Authentication(auth.getUserName(), auth.getPassword(), auth.getPrivateKey(), auth.getPassphrase())); ++ repoBuilder.setAuthentication(new AuthenticationBuilder().addUsername(auth.getUserName()).addPassword(auth.getPassword()).addPrivateKey(auth.getPrivateKey(), auth.getPassphrase()).build()); + } + + org.apache.maven.artifact.ant.Proxy proxy = gradleRepo.getProxy(); + if (proxy != null) { + DefaultProxySelector proxySelector = new DefaultProxySelector(); +- Authentication proxyAuth = new Authentication(proxy.getUserName(), proxy.getPassword()); ++ Authentication proxyAuth = new AuthenticationBuilder().addUsername(proxy.getUserName()).addPassword(proxy.getPassword()).build(); + proxySelector.add(new Proxy(proxy.getType(), proxy.getHost(), proxy.getPort(), proxyAuth), proxy.getNonProxyHosts()); +- repo.setProxy(proxySelector.getProxy(repo)); ++ repoBuilder.setProxy(proxySelector.getProxy(repoBuilder.build())); + } + +- return repo; ++ return repoBuilder.build(); + } + } +diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java +index 37d9dc52d5b..3b121111f2b 100644 +--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java ++++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java +@@ -15,11 +15,11 @@ + */ + package org.gradle.api.publication.maven.internal.action; + +-import org.sonatype.aether.RepositorySystem; +-import org.sonatype.aether.RepositorySystemSession; +-import org.sonatype.aether.artifact.Artifact; +-import org.sonatype.aether.installation.InstallRequest; +-import org.sonatype.aether.installation.InstallationException; ++import org.eclipse.aether.RepositorySystem; ++import org.eclipse.aether.RepositorySystemSession; ++import org.eclipse.aether.artifact.Artifact; ++import org.eclipse.aether.installation.InstallRequest; ++import org.eclipse.aether.installation.InstallationException; + + import java.io.File; + import java.util.Collection; +diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java +index 1fedf1d281a..b1ee8c09a1a 100644 +--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java ++++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java +@@ -16,13 +16,13 @@ + + package org.gradle.api.publication.maven.internal.action; + +-import org.sonatype.aether.RepositorySystemSession; +-import org.sonatype.aether.artifact.Artifact; +-import org.sonatype.aether.deployment.DeployRequest; +-import org.sonatype.aether.impl.MetadataGenerator; +-import org.sonatype.aether.impl.MetadataGeneratorFactory; +-import org.sonatype.aether.installation.InstallRequest; +-import org.sonatype.aether.metadata.Metadata; ++import org.eclipse.aether.RepositorySystemSession; ++import org.eclipse.aether.artifact.Artifact; ++import org.eclipse.aether.deployment.DeployRequest; ++import org.eclipse.aether.impl.MetadataGenerator; ++import org.eclipse.aether.impl.MetadataGeneratorFactory; ++import org.eclipse.aether.installation.InstallRequest; ++import org.eclipse.aether.metadata.Metadata; + + import java.util.Collection; + import java.util.Collections; +@@ -35,7 +35,7 @@ class SnapshotVersionManager implements MetadataGeneratorFactory, MetadataGenera + } + + @Override +- public int getPriority() { ++ public float getPriority() { + return -100; + } + +-- +2.20.1 + diff --git a/0006-Disable-code-quality-checks.patch b/0006-Disable-code-quality-checks.patch new file mode 100644 index 0000000000000000000000000000000000000000..0275d71bbb223bd5642ed776cdeb4635e95bdd32 --- /dev/null +++ b/0006-Disable-code-quality-checks.patch @@ -0,0 +1,85 @@ +From c0f704d29394458523befaa573d8f2178e734c2e Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Wed, 20 Sep 2017 15:26:10 +0300 +Subject: [PATCH 06/18] Disable code quality checks + +--- + build.gradle | 4 ---- + buildSrc/build.gradle | 9 --------- + gradle/classycle.gradle | 7 ------- + subprojects/distributions/distributions.gradle | 2 -- + 4 files changed, 22 deletions(-) + +diff --git a/build.gradle b/build.gradle +index b4504db8f7c..71946257775 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -211,15 +211,11 @@ subprojects { + apply from: "$rootDir/gradle/groovyProject.gradle" + apply from: "$rootDir/gradle/testWithUnknownOS.gradle" + apply from: "$rootDir/gradle/java9.gradle" +- check.dependsOn ":docs:checkstyleApi" +- check.dependsOn "codeQuality" + } + + if (project in publishedProjects) { + apply from: "$rootDir/gradle/publish.gradle" + } +- +- apply from: "$rootDir/gradle/codeQuality.gradle" + } + + configurations { +diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle +index e5b73f35ef5..d3f842f6bf6 100644 +--- a/buildSrc/build.gradle ++++ b/buildSrc/build.gradle +@@ -46,9 +46,6 @@ dependencies { + + compile "org.pegdown:pegdown:1.6.0" + compile "org.jsoup:jsoup:1.6.3" +- compile 'me.champeau.gradle:japicmp-gradle-plugin:0.2.4' +- compile 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' +- compile 'com.github.javaparser:javaparser-core:2.4.0' + } + + ext.isCiServer = System.getenv().containsKey("CI") +@@ -56,9 +53,3 @@ ext.isCiServer = System.getenv().containsKey("CI") + apply from: '../gradle/compile.gradle' + apply from: '../gradle/dependencies.gradle' + apply from: '../gradle/classycle.gradle' +- +-if (!isCiServer || (isCiServer && Boolean.getBoolean('enableCodeQuality'))) { +- apply from: '../gradle/codeQuality.gradle' +-} +- +-apply from: "../gradle/ciReporting.gradle" +diff --git a/gradle/classycle.gradle b/gradle/classycle.gradle +index ba44bdfed3b..5396cf3c5ed 100644 +--- a/gradle/classycle.gradle ++++ b/gradle/classycle.gradle +@@ -1,11 +1,4 @@ + allprojects { + ext.useClassycle = { params = [:] -> +- def excludePatterns = params.exclude ?: [] +- +- apply plugin: org.gradle.plugins.classycle.ClassyclePlugin +- +- tasks.withType(org.gradle.plugins.classycle.Classycle).all() { +- it.excludePatterns = excludePatterns +- } + } + } +diff --git a/subprojects/distributions/distributions.gradle b/subprojects/distributions/distributions.gradle +index cff1db232ba..8e29f7dd942 100644 +--- a/subprojects/distributions/distributions.gradle ++++ b/subprojects/distributions/distributions.gradle +@@ -130,5 +130,3 @@ integTestTasks.all { + systemProperty 'org.gradle.public.api.includes', publicApiIncludes.join(':') + systemProperty 'org.gradle.public.api.excludes', publicApiExcludes.join(':') + } +- +-apply from: 'binary-compatibility.gradle' +-- +2.20.1 + diff --git a/0007-Port-to-Kryo-3.0.patch b/0007-Port-to-Kryo-3.0.patch new file mode 100644 index 0000000000000000000000000000000000000000..02a9f9c35f9ae539cee4d75174ea85148eed55e2 --- /dev/null +++ b/0007-Port-to-Kryo-3.0.patch @@ -0,0 +1,25 @@ +From b92f935f615f9a92b4e636a1635031f7a2c74068 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Fri, 12 Jun 2015 12:04:53 +0200 +Subject: [PATCH 07/18] Port to Kryo 3.0 + +--- + .../org/gradle/internal/serialize/kryo/KryoBackedEncoder.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java b/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java +index c63e4340069..9f93df4ab8a 100644 +--- a/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java ++++ b/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java +@@ -78,7 +78,7 @@ public class KryoBackedEncoder extends AbstractEncoder implements FlushableEncod + * Returns the total number of bytes written by this encoder, some of which may still be buffered. + */ + public int getWritePosition() { +- return output.total(); ++ return (int)output.total(); + } + + public void flush() { +-- +2.20.1 + diff --git a/0008-Port-to-Ivy-2.4.0.patch b/0008-Port-to-Ivy-2.4.0.patch new file mode 100644 index 0000000000000000000000000000000000000000..82b5f2f1d1f33083ce2e09599399a967c4acaf94 --- /dev/null +++ b/0008-Port-to-Ivy-2.4.0.patch @@ -0,0 +1,25 @@ +From cd00959b02331baac5fecda252599eb993bbf8f5 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 13 Apr 2015 12:27:00 +0200 +Subject: [PATCH 08/18] Port to Ivy 2.4.0 + +--- + .../ivyresolve/parser/IvyXmlModuleDescriptorParser.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java +index 9a86d9cb183..c29f1952eb7 100644 +--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java ++++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java +@@ -1207,7 +1207,7 @@ public class IvyXmlModuleDescriptorParser extends AbstractModuleDescriptorParser + buffer = null; + state = State.INFO; + } else if (state == State.EXTRA_INFO) { +- getMd().getExtraInfo().put(new NamespaceId(uri, localName), buffer == null ? "" : buffer.toString()); ++ ((Map)getMd().getExtraInfo()).put(new NamespaceId(uri, localName), buffer == null ? "" : buffer.toString()); + buffer = null; + state = State.INFO; + } else if (state == State.DESCRIPTION) { +-- +2.20.1 + diff --git a/0009-Port-to-Polyglot-0.1.8.patch b/0009-Port-to-Polyglot-0.1.8.patch new file mode 100644 index 0000000000000000000000000000000000000000..16d0e1b0357c5934647be0ea0291a6feab4fe51d --- /dev/null +++ b/0009-Port-to-Polyglot-0.1.8.patch @@ -0,0 +1,56 @@ +From def0eddc86eed16fe98250e571844981c0a2d690 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Tue, 21 Apr 2015 15:12:44 +0200 +Subject: [PATCH 09/18] Port to Polyglot 0.1.8 + +--- + .../maven/internal/pom/CustomModelBuilder.java | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java +index e311d4993b6..91d5fa22d95 100644 +--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java ++++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java +@@ -20,11 +20,15 @@ import org.apache.maven.model.Model; + import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; + import org.gradle.api.publication.maven.internal.ModelFactory; + import org.slf4j.LoggerFactory; ++import org.sonatype.maven.polyglot.PolyglotModelManager; + import org.sonatype.maven.polyglot.execute.ExecuteManager; + import org.sonatype.maven.polyglot.execute.ExecuteManagerImpl; ++import org.sonatype.maven.polyglot.groovy.GroovyMapping; + import org.sonatype.maven.polyglot.groovy.builder.ModelBuilder; ++import org.sonatype.maven.polyglot.mapping.XmlMapping; + + import java.lang.reflect.Field; ++import java.util.Arrays; + import java.util.Map; + + /** +@@ -33,17 +37,16 @@ import java.util.Map; + public class CustomModelBuilder extends ModelBuilder { + + public CustomModelBuilder(Model model) { ++ PolyglotModelManager modelManager = new PolyglotModelManager(); ++ setProp(modelManager.getClass(), modelManager, "log", ++ new PlexusLoggerAdapter(LoggerFactory.getLogger(PolyglotModelManager.class))); ++ setProp(modelManager.getClass(), modelManager, "mappings", ++ Arrays.asList(new XmlMapping(), new GroovyMapping())); + ExecuteManager executeManager = new ExecuteManagerImpl(); + setProp(executeManager.getClass(), executeManager, "log", + new PlexusLoggerAdapter(LoggerFactory.getLogger(ExecuteManagerImpl.class))); ++ setProp(executeManager.getClass(), executeManager, "manager", modelManager); + setProp(ModelBuilder.class, this, "executeManager", executeManager); +- setProp(ModelBuilder.class, this, "log", +- new PlexusLoggerAdapter(LoggerFactory.getLogger(ModelBuilder.class))); +- try { +- initialize(); +- } catch (InitializationException e) { +- throw new RuntimeException(e); +- } + Map factories = (Map) getProp(FactoryBuilderSupport.class, this, "factories"); + factories.remove("project"); + ModelFactory modelFactory = new ModelFactory(model); +-- +2.20.1 + diff --git a/0010-Port-from-Simple-4-to-Jetty-9.patch b/0010-Port-from-Simple-4-to-Jetty-9.patch new file mode 100644 index 0000000000000000000000000000000000000000..5ab47a2cd98973fa45bf21fc8db60efe9b7f64c8 --- /dev/null +++ b/0010-Port-from-Simple-4-to-Jetty-9.patch @@ -0,0 +1,204 @@ +From acd265dea71fb69236d7cb1997e3b0382bcaa4e4 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Fri, 30 Jan 2015 13:16:40 +0100 +Subject: [PATCH 10/18] Port from Simple 4 to Jetty 9 + +--- + gradle/dependencies.gradle | 6 +- + subprojects/javascript/javascript.gradle | 2 +- + .../simple/SimpleHttpFileServerFactory.java | 38 ++++----- + .../internal/SimpleFileServerContainer.java | 82 ------------------- + 4 files changed, 23 insertions(+), 105 deletions(-) + delete mode 100644 subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java + +diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle +index 7b7be2a583d..6e17a88bc31 100755 +--- a/gradle/dependencies.gradle ++++ b/gradle/dependencies.gradle +@@ -66,12 +66,12 @@ libraries.logback_classic = dependencies.module('ch.qos.logback:logback-classic: + } + + // Jetty +-libraries.servlet_api = "org.mortbay.jetty:servlet-api:2.5-20081211@jar" +-libraries.jetty_util = dependencies.module("org.mortbay.jetty:jetty-util:6.1.26") { ++libraries.servlet_api = "javax.servlet:javax.servlet-api" ++libraries.jetty_util = dependencies.module("org.eclipse.jetty:jetty-util") { + dependency libraries.slf4j_api + dependency libraries.servlet_api + } +-libraries.jetty = dependencies.module("org.mortbay.jetty:jetty:6.1.26") { ++libraries.jetty = dependencies.module("org.eclipse.jetty:jetty-server") { + dependency libraries.jetty_util + dependency libraries.servlet_api + } +diff --git a/subprojects/javascript/javascript.gradle b/subprojects/javascript/javascript.gradle +index 1e94bd8de68..18970197521 100644 +--- a/subprojects/javascript/javascript.gradle ++++ b/subprojects/javascript/javascript.gradle +@@ -19,7 +19,7 @@ dependencies { + + compile "org.mozilla:rhino:1.7R3" + compile libraries.gson // used by JsHint +- compile "org.simpleframework:simple:4.1.21" // used by http package in envjs ++ compile libraries.jetty // used by http package in envjs + compile project(':core'), project(":plugins"), project(':workers') + compile libraries.inject + +diff --git a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java +index 8a4f692cf4e..6983db21cb4 100644 +--- a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java ++++ b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java +@@ -16,43 +16,43 @@ + + package org.gradle.plugins.javascript.envjs.http.simple; + ++import org.eclipse.jetty.server.Handler; ++import org.eclipse.jetty.server.Server; ++import org.eclipse.jetty.server.handler.DefaultHandler; ++import org.eclipse.jetty.server.handler.HandlerList; ++import org.eclipse.jetty.server.handler.ResourceHandler; + import org.gradle.api.UncheckedIOException; + import org.gradle.internal.concurrent.Stoppable; + import org.gradle.plugins.javascript.envjs.http.HttpFileServer; + import org.gradle.plugins.javascript.envjs.http.HttpFileServerFactory; +-import org.gradle.plugins.javascript.envjs.http.simple.internal.SimpleFileServerContainer; +-import org.simpleframework.http.core.Container; +-import org.simpleframework.http.core.ContainerServer; +-import org.simpleframework.http.resource.FileContext; +-import org.simpleframework.transport.Server; +-import org.simpleframework.transport.connect.Connection; +-import org.simpleframework.transport.connect.SocketConnection; + + import java.io.File; +-import java.io.IOException; +-import java.net.InetSocketAddress; + + public class SimpleHttpFileServerFactory implements HttpFileServerFactory { + + public HttpFileServer start(File contentRoot, int port) { +- Container container = new SimpleFileServerContainer(new FileContext(contentRoot)); +- + try { +- final Server server = new ContainerServer(container); +- Connection connection = new SocketConnection(server); +- InetSocketAddress address = new InetSocketAddress(port); +- InetSocketAddress usedAddress = (InetSocketAddress)connection.connect(address); ++ final Server server = new Server(8080); ++ ++ ResourceHandler handler = new ResourceHandler(); ++ handler.setResourceBase(contentRoot.getPath()); ++ ++ HandlerList handlers = new HandlerList(); ++ handlers.setHandlers(new Handler[] { handler, new DefaultHandler() }); ++ server.setHandler(handlers); ++ ++ server.start(); + +- return new SimpleHttpFileServer(contentRoot, usedAddress.getPort(), new Stoppable() { ++ return new SimpleHttpFileServer(contentRoot, port, new Stoppable() { + public void stop() { + try { +- server.stop(); +- } catch (IOException e) { ++ server.join(); ++ } catch (InterruptedException e) { + throw new UncheckedIOException(e); + } + } + }); +- } catch (IOException e) { ++ } catch (Exception e) { + throw new UncheckedIOException(e); + } + } +diff --git a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java +deleted file mode 100644 +index 5d67baeeae1..00000000000 +--- a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java ++++ /dev/null +@@ -1,82 +0,0 @@ +-/* +- * Copyright 2012 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.plugins.javascript.envjs.http.simple.internal; +- +-import org.apache.commons.io.IOUtils; +-import org.gradle.api.UncheckedIOException; +-import org.simpleframework.http.Request; +-import org.simpleframework.http.Response; +-import org.simpleframework.http.core.Container; +-import org.simpleframework.http.resource.Context; +-import org.simpleframework.http.resource.Index; +- +-import java.io.File; +-import java.io.FileInputStream; +-import java.io.FileReader; +-import java.io.IOException; +-import java.io.InputStream; +-import java.io.OutputStream; +-import java.io.Reader; +-import java.nio.charset.Charset; +- +-public class SimpleFileServerContainer implements Container { +- +- private final Context context; +- +- public SimpleFileServerContainer(Context context) { +- this.context = context; +- } +- +- public void handle(Request req, Response resp) { +- Index requestIndex = context.getIndex(req.getTarget()); +- File targetFile = requestIndex.getFile(); +- +- if (!targetFile.exists()) { +- resp.setCode(404); +- resp.setText("Not Found"); +- try { +- resp.getPrintStream().println(String.format("File '%s' does not exist", targetFile.getAbsolutePath())); +- resp.commit(); +- } catch (IOException e) { +- throw new UncheckedIOException(e); +- } +- } +- +- String contentType = requestIndex.getContentType(); +- resp.set("Content-Type", contentType); +- +- OutputStream output = null; +- try { +- output = resp.getOutputStream(); +- +- if (contentType.startsWith("text/")) { +- resp.set("Content-Encoding", Charset.defaultCharset().name()); +- Reader input = new FileReader(requestIndex.getFile()); +- IOUtils.copy(input, output); +- IOUtils.closeQuietly(input); +- } else { +- InputStream input = new FileInputStream(requestIndex.getFile()); +- IOUtils.copy(input, output); +- IOUtils.closeQuietly(input); +- } +- } catch (IOException e) { +- throw new UncheckedIOException(e); +- } finally { +- IOUtils.closeQuietly(output); +- } +- } +-} +-- +2.20.1 + diff --git a/0011-Disable-benchmarks.patch b/0011-Disable-benchmarks.patch new file mode 100644 index 0000000000000000000000000000000000000000..1d9353f17adcedf5a3bd4a136beb7351dfed311b --- /dev/null +++ b/0011-Disable-benchmarks.patch @@ -0,0 +1,83 @@ +From 432f94453778aee83d81f96c737747183945f857 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Fri, 29 Sep 2017 14:10:15 +0300 +Subject: [PATCH 11/18] Disable benchmarks + +--- + gradle/groovyProject.gradle | 4 ---- + subprojects/base-services/base-services.gradle | 6 ------ + subprojects/build-cache/build-cache.gradle | 6 ------ + subprojects/native/native.gradle | 8 -------- + 4 files changed, 24 deletions(-) + +diff --git a/gradle/groovyProject.gradle b/gradle/groovyProject.gradle +index 60810cd91ba..1897b21e608 100644 +--- a/gradle/groovyProject.gradle ++++ b/gradle/groovyProject.gradle +@@ -102,10 +102,6 @@ if (file("src/performanceTest").exists()) { + apply from: "$rootDir/gradle/performanceTest.gradle" + } + +-if (file("src/jmh").exists()) { +- apply from: "$rootDir/gradle/jmh.gradle" +-} +- + apply from: "$rootDir/gradle/distributionTesting.gradle" + apply from: "$rootDir/gradle/intTestImage.gradle" + +diff --git a/subprojects/base-services/base-services.gradle b/subprojects/base-services/base-services.gradle +index 3f9cb27e2e6..491c0fa46eb 100644 +--- a/subprojects/base-services/base-services.gradle ++++ b/subprojects/base-services/base-services.gradle +@@ -16,12 +16,6 @@ dependencies { + implementation libraries.commons_lang + implementation libraries.commons_io + implementation libraries.jcip +- +- jmh libraries.bouncycastle_provider +-} +- +-jmh { +- include = ["HashingAlgorithmsBenchmark"] + } + + task buildReceiptResource(type: Copy) { +diff --git a/subprojects/build-cache/build-cache.gradle b/subprojects/build-cache/build-cache.gradle +index 005923c563b..01d32928320 100644 +--- a/subprojects/build-cache/build-cache.gradle ++++ b/subprojects/build-cache/build-cache.gradle +@@ -26,12 +26,6 @@ dependencies { + implementation project(":logging") + + implementation libraries.commons_io +- +- jmh libraries.ant +- jmh libraries.commons_compress +- jmh "io.airlift:aircompressor:0.8" +- jmh "org.iq80.snappy:snappy:0.4" +- jmh "org.kamranzafar:jtar:2.3" + } + + useTestFixtures() +diff --git a/subprojects/native/native.gradle b/subprojects/native/native.gradle +index dfd4db20408..0b59611dfcd 100755 +--- a/subprojects/native/native.gradle ++++ b/subprojects/native/native.gradle +@@ -19,14 +19,6 @@ useTestFixtures() + useTestFixtures(project: ":logging") + useClassycle() + +-jmh { +- fork = 1 +- threads = 2 +- warmupIterations = 10 +- synchronizeIterations = false +- resultFormat = 'CSV' +-} +- + task copyJmhReport(type: Copy) { + destinationDir = file("$buildDir/reports/jmh-html") + +-- +2.20.1 + diff --git a/0012-Disable-patching-of-external-modules.patch b/0012-Disable-patching-of-external-modules.patch new file mode 100644 index 0000000000000000000000000000000000000000..ea730286cf88756f21e512074517911fefe80561 --- /dev/null +++ b/0012-Disable-patching-of-external-modules.patch @@ -0,0 +1,54 @@ +From 3793c63380dcaf95fcced8d18be0893a96572fcc Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 2 Oct 2017 17:31:44 +0300 +Subject: [PATCH 12/18] Disable patching of external modules + +--- + build.gradle | 15 --------------- + 1 file changed, 15 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 71946257775..6fcefe67b8f 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -248,18 +248,11 @@ configurations { + } + } + +-def patchedExternalModulesDir = new File(buildDir, "external/files") +-def patchedExternalModules = files({ -> fileTree(patchedExternalModulesDir).files.sort() }) +-patchedExternalModules.builtBy 'patchExternalModules' +- + dependencies { +- externalModules "org.gradle:gradle-kotlin-dsl:${versions.gradle_kotlin_dsl}" +- externalModules "org.gradle:gradle-kotlin-dsl-tooling-builders:${versions.gradle_kotlin_dsl}" + coreRuntime project(':launcher') + coreRuntime project(':runtimeApiInfo') + runtime project(':wrapper') + runtime project(":installationBeacon") +- runtime patchedExternalModules + gradlePlugins pluginProjects + gradlePlugins implementationPluginProjects + gradlePlugins project(':workers') +@@ -269,18 +262,10 @@ dependencies { + coreRuntimeExtensions project(':dependencyManagement') //See: DynamicModulesClassPathProvider.GRADLE_EXTENSION_MODULES + coreRuntimeExtensions project(':pluginUse') + coreRuntimeExtensions project(':workers') +- coreRuntimeExtensions patchedExternalModules + } + + import org.gradle.modules.PatchExternalModules + +-task patchExternalModules(type: PatchExternalModules) { +- allModules = configurations.externalModulesRuntime +- coreModules = configurations.coreRuntime +- modulesToPatch = configurations.externalModules +- destination = patchedExternalModulesDir +-} +- + task verifyIsProductionBuildEnvironment { + doLast { + assert javaVersion.java7: "Must use a Java 7 compatible JVM to perform this build. Current JVM is ${jvm}" +-- +2.20.1 + diff --git a/0013-Add-missing-transitive-dependencies.patch b/0013-Add-missing-transitive-dependencies.patch new file mode 100644 index 0000000000000000000000000000000000000000..18a0b9efd9641152efe01593c01bb5cc59054104 --- /dev/null +++ b/0013-Add-missing-transitive-dependencies.patch @@ -0,0 +1,52 @@ +From 4929260470361a27e22a6218fbbcf4e2dce1b67d Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 2 Oct 2017 17:33:05 +0300 +Subject: [PATCH 13/18] Add missing transitive dependencies + +--- + gradle/dependencies.gradle | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle +index 6e17a88bc31..262bcff571d 100755 +--- a/gradle/dependencies.gradle ++++ b/gradle/dependencies.gradle +@@ -35,7 +35,10 @@ libraries.ant = dependencies.module('org.apache.ant:ant:1.9.6') { + + libraries.asm = 'org.ow2.asm:asm-debug-all:6.0_ALPHA' + libraries.cglib = 'cglib:cglib:3.2.5' +-libraries.bndlib = dependencies.module('biz.aQute.bnd:biz.aQute.bndlib:3.4.0') ++libraries.bndlib = dependencies.module('biz.aQute.bnd:bndlib:3.4.0') { ++ dependency 'biz.aQute.bnd:aQute.libg:3.4.0@jar' ++ dependency 'biz.aQute.bnd:biz.aQute.bnd.annotation:3.4.0@jar' ++} + libraries.commons_cli = 'commons-cli:commons-cli:1.2@jar' + libraries.commons_io = dependencies.module(versions.commons_io) + libraries.commons_lang = 'commons-lang:commons-lang:2.6@jar' +@@ -101,7 +104,9 @@ libraries += [ + nekohtml: 'net.sourceforge.nekohtml:nekohtml:1.9.14', + xbean: 'org.apache.xbean:xbean-reflect:3.4@jar', //required by maven3 classes + nativePlatform: 'net.rubygrapefruit:native-platform:0.14', +- jansi: dependencies.module('org.fusesource.jansi:jansi:1.14'), ++ jansi: dependencies.module('org.fusesource.jansi:jansi:1.14') { ++ dependency "org.fusesource.jansi:jansi-native:1.14" ++ }, + xerces: "xerces:xercesImpl:2.9.1", + objenesis: 'org.objenesis:objenesis:1.2@jar', + jsoup:'org.jsoup:jsoup:1.6.3', +@@ -211,7 +216,11 @@ libraries.awsS3 = [ + ] + libraries.commons_httpclient + libraries.joda + + // keep in sync with ScalaLanguagePlugin code +-libraries.zinc = 'com.typesafe.zinc:zinc:0.3.15' ++libraries.zinc = dependencies.module('com.typesafe.zinc:zinc:0.3.15') { ++ dependency "org.scala-sbt:compile" ++ dependency "org.scala-sbt:compiler-integration" ++ dependency "org.scala-sbt:incremental-compiler" ++} + + libraries.gcs = [ + dependencies.create('com.google.apis:google-api-services-storage:v1-rev78-1.22.0') { +-- +2.20.1 + diff --git a/0014-Disable-ideNative-module.patch b/0014-Disable-ideNative-module.patch new file mode 100644 index 0000000000000000000000000000000000000000..afbe43d37326993a9d5529746b6cd7568fff579f --- /dev/null +++ b/0014-Disable-ideNative-module.patch @@ -0,0 +1,80 @@ +From bdc6523581ec8cd0653924b60365f38cb858887b Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 2 Oct 2017 17:34:01 +0300 +Subject: [PATCH 14/18] Disable ideNative module + +--- + build.gradle | 2 +- + settings.gradle | 1 - + subprojects/language-native/language-native.gradle | 2 -- + subprojects/platform-native/platform-native.gradle | 2 -- + subprojects/testing-native/testing-native.gradle | 2 -- + 5 files changed, 1 insertion(+), 8 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 6fcefe67b8f..cc2ce3412ef 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -148,7 +148,7 @@ ext { + 'ide', 'announce', 'scala', 'signing', 'ear', 'javascript', 'buildComparison', + 'diagnostics', 'reporting', 'publish', 'ivy', 'jacoco', 'buildInit', 'platformBase', + 'platformJvm', 'languageJvm', 'languageJava', 'languageGroovy', 'languageScala', +- 'platformNative', 'platformPlay', 'idePlay', 'languageNative', 'ideNative', 'testingBase', ++ 'platformNative', 'platformPlay', 'idePlay', 'languageNative', 'testingBase', + 'testingNative', 'testingJvm', 'pluginDevelopment', 'pluginUse', 'resourcesHttp', + 'resourcesSftp', 'resourcesS3', 'resourcesGcs', 'compositeBuilds', 'buildCacheHttp' + ].collect { project(it) } +diff --git a/settings.gradle b/settings.gradle +index ab5013aa5fc..3178a38aba9 100644 +--- a/settings.gradle ++++ b/settings.gradle +@@ -36,7 +36,6 @@ include 'resourcesSftp' + include 'plugins' + include 'scala' + include 'ide' +-include 'ideNative' + include 'idePlay' + include 'osgi' + include 'maven' +diff --git a/subprojects/language-native/language-native.gradle b/subprojects/language-native/language-native.gradle +index 10b75863c5c..0a9b6507160 100644 +--- a/subprojects/language-native/language-native.gradle ++++ b/subprojects/language-native/language-native.gradle +@@ -18,8 +18,6 @@ dependencies { + compile project(':core') + compile project(':platformNative') + compile project(':maven') +- +- integTestRuntime project(":ideNative") + } + + useTestFixtures() +diff --git a/subprojects/platform-native/platform-native.gradle b/subprojects/platform-native/platform-native.gradle +index 63231a88d6c..236deeeda87 100644 +--- a/subprojects/platform-native/platform-native.gradle ++++ b/subprojects/platform-native/platform-native.gradle +@@ -22,8 +22,6 @@ dependencies { + compile project(':diagnostics') + + integTestRuntime project(':maven') +- // Required to test visual studio project file generation for generated sources +- integTestRuntime project(':ideNative') + + testFixturesCompile project(':internalIntegTesting') + } +diff --git a/subprojects/testing-native/testing-native.gradle b/subprojects/testing-native/testing-native.gradle +index 3741f03b555..ba8c94af684 100644 +--- a/subprojects/testing-native/testing-native.gradle ++++ b/subprojects/testing-native/testing-native.gradle +@@ -20,8 +20,6 @@ dependencies { + compile project(':languageNative') + compile project(':testingBase') + compile project(':testingJvm') +- +- integTestRuntime project(':ideNative') + } + + useTestFixtures() +-- +2.20.1 + diff --git a/0015-Disable-docs-build.patch b/0015-Disable-docs-build.patch new file mode 100644 index 0000000000000000000000000000000000000000..f9c34db6083d14ea3f25bb9bf2b495822c1a6591 --- /dev/null +++ b/0015-Disable-docs-build.patch @@ -0,0 +1,440 @@ +From e4342c33e69d5d942c8464c5b39f976d7fe35433 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 2 Oct 2017 23:09:09 +0300 +Subject: [PATCH 15/18] Disable docs build + +--- + subprojects/docs/docs.gradle | 372 +---------------------------------- + 1 file changed, 2 insertions(+), 370 deletions(-) + +diff --git a/subprojects/docs/docs.gradle b/subprojects/docs/docs.gradle +index 5063c30e60e..c035a2c90ae 100755 +--- a/subprojects/docs/docs.gradle ++++ b/subprojects/docs/docs.gradle +@@ -18,7 +18,6 @@ import javax.xml.transform.TransformerFactory + import javax.xml.transform.stream.StreamResult + import javax.xml.transform.stream.StreamSource + +-import org.gradle.build.docs.CacheableAsciidoctorTask + import org.gradle.build.docs.UserGuideSectionVerifier + import org.gradle.build.docs.UserGuideTransformTask + import org.gradle.build.docs.ExtractSnippetsTask +@@ -38,7 +37,6 @@ apply plugin: 'base' + apply plugin: 'pegdown' + apply plugin: 'jsoup' + apply plugin: 'javascript-base' +-apply plugin: 'org.asciidoctor.convert' + + repositories { + xmvn() +@@ -65,26 +63,6 @@ configurations { + } + + dependencies { +- userGuideTask 'xalan:xalan:2.7.1', libraries.xerces +- userGuideTask module('xhtmlrenderer:xhtmlrenderer:R8rc1') { +- dependency 'itext:itext:2.0.8@jar' +- } +- userGuideTask 'xslthl:xslthl:2.0.1@jar' +- +- userGuideStyleSheets 'docbook:docbook-xsl:1.75.2@zip' +- jquery "jquery:jquery.min:1.8.0@js" +- jqueryTipTip "com.drewwilson.code:jquery.tipTip:1.3:minified@js" +- +- fonts \ +- "lato:regular:6:v0SdcGFAl2aezM9Vq_aFTQ@ttf", +- "lato:regular-italic:6:LqowQDslGv4DmUBAfWa2Vw@ttf", +- "lato:bold:6:DvlFBScY1r-FMtZSYIYoYw@ttf", +- "lato:bold-italic:6:HkF_qI1x_noxlxhrhMQYEKCWcynf_cDxXwCLxiixG1c@ttf", +- "ubuntumono:regular:3:ViZhet7Ak-LRXZMXzuAfkZ0EAVxt0G0biEntp43Qt6E@ttf", +- "ubuntumono:regular-italic:3:KAKuHXAHZOeECOWAHsRKA-LrC4Du4e_yfTJ8Ol60xk0@ttf", +- "ubuntumono:bold:3:ceqTZGKHipo8pJj4molytp_TkvowlIOtbR7ePgFOpF4@ttf", +- "ubuntumono:bold-italic:3:n_d8tv_JOIiYyMXR4eaV9WsGzsqhEorxQDpu60nfWEc@ttf" +- + testCompile "org.pegdown:pegdown:1.1.0" + testCompile libraries.jsoup + testCompile "org.gebish:geb-spock:0.9.3" +@@ -110,185 +88,20 @@ ext { + samplesSrcDir = file('src/samples') + } + +-ext.outputs = [:] +-outputs.samples = files(samplesDir) { +- builtBy 'samples' +-} +-outputs.distDocs = files(distDocsDir) { +- builtBy 'distDocs' +-} +-outputs.docs = files(docsDir) { +- builtBy 'javadocAll', 'userguide', 'dslHtml', 'releaseNotes' +-} +- +-tasks.withType(CacheableAsciidoctorTask) { +- backends = ['docbook'] +- separateOutputDirs = false +- options doctype: 'book' +- inputs.file asciidocSanitizeStylesheet withPropertyName "sanitizerStylesheet" withPathSensitivity PathSensitivity.NONE +- +- extensions { +- inlinemacro (name: "api") { +- parent, target, attributes -> +- def (className, method) = target.split('#', 2) as List +- def content = " +- def contents = file.getText("utf-8") +- try { +- def transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(asciidocSanitizeStylesheet)) +- transformer.transform(new StreamSource(new StringReader(contents)), new StreamResult(file)) +- } catch (Exception ex) { +- throw new RuntimeException("Couldn't process $file:\n" + contents, ex) +- } +- } +- } +-} +- +-tasks.withType(Docbook2Xhtml) { +- dependsOn userguideStyleSheets +- classpath = configurations.userGuideTask +- stylesheetsDir = userguideStyleSheets.destinationDir +-} +- +-tasks.withType(UserGuideTransformTask) { +- dependsOn samples, dslDocbook +- snippetsDir = samples.snippetsDir +- linksFile = dslDocbook.linksFile +- websiteUrl = 'http://www.gradle.org' +- +- if (name in ["pdfUserguideDocbook"]) { +- // These will only be valid for releases, but that's ok +- javadocUrl = "http://www.gradle.org/docs/${->version}/javadoc" +- dsldocUrl = "http://www.gradle.org/docs/${->version}/dsl" +- } else { +- javadocUrl = '../javadoc' +- dsldocUrl = '../dsl' +- } +-} +- +-tasks.withType(AssembleDslDocTask) { +- classDocbookDir = dslSrcDir +-} +- +-task configureCss { +- doLast { +- def images = fileTree(dir: "src/docs/css/images", include: "*.*").files.collectEntries { +- [it.name, it.bytes.encodeBase64().toString()] +- } +- +- def fonts = configurations.fonts.resolvedConfiguration.resolvedArtifacts.collectEntries { +- def id = it.moduleVersion.id +- ["${id.group}-${id.name}".toString(), it.file.bytes.encodeBase64().toString()] +- } +- +- ext.tokens = images + fonts +- css.inputs.property 'tokens', tokens +- css.filter ReplaceTokens, tokens: tokens +- } +-} ++ext.outputs = [] + +-task css(type: Sync, dependsOn: configureCss) { ++task css(type: Sync) { + into "$buildDir/css" + from "src/docs/css" + include "*.css" + include "*.svg" + } + +-ext.cssFiles = fileTree(css.destinationDir) { +- builtBy css +-} +- +-task samples(type: ExtractSnippetsTask) { +- source samplesSrcDir +- exclude 'userguideOutput/**' +- exclude '**/readme.xml' +- exclude '**/build/**' +- exclude '**/.gradle/**' +- +- // Resources that should not be filtered +- exclude 'userguide/tutorial/antLoadfileResources/**' +- exclude 'native-binaries/cunit/libs/**' +- exclude 'native-binaries/google-test/libs/**' +- +- destDir = samplesDir +- snippetsDir = new File(buildDir, 'snippets') +- doLast { +- copy { +- from samplesSrcDir +- into samplesDir +- include 'userguide/tutorial/antLoadfileResources/**' +- include 'native-binaries/cunit/libs/**' +- include 'native-binaries/google-test/libs/**' +- } +- } +-} +- +-task userguideStyleSheets(type: Copy) { +- File stylesheetsDir = new File(srcDocsDir, 'stylesheets') +- into new File(buildDir, 'stylesheets') +- from(stylesheetsDir) { +- include '*.xsl' +- } +- from(cssFiles) +- from({ zipTree(configurations.userGuideStyleSheets.singleFile) }) { +- // Remove the prefix +- eachFile { fcd -> fcd.path = fcd.path.replaceFirst('^docbook-xsl-[0-9\\.]+/', '') } +- } +-} +- +-tasks.remove(asciidoctor) +- +-task userguideAsciidoc(type: CacheableAsciidoctorTask) { +- sourceDir = userguideSrcDir +- sources { include '*.adoc' } +- outputDir = asciidocOutputDir +- +- // we pull the default-imports from here: +- resources { +- from(generatedResourcesDir) +- include "**/*.txt" +- } +-} +- +-task samplesDocbook(type: AssembleSamplesDocTask) { +- source samplesSrcDir +- include '**/readme.xml' +- destFile = new File(docbookSrc, 'samplesList.xml') +-} +- +-task samplesDocs(type: Docbook2Xhtml) { +- source samplesDocbook +- destFile = new File(samples.destDir, 'readme.html') +- stylesheetName = 'standaloneHtml.xsl' +-} +- + task dslMetaData(type: ExtractDslMetaDataTask) { + source { javadocAll.source } + destFile = new File(docbookSrc, 'dsl-meta-data.bin') + } + +-task dslDocbook(type: AssembleDslDocTask, dependsOn: [dslMetaData]) { +- sources = fileTree(dir: dslSrcDir, includes: ['*.xml']) +- sourceFile = new File(dslSrcDir, 'dsl.xml') +- classMetaDataFile = dslMetaData.destFile +- pluginsMetaDataFile = new File(dslSrcDir, 'plugins.xml') +- destFile = new File(docbookSrc, 'dsl.xml') +- linksFile = new File(docbookSrc, 'api-links.bin') +-} +- + task defaultImports(type: GenerateDefaultImportsTask, dependsOn: dslMetaData) { + metaDataFile = dslMetaData.destFile + importsDestFile = new File(generatedResourcesDir, "default-imports.txt") +@@ -309,107 +122,6 @@ task defaultImports(type: GenerateDefaultImportsTask, dependsOn: dslMetaData) { + excludePackage 'org.gradle.platform.base.test' + } + +-task dslStandaloneDocbook(type: UserGuideTransformTask, dependsOn: [dslDocbook]) { +- sourceFile = dslDocbook.destFile +- destFile = new File(docbookSrc, 'dsl-standalone.xml') +- dsldocUrl = '.' +-} +- +-task dslHtml(type: Docbook2Xhtml) { +- group = "Documentation" +- source dslStandaloneDocbook +- destDir = new File(docsDir, 'dsl') +- stylesheetName = 'dslHtml.xsl' +- resources = cssFiles + fileTree(dslSrcDir) { +- include '*.js' +- } +- ext.entryPoint = "$destDir/index.html" +-} +- +-task checkSectionIds(type: UserGuideSectionVerifier) { +- dependsOn userguideAsciidoc +- docbookFiles = files( +- fileTree(userguideSrcDir) { include "**/*.xml" }, +- userguideAsciidoc.outputs.files +- ) +-} +- +-[configureCss, samples, samplesDocbook, defaultImports]*.mustRunAfter(checkSectionIds) +- +-task extractSamples(type: ExtractSamplesTask) { +- // We need default imports since it is included by userguide.xml +- // We need samplesList.xml (generated by samplesDocbook) since it is included by userguide.xml +- // Both files are not an input since they do not affect the generated samples.xml +- dependsOn defaultImports, samplesDocbook, userguideAsciidoc +- sourceFile = new File(userguideSrcDir, 'userguide.xml') +- destFile = new File(docbookSrc, 'samples.xml') +-} +- +-// This is used in the distribution and for the online version +-task userguideDocbook(type: UserGuideTransformTask) { +- destFile = new File(docbookSrc, 'userguide.xml') +- dependsOn checkSectionIds +-} +- +-// This is used for the PDF, where we need absolute links to the javadoc etc. +-task pdfUserguideDocbook(type: UserGuideTransformTask) { +- destFile = new File(docbookSrc, 'remoteUserguide.xml') +-} +- +-configure([userguideDocbook, pdfUserguideDocbook]) { +- // The master userguide.xml pulls these files in via xi:include, making them input +- includes = files( +- samplesDocbook, +- defaultImports.importsDestFile, +- fileTree(dir: userguideSrcDir, includes: ['*.xml']), +- userguideAsciidoc.outputs.files +- ) +- +- dependsOn samples, samplesDocbook, defaultImports +- +- sourceFile new File(userguideSrcDir, 'userguide.xml') +-} +- +-def imageFiles = fileTree(userguideSrcDir) { +- include 'img/*.png' +- include 'img/*.gif' +- include 'img/*.jpg' +-} +-def resourceFiles = imageFiles + cssFiles +- +-task userguideHtml(type: Docbook2Xhtml) { +- group = "Documentation" +- source userguideDocbook +- destDir = userguideDir +- stylesheetName = 'userGuideHtml.xsl' +- resources = resourceFiles +- ext.entryPoint = "$destDir/userguide.html" +-} +- +-task userguideSingleHtml(type: Docbook2Xhtml) { +- group = "Documentation" +- source userguideDocbook +- destFile = new File(userguideDir, 'userguide_single.html') +- stylesheetName = 'userGuideSingleHtml.xsl' +- resources = resourceFiles +- ext.entryPoint = destFile +-} +- +-task pdfUserguideXhtml(type: Docbook2Xhtml) { +- source pdfUserguideDocbook +- destFile = new File(buildDir, 'tmp/userguidePdf/userguidePdf.html') +- stylesheetName = 'userGuidePdf.xsl' +- resources = resourceFiles +- ext.entryPoint = destFile +-} +- +-task userguidePdf(type: Xhtml2Pdf, dependsOn: pdfUserguideXhtml) { +- sourceFile = pdfUserguideXhtml.destFile +- destFile = new File(userguideDir, 'userguide.pdf') +- classpath = configurations.userGuideTask +- resources = resourceFiles +-} +- + def javaApiUrl = "https://docs.oracle.com/javase/7/docs/api" + def groovyApiUrl = "http://docs.groovy-lang.org/docs/groovy-${versions.groovy}/html/gapi" + def mavenApiUrl = "http://maven.apache.org/ref/${versions.maven}/maven-model/apidocs" +@@ -440,84 +152,4 @@ task javadocAll(type: Javadoc) { + ext.entryPoint = "$destinationDir/index.html" + } + +-task checkstyleApi(type: Checkstyle) { +- source javadocAll.source +- configFile = new File(checkstyle.configDir, "checkstyle-api.xml") +- classpath = files() +- reports.xml.destination = file("$checkstyle.reportsDir/checkstyle-api.xml") +-} +- +-task distDocs(type: Docbook2Xhtml) { +- dependsOn userguideAsciidoc +- source new File(asciidocOutputDir, 'gettingStarted.xml') +- destFile = new File(distDocsDir, 'getting-started.html') +- stylesheetName = 'standaloneHtml.xsl' +-} +- +-task userguide { +- dependsOn userguideHtml, userguideSingleHtml, userguidePdf +- description = 'Generates the userguide' +- group = 'documentation' +-} +- +-task editReleaseNotes() { +- group = "release notes" +- doLast { +- Class.forName("java.awt.Desktop").newInstance().edit(file("src/docs/release/notes.md")) +- } +-} +- +-task releaseNotesMarkdown(type: PegDown) { +- group = "release notes" +- markdownFile = file("src/docs/release/notes.md") +- destination = new File(buildDir, "release-notes-raw/release-notes.html") +-} +- +-task releaseNotes(type: Copy) { +- group = "release notes" +- ext.fileName = "release-notes.html" +- into "$docsDir" +- from releaseNotesMarkdown +- jsoup.plugins "src/transforms/release-notes.gradle" +- filter(ReplaceTokens, tokens: [version: project.version.toString(), baseVersion: rootProject.baseVersion]) +- ext.entryPoint = file("$docsDir/$fileName") +-} +- +-tasks.addRule("view«Doc Task Name» - Opens entry point") { String taskName -> +- if (taskName.startsWith("view")) { +- def realTaskName = (taskName - "view") +- realTaskName = realTaskName[0].toLowerCase() + realTaskName[1..-1] +- def task = tasks.findByName(realTaskName) +- if (task && task.hasProperty("entryPoint")) { +- tasks.create(taskName) { +- dependsOn task +- doLast { +- Class.forName("java.awt.Desktop").newInstance().browse(file(task.entryPoint).toURI()) +- } +- } +- } +- } +-} +- + sourceSets.main.output.dir generatedResourcesDir, builtBy: defaultImports +- +-['test', 'java9Test'].each { +- tasks[it].configure { +- dependsOn releaseNotes +- inputs.files releaseNotesMarkdown.markdownFile withPropertyName "releaseNotesSource" withPathSensitivity PathSensitivity.NONE +- inputs.dir releaseNotes.destinationDir withPropertyName "releaseNotesRendered" withPathSensitivity PathSensitivity.NONE +- inputs.property "systemProperties", [:] +- systemProperty "org.gradle.docs.releasenotes.source", releaseNotesMarkdown.markdownFile +- systemProperty "org.gradle.docs.releasenotes.rendered", new File(releaseNotes.destinationDir, releaseNotes.fileName) +- } +-} +- +-task docs { +- dependsOn javadocAll, userguide, distDocs, samplesDocs, dslHtml, releaseNotes +- description = 'Generates all documentation' +- group = 'documentation' +-} +- +-task docsZip(type: Zip) { +- from project.outputs.docs +-} +-- +2.20.1 + diff --git a/0016-Port-to-guava-20.0.patch b/0016-Port-to-guava-20.0.patch new file mode 100644 index 0000000000000000000000000000000000000000..eea37c2885ccf0e39d8b7de2b22b0172c706dca8 --- /dev/null +++ b/0016-Port-to-guava-20.0.patch @@ -0,0 +1,210 @@ +From 0f2ffdcbd676ee0857e7834ec6fd66ec72f1e6e3 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Sun, 12 Nov 2017 19:08:40 +0200 +Subject: [PATCH 16/18] Port to guava 20.0 + +--- + gradle/dependencies.gradle | 2 +- + .../org/gradle/api/internal/CompositeDomainObjectSet.java | 5 +++-- + .../gradle/api/internal/DefaultDomainObjectCollection.java | 3 ++- + .../rules/PreviousSuccessTaskStateChanges.java | 3 ++- + .../changedetection/state/DefaultFileCollectionSnapshot.java | 3 ++- + .../OrderInsensitiveTaskFilePropertyCompareStrategy.java | 3 +-- + .../state/TaskFilePropertyCompareStrategy.java | 2 +- + .../api/internal/tasks/CompositeTaskOutputPropertySpec.java | 4 ++-- + .../org/gradle/api/internal/tasks/DefaultTaskOutputs.java | 3 ++- + 9 files changed, 16 insertions(+), 12 deletions(-) + +diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle +index 262bcff571d..f51cefd58b0 100755 +--- a/gradle/dependencies.gradle ++++ b/gradle/dependencies.gradle +@@ -92,7 +92,7 @@ libraries.commons_httpclient = dependencies.module('org.apache.httpcomponents:ht + libraries += [ + jatl: 'com.googlecode.jatl:jatl:0.2.2', + dom4j: 'dom4j:dom4j:1.6.1@jar', +- guava: 'com.google.guava:guava-jdk5:17.0@jar', ++ guava: 'com.google.guava:guava:20.0@jar', + kryo: 'com.esotericsoftware.kryo:kryo:2.20', + jsr305: 'com.google.code.findbugs:jsr305:1.3.9@jar', + groovy: "org.codehaus.groovy:groovy-all:${versions.groovy}", +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java b/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java +index ee7c1244b51..4619c7d5cd1 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java +@@ -24,6 +24,7 @@ import org.gradle.api.specs.Spec; + import org.gradle.internal.Actions; + + import java.util.Collection; ++import java.util.Collections; + import java.util.Iterator; + import java.util.List; + import java.util.Set; +@@ -109,7 +110,7 @@ public class CompositeDomainObjectSet extends DelegatingDomainObjectSet im + public Iterator iterator() { + DomainObjectCompositeCollection store = getStore(); + if (store.isEmpty()) { +- return Iterators.emptyIterator(); ++ return Collections.emptyIterator(); + } + return SetIterator.of(store); + +@@ -190,7 +191,7 @@ public class CompositeDomainObjectSet extends DelegatingDomainObjectSet im + @SuppressWarnings("unchecked") + public Iterator iterator() { + if (store.isEmpty()) { +- return Iterators.emptyIterator(); ++ return Collections.emptyIterator(); + } + if (store.size() == 1) { + return (Iterator) store.get(0).iterator(); +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java b/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java +index 90d89d50866..5bd7f0abd9f 100755 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java +@@ -32,6 +32,7 @@ import org.gradle.util.ConfigureUtil; + import java.util.AbstractCollection; + import java.util.ArrayList; + import java.util.Collection; ++import java.util.Collections; + import java.util.Iterator; + + public class DefaultDomainObjectCollection extends AbstractCollection implements DomainObjectCollection, WithEstimatedSize { +@@ -107,7 +108,7 @@ public class DefaultDomainObjectCollection extends AbstractCollection impl + + public Iterator iterator() { + if (constantTimeIsEmpty()) { +- return Iterators.emptyIterator(); ++ return Collections.emptyIterator(); + } + return new IteratorImpl(getStore().iterator()); + } +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java +index c432c33664d..82e3a878a18 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java +@@ -21,6 +21,7 @@ import org.gradle.api.internal.TaskInternal; + import org.gradle.api.internal.changedetection.state.TaskExecution; + + import javax.annotation.Nullable; ++import java.util.Collections; + import java.util.Iterator; + + public class PreviousSuccessTaskStateChanges implements TaskStateChanges { +@@ -38,7 +39,7 @@ public class PreviousSuccessTaskStateChanges implements TaskStateChanges { + @Override + public Iterator iterator() { + if (previousExecution == null || previousExecution.isSuccessful()) { +- return Iterators.emptyIterator(); ++ return Collections.emptyIterator(); + } else { + return Iterators.singletonIterator(PREVIOUS_FAILURE); + } +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java +index e8705de8f06..a0f0af32ca3 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java +@@ -36,6 +36,7 @@ import org.gradle.internal.serialize.HashCodeSerializer; + + import javax.annotation.Nullable; + import java.io.File; ++import java.util.Collections; + import java.util.Iterator; + import java.util.List; + import java.util.Map; +@@ -91,7 +92,7 @@ public class DefaultFileCollectionSnapshot implements FileCollectionSnapshot { + @Override + public Iterator iterateContentChangesSince(FileCollectionSnapshot oldSnapshot, String fileType, boolean includeAdded) { + if (includeAdded && hashCode != null && getHash().equals(oldSnapshot.getHash())) { +- return Iterators.emptyIterator(); ++ return Collections.emptyIterator(); + } + return compareStrategy.iterateContentChangesSince(snapshots, oldSnapshot.getSnapshots(), fileType, pathIsAbsolute, includeAdded); + } +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java +index c885de8df78..3fdf6e3cf34 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java +@@ -17,7 +17,6 @@ + package org.gradle.api.internal.changedetection.state; + + import com.google.common.collect.AbstractIterator; +-import com.google.common.collect.Iterators; + import com.google.common.collect.ListMultimap; + import com.google.common.collect.Lists; + import com.google.common.collect.MultimapBuilder; +@@ -143,7 +142,7 @@ class OrderInsensitiveTaskFilePropertyCompareStrategy implements TaskFilePropert + // Create a single iterator to use for all of the still unaccounted files + if (unaccountedForPreviousSnapshotsIterator == null) { + if (unaccountedForPreviousSnapshots.isEmpty()) { +- unaccountedForPreviousSnapshotsIterator = Iterators.emptyIterator(); ++ unaccountedForPreviousSnapshotsIterator = Collections.emptyIterator(); + } else { + List> entries = Lists.newArrayList(unaccountedForPreviousSnapshots.entries()); + Collections.sort(entries, ENTRY_COMPARATOR); +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java +index fc58acae02a..3f3fda9cf3e 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java +@@ -27,7 +27,7 @@ import java.util.Iterator; + import java.util.Map; + import java.util.Map.Entry; + +-import static com.google.common.collect.Iterators.emptyIterator; ++import static java.util.Collections.emptyIterator; + import static com.google.common.collect.Iterators.singletonIterator; + + public enum TaskFilePropertyCompareStrategy { +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java +index 36b6a56916e..bc6a47cf7ae 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java +@@ -17,7 +17,6 @@ + package org.gradle.api.internal.tasks; + + import com.google.common.collect.AbstractIterator; +-import com.google.common.collect.Iterators; + import com.google.common.collect.Lists; + import org.gradle.api.NonNullApi; + import org.gradle.api.internal.file.FileCollectionInternal; +@@ -28,6 +27,7 @@ import org.gradle.api.internal.file.collections.DirectoryFileTree; + import org.gradle.util.DeferredUtil; + + import java.io.File; ++import java.util.Collections; + import java.util.Iterator; + import java.util.List; + import java.util.Map; +@@ -56,7 +56,7 @@ public class CompositeTaskOutputPropertySpec extends AbstractTaskOutputPropertyS + public Iterator resolveToOutputProperties() { + Object unpackedPaths = DeferredUtil.unpack(paths); + if (unpackedPaths == null) { +- return Iterators.emptyIterator(); ++ return Collections.emptyIterator(); + } else if (unpackedPaths instanceof Map) { + final Iterator> iterator = ((Map) unpackedPaths).entrySet().iterator(); + return new AbstractIterator() { +diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java +index 8920be58787..fb9cfa9a363 100644 +--- a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java ++++ b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java +@@ -41,6 +41,7 @@ import org.gradle.api.tasks.TaskOutputFilePropertyBuilder; + + import javax.annotation.Nullable; + import java.io.File; ++import java.util.Collections; + import java.util.Iterator; + import java.util.LinkedList; + import java.util.List; +@@ -203,7 +204,7 @@ public class DefaultTaskOutputs implements TaskOutputsInternal { + if (propertySpec instanceof CacheableTaskOutputFilePropertySpec) { + File outputFile = ((CacheableTaskOutputFilePropertySpec) propertySpec).getOutputFile(); + if (outputFile == null) { +- return Iterators.emptyIterator(); ++ return Collections.emptyIterator(); + } + } + return Iterators.singletonIterator((TaskOutputFilePropertySpec) propertySpec); +-- +2.20.1 + diff --git a/0017-Set-core-api-source-level-to-8.patch b/0017-Set-core-api-source-level-to-8.patch new file mode 100644 index 0000000000000000000000000000000000000000..a6d3ff9399741060f533fcb5d1e94eabb92a36f4 --- /dev/null +++ b/0017-Set-core-api-source-level-to-8.patch @@ -0,0 +1,39 @@ +From 7cab99198af39b1c062fdb6dbbb1776946692b78 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 26 Mar 2018 14:07:20 +0200 +Subject: [PATCH 17/18] Set core-api source level to 8 + +--- + subprojects/core-api/core-api.gradle | 2 +- + subprojects/core/core.gradle | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/subprojects/core-api/core-api.gradle b/subprojects/core-api/core-api.gradle +index c90a0b48eec..587729f5da2 100644 +--- a/subprojects/core-api/core-api.gradle ++++ b/subprojects/core-api/core-api.gradle +@@ -15,7 +15,7 @@ + */ + apply plugin: 'java-library' + +-sourceCompatibility = javaVersion.java9Compatible ? 1.6 : 1.5 ++sourceCompatibility = 8 + + dependencies { + api project(":baseServices") +diff --git a/subprojects/core/core.gradle b/subprojects/core/core.gradle +index b6d6eba552c..bf44aed2ed3 100755 +--- a/subprojects/core/core.gradle ++++ b/subprojects/core/core.gradle +@@ -16,7 +16,7 @@ + apply plugin: 'java-library' + apply from: "$rootDir/gradle/taskProperties.gradle" + +-sourceCompatibility = javaVersion.java9Compatible ? 1.6 : 1.5 ++sourceCompatibility = 8 + + configurations { + reports +-- +2.20.1 + diff --git a/0018-Use-HTTPS-for-GoogleAPIs-repository.patch b/0018-Use-HTTPS-for-GoogleAPIs-repository.patch new file mode 100644 index 0000000000000000000000000000000000000000..3c2313bef33dae04940085e0647316baaa7f0eee --- /dev/null +++ b/0018-Use-HTTPS-for-GoogleAPIs-repository.patch @@ -0,0 +1,25 @@ +From 1d8437748a1c683098ab134211b1995b3447e050 Mon Sep 17 00:00:00 2001 +From: Daniel Lacasse +Date: Tue, 2 Apr 2019 18:42:34 +0200 +Subject: [PATCH 18/18] Use HTTPS for GoogleAPIs repository + +--- + .../javascript/base/JavaScriptRepositoriesExtension.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/base/JavaScriptRepositoriesExtension.java b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/base/JavaScriptRepositoriesExtension.java +index 6e4be702015..75f3673727b 100644 +--- a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/base/JavaScriptRepositoriesExtension.java ++++ b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/base/JavaScriptRepositoriesExtension.java +@@ -29,7 +29,7 @@ public class JavaScriptRepositoriesExtension { + public static final String NAME = "javaScript"; + + public static final String GRADLE_PUBLIC_JAVASCRIPT_REPO_URL = "https://repo.gradle.org/gradle/javascript-public"; +- public static final String GOOGLE_APIS_REPO_URL = "http://ajax.googleapis.com/ajax/libs"; ++ public static final String GOOGLE_APIS_REPO_URL = "https://ajax.googleapis.com/ajax/libs"; + + private final RepositoryHandler repositories; + +-- +2.20.1 + diff --git a/all-released-versions.json b/all-released-versions.json new file mode 100644 index 0000000000000000000000000000000000000000..69994002e18bb0346e597c57320fb4a8ebe43dcd --- /dev/null +++ b/all-released-versions.json @@ -0,0 +1,1957 @@ +[ { + "version" : "4.4-20171110081652+0000", + "buildTime" : "20171110081652+0000", + "current" : false, + "snapshot" : true, + "nightly" : true, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions-snapshots/gradle-4.4-20171110081652+0000-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions-snapshots/gradle-4.4-20171110081652+0000-bin.zip.sha256" +}, { + "version" : "4.3.1", + "buildTime" : "20171108085945+0000", + "current" : true, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip.sha256" +}, { + "version" : "4.3", + "buildTime" : "20171030154329+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-bin.zip.sha256" +}, { + "version" : "4.3-rc-4", + "buildTime" : "20171026162557+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-4-bin.zip.sha256" +}, { + "version" : "4.3-rc-3", + "buildTime" : "20171024142633+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-3-bin.zip.sha256" +}, { + "version" : "4.3-rc-2", + "buildTime" : "20171018073714+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-2-bin.zip.sha256" +}, { + "version" : "4.3-rc-1", + "buildTime" : "20171012161416+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.3-rc-1-bin.zip.sha256" +}, { + "version" : "4.2.1", + "buildTime" : "20171002153621+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip.sha256" +}, { + "version" : "4.2", + "buildTime" : "20170920144823+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2-bin.zip.sha256" +}, { + "version" : "4.2-rc-2", + "buildTime" : "20170913122310+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-2-bin.zip.sha256" +}, { + "version" : "4.2-rc-1", + "buildTime" : "20170907081216+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.2-rc-1-bin.zip.sha256" +}, { + "version" : "4.1", + "buildTime" : "20170807143848+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-bin.zip.sha256" +}, { + "version" : "4.1-rc-2", + "buildTime" : "20170731142943+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-2-bin.zip.sha256" +}, { + "version" : "4.0.2", + "buildTime" : "20170726161918+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip.sha256" +}, { + "version" : "4.1-rc-1", + "buildTime" : "20170720152215+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-rc-1-bin.zip.sha256" +}, { + "version" : "4.0.1", + "buildTime" : "20170707140241+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip.sha256" +}, { + "version" : "4.1-milestone-1", + "buildTime" : "20170620170546+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "4.1", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.1-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.1-milestone-1-bin.zip.sha256" +}, { + "version" : "3.5.1", + "buildTime" : "20170616143627+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip.sha256" +}, { + "version" : "4.0", + "buildTime" : "20170614151108+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-bin.zip.sha256" +}, { + "version" : "4.0-rc-3", + "buildTime" : "20170612150444+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-3-bin.zip.sha256" +}, { + "version" : "4.0-rc-2", + "buildTime" : "20170607152236+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-2-bin.zip.sha256" +}, { + "version" : "4.0-rc-1", + "buildTime" : "20170530162617+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "4.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-rc-1-bin.zip.sha256" +}, { + "version" : "4.0-milestone-2", + "buildTime" : "20170517143324+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-2-bin.zip.sha256" +}, { + "version" : "4.0-milestone-1", + "buildTime" : "20170428074509+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "4.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-4.0-milestone-1-bin.zip.sha256" +}, { + "version" : "3.5", + "buildTime" : "20170410133725+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-bin.zip.sha256" +}, { + "version" : "3.5-rc-3", + "buildTime" : "20170404150413+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-3-bin.zip.sha256" +}, { + "version" : "3.5-rc-2", + "buildTime" : "20170327155623+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-2-bin.zip.sha256" +}, { + "version" : "3.5-rc-1", + "buildTime" : "20170322151607+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.5-rc-1-bin.zip.sha256" +}, { + "version" : "3.4.1", + "buildTime" : "20170303194541+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip.sha256" +}, { + "version" : "3.4", + "buildTime" : "20170220144926+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-bin.zip.sha256" +}, { + "version" : "3.4-rc-3", + "buildTime" : "20170213145527+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-3-bin.zip.sha256" +}, { + "version" : "3.4-rc-2", + "buildTime" : "20170206211728+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-2-bin.zip.sha256" +}, { + "version" : "3.4-rc-1", + "buildTime" : "20170126154849+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.4-rc-1-bin.zip.sha256" +}, { + "version" : "3.3", + "buildTime" : "20170103153104+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.3-bin.zip.sha256" +}, { + "version" : "3.3-rc-1", + "buildTime" : "20161219160724+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.3-rc-1-bin.zip.sha256" +}, { + "version" : "3.2.1", + "buildTime" : "20161122151954+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip.sha256" +}, { + "version" : "3.2", + "buildTime" : "20161114123259+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-bin.zip.sha256" +}, { + "version" : "3.2-rc-3", + "buildTime" : "20161107153233+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-3-bin.zip.sha256" +}, { + "version" : "3.2-rc-2", + "buildTime" : "20161031160822+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-2-bin.zip.sha256" +}, { + "version" : "3.2-rc-1", + "buildTime" : "20161024194725+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.2-rc-1-bin.zip.sha256" +}, { + "version" : "3.1", + "buildTime" : "20160919105353+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.1-bin.zip.sha256" +}, { + "version" : "3.1-rc-1", + "buildTime" : "20160912123424+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.1-rc-1-bin.zip.sha256" +}, { + "version" : "3.0", + "buildTime" : "20160815131501+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-bin.zip.sha256" +}, { + "version" : "3.0-rc-2", + "buildTime" : "20160808133410+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-2-bin.zip.sha256" +}, { + "version" : "3.0-rc-1", + "buildTime" : "20160802061335+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "3.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-rc-1-bin.zip.sha256" +}, { + "version" : "2.14.1", + "buildTime" : "20160718063837+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip.sha256" +}, { + "version" : "2.14.1-rc-2", + "buildTime" : "20160711105827+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-2-bin.zip.sha256" +}, { + "version" : "2.14.1-rc-1", + "buildTime" : "20160629051303+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14.1-rc-1-bin.zip.sha256" +}, { + "version" : "3.0-milestone-2", + "buildTime" : "20160621224128+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "3.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-2-bin.zip.sha256" +}, { + "version" : "2.14", + "buildTime" : "20160614071637+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-bin.zip.sha256" +}, { + "version" : "2.14-rc-6", + "buildTime" : "20160610181946+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-6-bin.zip.sha256" +}, { + "version" : "3.0-milestone-1", + "buildTime" : "20160608013148+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "3.0", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-3.0-milestone-1-bin.zip.sha256" +}, { + "version" : "2.14-rc-5", + "buildTime" : "20160607135817+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-5-bin.zip.sha256" +}, { + "version" : "2.14-rc-4", + "buildTime" : "20160603110827+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-4-bin.zip.sha256" +}, { + "version" : "2.14-rc-3", + "buildTime" : "20160530112111+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-3-bin.zip.sha256" +}, { + "version" : "2.14-rc-2", + "buildTime" : "20160527175624+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-2-bin.zip.sha256" +}, { + "version" : "2.14-rc-1", + "buildTime" : "20160518093824+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.14", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.14-rc-1-bin.zip.sha256" +}, { + "version" : "2.13", + "buildTime" : "20160425041010+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.13-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.13-bin.zip.sha256" +}, { + "version" : "2.13-rc-2", + "buildTime" : "20160419145240+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.13", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-2-bin.zip.sha256" +}, { + "version" : "2.13-rc-1", + "buildTime" : "20160406110211+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.13", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.13-rc-1-bin.zip.sha256" +}, { + "version" : "2.12", + "buildTime" : "20160314083203+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.12-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.12-bin.zip.sha256" +}, { + "version" : "2.12-rc-1", + "buildTime" : "20160307174118+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.12-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.12-rc-1-bin.zip.sha256" +}, { + "version" : "2.11", + "buildTime" : "20160208075916+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-bin.zip.sha256" +}, { + "version" : "2.11-rc-3", + "buildTime" : "20160203190922+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-3-bin.zip.sha256" +}, { + "version" : "2.11-rc-2", + "buildTime" : "20160202162431+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-2-bin.zip.sha256" +}, { + "version" : "2.11-rc-1", + "buildTime" : "20160120084154+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.11-rc-1-bin.zip.sha256" +}, { + "version" : "2.10", + "buildTime" : "20151221211504+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.10-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.10-bin.zip.sha256" +}, { + "version" : "2.10-rc-2", + "buildTime" : "20151218164026+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-2-bin.zip.sha256" +}, { + "version" : "2.10-rc-1", + "buildTime" : "20151208224811+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.10-rc-1-bin.zip.sha256" +}, { + "version" : "2.9", + "buildTime" : "20151117070217+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.9-bin.zip.sha256" +}, { + "version" : "2.9-rc-1", + "buildTime" : "20151103230218+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.9-rc-1-bin.zip.sha256" +}, { + "version" : "2.8", + "buildTime" : "20151020034636+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.8-bin.zip.sha256" +}, { + "version" : "2.8-rc-2", + "buildTime" : "20151015124208+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-2-bin.zip.sha256" +}, { + "version" : "2.8-rc-1", + "buildTime" : "20150930171102+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.8-rc-1-bin.zip.sha256" +}, { + "version" : "2.7", + "buildTime" : "20150914072616+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.7-bin.zip.sha256" +}, { + "version" : "2.7-rc-2", + "buildTime" : "20150905140615+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-2-bin.zip.sha256" +}, { + "version" : "2.7-rc-1", + "buildTime" : "20150828140928+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.7-rc-1-bin.zip.sha256" +}, { + "version" : "2.6", + "buildTime" : "20150810131506+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.6-bin.zip.sha256" +}, { + "version" : "2.6-rc-2", + "buildTime" : "20150804104806+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-2-bin.zip.sha256" +}, { + "version" : "2.6-rc-1", + "buildTime" : "20150728171643+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.6-rc-1-bin.zip.sha256" +}, { + "version" : "2.5", + "buildTime" : "20150708073837+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.5-bin.zip.sha256" +}, { + "version" : "2.5-rc-2", + "buildTime" : "20150702151559+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-2-bin.zip.sha256" +}, { + "version" : "2.5-rc-1", + "buildTime" : "20150623180452+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.5-rc-1-bin.zip.sha256" +}, { + "version" : "2.4", + "buildTime" : "20150505080924+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.4-bin.zip.sha256" +}, { + "version" : "2.4-rc-2", + "buildTime" : "20150429045020+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-2-bin.zip.sha256" +}, { + "version" : "2.4-rc-1", + "buildTime" : "20150423031523+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.4-rc-1-bin.zip.sha256" +}, { + "version" : "2.3", + "buildTime" : "20150216050933+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-bin.zip.sha256" +}, { + "version" : "2.3-rc-4", + "buildTime" : "20150211163922+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-4-bin.zip.sha256" +}, { + "version" : "2.3-rc-3", + "buildTime" : "20150208183759+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-3-bin.zip.sha256" +}, { + "version" : "2.3-rc-2", + "buildTime" : "20150204105413+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-2-bin.zip.sha256" +}, { + "version" : "2.3-rc-1", + "buildTime" : "20150127140232+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.3-rc-1-bin.zip.sha256" +}, { + "version" : "2.2.1", + "buildTime" : "20141124094535+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip.sha256" +}, { + "version" : "2.2.1-rc-1", + "buildTime" : "20141117101237+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2.1-rc-1-bin.zip.sha256" +}, { + "version" : "2.2", + "buildTime" : "20141110133144+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2-bin.zip.sha256" +}, { + "version" : "2.2-rc-2", + "buildTime" : "20141103170404+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-2-bin.zip.sha256" +}, { + "version" : "2.2-rc-1", + "buildTime" : "20141020163257+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.2-rc-1-bin.zip.sha256" +}, { + "version" : "2.1", + "buildTime" : "20140908104039+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-bin.zip.sha256" +}, { + "version" : "2.1-rc-4", + "buildTime" : "20140903092053+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-4-bin.zip.sha256" +}, { + "version" : "2.1-rc-3", + "buildTime" : "20140901103549+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-3-bin.zip.sha256" +}, { + "version" : "2.1-rc-2", + "buildTime" : "20140828023229+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-2-bin.zip.sha256" +}, { + "version" : "2.1-rc-1", + "buildTime" : "20140819194409+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.1-rc-1-bin.zip.sha256" +}, { + "version" : "2.0", + "buildTime" : "20140701074534+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.0-bin.zip.sha256" +}, { + "version" : "2.0-rc-2", + "buildTime" : "20140623080236+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-2-bin.zip.sha256" +}, { + "version" : "2.0-rc-1", + "buildTime" : "20140606070241+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "2.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-2.0-rc-1-bin.zip.sha256" +}, { + "version" : "1.12", + "buildTime" : "20140429092431+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.12-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.12-bin.zip.sha256" +}, { + "version" : "1.12-rc-2", + "buildTime" : "20140423112055+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-2-bin.zip.sha256" +}, { + "version" : "1.12-rc-1", + "buildTime" : "20140416084626+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.12", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.12-rc-1-bin.zip.sha256" +}, { + "version" : "1.11", + "buildTime" : "20140211113439+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.11-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.11-bin.zip.sha256" +}, { + "version" : "1.11-rc-1", + "buildTime" : "20140131033453+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.11", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.11-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.11-rc-1-bin.zip.sha256" +}, { + "version" : "1.10", + "buildTime" : "20131217092815+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.10-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.10-bin.zip.sha256" +}, { + "version" : "1.10-rc-2", + "buildTime" : "20131211105454+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-2-bin.zip.sha256" +}, { + "version" : "1.10-rc-1", + "buildTime" : "20131204154128+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.10", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.10-rc-1-bin.zip.sha256" +}, { + "version" : "1.9", + "buildTime" : "20131119082002+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-bin.zip.sha256" +}, { + "version" : "1.9-rc-4", + "buildTime" : "20131118093242+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-4-bin.zip.sha256" +}, { + "version" : "1.9-rc-3", + "buildTime" : "20131107122642+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-3-bin.zip.sha256" +}, { + "version" : "1.9-rc-2", + "buildTime" : "20131028093320+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-2-bin.zip.sha256" +}, { + "version" : "1.9-rc-1", + "buildTime" : "20131023094618+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.9-rc-1-bin.zip.sha256" +}, { + "version" : "1.8", + "buildTime" : "20130924073233+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.8-bin.zip.sha256" +}, { + "version" : "1.8-rc-2", + "buildTime" : "20130919053314+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-2-bin.zip.sha256" +}, { + "version" : "1.8-rc-1", + "buildTime" : "20130910130452+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.8", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.8-rc-1-bin.zip.sha256" +}, { + "version" : "1.7", + "buildTime" : "20130806111956+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.7-bin.zip.sha256" +}, { + "version" : "1.7-rc-2", + "buildTime" : "20130729120421+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-2-bin.zip.sha256" +}, { + "version" : "1.7-rc-1", + "buildTime" : "20130702145630+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.7", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.7-rc-1-bin.zip.sha256" +}, { + "version" : "1.6", + "buildTime" : "20130507091214+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.6-bin.zip.sha256" +}, { + "version" : "1.6-rc-1", + "buildTime" : "20130430131900+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.6", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.6-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.6-rc-1-bin.zip.sha256" +}, { + "version" : "1.5", + "buildTime" : "20130327140935+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-bin.zip.sha256" +}, { + "version" : "1.5-rc-3", + "buildTime" : "20130321155709+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-3-bin.zip.sha256" +}, { + "version" : "1.5-rc-2", + "buildTime" : "20130317011516+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-2-bin.zip.sha256" +}, { + "version" : "1.5-rc-1", + "buildTime" : "20130311120320+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.5", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.5-rc-1-bin.zip.sha256" +}, { + "version" : "1.4", + "buildTime" : "20130128034246+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-bin.zip.sha256" +}, { + "version" : "1.4-rc-3", + "buildTime" : "20130125035146+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-3-bin.zip.sha256" +}, { + "version" : "1.4-rc-2", + "buildTime" : "20130122030632+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-2-bin.zip.sha256" +}, { + "version" : "1.4-rc-1", + "buildTime" : "20130117001257+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.4", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.4-rc-1-bin.zip.sha256" +}, { + "version" : "1.3", + "buildTime" : "20121120113738+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.3-bin.zip.sha256" +}, { + "version" : "1.3-rc-2", + "buildTime" : "20121115155343+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-2-bin.zip.sha256" +}, { + "version" : "1.3-rc-1", + "buildTime" : "20121112135252+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.3", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.3-rc-1-bin.zip.sha256" +}, { + "version" : "1.2", + "buildTime" : "20120912104602+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.2-bin.zip.sha256" +}, { + "version" : "1.2-rc-1", + "buildTime" : "20120904174954+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.2", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.2-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.2-rc-1-bin.zip.sha256" +}, { + "version" : "1.1", + "buildTime" : "20120731132432+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.1-bin.zip.sha256" +}, { + "version" : "1.1-rc-2", + "buildTime" : "20120726075103+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-2-bin.zip.sha256" +}, { + "version" : "1.1-rc-1", + "buildTime" : "20120724134404+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.1", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.1-rc-1-bin.zip.sha256" +}, { + "version" : "1.0", + "buildTime" : "20120612025621+0200", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-bin.zip.sha256" +}, { + "version" : "1.0-rc-3", + "buildTime" : "20120430015152+0200", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-3-bin.zip.sha256" +}, { + "version" : "1.0-rc-2", + "buildTime" : "20120425015237+0200", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-2-bin.zip.sha256" +}, { + "version" : "1.0-rc-1", + "buildTime" : "20120411121324+0100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "1.0", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-rc-1-bin.zip.sha256" +}, { + "version" : "1.0-milestone-9", + "buildTime" : "20120313171009+0100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-9-bin.zip.sha256" +}, { + "version" : "1.0-milestone-8a", + "buildTime" : "20120220185357+0100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8a-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8a-bin.zip.sha256" +}, { + "version" : "1.0-milestone-8", + "buildTime" : "20120214022451+0100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-8-bin.zip.sha256" +}, { + "version" : "1.0-milestone-7", + "buildTime" : "20120105102443+0000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-7-bin.zip.sha256" +}, { + "version" : "1.0-milestone-6", + "buildTime" : "20111117065412+0100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-6-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-6-bin.zip.sha256" +}, { + "version" : "1.0-milestone-5", + "buildTime" : "20111025055608+0200", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-5-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-5-bin.zip.sha256" +}, { + "version" : "1.0-milestone-4", + "buildTime" : "20110728103822+0200", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : true, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-4-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-4-bin.zip.sha256" +}, { + "version" : "1.0-milestone-3", + "buildTime" : "20110425174011+1000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-3-bin.zip.sha256" +}, { + "version" : "1.0-milestone-2", + "buildTime" : "20110407163255+1000", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-2-bin.zip.sha256" +}, { + "version" : "1.0-milestone-1", + "buildTime" : "20110227141320+1100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-1.0-milestone-1-bin.zip.sha256" +}, { + "version" : "0.9.2", + "buildTime" : "20110123133421+1100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip.sha256" +}, { + "version" : "0.9.1", + "buildTime" : "20110102114057+1100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip.sha256" +}, { + "version" : "0.9", + "buildTime" : "20101219125006+1100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-bin.zip.sha256" +}, { + "version" : "0.9-rc-3", + "buildTime" : "20101120131750+1100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "0.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-3-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-3-bin.zip.sha256" +}, { + "version" : "0.9-rc-2", + "buildTime" : "20101027082405+1100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "0.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-2-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-2-bin.zip.sha256" +}, { + "version" : "0.9-rc-1", + "buildTime" : "20100804080433+1100", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "0.9", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-1-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.9-rc-1-bin.zip.sha256" +}, { + "version" : "0.8", + "buildTime" : "20090928140159+0200", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.8-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.8-bin.zip.sha256" +}, { + "version" : "0.7", + "buildTime" : "20090720085013+0200", + "current" : false, + "snapshot" : false, + "nightly" : false, + "activeRc" : false, + "rcFor" : "", + "milestoneFor" : "", + "broken" : false, + "downloadUrl" : "https://services.gradle.org/distributions/gradle-0.7-bin.zip", + "checksumUrl" : "https://services.gradle.org/distributions/gradle-0.7-bin.zip.sha256" +} ] \ No newline at end of file diff --git a/gradle-4.3.1-src.zip b/gradle-4.3.1-src.zip new file mode 100644 index 0000000000000000000000000000000000000000..c57b75544965e0d49323ba238deb1f0701f000ee Binary files /dev/null and b/gradle-4.3.1-src.zip differ diff --git a/gradle-font-metadata.xml b/gradle-font-metadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..3a19a9edd0c66b242e4646f1dabd0d3dfba1e115 --- /dev/null +++ b/gradle-font-metadata.xml @@ -0,0 +1,69 @@ + + + + + lato + bold + ttf + DvlFBScY1r-FMtZSYIYoYw + 6 + /usr/share/fonts/lato/Lato-Bold.ttf + + + lato + bold-italic + ttf + HkF_qI1x_noxlxhrhMQYEKCWcynf_cDxXwCLxiixG1c + 6 + /usr/share/fonts/lato/Lato-BoldItalic.ttf + + + lato + regular + ttf + v0SdcGFAl2aezM9Vq_aFTQ + 6 + /usr/share/fonts/lato/Lato-Regular.ttf + + + lato + regular-italic + ttf + LqowQDslGv4DmUBAfWa2Vw + 6 + /usr/share/fonts/lato/Lato-Italic.ttf + + + ubuntumono + bold + ttf + ceqTZGKHipo8pJj4molytp_TkvowlIOtbR7ePgFOpF4 + 3 + /usr/share/fonts/liberation/LiberationMono-Bold.ttf + + + ubuntumono + bold-italic + ttf + n_d8tv_JOIiYyMXR4eaV9WsGzsqhEorxQDpu60nfWEc + 3 + /usr/share/fonts/liberation/LiberationMono-BoldItalic.ttf + + + ubuntumono + regular + ttf + ViZhet7Ak-LRXZMXzuAfkZ0EAVxt0G0biEntp43Qt6E + 3 + /usr/share/fonts/liberation/LiberationMono-Regular.ttf + + + ubuntumono + regular-italic + ttf + KAKuHXAHZOeECOWAHsRKA-LrC4Du4e_yfTJ8Ol60xk0 + 3 + /usr/share/fonts/liberation/LiberationMono-Italic.ttf + + + diff --git a/gradle-jquery-metadata.xml b/gradle-jquery-metadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..6b83dba554d0d32f80570fddea2b2972f46ba477 --- /dev/null +++ b/gradle-jquery-metadata.xml @@ -0,0 +1,14 @@ + + + + + jquery + jquery.min + js + 2.1.1 + + + /dev/null + + + diff --git a/gradle-launcher.sh b/gradle-launcher.sh new file mode 100755 index 0000000000000000000000000000000000000000..f6227b37ef6dbf6d61cf5bc4e67b14573980203f --- /dev/null +++ b/gradle-launcher.sh @@ -0,0 +1,29 @@ +#!/usr/bin/bash + +set -e +ulimit -n $(ulimit -H -n) + +# Source system prefs +if [ -f /etc/java/gradle.conf ] ; then + . /etc/java/gradle.conf +fi + +# Source user prefs +if [ -f $HOME/.gradlerc ] ; then + . $HOME/.gradlerc +fi + +. /usr/share/java-utils/java-functions +set_jvm +set_javacmd + +set_classpath gradle/gradle-launcher gradle/gradle-core-api gradle/gradle-core gradle/gradle-base-services + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=gradle" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.launcher.GradleMain "$@" diff --git a/gradle-man.txt b/gradle-man.txt new file mode 100644 index 0000000000000000000000000000000000000000..e24a86d64d01570c79e426db51f04e5da127978d --- /dev/null +++ b/gradle-man.txt @@ -0,0 +1,150 @@ +gradle(1) +========= +:doctype: manpage +:man source: GRADLE +:man manual: Gradle + +NAME +---- +gradle - build automation tool + +SYNOPSIS +-------- +*gradle* [option...] [task...] + +DESCRIPTION +----------- +Gradle is build automation evolved. Gradle can automate the building, +testing, publishing, deployment and more of software packages or other +types of projects such as generated static websites, generated +documentation or indeed anything else. + +Gradle combines the power and flexibility of Ant with the dependency +management and conventions of Maven into a more effective way to +build. Powered by a Groovy DSL and packed with innovation, Gradle +provides a declarative way to describe all kinds of builds through +sensible defaults. Gradle is quickly becoming the build system of +choice for many open source projects, leading edge enterprises and +legacy automation challenges. + +OPTIONS +------- +*-?, -h, --help*:: + Shows help message. + +*-a, --no-rebuild*:: + Do not rebuild project dependencies. + +*-b, --build-file*:: + Specifies the build file. + +*-c, --settings-file*:: + Specifies the settings file. + +*--configure-on-demand*:: + Only relevant projects are configured in this build run. This means faster build for large multi-project builds. [incubating] + +*--console*:: + Specifies which type of console output to generate. Values are *plain*, *auto* (default) or *rich*. + +*--continue*:: + Continues task execution after a task failure. + +*-D, --system-prop*:: + Set system property of the JVM (e.g. *-Dmyprop=myvalue*). + +*-d, --debug*:: + Log in debug mode (includes normal stacktrace). + +*--daemon*:: + Uses the Gradle daemon to run the build. Starts the daemon if not running. + +*--foreground*:: + Starts the Gradle daemon in the foreground. [incubating] + +*-g, --gradle-user-home*:: + Specifies the gradle user home directory. + +*--gui*:: + Launches the Gradle GUI. + +*-I, --init-script*:: + Specifies an initialization script. + +*-i, --info*:: + Set log level to info. + +*-m, --dry-run*:: + Runs the builds with all task actions disabled. + +*--max-workers*:: + Configure the number of concurrent workers Gradle is allowed to use. [incubating] + +*--no-color*:: + Do not use color in the console output. [deprecated - use + *--console=plain* instead] + +*--no-daemon*:: + Do not use the Gradle daemon to run the build. + +*--offline*:: + The build should operate without accessing network resources. + +*-P, --project-prop*:: + Set project property for the build script (e.g. *-Pmyprop=myvalue*). + +*-p, --project-dir*:: + Specifies the start directory for Gradle. Defaults to current directory. + +*--parallel*:: + Build projects in parallel. Gradle will attempt to determine the optimal number of executor threads to use. [incubating] + +*--parallel-threads*:: + Build projects in parallel, using the specified number of executor + threads. [deprecated - Please use *--parallel*, optionally in + conjunction with *--max-workers*.] [incubating] + +*--profile*:: + Profiles build execution time and generates a report in the + */reports/profile* directory. + +*--project-cache-dir*:: + Specifies the project-specific cache directory. Defaults to + *.gradle* in the root project directory. + +*-q, --quiet*:: + Log errors only. + +*--recompile-scripts*:: + Force build script recompiling. + +*--refresh-dependencies*:: + Refresh the state of dependencies. + +*--rerun-tasks*:: + Ignore previously cached task results. + +*-S, --full-stacktrace*:: + Print out the full (very verbose) stacktrace for all exceptions. + +*-s, --stacktrace*:: + Print out the stacktrace for all exceptions. + +*--stop*:: + Stops the Gradle daemon if it is running. + +*-t, --continuous*:: + Enables continuous build. Gradle does not exit and will re-execute tasks when task file inputs change. [incubating] + +*-u, --no-search-upward*:: + Don't search in parent folders for a *settings.gradle* file. + +*-v, --version*:: + Print version info. + +*-x, --exclude-task*:: + Specify a task to be excluded from execution. + +SEE ALSO +-------- +Official documentation: http://gradle.org/documentation/ diff --git a/gradle.desktop b/gradle.desktop new file mode 100644 index 0000000000000000000000000000000000000000..4911eadc013bc1f7900215751343d2b0d6b69bd7 --- /dev/null +++ b/gradle.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Gradle +GenericName=Build automation tool +Exec=gradle --gui +Icon=gradle +Terminal=false +Type=Application +Categories=Development; diff --git a/gradle.spec b/gradle.spec new file mode 100644 index 0000000000000000000000000000000000000000..7317c641a30f330255a72b9ca7ae9f4ed15f8006 --- /dev/null +++ b/gradle.spec @@ -0,0 +1,237 @@ +Name: gradle +Version: 4.3.1 +Release: 10 +Summary: Build automation tool +License: ASL 2.0 +URL: http://www.gradle.org/ + +BuildArch: noarch +Source0: http://services.gradle.org/distributions/%{name}-%{version}-src.zip +Source1: http://services.gradle.org/versions/all#/all-released-versions.json +Source2: gradle-font-metadata.xml +Source3: gradle-jquery-metadata.xml +Source4: gradle-launcher.sh +Source5: gradle.desktop +Source6: gradle-man.txt + +Patch0001: 0001-Gradle-local-mode.patch +Patch0002: 0002-Remove-Class-Path-from-manifest.patch +Patch0003: 0003-Implement-XMvn-repository-factory-method.patch +Patch0004: 0004-Use-unversioned-dependency-JAR-names.patch +Patch0005: 0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch +Patch0006: 0006-Disable-code-quality-checks.patch +Patch0007: 0007-Port-to-Kryo-3.0.patch +Patch0008: 0008-Port-to-Ivy-2.4.0.patch +Patch0009: 0009-Port-to-Polyglot-0.1.8.patch +Patch0010: 0010-Port-from-Simple-4-to-Jetty-9.patch +Patch0011: 0011-Disable-benchmarks.patch +Patch0012: 0012-Disable-patching-of-external-modules.patch +Patch0013: 0013-Add-missing-transitive-dependencies.patch +Patch0014: 0014-Disable-ideNative-module.patch +Patch0015: 0015-Disable-docs-build.patch +Patch0016: 0016-Port-to-guava-20.0.patch +Patch0017: 0017-Set-core-api-source-level-to-8.patch +Patch0018: 0018-Use-HTTPS-for-GoogleAPIs-repository.patch + +BuildRequires: gradle-local desktop-file-utils hostname procps-ng asciidoc xmlto +BuildRequires: mvn(antlr:antlr) mvn(biz.aQute.bnd:bndlib) +BuildRequires: mvn(bsh:bsh) mvn(ch.qos.logback:logback-classic) +BuildRequires: mvn(ch.qos.logback:logback-core) mvn(com.amazonaws:aws-java-sdk-core) +BuildRequires: mvn(com.amazonaws:aws-java-sdk-kms) mvn(com.amazonaws:aws-java-sdk-s3) +BuildRequires: mvn(com.beust:jcommander) mvn(com.esotericsoftware.kryo:kryo) +BuildRequires: mvn(com.esotericsoftware:minlog) mvn(com.esotericsoftware:reflectasm) +BuildRequires: mvn(com.fasterxml.jackson.core:jackson-annotations) +BuildRequires: mvn(com.fasterxml.jackson.core:jackson-core) +BuildRequires: mvn(com.fasterxml.jackson.core:jackson-databind) +BuildRequires: mvn(com.google.code.findbugs:findbugs) mvn(com.google.code.findbugs:jsr305) +BuildRequires: mvn(com.google.code.gson:gson) mvn(com.google.guava:guava:20.0) +BuildRequires: mvn(com.google.guava:guava-jdk5:20.0) mvn(com.google.http-client:google-http-client) +BuildRequires: mvn(com.google.oauth-client:google-oauth-client) +BuildRequires: mvn(com.googlecode.jarjar:jarjar) mvn(com.googlecode.jatl:jatl) +BuildRequires: mvn(com.jcraft:jsch) mvn(com.puppycrawl.tools:checkstyle) +BuildRequires: mvn(com.sun:tools) mvn(com.typesafe.zinc:zinc) +BuildRequires: mvn(com.uwyn:jhighlight) mvn(commons-beanutils:commons-beanutils) +BuildRequires: mvn(commons-cli:commons-cli) mvn(commons-codec:commons-codec) +BuildRequires: mvn(commons-collections:commons-collections) +BuildRequires: mvn(commons-configuration:commons-configuration) +BuildRequires: mvn(commons-io:commons-io) mvn(commons-lang:commons-lang) +BuildRequires: mvn(dom4j:dom4j) mvn(javax.inject:javax.inject) +BuildRequires: mvn(javax.servlet:javax.servlet-api) mvn(jaxen:jaxen) +BuildRequires: mvn(jline:jline) mvn(joda-time:joda-time) +BuildRequires: mvn(junit:junit) mvn(net.java.dev.jna:jna) +BuildRequires: mvn(net.jcip:jcip-annotations) mvn(net.rubygrapefruit:native-platform) +BuildRequires: mvn(net.sourceforge.nekohtml:nekohtml) mvn(org.antlr:antlr4-runtime) +BuildRequires: mvn(org.apache.ant:ant) mvn(org.apache.ant:ant-launcher) +BuildRequires: mvn(org.apache.commons:commons-compress) +BuildRequires: mvn(org.apache.commons:commons-lang3) mvn(org.apache.geronimo.specs:geronimo-annotation_1.0_spec) +BuildRequires: mvn(org.apache.httpcomponents:httpclient) +BuildRequires: mvn(org.apache.httpcomponents:httpcore) mvn(org.apache.ivy:ivy) +BuildRequires: mvn(org.apache.maven.wagon:wagon-file) mvn(org.apache.maven.wagon:wagon-http) +BuildRequires: mvn(org.apache.maven.wagon:wagon-http-shared) +BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) +BuildRequires: mvn(org.apache.maven:maven-aether-provider) +BuildRequires: mvn(org.apache.maven:maven-artifact) mvn(org.apache.maven:maven-builder-support) +BuildRequires: mvn(org.apache.maven:maven-compat) mvn(org.apache.maven:maven-core) +BuildRequires: mvn(org.apache.maven:maven-model) mvn(org.apache.maven:maven-model-builder) +BuildRequires: mvn(org.apache.maven:maven-plugin-api) mvn(org.apache.maven:maven-repository-metadata) +BuildRequires: mvn(org.apache.maven:maven-settings) mvn(org.apache.maven:maven-settings-builder) +BuildRequires: mvn(org.apache.xbean:xbean-reflect) mvn(org.apache:apache:pom:) +BuildRequires: mvn(org.bouncycastle:bcpg-jdk15on) mvn(org.bouncycastle:bcprov-jdk15on) +BuildRequires: mvn(org.codehaus.groovy.modules.http-builder:http-builder) +BuildRequires: mvn(org.codehaus.groovy:groovy-all) mvn(org.codehaus.plexus:plexus-classworlds) +BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) +BuildRequires: mvn(org.codehaus.plexus:plexus-interpolation) +BuildRequires: mvn(org.codehaus.plexus:plexus-utils) mvn(org.codenarc:CodeNarc) +BuildRequires: mvn(org.eclipse.aether:aether-api) mvn(org.eclipse.aether:aether-connector-basic) +BuildRequires: mvn(org.eclipse.aether:aether-impl) mvn(org.eclipse.aether:aether-spi) +BuildRequires: mvn(org.eclipse.aether:aether-transport-wagon) +BuildRequires: mvn(org.eclipse.aether:aether-util) mvn(org.eclipse.jdt:core) +BuildRequires: mvn(org.eclipse.jetty:jetty-annotations) +BuildRequires: mvn(org.eclipse.jetty:jetty-jsp) mvn(org.eclipse.jetty:jetty-plus) +BuildRequires: mvn(org.eclipse.jetty:jetty-security) mvn(org.eclipse.jetty:jetty-server) +BuildRequires: mvn(org.eclipse.jetty:jetty-servlet) mvn(org.eclipse.jetty:jetty-util) +BuildRequires: mvn(org.eclipse.jetty:jetty-webapp) mvn(org.eclipse.jetty:jetty-xml) +BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.inject) +BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) +BuildRequires: mvn(org.fusesource.hawtjni:hawtjni-runtime) +BuildRequires: mvn(org.fusesource.jansi:jansi) mvn(org.fusesource.jansi:jansi-native) +BuildRequires: mvn(org.gmetrics:GMetrics) mvn(org.jsoup:jsoup) +BuildRequires: mvn(org.mozilla:rhino) mvn(org.objenesis:objenesis) +BuildRequires: mvn(org.ow2.asm:asm-all) mvn(org.parboiled:parboiled-core) +BuildRequires: mvn(org.parboiled:parboiled-java) mvn(org.pegdown:pegdown) +BuildRequires: mvn(org.samba.jcifs:jcifs) mvn(org.slf4j:jcl-over-slf4j) +BuildRequires: mvn(org.slf4j:jul-to-slf4j) mvn(org.slf4j:log4j-over-slf4j) +BuildRequires: mvn(org.slf4j:slf4j-api) mvn(org.sonatype.oss:oss-parent:pom:) +BuildRequires: mvn(org.sonatype.plexus:plexus-cipher) mvn(org.sonatype.plexus:plexus-sec-dispatcher) +BuildRequires: mvn(org.sonatype.pmaven:pmaven-common) mvn(org.sonatype.pmaven:pmaven-groovy) +BuildRequires: mvn(org.testng:testng) mvn(xerces:xercesImpl) +BuildRequires: mvn(xml-apis:xml-apis) +BuildRequires: lato-fonts liberation-mono-fonts js-jquery + +Requires: javapackages-tools hicolor-icon-theme java-devel +Requires: ant-lib apache-commons-cli apache-commons-codec apache-commons-collections +Requires: apache-commons-compress apache-commons-io apache-commons-lang apache-commons-lang3 +Requires: apache-ivy aqute-bndlib atinject aws-sdk-java-core aws-sdk-java-kms aws-sdk-java-s3 +Requires: base64coder beust-jcommander bouncycastle bouncycastle-pg ecj glassfish-servlet-api +Requires: google-gson google-guice groovy-lib guava20 hawtjni-runtime httpcomponents-client +Requires: httpcomponents-core jackson-annotations jackson-core jackson-databind jansi +Requires: jansi-native jatl jcifs jcip-annotations jcl-over-slf4j jetty-server jetty-util +Requires: joda-time jsch jsr-305 jul-to-slf4j junit kryo maven-lib log4j-over-slf4j +Requires: maven-resolver-api maven-resolver-connector-basic maven-resolver-impl maven-resolver-spi +Requires: maven-resolver-transport-wagon maven-resolver-util maven-wagon-file maven-wagon-http +Requires: maven-wagon-http-shared maven-wagon-provider-api minlog native-platform +Requires: nekohtml objectweb-asm objenesis plexus-cipher plexus-classworlds +Requires: plexus-interpolation plexus-sec-dispatcher plexus-utils reflectasm rhino sisu-inject +Requires: sisu-plexus slf4j snakeyaml tesla-polyglot-common tesla-polyglot-groovy +Requires: testng xbean xerces-j2 xml-commons-apis + +%description +Gradle is build automation evolved,which can automate the building, testing, publishing, +deployment and more of software packages. + +Gradle combines the power and flexibility of Ant with the dependency management and conventions +of Maven into a more effective way to build. Powered by a Groovy DSL and packed with innovation, +Gradle provides a declarative way to describe all kinds of builds through sensible defaults. +Gradle is quickly becoming the build system of choice for many open source projects, +leading edge enterprises and legacy automation challenges. + +%package help +Summary: Help documentation of gradle package +Requires: %{name} = %{version}-%{release} + +%description help +Help documentation of gradle package. + +%prep +%autosetup -n %{name}-%{version} -p1 + +rm -rf gradle/wrapper/subprojects/diagnostics/src/main/resources/org/gradle/api/tasks/diagnostics/htmldependencyreport/jquery.jstree.js + +install -d build +cp %{SOURCE1} build/all-released-versions.json + +rm -rf buildSrc/src/main/groovy/org/gradle/binarycompatibility \ +buildSrc/src/main/groovy/org/gradle/build/docs/CacheableAsciidoctorTask.groovy + +%mvn_config resolverSettings/metadataRepositories/repository %{SOURCE2} +%mvn_config resolverSettings/metadataRepositories/repository %{SOURCE3} + +rm -rf buildSrc/src/test + +sed -i 's/"-Werror" < - 4.3.1-10 +- Package init + + +