[gradle] 01/01: Import Debian changes 3.4.1-1

Markus Koschany apo at moszumanska.debian.org
Sat Nov 25 16:28:50 UTC 2017


This is an automated email from the git hooks/post-receive script.

apo pushed a commit to branch experimental
in repository gradle.

commit c485dd18cb04c24d73fb6e3c862e5a986dd76608
Merge: c99ca8f 730ecc1
Author: Markus Koschany <apo at debian.org>
Date:   Sat Nov 25 16:59:33 2017 +0100

    Import Debian changes 3.4.1-1
    
    gradle (3.4.1-1) experimental; urgency=medium
    
      * Team upload.
      * New upstream version 3.4.1.
      * Remove the symlink and entry for subproject gradle-task-cache-http because
        it is gone.
      * Drop fix-classpath-annotation.patch. Apparently it is no longer required.
      * Refresh and update all other patches to make the package compile.
      * Fix two FTBFS by adding jansi.patch and commons-io.patch.
      * Symlink WriteProperties.java and PropertiesUtils.java into buildSrc
        directory to avoid another FTBFS due to missing WriteProperties class.
      * Tighten build-dependency of libnative-platform-java to >= 0.14.
      * libgradle-core-java: Install new gradle-workers and gradle-version-info jar.

 build.gradle                                       |   47 +-
 buildSrc/settings.gradle                           |   20 +
 .../groovy/org/gradle/build/BuildReceipt.groovy    |   92 ++
 .../org/gradle/build/ClasspathManifest.groovy      |   76 +
 .../build/ReproduciblePropertiesWriter.groovy      |    7 +-
 .../org/gradle/build/docs/Docbook2Xhtml.groovy     |   19 +-
 .../gradle/build/docs/ExtractSamplesTask.groovy    |  100 ++
 .../gradle/build/docs/ExtractSnippetsTask.groovy   |   43 -
 .../gradle/build/docs/SampleLayoutHandler.groovy   |   33 +-
 .../org/gradle/build/docs/SnippetWriter.groovy     |   60 +
 .../build/docs/UserGuideTransformTask.groovy       |   53 +-
 .../groovy/org/gradle/build/docs/Xhtml2Pdf.groovy  |   57 +
 .../docs/dsl/docbook/AssembleDslDocTask.groovy     |    8 +-
 .../build/docs/dsl/docbook/LinkRenderer.java       |   16 +-
 .../dsl/source/GenerateDefaultImportsTask.java     |    5 +-
 .../gradle/modules/ClasspathManifestPatcher.groovy |   33 +-
 .../org/gradle/modules/ExcludeEntryPatcher.groovy  |   39 +-
 .../org/gradle/modules/PatchExternalModules.groovy |   67 +
 .../org/gradle/plugins/pegdown/PegDown.groovy      |   53 +-
 .../org/gradle/testing/CoordinatorBuild.groovy     |   26 +
 .../testing/DistributedPerformanceTest.groovy      |   47 +-
 .../org/gradle/testing/DistributionTest.groovy     |  154 ++
 .../org/gradle/testing/DistributionTest.java       |   25 -
 .../org/gradle/testing/IntegrationTest.groovy      |   63 +
 .../groovy/org/gradle/testing/IntegrationTest.java |   28 -
 .../testing/JUnitXmlTestEventsGenerator.groovy     |  158 ++
 .../groovy/org/gradle/testing/PerformanceTest.java |    5 +-
 .../main/groovy/org/gradle/testing/SmokeTest.java  |    3 -
 .../main/groovy/org/gradle/testing/SoakTest.java   |    3 -
 .../tasks/AbstractProjectGeneratorTask.groovy      |   22 +-
 .../generator/tasks/KtsProjectGeneratorTask.groovy |   42 +
 .../NativeProjectWithDepsGeneratorTask.groovy      |   27 -
 .../generator/tasks/RemoteProject.groovy           |   27 -
 .../build/ReproduciblePropertiesWriterTest.groovy  |   35 +
 .../build/docs/SampleLayoutHandlerTest.groovy      |   18 +-
 .../build/docs/dsl/docbook/LinkRendererTest.groovy |   10 +-
 .../testing/JUnitXmlTestEventsGeneratorTest.groovy |   82 +
 config/checkstyle/suppressions.xml                 |    2 +
 debian/.gitignore                                  |   16 -
 debian/changelog                                   |   16 +
 debian/control                                     |    2 +-
 debian/libgradle-core-java.links                   |    4 +-
 debian/libgradle-core-java.poms                    |    2 +
 debian/libgradle-plugins-java.links                |    3 +-
 debian/libgradle-plugins-java.poms                 |    1 -
 debian/patches/33_scala_zinc.diff                  |   71 +-
 debian/patches/34-disable-code-quality.patch       |   89 +
 debian/patches/34_disable_code_quality.diff        |   68 -
 .../Groovy_projects_depends_on_localGroovy.patch   |   18 +-
 debian/patches/commons-io.patch                    |   25 +
 .../dependency-management_depends_on_testkit.patch |   16 +-
 debian/patches/disable-Kotlin.patch                |   21 +
 debian/patches/disable-aws.patch                   |   87 +
 debian/patches/disable_Kotlin.patch                |   13 -
 debian/patches/disable_aws.diff                    |   64 -
 debian/patches/disable_buildSrc_tests.patch        |   20 +-
 debian/patches/docs.diff                           |  184 ---
 debian/patches/docs.patch                          |  223 +++
 debian/patches/drop-http-builder.patch             |  159 ++
 debian/patches/drop-jmh-gradle-plugin.patch        |   49 +
 debian/patches/drop_http-builder.patch             |  151 --
 debian/patches/drop_jmh-gradle-plugin.patch        |   16 -
 debian/patches/eclipse-aether.diff                 |  243 ---
 debian/patches/eclipse-aether.patch                |  270 +++
 debian/patches/fix-classpath-annotation.patch      |   15 -
 debian/patches/generate_pom.diff                   |   22 +-
 debian/patches/groovy-jar.patch                    |   29 +-
 debian/patches/ivy-2.4.0.patch                     |    9 +-
 debian/patches/jansi.patch                         |   39 +
 debian/patches/jcommander.diff                     |   44 -
 debian/patches/jcommander.patch                    |   62 +
 debian/patches/maven-3.3-compatibility.patch       |   58 +-
 debian/patches/nekohtml.diff                       |   15 -
 debian/patches/nekohtml.patch                      |   24 +
 debian/patches/new_APIs_in_3.0.patch               |   20 +-
 debian/patches/relax_warnings.diff                 |   15 +-
 debian/patches/remove-timestamps.patch             |   32 +
 debian/patches/remove_timestamps.patch             |   31 -
 debian/patches/search_system_jar.diff              |   30 +-
 debian/patches/series                              |   31 +-
 debian/patches/upgrade-to-jetty9.patch             |   73 +-
 debian/patches/use-local-artifacts.patch           |  297 ++++
 debian/patches/use_local_artifacts.diff            |  286 ----
 debian/rules                                       |   10 +-
 gradle/buildReceipt.gradle                         |  128 --
 gradle/buildScanInit.gradle                        |    2 +-
 gradle/buildScanUserData.gradle                    |   51 +-
 gradle/buildSplits.gradle                          |    6 +-
 gradle/buildTagging.gradle                         |    4 +-
 gradle/codeQuality.gradle                          |   16 +
 gradle/compile.gradle                              |   39 +-
 gradle/dependencies.gradle                         |    2 +-
 gradle/distributionTesting.gradle                  |   48 +-
 gradle/eclipse.gradle                              |    6 +-
 gradle/groovyProject.gradle                        |   64 +-
 gradle/idea.gradle                                 |   31 +-
 gradle/incomingDistributions.gradle                |    6 +-
 gradle/intTestImage.gradle                         |   17 +-
 gradle/integTest.gradle                            |    3 +
 gradle/java9.gradle                                |    1 +
 gradle/overlappingTaskOutputsStatsInit.gradle      |  115 ++
 gradle/performanceTest.gradle                      |   42 +-
 gradle/providedConfiguration.gradle                |   12 +-
 gradle/publish.gradle                              |   11 -
 gradle/remoteHttpCacheInit.gradle                  |    8 +-
 gradle/taskCacheBuildScanUserData.gradle           |  141 ++
 gradle/taskCacheDetailedDiagnosticsInit.gradle     |   26 +
 gradle/taskCacheDetailedStatsInit.gradle           |  217 +++
 gradle/versioning.gradle                           |   61 +-
 gradle/wrapper.gradle                              |    3 +-
 gradle/wrapper/gradle-wrapper.properties           |    4 +-
 settings.gradle                                    |    4 +-
 subprojects/announce/announce.gradle               |    2 +-
 subprojects/antlr/antlr.gradle                     |    1 +
 .../antlr/AbstractAntlrIntegrationTest.groovy      |   43 +-
 .../antlr/Antlr2PluginIntegrationTest.groovy       |   38 +-
 .../antlr/Antlr3PluginIntegrationTest.groovy       |   14 +-
 .../antlr/Antlr4PluginIntegrationTest.groovy       |   30 +-
 .../IncrementalAntlrTaskIntegrationTest.groovy     |   32 +-
 subprojects/base-services/base-services.gradle     |    4 +
 .../reflect/CachedConstructorsBenchmark.java       |    3 +-
 .../src/main/java/org/gradle/api/Describable.java  |   34 +
 .../src/main/java/org/gradle/internal/Actions.java |    9 +-
 .../java/org/gradle/internal/FastActionSet.java    |  133 ++
 .../main/java/org/gradle/internal/FileUtils.java   |   14 +
 .../main/java/org/gradle/internal/IoActions.java   |   15 +-
 .../java/org/gradle/internal/TimeProvider.java     |   24 -
 .../java/org/gradle/internal/TrueTimeProvider.java |   25 -
 .../internal/classloader/ClassLoaderHasher.java    |    3 +-
 .../classloader/ClassLoaderHierarchyHasher.java    |    7 +-
 .../internal/classloader/ClassPathSnapshotter.java |    2 +-
 .../gradle/internal/classloader/ClasspathUtil.java |   55 +-
 .../ConfigurableClassLoaderHierarchyHasher.java    |   28 +-
 .../DefaultHashingClassLoaderFactory.java          |   10 +-
 .../internal/classloader/FilteringClassLoader.java |    9 +
 .../classloader/HashingClassLoaderFactory.java     |    3 +-
 .../classloader/ImplementationHashAware.java       |   26 +
 .../concurrent/DefaultExecutorFactory.java         |   29 +
 .../internal/concurrent/ExecutorFactory.java       |   15 +-
 .../gradle/internal/concurrent/ExecutorPolicy.java |   22 +
 .../internal/concurrent/StoppableExecutorImpl.java |   35 +-
 .../concurrent/StoppableScheduledExecutor.java     |   22 +
 .../concurrent/StoppableScheduledExecutorImpl.java |   51 +
 .../java/org/gradle/internal/hash/HashUtil.java    |    6 +-
 .../gradle/internal/operations/BuildOperation.java |    3 +
 .../internal/operations/BuildOperationContext.java |   28 +
 .../internal/operations/BuildOperationQueue.java   |    8 +-
 .../internal/operations/BuildOperationWorker.java  |    5 +
 .../operations/DefaultBuildOperationProcessor.java |    2 +-
 .../operations/DefaultBuildOperationQueue.java     |   24 +-
 .../DefaultBuildOperationQueueFactory.java         |    8 +-
 .../DefaultBuildOperationWorkerRegistry.java       |   41 +-
 .../operations/RunnableBuildOperation.java         |    2 +-
 .../org/gradle/internal/process/ArgWriter.java     |    4 +-
 .../internal/reflect/DirectInstantiator.java       |  123 +-
 .../internal/reflect/JavaReflectionUtil.java       |   36 +-
 .../java/org/gradle/internal/reflect/Methods.java  |   34 +-
 .../gradle/internal/reflect/ReflectionCache.java   |   88 +
 .../internal/service/DefaultServiceRegistry.java   |   19 +-
 .../main/java/org/gradle/internal/time/Clock.java  |   79 +
 .../org/gradle/internal/time/CountdownClock.java   |   42 +
 .../org/gradle/internal/time/CountdownTimer.java   |   25 +
 .../org/gradle/internal/time/TimeProvider.java     |   25 +
 .../main/java/org/gradle/internal/time/Timer.java  |   25 +
 .../main/java/org/gradle/internal/time/Timers.java |   37 +
 .../org/gradle/internal/time/TrueTimeProvider.java |   31 +
 .../src/main/java/org/gradle/util/GUtil.java       |   22 +
 .../src/main/java/org/gradle/util/TextUtil.java    |    2 +-
 .../groovy/org/gradle/internal/ActionsTest.groovy  |   89 +
 .../org/gradle/internal/IoActionsTest.groovy       |   54 +-
 ...nfigurableClassLoaderHierarchyHasherTest.groovy |   20 +-
 .../concurrent/DefaultExecutorFactoryTest.groovy   |  223 +++
 .../DefaultBuildOperationProcessorTest.groovy      |   40 +-
 .../DefaultBuildOperationQueueTest.groovy          |   11 +-
 .../DefaultBuildOperationWorkerRegistryTest.groovy |   37 +-
 .../internal/operations/MaxWorkersTest.groovy      |  141 ++
 .../gradle/internal/process/ArgWriterTest.groovy   |    8 +
 .../reflect/DirectInstantiatorCacheTest.groovy     |   25 +-
 .../internal/reflect/DirectInstantiatorTest.groovy |   16 +-
 .../org/gradle/internal/reflect/TypesTest.groovy   |    5 +-
 .../org/gradle/internal/time/ClockTest.groovy      |   83 +
 .../build-cache-http.gradle}                       |    0
 .../internal/HttpBuildCacheIntegrationTest.groovy  |  249 +++
 .../http/internal/HttpBuildCacheTest.groovy        |  176 ++
 .../caching/http/internal/HttpBuildCache.java      |  201 +++
 .../http/internal/HttpBuildCacheFactory.java       |   50 +
 .../plugins/BuildInitPluginIntegrationTest.groovy  |    1 +
 .../GroovyLibraryInitIntegrationTest.groovy        |   14 +-
 .../JavaApplicationInitIntegrationTest.groovy      |  122 ++
 .../plugins/JavaLibraryInitIntegrationTest.groovy  |   16 +-
 .../org/gradle/api/tasks/wrapper/Wrapper.java      |   57 +-
 .../plugins/internal/BuildInitTypeIds.java         |    1 +
 .../plugins/internal/BuildScriptBuilder.java       |  205 +++
 .../DefaultTemplateLibraryVersionProvider.java     |    4 +-
 .../GroovyLibraryProjectInitDescriptor.java        |   30 +-
 .../JavaApplicationProjectInitDescriptor.java      |   51 +
 .../internal/JavaLibraryProjectInitDescriptor.java |   70 +-
 .../internal/JavaProjectInitDescriptor.java        |  126 ++
 .../ProjectLayoutSetupRegistryFactory.java         |   11 +-
 .../ScalaLibraryProjectInitDescriptor.java         |   41 +-
 .../plugins/internal/SimpleTemplateOperation.java  |   11 +-
 .../org/gradle/buildinit/tasks/InitBuild.java      |    2 +-
 .../tasks/templates/build.gradle.template          |    3 +-
 .../groovylibrary/Library.groovy.template          |    5 +-
 .../groovylibrary/LibraryTest.groovy.template      |   12 +-
 .../templates/groovylibrary/build.gradle.template  |   28 -
 .../tasks/templates/javaapp/App.java.template      |   12 +
 .../templates/javaapp/AppTest.groovy.template      |   17 +
 .../tasks/templates/javaapp/AppTest.java.template  |   12 +
 .../templates/javaapp/AppTestNG.java.template      |   12 +
 .../templates/javalibrary/Library.java.template    |    5 +-
 .../javalibrary/LibraryTest.java.template          |    9 +-
 .../javalibrary/LibraryTestNG.java.template        |   11 +-
 .../templates/javalibrary/build.gradle.template    |   30 -
 .../javalibrary/spock-build.gradle.template        |   34 -
 .../javalibrary/testng-build.gradle.template       |   29 -
 .../tasks/templates/library-versions.properties    |    6 +-
 .../templates/scalalibrary/Library.scala.template  |    5 +-
 .../scalalibrary/LibrarySuite.scala.template       |    6 +-
 .../templates/scalalibrary/build.gradle.template   |   29 -
 .../tasks/templates/settings.gradle.template       |    3 +-
 .../plugins/internal/BuildScriptBuilderTest.groovy |  170 ++
 .../BuildScanPluginPerformanceTest.groovy          |   10 +-
 .../fixture/BuildScanPerformanceTestRunner.groovy  |    7 +-
 subprojects/code-quality/code-quality.gradle       |    1 +
 ...CheckstylePluginClasspathIntegrationTest.groovy |  100 ++
 .../CheckstylePluginVersionIntegrationTest.groovy  |   54 +
 .../CheckstyleRelocationIntegrationTest.groovy     |   10 +-
 .../CodeNarcRelocationIntegrationTest.groovy       |   10 +-
 .../FindBugsRelocationIntegrationTest.groovy       |    1 -
 .../JDependRelocationIntegrationTest.groovy        |    1 -
 .../org/gradle/api/plugins/quality/Checkstyle.java |   46 +
 .../api/plugins/quality/CheckstyleExtension.java   |   48 +
 .../api/plugins/quality/CheckstylePlugin.java      |   14 +-
 .../quality/internal/CheckstyleInvoker.groovy      |    6 +-
 .../main/resources/checkstyle-noframes-sorted.xsl  |    2 +-
 .../plugins/quality/CheckstylePluginTest.groovy    |   12 +-
 .../api/plugins/quality/CheckstyleTest.groovy      |    2 +
 .../composite-builds/composite-builds.gradle       |    1 +
 .../CompositeBuildCleanupIntegrationTest.groovy    |   53 +
 ...gurationAttributesResolveIntegrationTest.groovy |  364 ++++
 ...eBuildDependencyArtifactsIntegrationTest.groovy |    4 +-
 ...ositeBuildDependencyCycleIntegrationTest.groovy |   44 +-
 ...ositeBuildDependencyGraphIntegrationTest.groovy |    2 +-
 ...CompositeBuildIdeaProjectIntegrationTest.groovy |   25 +-
 ...BuildMinimalConfigurationIntegrationTest.groovy |    2 +-
 ...iteBuildPluginDevelopmentIntegrationTest.groovy |    4 +-
 ...positeBuildTaskDependencyIntegrationTest.groovy |    4 +-
 ...ildWarningContinuousBuildIntegrationTest.groovy |   74 +
 ...teBuildWarningJavaProjectIntegrationTest.groovy |   91 +
 .../NestedCompositeBuildIntegrationTest.groovy     |   57 +
 .../internal/CompositeBuildIdeProjectResolver.java |   75 +
 .../composite/internal/CompositeBuildServices.java |   11 +-
 .../internal/CompositeBuildTaskDelegate.java       |    2 +-
 .../CompositeProjectComponentArtifactMetadata.java |    7 +
 .../composite/internal/DefaultIncludedBuild.java   |   14 +-
 .../internal/DefaultIncludedBuildExecuter.java     |    2 +-
 .../internal/DefaultIncludedBuildFactory.java      |   25 +-
 .../IncludedBuildDependencyMetadataBuilder.java    |   44 +-
 subprojects/core/core.gradle                       |   37 +-
 .../org/gradle/api/ApplyPluginIntegSpec.groovy     |  115 +-
 .../api/BuildScriptClassPathIntegrationTest.groovy |   43 +
 .../api/BuildScriptExecutionIntegrationSpec.groovy |   14 +
 .../api/InitScriptExecutionIntegrationTest.groovy  |   16 +
 .../SettingScriptExecutionIntegrationSpec.groovy   |   36 +
 .../dsl/NestedConfigureDslIntegrationTest.groovy   |   12 +-
 .../state/TaskTypeUpToDateIntegrationTest.groovy   |   21 +-
 .../ClassLoadersCachingIntegrationTest.groovy      |   20 +-
 .../resource/TextResourceIntegrationTest.groovy    |    2 +
 .../AbstractPathSensitivityIntegrationSpec.groovy  |   24 +
 .../api/tasks/AntArchiveIntegrationTest.groovy     |  128 --
 .../gradle/api/tasks/ArchiveIntegrationTest.groovy |   61 +-
 .../ArchiveTaskPermissionsIntegrationTest.groovy   |    4 +-
 ...CachedCustomTaskExecutionIntegrationTest.groovy |  570 +++++++
 .../CachedPathSensitivityIntegrationTest.groovy    |   11 +-
 .../tasks/CachedRelocationIntegrationTest.groovy   |   24 +-
 ...askExecutionErrorHandlingIntegrationTest.groovy |   96 ++
 .../CachedTaskExecutionIntegrationTest.groovy      |  376 ++---
 .../api/tasks/CachedTaskIntegrationTest.groovy     |  101 ++
 ...entBuildsIncrementalBuildIntegrationTest.groovy |   13 +-
 .../api/tasks/CopyErrorIntegrationTest.groovy      |    2 +-
 .../api/tasks/CopySpecIntegrationSpec.groovy       |   28 +
 .../tasks/CopyTaskChildSpecIntegrationTest.groovy  |   22 +-
 .../api/tasks/CopyTaskIntegrationSpec.groovy       |    1 -
 ...tionTimeTaskConfigurationIntegrationTest.groovy |    7 +-
 .../tasks/GradleBuildTaskIntegrationTest.groovy    |   82 +
 .../tasks/IncrementalBuildIntegrationTest.groovy   |  254 ++-
 ...entalBuildSymlinkHandlingIntegrationTest.groovy |  279 ++++
 ...ropertyAnnotationOverrideIntegrationTest.groovy |  103 ++
 .../ReproducibleArchivesIntegrationTest.groovy     |  368 +++++
 .../TaskInputFilePropertiesIntegrationTest.groovy  |   45 +
 .../TaskInputPropertiesIntegrationTest.groovy      |  106 +-
 ...InputChangesTaskExecutionIntegrationTest.groovy |   76 +
 .../tasks/WritePropertiesIntegrationTest.groovy    |  164 ++
 .../api/tasks/bundling/ZipIntegrationTest.groovy   |    2 +
 .../RuleTaskCreationIntegrationTest.groovy         |    4 +-
 .../BuildScriptClasspathIntegrationSpec.groovy     |    5 +-
 .../AbstractWorkerProcessIntegrationSpec.groovy    |    8 +-
 .../gradle/process/internal/LoggingProcess.java    |   15 +-
 ...ingleRequestWorkerProcessIntegrationTest.groovy |    2 +-
 .../internal/WorkerProcessIntegrationTest.groovy   |  101 +-
 ...rojectBuilderCrossVersionIntegrationTest.groovy |    4 +-
 .../ProjectBuilderIntegrationTest.groovy           |   14 +-
 .../src/main/java/org/gradle/StartParameter.java   |   42 +
 .../main/java/org/gradle/TaskExecutionRequest.java |   10 +
 .../gradle/api/NamedDomainObjectCollection.java    |   11 +
 .../core/src/main/java/org/gradle/api/Project.java |   48 +-
 .../gradle/api/artifacts/ArtifactCollection.java   |   48 +
 .../org/gradle/api/artifacts/ArtifactView.java     |   54 +
 .../api/artifacts/ConfigurablePublishArtifact.java |    4 +-
 .../org/gradle/api/artifacts/Configuration.java    |   69 +-
 .../api/artifacts/ConfigurationPublications.java   |   56 +
 .../gradle/api/artifacts/ConfigurationVariant.java |   46 +
 .../api/artifacts/FileCollectionDependency.java    |   15 +-
 .../gradle/api/artifacts/LenientConfiguration.java |   29 +-
 .../org/gradle/api/artifacts/ModuleDependency.java |   12 +-
 .../org/gradle/api/artifacts/PublishArtifact.java  |    5 +
 .../api/artifacts/ResolvableDependencies.java      |   38 +-
 .../org/gradle/api/artifacts/ResolveException.java |    2 +-
 .../org/gradle/api/artifacts/ResolvedArtifact.java |    5 +-
 .../api/artifacts/ResolvedConfiguration.java       |   15 +-
 .../api/artifacts/SelfResolvingDependency.java     |   10 +-
 .../api/artifacts/component/BuildIdentifier.java   |    2 -
 .../component/ComponentArtifactIdentifier.java     |    2 +-
 .../artifacts/component/ComponentIdentifier.java   |    3 +-
 .../gradle/api/artifacts/dsl/ArtifactHandler.java  |   14 +
 .../api/artifacts/dsl/DependencyHandler.java       |   23 +-
 .../artifacts/result/ArtifactResolutionResult.java |    9 +-
 .../api/artifacts/result/ArtifactResult.java       |   11 +
 .../artifacts/result/ComponentArtifactsResult.java |    2 +-
 .../api/artifacts/result/ComponentResult.java      |    2 +-
 .../api/artifacts/transform/ArtifactTransform.java |   45 +
 .../transform/ArtifactTransformException.java      |   43 +
 .../transform/ArtifactTransformRegistrations.java  |   42 +
 .../transform/ArtifactTransformTargets.java        |   30 +
 .../api/artifacts/transform/package-info.java      |   21 +
 .../java/org/gradle/api/attributes/Attribute.java  |  118 ++
 .../gradle/api/attributes/AttributeContainer.java  |   83 +
 .../api/attributes/AttributeMatchingStrategy.java  |   61 +
 .../gradle/api/attributes/AttributesSchema.java    |   67 +
 .../api/attributes/CompatibilityCheckDetails.java  |   51 +
 .../api/attributes/CompatibilityRuleChain.java     |   75 +
 .../api/attributes/DisambiguationRuleChain.java    |   74 +
 .../org/gradle/api/attributes/HasAttributes.java   |   35 +
 .../api/attributes/HasConfigurableAttributes.java  |   39 +
 .../api/attributes/MultipleCandidatesDetails.java  |   47 +
 .../main/java/org/gradle/api/attributes/Usage.java |   36 +
 .../org/gradle/api/attributes/package-info.java    |   20 +
 .../org/gradle/api/credentials/AwsCredentials.java |   14 +
 .../internal/InternalTaskExecutionListener.java    |    8 +-
 .../internal/TaskOperationDescriptor.java          |   32 +
 .../execution/internal/TaskOperationInternal.java  |   22 +-
 .../main/java/org/gradle/api/file/FileTree.java    |   25 +
 .../gradle/api/file/ReproducibleFileVisitor.java   |   34 +
 .../AbstractPolymorphicDomainObjectContainer.java  |   22 +-
 .../java/org/gradle/api/internal/AbstractTask.java |   16 +-
 .../api/internal/AsmBackedClassGenerator.java      |    4 +-
 .../api/internal/CompositeDomainObjectSet.java     |  173 +-
 .../internal/DefaultDomainObjectCollection.java    |   79 +-
 .../api/internal/DefaultDomainObjectSet.java       |    7 +
 .../DefaultNamedDomainObjectCollection.java        |  111 +-
 .../api/internal/DependencyClassPathProvider.java  |    2 +-
 .../gradle/api/internal/DomainObjectContext.java   |   12 +-
 .../internal/DynamicModulesClassPathProvider.java  |    2 +-
 .../org/gradle/api/internal/GradleInternal.java    |   31 +-
 .../org/gradle/api/internal/PropertiesUtils.java   |   85 +
 .../java/org/gradle/api/internal/SetIterator.java  |   83 +
 .../org/gradle/api/internal/SettingsInternal.java  |    2 +-
 .../gradle/api/internal/TaskInputsInternal.java    |   10 -
 .../java/org/gradle/api/internal/TaskInternal.java |    3 +
 .../api/internal/TaskOutputCachingState.java       |   32 +
 .../gradle/api/internal/TaskOutputsInternal.java   |   79 +-
 .../TypedDomainObjectContainerWrapper.java         |   28 +-
 .../org/gradle/api/internal/WithEstimatedSize.java |   60 +
 .../api/internal/artifacts/ArtifactAttributes.java |   29 +
 .../internal/artifacts/DefaultDependencySet.java   |   25 +-
 .../artifacts/DependencyResolveContext.java        |    3 +
 .../dependencies/AbstractModuleDependency.java     |   11 +-
 .../dependencies/DefaultClientModule.java          |    4 +-
 .../dependencies/DefaultProjectDependency.java     |   57 +-
 .../DefaultSelfResolvingDependency.java            |   36 +-
 .../dependencies/ProjectDependencyInternal.java    |   10 +-
 .../SelfResolvingDependencyInternal.java           |   29 +
 .../DefaultArtifactTransformTargets.java           |   49 +
 .../dsl/dependencies/DefaultDependencyHandler.java |  118 +-
 .../dsl/dependencies/DependencyFactory.java        |    8 +-
 .../artifacts/publish/AbstractPublishArtifact.java |    6 +
 .../artifacts/publish/ArchivePublishArtifact.java  |   16 +-
 .../publish/DecoratingPublishArtifact.java         |  101 ++
 .../artifacts/publish/DefaultPublishArtifact.java  |   13 +
 .../attributes/AttributeContainerInternal.java     |   35 +
 .../attributes/AttributeMatchingRules.java         |   40 +
 .../api/internal/attributes/AttributeValue.java    |  153 ++
 .../attributes/CompatibilityRuleChainInternal.java |   24 +
 .../DefaultAttributeMatchingStrategy.java          |   52 +
 .../attributes/DefaultCompatibilityRuleChain.java  |  107 ++
 .../attributes/DefaultDisambiguationRuleChain.java |   82 +
 .../DefaultImmutableAttributesFactory.java         |  115 ++
 .../DefaultMutableAttributeContainer.java          |  159 ++
 .../DefaultOrderedCompatibilityRule.java           |   47 +
 .../DefaultOrderedDisambiguationRule.java          |   57 +
 .../DisambiguationRuleChainInternal.java           |   23 +
 .../attributes/EqualityCompatibilityRule.java      |   32 +
 .../internal/attributes/ImmutableAttributes.java   |  172 ++
 .../attributes/ImmutableAttributesFactory.java     |   30 +
 .../attributes/SelectAllCompatibleRule.java        |   37 +
 .../org/gradle/api/internal/attributes/Usages.java |   75 +
 .../internal/cache/CrossBuildInMemoryCache.java    |   44 +
 .../cache/CrossBuildInMemoryCacheFactory.java      |  143 ++
 .../cache/DefaultFileContentCacheFactory.java      |  147 ++
 .../cache/DefaultGeneratedGradleJarCache.java      |    2 +-
 .../api/internal/cache/FileContentCache.java       |   32 +
 .../internal/cache/FileContentCacheFactory.java    |   41 +
 .../api/internal/cache/MinimalPersistentCache.java |   64 +-
 .../cache/SingleOperationPersistentStore.java      |   99 --
 .../changedetection/TaskArtifactState.java         |    6 +-
 .../DefaultTaskArtifactStateRepository.java        |   18 +-
 .../changes/NoHistoryArtifactState.java            |    4 +-
 .../ShortCircuitTaskArtifactStateRepository.java   |    4 +-
 .../AbstractNamedFileSnapshotTaskStateChanges.java |   18 +-
 .../rules/DiscoveredInputsTaskStateChanges.java    |    6 +-
 .../rules/InputFilesTaskStateChanges.java          |    6 +-
 .../rules/OutputFilesTaskStateChanges.java         |   23 +-
 .../rules/TaskTypeTaskStateChanges.java            |   25 +-
 .../changedetection/rules/TaskUpToDateState.java   |   13 +-
 .../state/AbstractFileCollectionSnapshotter.java   |  224 +++
 .../state/AbstractNormalizedFileSnapshot.java      |    8 +-
 .../state/BuildScopeFileTimeStampInspector.java    |   40 +
 .../state/CacheBackedFileSnapshotRepository.java   |    2 +-
 .../state/CacheBackedTaskHistoryRepository.java    |   63 +-
 .../changedetection/state/CacheCapSizer.java       |   65 -
 .../changedetection/state/CachingFileHasher.java   |  157 ++
 .../state/CachingFileSnapshotter.java              |  119 --
 .../ClasspathSnapshotNormalizationStrategy.java    |   47 +
 .../state/ClasspathSnapshotter.java                |   25 +
 .../state/CompileClasspathSnapshotter.java         |   26 +
 .../state/CrossBuildFileHashCache.java             |   58 +
 .../state/DefaultClasspathSnapshotter.java         |   53 +
 .../state/DefaultCompileClasspathSnapshotter.java  |   80 +
 .../state/DefaultFileCollectionSnapshot.java       |   24 +-
 .../state/DefaultFileCollectionSnapshotter.java    |  193 ---
 .../DefaultFileCollectionSnapshotterRegistry.java  |   58 +
 .../changedetection/state/DefaultFileDetails.java  |   30 +-
 .../state/DefaultFileSystemMirror.java             |   59 +
 .../DefaultGenericFileCollectionSnapshotter.java   |   33 +
 .../state/DefaultTaskHistoryStore.java             |    7 +-
 .../changedetection/state/DirSnapshot.java         |    8 +-
 .../state/DirectoryTreeDetails.java                |   34 +
 .../state/FileCollectionSnapshot.java              |    9 +-
 .../state/FileCollectionSnapshotter.java           |   17 +-
 .../state/FileCollectionSnapshotterRegistry.java   |   24 +
 .../changedetection/state/FileDetails.java         |   21 +-
 .../changedetection/state/FileHashSnapshot.java    |    8 +-
 .../changedetection/state/FileSnapshot.java        |   23 -
 .../changedetection/state/FileSnapshotter.java     |   40 -
 .../changedetection/state/FileSystemMirror.java    |   36 +
 .../state/FileTimeStampInspector.java              |   98 ++
 .../state/GenericFileCollectionSnapshotter.java    |   23 +
 .../state/GlobalScopeFileTimeStampInspector.java   |   95 ++
 .../state/IgnoredPathFileSnapshot.java             |    8 +-
 .../state/InMemoryDecoratedCache.java              |    3 +-
 .../state/InMemoryTaskArtifactCache.java           |  135 +-
 .../state/IncrementalFileSnapshot.java             |    4 +-
 .../changedetection/state/JvmClassHasher.java      |  159 ++
 .../changedetection/state/MissingFileSnapshot.java |    8 +-
 .../state/MissingFileVisitDetails.java             |   96 --
 .../state/NormalizedFileSnapshot.java              |    4 +-
 ...InsensitiveTaskFilePropertyCompareStrategy.java |    4 +-
 ...erSensitiveTaskFilePropertyCompareStrategy.java |    4 +-
 .../state/OutputFilesCollectionSnapshotter.java    |  116 --
 .../state/OutputFilesSnapshotter.java              |   88 +
 ...ShortLivedProcessInMemoryTaskArtifactCache.java |   35 -
 .../state/SnapshotMapSerializer.java               |   22 +-
 .../state/SnapshotNormalizationStrategy.java       |    2 +-
 .../changedetection/state/TaskExecution.java       |  111 +-
 .../state/TaskExecutionSnapshot.java               |    8 +-
 .../state/TaskFilePropertyCompareStrategy.java     |    6 +-
 ...kFilePropertySnapshotNormalizationStrategy.java |   27 +-
 .../changedetection/state/TaskHistoryStore.java    |   14 +-
 .../internal/classpath/DefaultModuleRegistry.java  |    1 +
 .../api/internal/classpath/EffectiveClassPath.java |    2 +-
 .../internal/collections/FilteredCollection.java   |   56 +-
 .../component/SoftwareComponentInternal.java       |    2 +-
 .../org/gradle/api/internal/component/Usage.java   |   28 -
 .../api/internal/component/UsageContext.java       |   30 +
 .../api/internal/file/AbstractFileResolver.java    |   24 +-
 .../gradle/api/internal/file/AbstractFileTree.java |   32 +-
 .../api/internal/file/BaseDirFileResolver.java     |   15 +-
 .../api/internal/file/CompositeFileTree.java       |   57 +-
 .../api/internal/file/IdentityFileResolver.java    |    6 +
 .../api/internal/file/archive/TarCopyAction.java   |   17 +-
 .../api/internal/file/archive/TarFileTree.java     |    3 +
 .../api/internal/file/archive/ZipCopyAction.java   |   13 +-
 .../api/internal/file/archive/ZipFileTree.java     |    3 +
 .../file/collections/AbstractDirectoryWalker.java  |   79 +
 .../file/collections/DefaultDirectoryWalker.java   |   53 +-
 .../file/collections/DirectoryFileTree.java        |   10 +-
 .../collections/ReproducibleDirectoryWalker.java   |   37 +
 .../file/collections/SingletonFileTree.java        |   11 +-
 .../api/internal/file/copy/CopyActionExecuter.java |    8 +-
 .../internal/file/copy/CopyFileVisitorImpl.java    |   15 +-
 .../api/internal/file/copy/CopySpecActionImpl.java |    8 +-
 .../CopySpecBackedCopyActionProcessingStream.java  |    6 +-
 .../gradle/api/internal/file/copy/FileCopier.java  |    2 +-
 .../file/pattern/AnyWildcardPatternStep.java       |    7 +-
 .../api/internal/file/pattern/AnythingMatcher.java |   40 +
 .../internal/file/pattern/EndOfPathMatcher.java    |    5 +
 .../internal/file/pattern/FixedPatternStep.java    |    5 +
 .../file/pattern/FixedStepPathMatcher.java         |   71 +
 .../file/pattern/FixedStepsPathMatcher.java        |   70 -
 .../internal/file/pattern/GreedyPathMatcher.java   |    5 +
 .../pattern/HasPrefixAndSuffixPatternStep.java     |    5 +
 .../file/pattern/HasPrefixPatternStep.java         |    5 +
 .../file/pattern/HasSuffixPatternStep.java         |    5 +
 .../file/pattern/PatternMatcherFactory.java        |   21 +-
 .../internal/file/pattern/RegExpPatternStep.java   |  111 +-
 .../api/internal/hash/DefaultFileHasher.java       |  113 ++
 .../gradle/api/internal/hash/DefaultHasher.java    |   41 -
 .../org/gradle/api/internal/hash/FileHasher.java   |   51 +
 .../java/org/gradle/api/internal/hash/Hasher.java  |   24 -
 .../initialization/BasicDomainObjectContext.java   |   11 +-
 .../loadercache/ClassLoaderCache.java              |   19 +-
 .../loadercache/DefaultClassLoaderCache.java       |   65 +-
 .../loadercache/HashClassPathSnapshotter.java      |   55 +-
 .../api/internal/project/DefaultProject.java       |   60 +-
 .../api/internal/project/ProjectInternal.java      |   17 +-
 .../project/antbuilder/AntBuilderDelegate.java     |    6 +-
 .../AbstractInputPropertyAnnotationHandler.java    |   67 +
 .../AbstractOutputPropertyAnnotationHandler.java   |   23 +-
 ...tractPluralOutputPropertyAnnotationHandler.java |   23 +-
 .../AnnotationProcessingTaskFactory.java           |    2 +-
 .../ClasspathPropertyAnnotationHandler.java        |   57 +-
 .../CompileClasspathPropertyAnnotationHandler.java |   35 +
 .../DefaultTaskClassValidatorExtractor.java        |  125 +-
 .../InputDirectoryPropertyAnnotationHandler.java   |   40 +-
 .../InputFilePropertyAnnotationHandler.java        |   36 +-
 .../InputFilesPropertyAnnotationHandler.java       |   24 +-
 .../NestedBeanPropertyAnnotationHandler.java       |    2 +-
 ...OutputDirectoriesPropertyAnnotationHandler.java |   10 +-
 .../OutputDirectoryPropertyAnnotationHandler.java  |   25 +-
 .../OutputFilePropertyAnnotationHandler.java       |   29 +-
 .../OutputFilesPropertyAnnotationHandler.java      |   10 +-
 .../OverridingPropertyAnnotationHandler.java       |   25 +
 .../project/taskfactory/TaskClassValidator.java    |   29 +-
 .../taskfactory/TaskPropertyActionContext.java     |   17 +-
 .../project/taskfactory/TaskPropertyInfo.java      |   13 +-
 .../taskfactory/TaskPropertyValidationAccess.java  |    2 +-
 .../resources/StringBackedTextResource.java        |    4 +-
 .../tasks/AbstractTaskOutputPropertySpec.java      |   86 +
 ...tTaskOutputsDeprecatingTaskPropertyBuilder.java |  100 ++
 ...TaskOutputCompositeFilePropertyElementSpec.java |   88 +
 .../tasks/CacheableTaskOutputFilePropertySpec.java |    4 +
 .../tasks/CompositeTaskOutputPropertySpec.java     |   78 +
 ...DefaultCacheableTaskOutputFilePropertySpec.java |   58 +
 .../api/internal/tasks/DefaultTaskContainer.java   |   42 +-
 .../tasks/DefaultTaskInputPropertySpec.java        |  228 +++
 .../api/internal/tasks/DefaultTaskInputs.java      |  209 +--
 .../tasks/DefaultTaskOutputCachingState.java       |   55 +
 .../api/internal/tasks/DefaultTaskOutputs.java     |  397 +----
 .../tasks/NonCacheableTaskOutputPropertySpec.java  |   72 +
 .../internal/tasks/RealizableTaskCollection.java   |    5 +
 .../api/internal/tasks/TaskContainerInternal.java  |    8 +-
 .../api/internal/tasks/TaskDependencies.java       |   34 +
 .../api/internal/tasks/TaskExecutionOutcome.java   |   18 +-
 .../tasks/TaskFilePropertyBuilderInternal.java     |    3 +
 .../api/internal/tasks/TaskFilePropertySpec.java   |    2 +
 .../TaskInputFilePropertyBuilderInternal.java      |    4 +
 .../internal/tasks/TaskInputFilePropertySpec.java  |    1 +
 .../tasks/TaskInputPropertySpecAndBuilder.java     |   20 +
 .../tasks/TaskOutputPropertySpecAndBuilder.java    |   24 +
 .../gradle/api/internal/tasks/TaskOutputsUtil.java |   38 +-
 .../api/internal/tasks/TaskPropertyUtils.java      |    6 +-
 .../api/internal/tasks/TaskStateInternal.java      |   28 +-
 .../tasks/cache/DefaultTaskCacheKeyBuilder.java    |  146 --
 .../internal/tasks/cache/GZipTaskOutputPacker.java |   56 -
 .../tasks/cache/LocalDirectoryTaskOutputCache.java |   83 -
 .../tasks/cache/MapBasedTaskOutputCache.java       |   55 -
 .../internal/tasks/cache/TarTaskOutputPacker.java  |  215 ---
 .../api/internal/tasks/cache/TaskCacheKey.java     |   21 -
 .../internal/tasks/cache/TaskCacheKeyBuilder.java  |   29 -
 .../cache/TaskExecutionStatisticsEventAdapter.java |   63 -
 .../api/internal/tasks/cache/TaskOutputCache.java  |   46 -
 .../tasks/cache/TaskOutputCacheFactory.java        |   23 -
 .../api/internal/tasks/cache/TaskOutputPacker.java |   29 -
 .../api/internal/tasks/cache/TaskOutputReader.java |   24 -
 .../api/internal/tasks/cache/TaskOutputWriter.java |   24 -
 .../tasks/cache/config/DefaultTaskCaching.java     |   63 -
 .../tasks/cache/config/TaskCachingInternal.java    |   24 -
 .../cache/statistics/TaskExecutionStatistics.java  |   61 -
 .../TaskExecutionStatisticsListener.java           |   21 -
 .../internal/tasks/compile/AccessibleMember.java   |   37 +
 .../internal/tasks/compile/AnnotatableMember.java  |   51 +
 .../tasks/compile/AnnotationAnnotationValue.java   |   24 +
 .../internal/tasks/compile/AnnotationMember.java   |   61 +
 .../internal/tasks/compile/AnnotationValue.java    |   36 +
 .../internal/tasks/compile/ApiClassExtractor.java  |   98 ++
 .../internal/tasks/compile/ApiMemberSelector.java  |  242 +++
 .../tasks/compile/ArrayAnnotationValue.java        |   24 +
 .../api/internal/tasks/compile/ClassMember.java    |   45 +
 .../tasks/compile/EnumAnnotationValue.java         |   31 +
 .../api/internal/tasks/compile/FieldMember.java    |   47 +
 .../internal/tasks/compile/InnerClassMember.java   |   45 +
 .../gradle/api/internal/tasks/compile/Member.java  |   51 +
 .../api/internal/tasks/compile/MethodMember.java   |   77 +
 .../compile/MethodStubbingApiMemberAdapter.java    |   85 +
 .../tasks/compile/ParameterAnnotationMember.java   |   38 +
 .../tasks/compile/SimpleAnnotationValue.java       |   24 +
 .../tasks/compile/SortingAnnotationVisitor.java    |   89 +
 .../api/internal/tasks/compile/TypedMember.java    |   38 +
 .../ResolveTaskArtifactStateTaskExecuter.java      |    7 +-
 .../ResolveTaskOutputCachingStateExecuter.java     |   49 +
 .../tasks/execution/SelfDescribingSpec.java        |   52 +
 .../tasks/execution/SkipCachedTaskExecuter.java    |  141 +-
 .../SkipEmptySourceFilesTaskExecuter.java          |    6 +-
 .../tasks/execution/SkipUpToDateTaskExecuter.java  |    9 +-
 .../VerifyNoInputChangesTaskExecuter.java          |   49 +
 .../java/org/gradle/api/invocation/Gradle.java     |   76 +-
 .../api/plugins/PluginInstantiationException.java  |    2 +
 .../org/gradle/api/resources/TextResource.java     |    4 +-
 .../org/gradle/api/tasks/AbstractCopyTask.java     |   18 +-
 .../java/org/gradle/api/tasks/CacheableTask.java   |    2 +-
 .../main/java/org/gradle/api/tasks/Classpath.java  |    3 +
 .../org/gradle/api/tasks/CompileClasspath.java     |   52 +
 .../java/org/gradle/api/tasks/GradleBuild.java     |    8 +-
 .../java/org/gradle/api/tasks/OrderSensitive.java  |    3 +
 .../java/org/gradle/api/tasks/SkipWhenEmpty.java   |    2 +
 .../java/org/gradle/api/tasks/TaskCaching.java     |   47 -
 .../api/tasks/TaskInputFilePropertyBuilder.java    |    6 +
 .../java/org/gradle/api/tasks/TaskOutputs.java     |   93 +-
 .../main/java/org/gradle/api/tasks/TaskState.java  |   10 +
 .../java/org/gradle/api/tasks/WriteProperties.java |  223 +++
 .../api/tasks/bundling/AbstractArchiveTask.java    |   76 +
 .../java/org/gradle/api/tasks/bundling/Tar.java    |    2 +-
 .../java/org/gradle/api/tasks/bundling/Zip.java    |    3 +-
 .../main/java/org/gradle/cache/CacheAccess.java    |   12 +-
 .../main/java/org/gradle/cache/CacheBuilder.java   |    8 +
 .../java/org/gradle/cache/PersistentCache.java     |   10 +-
 .../cache/PersistentIndexedCacheParameters.java    |    2 +-
 .../gradle/cache/internal/CacheAccessWorker.java   |    8 +-
 .../org/gradle/cache/internal/CacheKeyBuilder.java |   90 +
 .../cache/internal/CacheRepositoryServices.java    |    8 +
 .../gradle/cache/internal/DefaultCacheAccess.java  |  202 ++-
 .../gradle/cache/internal/DefaultCacheFactory.java |   24 +-
 .../cache/internal/DefaultCacheKeyBuilder.java     |   94 ++
 .../cache/internal/DefaultFileLockManager.java     |   31 +-
 .../internal/DefaultPersistentDirectoryCache.java  |    2 +-
 .../internal/DefaultPersistentDirectoryStore.java  |   25 +-
 .../java/org/gradle/cache/internal/FileLock.java   |    1 +
 .../cache/internal/MapBackedInMemoryStore.java     |  109 --
 .../cacheops/CacheAccessOperationsStack.java       |   16 +-
 .../cache/internal/cacheops/CacheOperation.java    |    4 +-
 .../internal/cacheops/CacheOperationStack.java     |   13 +-
 .../filelock/DefaultLockStateSerializer.java       |    4 +
 .../filelock/Version1LockStateSerializer.java      |    4 +
 .../main/java/org/gradle/caching/BuildCache.java   |   72 +
 .../org/gradle/caching/BuildCacheEntryReader.java  |   38 +
 .../org/gradle/caching/BuildCacheEntryWriter.java  |   38 +
 .../org/gradle/caching/BuildCacheException.java    |   39 +
 .../java/org/gradle/caching/BuildCacheKey.java     |   32 +
 .../org/gradle/caching/MapBasedBuildCache.java     |   75 +
 .../caching/internal/BuildCacheConfiguration.java  |   46 +
 .../internal/BuildCacheConfigurationInternal.java  |   25 +
 .../gradle/caching/internal/BuildCacheFactory.java |   31 +
 .../caching/internal/BuildCacheKeyBuilder.java     |   32 +
 .../internal/DefaultBuildCacheConfiguration.java   |  110 ++
 .../internal/DefaultBuildCacheKeyBuilder.java      |  234 +++
 .../internal/LenientBuildCacheDecorator.java       |   65 +
 .../caching/internal/LocalDirectoryBuildCache.java |  136 ++
 .../internal/LoggingBuildCacheDecorator.java       |   72 +
 ...tCircuitingErrorHandlerBuildCacheDecorator.java |   97 ++
 .../internal/StagingBuildCacheDecorator.java       |  175 ++
 .../internal/tasks/GZipTaskOutputPacker.java       |   76 +
 .../tasks/OutputPreparingTaskOutputPacker.java     |   87 +
 .../internal/tasks/TarTaskOutputPacker.java        |  292 ++++
 .../tasks/TaskExecutionStatisticsEventAdapter.java |   63 +
 .../caching/internal/tasks/TaskOutputPacker.java   |   30 +
 .../tasks/origin/TaskOutputOriginFactory.java      |   98 ++
 .../tasks/origin/TaskOutputOriginReader.java       |   23 +
 .../tasks/origin/TaskOutputOriginWriter.java       |   23 +
 .../tasks/statistics/TaskExecutionStatistics.java  |   61 +
 .../TaskExecutionStatisticsListener.java           |   21 +
 .../main/java/org/gradle/caching/package-info.java |   20 +
 .../project/BuildScriptProcessor.java              |    7 +-
 .../project/LifecycleProjectEvaluator.java         |   29 +-
 .../internal/DefaultDeploymentRegistry.java        |    6 +
 .../org/gradle/execution/ProjectConfigurer.java    |   11 +
 .../gradle/execution/TaskPathProjectEvaluator.java |   37 +-
 .../java/org/gradle/execution/TaskSelector.java    |   22 +-
 .../commandline/CommandLineTaskParser.java         |    4 +-
 .../taskgraph/AbstractTaskPlanExecutor.java        |   13 +-
 .../taskgraph/DefaultTaskExecutionPlan.java        |   25 +-
 .../taskgraph/DefaultTaskGraphExecuter.java        |   63 +-
 .../taskgraph/ParallelTaskPlanExecutor.java        |    2 +-
 .../org/gradle/groovy/scripts/BasicScript.java     |   63 +-
 .../java/org/gradle/groovy/scripts/Script.java     |   13 +-
 .../internal/BuildScriptDataSerializer.java        |    4 +-
 .../CrossBuildInMemoryCachingScriptClassCache.java |   26 +-
 .../internal/DefaultScriptCompilationHandler.java  |   47 +-
 .../FileCacheBackedScriptClassCompiler.java        |   18 +-
 .../internal/InitialPassStatementTransformer.java  |    2 +-
 .../scripts/internal/ScriptClassCompiler.java      |    3 +-
 .../initialization/BuildRequestMetaData.java       |    1 +
 .../DefaultBuildRequestMetaData.java               |    5 +
 .../DefaultCommandLineConverter.java               |   15 +
 .../initialization/DefaultGradleLauncher.java      |  130 +-
 .../DefaultGradleLauncherFactory.java              |  152 +-
 .../initialization/DefaultProjectDescriptor.java   |    2 +-
 .../org/gradle/initialization/DefaultSettings.java |   14 +-
 .../initialization/DefaultSettingsLoader.java      |    4 +-
 .../org/gradle/initialization/GradleLauncher.java  |   10 +-
 .../initialization/GradleLauncherFactory.java      |   18 -
 .../gradle/initialization/InitScriptHandler.java   |    6 +-
 .../initialization/InstantiatingBuildLoader.java   |   16 +-
 .../gradle/initialization/NestedBuildFactory.java  |   31 +
 .../gradle/initialization/NestedBuildTracker.java  |   42 -
 .../initialization/NotifyingSettingsProcessor.java |   11 +-
 .../ProjectPropertySettingBuildLoader.java         |    4 +-
 .../PropertiesLoadingSettingsProcessor.java        |    4 +-
 .../ScriptEvaluatingSettingsProcessor.java         |   11 +-
 .../initialization/SessionLifecycleListener.java   |   29 +
 .../org/gradle/initialization/SettingsFactory.java |   13 +-
 .../gradle/initialization/SettingsProcessor.java   |    2 +-
 .../buildsrc/BuildSourceBuilder.java               |   33 +-
 .../buildsrc/BuildSrcBuildListenerFactory.java     |   13 +-
 .../internal/DefaultTaskExecutionRequest.java      |   13 +-
 .../authentication/AllSchemesAuthentication.java   |    5 +
 .../authentication/AuthenticationInternal.java     |    2 +
 .../internal/buildevents/BuildResultLogger.java    |    4 +-
 .../buildevents/CacheStatisticsReporter.java       |    6 +-
 .../internal/buildevents/TaskExecutionLogger.java  |   15 +-
 .../DefaultCachedClasspathTransformer.java         |    2 +-
 .../BuildOperationBuildOutputDeleterDecorator.java |   51 +
 .../internal/cleanup/BuildOutputCleanupCache.java  |   29 +
 .../cleanup/BuildOutputCleanupListener.java        |   28 +
 .../cleanup/BuildOutputCleanupRegistry.java        |   32 +
 .../internal/cleanup/BuildOutputDeleter.java       |   24 +
 .../cleanup/DefaultBuildOutputCleanupCache.java    |   81 +
 .../cleanup/DefaultBuildOutputCleanupRegistry.java |   44 +
 .../cleanup/DefaultBuildOutputDeleter.java         |   56 +
 .../composite/CompositeBuildSettingsLoader.java    |    6 +
 .../credentials/DefaultAwsCredentials.java         |    9 +
 .../ConfigurationNotConsumableException.java       |   23 +
 .../DefaultFileSystemChangeWaiterFactory.java      |    8 +-
 .../internal/invocation/BuildController.java       |    5 +
 .../internal/metaobject/BeanDynamicObject.java     |  206 ++-
 .../gradle/internal/metaobject/DynamicObject.java  |   45 +-
 .../gradle/internal/metaobject/MethodAccess.java   |   34 +
 .../gradle/internal/metaobject/MethodMixIn.java    |   26 +
 .../gradle/internal/metaobject/PropertyAccess.java |   51 +
 .../gradle/internal/metaobject/PropertyMixIn.java  |   26 +
 .../internal/progress/BuildOperationDetails.java   |   53 +-
 .../internal/progress/BuildOperationExecutor.java  |   27 +-
 .../internal/progress/BuildOperationInternal.java  |   14 +-
 .../progress/DefaultBuildOperationExecutor.java    |   77 +-
 .../internal/progress/OperationIdGenerator.java    |   46 -
 .../org/gradle/internal/scan/BuildScanRequest.java |   48 +
 .../internal/scan/BuildScanRequestListener.java    |   49 +
 .../internal/scan/DefaultBuildScanRequest.java     |   43 +
 .../org/gradle/internal/scan/package-info.java     |   25 +
 .../service/scopes/BuildScopeServices.java         |   84 +-
 .../service/scopes/BuildSessionScopeServices.java  |   39 +-
 .../service/scopes/GlobalScopeServices.java        |   88 +-
 .../service/scopes/GradleScopeServices.java        |   38 +-
 .../scopes/GradleUserHomeScopeServices.java        |   55 +
 .../service/scopes/ProjectScopeServices.java       |    2 +-
 .../service/scopes/TaskExecutionServices.java      |  177 +-
 .../ErrorHandlingNotationParser.java               |    4 +-
 .../typeconversion/MapNotationConverter.java       |  136 +-
 .../typeconversion/NotationParserBuilder.java      |   30 +-
 .../org/gradle/internal/xml/XmlTransformer.java    |    5 +
 .../java/org/gradle/invocation/DefaultGradle.java  |  122 +-
 .../plugin/use/internal/DefaultPluginRequest.java  |    5 +
 .../use/internal/PluginRequestCollector.java       |    9 +-
 .../use/internal/PluginRequestsSerializer.java     |    4 +-
 .../PluginUseScriptBlockMetadataExtractor.java     |    6 +-
 .../DefaultMultiRequestWorkerProcessBuilder.java   |    2 +-
 .../DefaultSingleRequestWorkerProcessBuilder.java  |    2 +-
 .../worker/DefaultWorkerLoggingProtocol.java       |   41 +
 .../internal/worker/DefaultWorkerProcess.java      |    7 +-
 .../worker/DefaultWorkerProcessBuilder.java        |   45 +-
 .../worker/DefaultWorkerProcessFactory.java        |   15 +-
 .../internal/worker/WorkerLoggingSerializer.java   |   50 +
 .../child/SystemApplicationClassLoaderWorker.java  |   18 +-
 .../worker/child/WorkerLogEventListener.java       |   39 +
 .../worker/child/WorkerLoggingProtocol.java        |   25 +
 .../process/internal/worker/request/Receiver.java  |   10 +-
 .../internal/worker/request/WorkerAction.java      |    8 +-
 .../org/gradle/profile/ProfileEventAdapter.java    |    2 +-
 .../internal/InMemoryCacheFactory.java             |   36 +-
 .../internal/TestBuildScopeServices.java           |   16 +
 .../ProjectSensitiveToolingModelBuilder.java       |   41 -
 .../core/src/main/java/org/gradle/util/Clock.java  |   58 +-
 .../src/main/java/org/gradle/util/GFileUtils.java  |   23 +
 .../core/src/main/java/org/gradle/util/Path.java   |   37 +-
 .../AbstractNamedDomainObjectContainerTest.groovy  |    2 +-
 .../api/internal/BeanWithMixInMethods.groovy       |   50 +
 .../api/internal/BeanWithMixInProperties.groovy    |   63 +
 .../DefaultDomainObjectCollectionTest.java         |   41 +-
 .../api/internal/DefaultDomainObjectSetTest.groovy |   23 +-
 .../DefaultNamedDomainObjectCollectionTest.groovy  |   59 +
 .../DefaultNamedDomainObjectSetSpec.groovy         |  174 ++
 .../internal/DefaultNamedDomainObjectSetTest.java  |  147 +-
 ...aultPolymorphicDomainObjectContainerTest.groovy |   12 +-
 .../DependencyClassPathProviderTest.groovy         |    3 +-
 .../gradle/api/internal/PropertiesUtilsTest.groovy |   86 +
 .../artifacts/DefaultDependencySetTest.groovy      |   54 -
 .../DefaultProjectDependencyTest.groovy            |   19 +-
 .../DefaultSelfResolvingDependencyTest.java        |   11 +-
 .../DefaultDependencyHandlerTest.groovy            |   34 +-
 .../publish/AbstractPublishArtifactTest.groovy     |   62 +
 .../publish/AbstractPublishArtifactTest.java       |   73 -
 .../publish/ArchivePublishArtifactTest.groovy      |    6 +-
 .../publish/DecoratingPublishArtifactTest.groovy   |   58 +
 .../publish/DefaultPublishArtifactTest.groovy      |   64 +
 .../publish/DefaultPublishArtifactTest.java        |   59 -
 .../DefaultAttributeContainerTest.groovy           |  183 ++
 .../attributes/DefaultAttributesSchemaTest.groovy  |  184 +++
 .../DefaultImmutableAttributesFactoryTest.groovy   |  197 +++
 .../CrossBuildInMemoryCacheFactoryTest.groovy      |  115 ++
 .../DefaultFileContentCacheFactoryTest.groovy      |  221 +++
 .../cache/GeneratedGradleJarCacheTest.groovy       |    6 +-
 .../cache/HeapProportionalCacheSizerTest.groovy    |   49 +-
 .../DefaultTaskArtifactStateRepositoryTest.groovy  |   46 +-
 .../rules/AbstractTaskStateChangesTest.groovy      |   74 +
 .../rules/InputFilesTaskStateChangesTest.groovy    |   52 +
 .../rules/OutputFilesTaskStateChangesTest.groovy   |   53 +
 .../rules/TaskTypeTaskStateChangesTest.groovy      |   73 +-
 .../rules/TaskUpToDateStateTest.groovy             |  108 +-
 .../AbstractFileCollectionSnapshotterTest.groovy   |  322 ++++
 ...bstractSnapshotNormalizationStrategyTest.groovy |   41 +-
 .../CacheBackedFileSnapshotRepositoryTest.groovy   |    2 +-
 .../changedetection/state/CacheCapSizerTest.groovy |   68 -
 .../state/CachingFileHasherTest.groovy             |  217 +++
 .../state/CachingFileSnapshotterTest.groovy        |  140 --
 .../state/DefaultClasspathSnapshotterTest.groovy   |   91 +
 .../state/DefaultFileCollectionSnapshotTest.groovy |    6 +-
 .../DefaultFileCollectionSnapshotterTest.groovy    |  360 ----
 .../state/DefaultTaskHistoryStoreTest.groovy       |    6 +-
 .../state/InMemoryTaskArtifactCacheTest.groovy     |   54 +-
 .../api/internal/file/AbstractFileTreeTest.groovy  |   26 +
 .../internal/file/BaseDirFileResolverSpec.groovy   |   29 +-
 .../api/internal/file/CompositeFileTreeTest.java   |   38 +
 .../internal/file/DefaultFileOperationsTest.groovy |    2 +-
 .../internal/file/archive/TarCopyActionSpec.groovy |   13 +-
 .../internal/file/archive/ZipCopyActionTest.groovy |   31 +-
 .../jdk7/Jdk7DirectoryWalkerTest.groovy            |   11 +-
 .../file/copy/CopyActionExecuterTest.groovy        |    2 +-
 .../file/copy/CopyFileVisitorImplTest.groovy       |    4 +-
 .../file/copy/CopySpecActionImplTest.groovy        |    2 +-
 ...SpecBackedCopyActionProcessingStreamTest.groovy |    4 +-
 .../file/copy/DefaultCopySpecResolutionTest.groovy |    3 +-
 .../DuplicateHandlingCopyActionExecutorTest.groovy |   19 +-
 .../file/pattern/FixedStepPathMatcherTest.groovy   |  106 ++
 .../file/pattern/FixedStepsPathMatcherTest.groovy  |  112 --
 .../file/pattern/PatternMatcherFactoryTest.java    |  689 ++++----
 .../DefaultClassLoaderScopeTest.groovy             |    6 +-
 .../loadercache/DefaultClassLoaderCacheTest.groovy |   60 +-
 .../loadercache/DummyClassLoaderCache.java         |    8 +-
 .../loadercache/FileClassPathSnapshotter.java      |   58 -
 .../HashClassPathSnapshotterTest.groovy            |   77 +-
 .../project/DefaultIsolatedAntBuilderTest.groovy   |    8 +-
 .../api/internal/project/DefaultProjectSpec.groovy |   94 ++
 .../api/internal/project/DefaultProjectTest.groovy |   28 +-
 .../antbuilder/AntBuilderMemoryLeakTest.groovy     |   12 +-
 .../ClasspathPropertyAnnotationHandlerTest.groovy  |   35 -
 ...asspathSnapshotNormalizationStrategyTest.groovy |   36 +
 .../DefaultTaskClassInfoStoreTest.groovy           |    5 +-
 .../DefaultTaskClassValidatorExtractorTest.groovy  |  171 ++
 .../internal/tasks/DefaultTaskContainerTest.groovy |   50 +-
 .../internal/tasks/DefaultTaskOutputsTest.groovy   |  176 +-
 .../api/internal/tasks/TaskDependenciesTest.groovy |   37 +
 .../internal/tasks/TaskStateInternalTest.groovy    |    1 +
 .../tasks/cache/TarTaskOutputPackerTest.groovy     |  182 --
 .../TaskExecutionStatisticsEventAdapterTest.groovy |   71 -
 ...esolveTaskOutputCachingStateExecuterTest.groovy |   85 +
 .../execution/SkipCachedTaskExecuterTest.groovy    |  236 ++-
 .../SkipEmptySourceFilesTaskExecuterTest.groovy    |    4 +-
 .../VerifyNoInputChangesTaskExecuterTest.groovy    |   98 ++
 .../gradle/api/tasks/AbstractCopyTaskTest.groovy   |   10 +-
 .../org/gradle/api/tasks/GradleBuildTest.groovy    |   12 +-
 .../cache/internal/CacheAccessWorkerTest.groovy    |    6 +-
 .../cache/internal/DefaultCacheAccessTest.groovy   |  160 +-
 .../internal/DefaultCacheKeyBuilderTest.groovy     |  153 ++
 ...tPersistentDirectoryStoreConcurrencyTest.groovy |    2 +-
 .../cacheops/CacheAccessOperationsStackTest.groovy |   12 +-
 .../cacheops/CacheOperationStackTest.groovy        |   63 +-
 .../gradle/caching/MapBasedBuildCacheTest.groovy   |   67 +
 .../AbstractBuildCacheDecoratorTest.groovy         |   86 +
 .../DefaultBuildCacheKeyBuilderTest.groovy         |   52 +
 .../internal/LenientBuildCacheDecoratorTest.groovy |   47 +
 .../internal/LoggingBuildCacheDecoratorTest.groovy |   27 +
 ...itingErrorHandlerBuildCacheDecoratorTest.groovy |   63 +
 .../internal/StagingBuildCacheDecoratorTest.groovy |  132 ++
 .../tasks/AbstractTaskOutputPackerSpec.groovy      |   80 +
 .../OutputPreparingTaskOutputPackerTest.groovy     |  129 ++
 .../internal/tasks/TarTaskOutputPackerTest.groovy  |  225 +++
 .../TaskExecutionStatisticsEventAdapterTest.groovy |   75 +
 .../origin/TaskOutputOriginFactoryTest.groovy      |   58 +
 .../project/LifecycleProjectEvaluatorTest.groovy   |   18 +-
 .../commandline/CommandLineTaskParserSpec.groovy   |   12 +-
 .../taskgraph/DefaultTaskGraphExecuterSpec.groovy  |  158 +-
 .../taskgraph/DefaultTaskGraphExecuterTest.java    |   18 +-
 .../FileCacheBackedScriptClassCompilerTest.groovy  |   15 +-
 .../DefaultGradleLauncherFactoryTest.groovy        |   51 +-
 .../DefaultGradleLauncherSpec.groovy               |   58 +-
 .../initialization/InitScriptHandlerTest.groovy    |    8 +-
 .../initialization/NestedBuildTrackerTest.groovy   |   74 -
 .../buildsrc/BuildSourceBuilderTest.groovy         |   69 -
 .../DefaultAuthenticationContainerTest.groovy      |    4 +
 .../buildevents/BuildResultLoggerTest.java         |    6 +-
 .../buildevents/CacheStatisticsReporterTest.groovy |    8 +-
 .../buildevents/TaskExecutionLoggerTest.groovy     |   41 +-
 .../DefaultCachedClasspathTransformerTest.groovy   |    3 +-
 .../cleanup/BuildOutputCleanupCacheTest.groovy     |   96 ++
 .../DefaultBuildOutputCleanupRegistryTest.groovy   |   54 +
 .../cleanup/DefaultBuildOutputDeleterTest.groovy   |   94 ++
 .../metaobject/BeanDynamicObjectTest.groovy        |   90 +-
 .../DefaultBuildOperationExecutorTest.groovy       |  214 ++-
 .../service/scopes/BuildScopeServicesTest.groovy   |   28 +-
 .../scopes/BuildSessionScopeServicesTest.groovy    |   25 +
 .../service/scopes/GlobalScopeServicesTest.java    |   31 +-
 .../service/scopes/GradleScopeServicesTest.groovy  |    4 +-
 .../scopes/TaskExecutionServicesTest.groovy        |   88 -
 .../org/gradle/invocation/DefaultGradleSpec.groovy |  401 +++++
 .../org/gradle/invocation/DefaultGradleTest.java   |  322 ----
 .../use/internal/PluginRequestCollectorTest.groovy |    2 +-
 .../src/test/groovy/org/gradle/util/ClockTest.java |   87 -
 .../test/groovy/org/gradle/util/PathTest.groovy    |   19 +-
 .../cache/TestFileContentCacheFactory.java         |   34 +
 .../progress/TestBuildOperationExecutor.java       |   73 +
 .../groovy/org/gradle/util/BinaryDiffUtils.groovy  |   71 +
 .../groovy/org/gradle/util/MockTimeProvider.java   |    8 +-
 .../dependency-management.gradle                   |   34 +-
 ...gurationAttributesResolveIntegrationTest.groovy | 1739 ++++++++++++++++++++
 ...ArtifactAttributeMatchingIntegrationTest.groovy |  382 +++++
 .../ArtifactCollectionIntegrationTest.groovy       |  203 +++
 .../ArtifactDeclarationIntegrationTest.groovy      |  332 +++-
 .../ArtifactDependenciesIntegrationTest.groovy     |   21 -
 .../ArtifactSelectionIntegrationTest.groovy        |  425 +++++
 ...gurationAttributesResolveIntegrationTest.groovy |  517 ------
 ...gurationBuildDependenciesIntegrationTest.groovy |  328 ++++
 .../ConfigurationDefaultsIntegrationTest.groovy    |   65 +
 .../ConfigurationRoleIntegrationTest.groovy        |  207 +++
 ...pendencyHandlerApiResolveIntegrationTest.groovy |   60 +-
 .../DependencyNotationIntegrationSpec.groovy       |    4 +-
 ...ependencyResolutionEventsIntegrationTest.groovy |   33 +-
 .../DirectoryOutputArtifactIntegrationTest.groovy  |  315 ++++
 .../FileDependencyResolveIntegrationTest.groovy    |  207 +++
 .../FilteredConfigurationIntegrationTest.groovy    |  202 +++
 .../JvmLibraryArtifactResolveTestFixture.groovy    |    6 +-
 .../resolve/LazyDownloadsIntegrationTest.groovy    |   74 +
 .../MetadataArtifactResolveTestFixture.groovy      |    9 +-
 .../ProjectDependencyResolveIntegrationTest.groovy |   28 +-
 .../ResolvedArtifactsApiIntegrationTest.groovy     |  290 ++++
 .../ResolvedConfigurationApiIntegrationTest.groovy |   83 +
 .../ResolvedConfigurationIntegrationTest.groovy    |  232 ++-
 .../ResolvedFileOrderingIntegrationTest.groovy     |  177 ++
 .../resolve/ResolvedFilesApiIntegrationTest.groovy |  275 ++++
 .../SelfResolvingDependencyIntegrationTest.groovy  |  129 ++
 ...gurationAttributesResolveIntegrationTest.groovy |   61 +
 ...gurationAttributesResolveIntegrationTest.groovy |  573 +++++++
 ...ependencyResolutionEventsIntegrationTest.groovy |   45 +
 .../UnsupportedConfigurationMutationTest.groovy    |   24 +-
 ...thConfigurationAttributesIntegrationTest.groovy |  295 ++++
 .../ConcurrentBuildsCachingIntegrationTest.groovy  |    2 +
 ...coverFromBrokenResolutionIntegrationTest.groovy |    8 +-
 .../AARFilterArtifactsIntegrationTest.groovy       |   45 +
 .../transform/AARTransformIntegrationTest.groovy   |  175 ++
 .../transform/AARUnfilteredIntegrationTest.groovy  |   66 +
 ...AndroidFilterAndTransformIntegrationTest.groovy |  503 ++++++
 .../transform/ArtifactFilterIntegrationTest.groovy |  290 ++++
 .../ArtifactTransformIntegrationTest.groovy        |  920 +++++++++++
 ...DexDownloadedAarTransformIntegrationTest.groovy |   86 +
 ...DexDownloadedJarTransformIntegrationTest.groovy |   82 +
 ...alAndroidLibraryTransformIntegrationTest.groovy |   93 ++
 ...LocalJavaLibraryTransformIntegrationTest.groovy |   83 +
 .../artifacts/ArtifactDependencyResolver.java      |    7 +-
 .../internal/artifacts/ConfigurationResolver.java  |   15 +-
 .../DefaultDependencyManagementServices.java       |   80 +-
 .../artifacts/DefaultResolvedArtifact.java         |   46 +-
 .../artifacts/DefaultResolvedDependency.java       |  103 +-
 .../internal/artifacts/DefaultResolverResults.java |   84 +-
 .../artifacts/DependencyGraphNodeResult.java       |   32 +
 .../DependencyManagementBuildScopeServices.java    |    9 +-
 .../api/internal/artifacts/ResolverResults.java    |   42 +-
 .../attributes/DefaultArtifactAttributes.java      |   47 +
 .../configurations/ConfigurationInternal.java      |   17 +-
 .../artifacts/configurations/Configurations.java   |    4 +-
 .../configurations/ConfigurationsProvider.java     |    4 +-
 .../configurations/DefaultConfiguration.java       |  505 ++++--
 .../DefaultConfigurationContainer.java             |   32 +-
 .../DefaultConfigurationPublications.java          |  118 ++
 .../artifacts/configurations/DefaultVariant.java   |  104 ++
 .../DetachedConfigurationsProvider.java            |   11 +-
 .../configurations/DirectBuildDependencies.java    |   56 -
 .../configurations/MutationValidator.java          |    4 +-
 .../artifacts/configurations/OutgoingVariant.java  |   30 +
 .../configurations/ResolutionStrategyInternal.java |   25 +
 .../api/internal/artifacts/dsl/ArtifactFile.java   |    3 -
 .../artifacts/dsl/DefaultArtifactHandler.java      |   73 +-
 .../dsl/PublishArtifactNotationParserFactory.java  |   48 +-
 .../ivyservice/ArtifactCollectingVisitor.java      |   45 +
 .../CacheLockingArtifactDependencyResolver.java    |   10 +-
 .../ivyservice/CacheLockingArtifactResolver.java   |    9 +-
 .../artifacts/ivyservice/CacheLockingManager.java  |    4 +-
 .../ivyservice/DefaultCacheLockingManager.java     |   22 +-
 .../ivyservice/DefaultConfigurationResolver.java   |   93 +-
 .../ivyservice/DefaultLenientConfiguration.java    |  388 ++++-
 .../ivyservice/DefaultResolvedConfiguration.java   |   27 +-
 .../ErrorHandlingConfigurationResolver.java        |  124 +-
 ...lfResolvingDependencyConfigurationResolver.java |  115 --
 .../ShortCircuitEmptyConfigurationResolver.java    |   97 +-
 .../DefaultResolvedModuleVersion.java              |    5 +
 .../SingleFileBackedModuleVersionsCache.java       |    6 +-
 ...cheLockReleasingModuleComponentsRepository.java |   10 +-
 .../ivyservice/ivyresolve/ResolveIvyFactory.java   |   10 +-
 .../modulecache/DefaultModuleArtifactsCache.java   |   36 +-
 .../modulecache/DefaultModuleMetaDataCache.java    |   20 +-
 .../ModuleMetadataCacheEntrySerializer.java        |   20 +-
 .../ConfigurationComponentMetaDataBuilder.java     |    4 +-
 ...faultConfigurationComponentMetaDataBuilder.java |   40 +-
 ...ultDependenciesToModuleDescriptorConverter.java |   65 +-
 .../DefaultDependencyDescriptorFactory.java        |    4 +-
 .../DependenciesToModuleDescriptorConverter.java   |    6 +-
 .../dependencies/DependencyDescriptorFactory.java  |    5 +-
 ...ternalModuleIvyDependencyDescriptorFactory.java |    5 +-
 .../IvyDependencyDescriptorFactory.java            |    5 +-
 .../ProjectIvyDependencyDescriptorFactory.java     |    5 +-
 .../CacheLockReleasingProjectArtifactBuilder.java  |    2 +-
 .../DefaultProjectLocalComponentProvider.java      |    5 +-
 .../ProjectDependencyComponentArtifacts.java       |   13 +-
 .../publisher/IvyBackedArtifactPublisher.java      |   18 +-
 .../publisher/IvyXmlModuleDescriptorWriter.java    |    2 +-
 .../resolutionstrategy/DefaultCachePolicy.java     |   21 +-
 .../DefaultComponentSelectionRules.java            |    2 +-
 .../DefaultResolutionStrategy.java                 |   13 +-
 .../DefaultArtifactDependencyResolver.java         |   18 +-
 .../artifact/ArtifactBackedArtifactSet.java        |   85 +
 .../resolveengine/artifact/ArtifactSet.java        |   11 +-
 .../resolveengine/artifact/ArtifactVisitor.java    |   43 +
 .../BuildDependenciesOnlyVisitedArtifactSet.java   |   82 +
 .../artifact/CompositeArtifactSet.java             |   73 +
 .../resolveengine/artifact/DefaultArtifactSet.java |  124 +-
 .../artifact/DefaultResolvedArtifactResults.java   |   84 +-
 .../artifact/DefaultResolvedArtifactsBuilder.java  |  130 +-
 .../artifact/DependencyArtifactsVisitor.java       |    4 +-
 .../LocalFileDependencyBackedArtifactSet.java      |   50 +
 .../artifact/NoBuildDependenciesArtifactSet.java   |   52 +
 .../artifact/ResolvedArtifactResults.java          |   25 -
 .../artifact/ResolvedArtifactSet.java              |   59 +
 .../resolveengine/artifact/ResolvedArtifacts.java  |   24 -
 .../artifact/ResolvedArtifactsBuilder.java         |   20 -
 .../artifact/ResolvedArtifactsGraphVisitor.java    |   43 +-
 .../resolveengine/artifact/ResolvedVariant.java    |   23 +
 .../artifact/SelectedArtifactResults.java          |   29 +
 .../artifact/SelectedArtifactSet.java              |   54 +
 .../artifact/SelectedFileDependencyResults.java    |   41 +
 .../resolveengine/artifact/VisitedArtifactSet.java |   38 +
 .../artifact/VisitedArtifactsResults.java          |   31 +
 .../artifact/VisitedFileDependencyResults.java     |   32 +
 .../graph/CompositeDependencyArtifactsVisitor.java |   11 +-
 .../graph/CompositeDependencyGraphVisitor.java     |   11 +-
 .../graph/DependencyGraphBuilder.java              |  102 +-
 .../resolveengine/graph/DependencyGraphEdge.java   |    8 +-
 .../resolveengine/graph/DependencyGraphNode.java   |    6 +-
 .../graph/DependencyGraphSelector.java             |   35 +
 .../graph/DependencyGraphVisitor.java              |    9 +-
 .../DefaultResolvedConfigurationBuilder.java       |   12 +-
 .../oldresult/DefaultResolvedGraphResults.java     |    8 +-
 .../DefaultTransientConfigurationResults.java      |   18 +-
 ...esolvedConfigurationDependencyGraphVisitor.java |   15 +-
 .../oldresult/ResolvedContentsMapping.java         |   29 -
 .../oldresult/ResolvedGraphResults.java            |    2 +-
 .../oldresult/TransientConfigurationResults.java   |    6 +-
 .../TransientConfigurationResultsBuilder.java      |   35 +-
 .../TransientConfigurationResultsLoader.java       |   33 +-
 .../DefaultResolvedLocalComponentsResult.java      |   42 -
 ...efaultResolvedLocalComponentsResultBuilder.java |   53 -
 .../ResolvedLocalComponentsResult.java             |    3 -
 .../ResolvedLocalComponentsResultBuilder.java      |   26 -
 .../ResolvedLocalComponentsResultGraphVisitor.java |   41 +-
 .../result/BuildIdentifierSerializer.java          |    4 +-
 .../result/ComponentIdentifierSerializer.java      |   20 +-
 .../result/ComponentSelectorSerializer.java        |    4 +-
 .../result/DependencyResultSerializer.java         |   14 +-
 .../FileDependencyCollectingGraphVisitor.java      |  107 ++
 .../result/StreamingResolutionResultBuilder.java   |   50 +-
 .../resolveengine/store/CachedStoreFactory.java    |   11 +-
 .../store/ResolutionResultsStoreFactory.java       |    9 +-
 .../ComponentArtifactIdentifierSerializer.java     |   20 +-
 .../ComponentArtifactMetadataSerializer.java       |   20 +-
 .../query/DefaultArtifactResolutionQuery.java      |   19 +-
 .../transport/RepositoryTransportFactory.java      |    5 +-
 .../result/DefaultResolvedArtifactResult.java      |   17 +-
 .../result/DefaultUnresolvedArtifactResult.java    |   17 +-
 .../transform/ArtifactAttributeMatcher.java        |   38 +
 .../transform/ArtifactAttributeMatchingCache.java  |  117 ++
 .../transform/ArtifactTransformRegistration.java   |   94 ++
 .../ArtifactTransformRegistrationsInternal.java    |   24 +
 .../artifacts/transform/ArtifactTransforms.java    |   32 +
 .../DefaultArtifactTransformRegistrations.java     |   58 +
 .../transform/DefaultArtifactTransformTargets.java |   50 +
 .../transform/DefaultArtifactTransforms.java       |  221 +++
 .../attributes/AttributesSchemaInternal.java       |   30 +
 .../attributes/DefaultAttributesSchema.java        |  148 ++
 .../CompositeBuildIdeProjectResolver.java          |   74 -
 .../DependencyClassPathNotationConverter.java      |    3 +-
 .../runtimeshaded/RuntimeShadedJarCreator.java     |   61 +-
 .../AmbiguousConfigurationSelectionException.java  |  152 ++
 .../NoMatchingConfigurationSelectionException.java |   65 +
 .../AbstractModuleComponentResolveMetadata.java    |   47 +-
 .../model/DefaultIvyModulePublishMetadata.java     |   15 +-
 .../DefaultModuleComponentArtifactMetadata.java    |   11 +
 .../external/model/FixedComponentArtifacts.java    |    7 +-
 .../external/model/IvyDependencyMetadata.java      |    3 +-
 .../external/model/MavenDependencyMetadata.java    |    3 +-
 .../model/MetadataSourcedComponentArtifacts.java   |    6 +-
 .../model/BuildableLocalComponentMetadata.java     |   30 +-
 .../model/ComponentFileArtifactIdentifier.java     |   62 +
 .../local/model/DefaultLocalComponentMetadata.java |  217 ++-
 .../model/DefaultProjectDependencyMetadata.java    |    5 +-
 .../model/DslOriginDependencyMetadataWrapper.java  |    5 +-
 .../local/model/LocalComponentMetadata.java        |    7 +
 .../local/model/LocalConfigurationMetadata.java    |   13 +-
 .../local/model/LocalFileDependencyMetadata.java   |   40 +
 .../local/model/MissingLocalArtifactMetadata.java  |   16 +-
 .../model/OpaqueComponentArtifactIdentifier.java   |   62 +
 .../PublishArtifactLocalArtifactMetadata.java      |   10 +-
 .../component/model/ComponentArtifactMetadata.java |    6 +
 .../component/model/ComponentArtifacts.java        |    7 +-
 .../component/model/ComponentAttributeMatcher.java |  251 +++
 .../component/model/ComponentResolveMetadata.java  |    2 +
 .../component/model/ConfigurationMetadata.java     |   21 +-
 .../component/model/DefaultIvyArtifactName.java    |   10 +
 .../DefaultModuleDescriptorArtifactMetadata.java   |    6 +
 .../component/model/DefaultVariantMetadata.java    |   41 +
 .../component/model/DependencyMetadata.java        |    3 +-
 .../model/LocalComponentDependencyMetadata.java    |  190 ++-
 .../internal/component/model/VariantMetadata.java  |   30 +
 .../resource/cached/ivy/AbstractCachedIndex.java   |   12 +-
 .../ArtifactAtRepositoryCachedArtifactIndex.java   |   21 +-
 .../DefaultCacheAwareExternalResourceAccessor.java |    2 +-
 .../artifacts/DefaultResolvedArtifactTest.groovy   |   22 +-
 .../artifacts/DefaultResolvedDependencySpec.groovy |   27 +-
 .../artifacts/DefaultResolvedDependencyTest.java   |   72 +-
 .../artifacts/DefaultResolverResultsSpec.groovy    |   33 +-
 .../DefaultConfigurationContainerSpec.groovy       |   59 +-
 .../DefaultConfigurationContainerTest.groovy       |   13 +-
 .../DefaultConfigurationPublicationsTest.groovy    |   62 +
 .../configurations/DefaultConfigurationSpec.groovy |  725 +++++---
 .../internal/artifacts/dsl/ArtifactFileTest.groovy |   11 +-
 .../dsl/DefaultArtifactHandlerTest.groovy          |   51 +-
 ...lishArtifactNotationConverterFactoryTest.groovy |  122 --
 ...PublishArtifactNotationParserFactoryTest.groovy |  151 ++
 ...cheLockingArtifactDependencyResolverTest.groovy |   15 +-
 .../DefaultLenientConfigurationTest.groovy         |   82 +-
 .../ErrorHandlingConfigurationResolverTest.groovy  |   90 +-
 .../IvyXmlModuleDescriptorWriterTest.groovy        |    2 +-
 ...lvingDependencyConfigurationResolverTest.groovy |  137 --
 ...ortCircuitEmptyConfigurationResolverSpec.groovy |   88 +-
 ...onfigurationComponentMetaDataBuilderTest.groovy |   74 +-
 ...endenciesToModuleDescriptorConverterTest.groovy |   64 +-
 .../DependencyGraphBuilderTest.groovy              |   53 +-
 .../artifact/ArtifactBackedArtifactSetTest.groovy  |   97 ++
 .../artifact/CompositeArtifactSetTest.groovy       |   63 +
 ...LocalFileDependencyBackedArtifactSetTest.groovy |   55 +
 .../NoBuildDependenciesArtifactSetTest.groovy      |   46 +
 .../result/DependencyResultSerializerTest.groovy   |   28 +-
 .../StreamingResolutionResultBuilderTest.groovy    |   75 +-
 .../DefaultArtifactResolutionQueryTest.groovy      |    2 +-
 .../RepositoryTransportFactoryTest.groovy          |   39 +-
 .../ArtifactAttributeMatchingCacheTest.groovy      |  144 ++
 .../transform/DefaultArtifactTransformsTest.groovy |  313 ++++
 ...DependencyClassPathNotationConverterTest.groovy |  101 +-
 .../DependencyMapNotationConverterTest.groovy      |   30 +
 .../RuntimeShadedJarCreatorTest.groovy             |   70 +-
 ...stractModuleComponentResolveMetadataTest.groovy |   29 +-
 .../DefaultIvyModulePublishMetadataTest.groovy     |    2 +-
 .../model/IvyDependencyMetadataTest.groovy         |   45 +-
 .../model/MavenDependencyMetadataTest.groovy       |   22 +-
 .../ComponentFileArtifactIdentifierTest.groovy     |   44 +
 .../model/DefaultLocalComponentMetadataTest.groovy |  166 +-
 .../model/MissingLocalArtifactMetadataTest.groovy  |   29 +-
 .../OpaqueComponentArtifactIdentifierTest.groovy   |   37 +
 .../model/ComponentAttributeMatcherTest.groovy     |  106 ++
 .../model/DefaultDependencyMetadataTest.groovy     |    3 +
 .../LocalComponentDependencyMetadataTest.groovy    |  459 +++++-
 .../DefaultArtifactResolutionCacheTest.groovy      |   11 +-
 ...ltCacheAwareExternalResourceAccessorTest.groovy |   10 +-
 .../fixtures/resolve/ResolveTestFixture.groovy     |  141 +-
 .../ProjectReportsPluginIntegrationSpec.groovy     |  101 ++
 .../ProjectReportsPluginIntegrationTest.java       |   33 -
 .../HtmlDependencyReportTaskIntegrationTest.groovy |   81 +-
 ...pendencyInsightReportTaskIntegrationTest.groovy |   36 +
 .../DependencyReportTaskIntegrationTest.groovy     |   50 +-
 .../TaskReportTaskIntegrationTest.groovy           |  345 +++-
 .../dependencies/HtmlDependencyReportTask.java     |   11 +-
 .../internal/JsonProjectDependencyRenderer.java    |   26 +-
 .../internal/ComponentRenderableDependency.java    |    4 +-
 .../DependentComponentsRenderableDependency.java   |    4 +-
 .../api/tasks/diagnostics/AbstractReportTask.java  |    9 +
 .../diagnostics/DependencyInsightReportTask.java   |   17 +-
 .../api/tasks/diagnostics/TaskReportTask.java      |    9 +-
 .../AggregateMultiProjectTaskReportModel.java      |   25 +-
 .../internal/SingleProjectTaskReportModel.java     |   67 +-
 .../tasks/diagnostics/internal/TaskDetails.java    |    6 -
 .../diagnostics/internal/TaskDetailsFactory.java   |    9 -
 .../diagnostics/internal/TaskReportRenderer.java   |   18 -
 .../AsciiDependencyReportRenderer.java             |   25 +-
 .../internal/graph/DependencyGraphRenderer.java    |   21 +-
 .../diagnostics/internal/graph/LegendRenderer.java |   50 +
 .../internal/graph/SimpleNodeRenderer.java         |   16 +-
 .../nodes/AbstractRenderableModuleResult.java      |    4 +-
 .../graph/nodes/DependencyReportHeader.java        |    4 +-
 .../internal/graph/nodes/RenderableDependency.java |    8 +-
 .../graph/nodes/RenderableDependencyResult.java    |    4 +-
 .../RenderableUnresolvedDependencyResult.java      |    4 +-
 .../internal/graph/nodes/RequestedVersion.java     |    4 +-
 .../nodes/UnresolvableConfigurationResult.java     |  101 ++
 .../api/tasks/diagnostics/TaskReportTaskTest.java  |    3 -
 ...AggregateMultiProjectTaskReportModelTest.groovy |    4 +-
 .../SingleProjectTaskReportModelTest.groovy        |   67 +-
 .../internal/TaskDetailsFactoryTest.groovy         |    2 -
 .../internal/TaskReportRendererTest.groovy         |   15 +-
 .../AsciiDependencyReportRendererTest.groovy       |    6 +-
 .../graph/DependencyGraphRendererSpec.groovy       |    7 +-
 .../AbstractRenderableDependencyResultSpec.groovy  |    2 +-
 .../internal/graph/nodes/SimpleDependency.java     |    6 +-
 subprojects/distributions/distributions.gradle     |   49 +-
 .../gradle/AllDistributionIntegrationSpec.groovy   |    4 +-
 .../org/gradle/DistributionIntegrationSpec.groovy  |   61 +-
 .../gradle/TestDistributionIntegrationTest.groovy  |  120 ++
 subprojects/distributions/src/toplevel/NOTICE      |    2 +-
 .../distributions/src/toplevel/changelog.txt       |    4 -
 subprojects/docs/docs.gradle                       |  125 +-
 subprojects/docs/src/docs/dsl/dsl.xml              |    6 +
 ....gradle.api.artifacts.dsl.DependencyHandler.xml |    5 +-
 .../org.gradle.api.plugins.quality.Checkstyle.xml  |   10 +-
 ...dle.api.plugins.quality.CheckstyleExtension.xml |   10 +-
 .../dsl/org.gradle.api.tasks.WriteProperties.xml   |   65 +
 ...adle.api.tasks.bundling.AbstractArchiveTask.xml |   10 +-
 ...org.gradle.api.tasks.compile.CompileOptions.xml |    4 +
 .../src/docs/dsl/org.gradle.plugins.ear.Ear.xml    |    9 +-
 ....testing.jacoco.plugins.JacocoTaskExtension.xml |    4 +-
 ...ing.jacoco.tasks.JacocoCoverageVerification.xml |   43 +
 ...rg.gradle.testing.jacoco.tasks.JacocoReport.xml |   28 +-
 ...radle.testing.jacoco.tasks.JacocoReportBase.xml |   62 +
 .../docs/src/docs/release/content/script.js        |   24 +-
 subprojects/docs/src/docs/release/notes.md         |    8 +-
 subprojects/docs/src/docs/userguide/ant.xml        |    2 +-
 subprojects/docs/src/docs/userguide/buildCache.xml |   66 +
 .../docs/src/docs/userguide/buildEnvironment.xml   |    8 +-
 .../docs/src/docs/userguide/buildInitPlugin.xml    |   34 +-
 .../docs/src/docs/userguide/commandLine.xml        |   25 +-
 .../src/docs/userguide/commandLineTutorial.xml     |   12 +-
 .../docs/src/docs/userguide/compositeBuilds.xml    |    2 +-
 subprojects/docs/src/docs/userguide/depMngmt.xml   |   14 +-
 .../docs/src/docs/userguide/eclipsePlugin.xml      |    2 +-
 .../docs/src/docs/userguide/guiTutorial.xml        |   13 +-
 .../img/java-library-ignore-deprecated-main.dot    |   27 +
 .../img/java-library-ignore-deprecated-main.png    |  Bin 0 -> 24778 bytes
 .../img/java-library-ignore-deprecated-test.dot    |   26 +
 .../img/java-library-ignore-deprecated-test.png    |  Bin 0 -> 30971 bytes
 .../img/java-library-ignore-deprecated.png         |  Bin 0 -> 69875 bytes
 .../userguide/img/javaPluginConfigurations.graphml |   84 +-
 .../userguide/img/javaPluginConfigurations.png     |  Bin 27423 -> 26670 bytes
 .../docs/src/docs/userguide/jacocoPlugin.xml       |   46 +-
 .../docs/src/docs/userguide/javaLibraryPlugin.xml  |  296 ++++
 subprojects/docs/src/docs/userguide/javaPlugin.xml |   59 +-
 .../docs/src/docs/userguide/multiproject.xml       |    6 +
 .../docs/src/docs/userguide/nativeBinaries.xml     |    8 +-
 .../src/docs/userguide/softwareModelExtend.xml     |    2 +-
 subprojects/docs/src/docs/userguide/tasks.xml      |  118 +-
 subprojects/docs/src/docs/userguide/userguide.xml  |    2 +
 .../docs/src/docs/userguide/workingWithFiles.xml   |   50 +-
 .../ivy-publish/java-multi-project/output-ivy.xml  |    5 +-
 .../multiple-publications/output/project1.ivy.xml  |    3 +-
 .../output/project2-impl.ivy.xml                   |    3 +-
 .../docs/src/samples/ivypublish/build.gradle       |    5 +-
 .../java-library/multiproject/app/build.gradle     |   28 +
 .../src/main/java/org/gradle/samples/app/Main.java |   23 +
 .../samples/java-library/multiproject/build.gradle |    5 +
 .../java-library/multiproject/core/build.gradle    |   22 +
 .../main/java/org/gradle/samples/core/Person.java  |   48 +
 .../samples/java-library/multiproject/readme.xml   |   19 +
 .../java-library/multiproject/settings.gradle      |    2 +
 .../java-library/multiproject/utils/build.gradle   |   22 +
 .../java/org/gradle/samples/utils/PersonUtils.java |   21 +
 .../samples/java-library/quickstart/build.gradle   |   33 +
 .../src/samples/java-library/quickstart/readme.xml |   19 +
 .../main/java/org/gradle/HttpClientWrapper.java    |   60 +
 .../src/main/resources/org/gradle/resource.xml     |    1 +
 .../java-library/with-groovy/a/build.gradle        |   33 +
 .../with-groovy/a/src/main/groovy/B.groovy         |   18 +
 .../with-groovy/a/src/main/java/A.java             |   17 +
 .../java-library/with-groovy/b/build.gradle        |   21 +
 .../with-groovy/b/src/main/java/C.java             |   17 +
 .../java-library/with-groovy/settings.gradle       |   17 +
 subprojects/docs/src/samples/java/apt/build.gradle |   38 +
 .../src/main/java/com/acme/DefaultHeatSensor.java  |    7 +
 .../apt/src/main/java/com/acme/HeatSensor.java     |    5 +
 .../java/apt/src/main/java/com/acme/Sensors.java   |   11 +
 .../src/samples/native-binaries/cunit/build.gradle |    3 +-
 .../cunit/libs/cunit/2.1-2/include/CUnit/CUnit.h   |    2 +-
 .../native-binaries/google-test/build.gradle       |    3 +-
 .../samples/scala/crossCompilation/build.gradle    |    3 +-
 .../src/main/java/org/gradle/sample/Named.java     |    5 +
 .../src/main/java/org/gradle/sample/Person.java    |    5 -
 .../main/scala/org/gradle/sample/JavaPerson.java   |    7 +
 .../src/main/scala/org/gradle/sample/Person.scala  |    5 +
 .../main/scala/org/gradle/sample/PersonList.scala  |    5 +
 .../scala/org/gradle/sample/impl/JavaPerson.java   |    7 -
 .../scala/org/gradle/sample/impl/PersonImpl.scala  |   11 -
 .../scala/org/gradle/sample/impl/PersonList.scala  |    9 -
 .../test/scala/org/gradle/sample/PersonSpec.scala  |   20 +
 .../test/scala/org/gradle/sample/PersonTest.scala  |   19 -
 .../samples/scala/customizedLayout/build.gradle    |    5 +-
 .../src/scala/org/gradle/sample/Named.scala        |    5 +
 .../src/scala/org/gradle/sample/Person.scala       |    3 +
 .../src/scala/org/gradle/sample/api/Person.scala   |    9 -
 .../scala/org/gradle/sample/impl/PersonImpl.scala  |   10 -
 .../test/scala/org/gradle/sample/PersonSpec.scala  |   15 +
 .../org/gradle/sample/impl/PersonImplTest.scala    |   14 -
 .../docs/src/samples/scala/force/build.gradle      |    3 +-
 .../src/main/scala/org/gradle/sample/Named.scala   |    9 +
 .../src/main/scala/org/gradle/sample/Person.scala  |    7 +
 .../main/scala/org/gradle/sample/api/Person.scala  |    9 -
 .../scala/org/gradle/sample/impl/PersonImpl.scala  |   12 -
 .../test/scala/org/gradle/sample/PersonSpec.scala  |   15 +
 .../org/gradle/sample/impl/PersonImplTest.scala    |   14 -
 .../samples/scala/mixedJavaAndScala/build.gradle   |    3 +-
 .../src/main/java/org/gradle/sample/Named.java     |    5 +
 .../src/main/java/org/gradle/sample/Person.java    |    5 -
 .../main/scala/org/gradle/sample/JavaPerson.java   |    7 +
 .../src/main/scala/org/gradle/sample/Person.scala  |    5 +
 .../main/scala/org/gradle/sample/PersonList.scala  |    5 +
 .../scala/org/gradle/sample/impl/JavaPerson.java   |    7 -
 .../scala/org/gradle/sample/impl/PersonImpl.scala  |   11 -
 .../scala/org/gradle/sample/impl/PersonList.scala  |    9 -
 .../test/scala/org/gradle/sample/PersonSpec.scala  |   20 +
 .../test/scala/org/gradle/sample/PersonTest.scala  |   20 -
 .../docs/src/samples/scala/quickstart/build.gradle |    4 +-
 .../src/main/scala/org/gradle/sample/Named.scala   |   12 +
 .../src/main/scala/org/gradle/sample/Person.scala  |    7 +
 .../main/scala/org/gradle/sample/api/Person.scala  |    9 -
 .../scala/org/gradle/sample/impl/PersonImpl.scala  |   12 -
 .../test/scala/org/gradle/sample/PersonSpec.scala  |   15 +
 .../org/gradle/sample/impl/PersonImplTest.scala    |   14 -
 .../docs/src/samples/scala/zinc/build.gradle       |    3 +-
 .../src/main/scala/org/gradle/sample/Named.scala   |    9 +
 .../src/main/scala/org/gradle/sample/Person.scala  |    7 +
 .../main/scala/org/gradle/sample/api/Person.scala  |    9 -
 .../scala/org/gradle/sample/impl/PersonImpl.scala  |   12 -
 .../test/scala/org/gradle/sample/PersonSpec.scala  |   15 +
 .../samples/testing/jacoco/quickstart/build.gradle |   26 +-
 .../artifacts/defineRepository/build.gradle        |   22 +
 .../samples/userguide/files/archives/build.gradle  |    8 +
 .../userguideOutput/compositeBuilds_basic_cli.out  |    6 +-
 ...pendentTaskForApplicationDistributionOutput.out |    2 +-
 .../incrementalBuildBadInputFilesConfig.out        |    2 +-
 .../incrementalBuildInputFilesConfig.out           |    2 +-
 .../incrementalBuildInputFilesConfigUsingTask.out  |    2 +-
 .../inferredTaskDependencyWithBuiltBy.out          |    2 +-
 .../javaLibraryTargetPlatforms-java6MainJar.out    |    2 +-
 .../javaLibraryTargetPlatforms-server.out          |    2 +-
 .../publishingIvyPublishLifecycle.out              |    4 +-
 .../userguideOutput/publishingIvyPublishSingle.out |    4 +-
 .../publishingMavenPublishLocal.out                |    2 +-
 .../publishingMavenPublishMinimal.out              |    2 +-
 .../runtimeIncrementalApiConfiguration.out         |    2 +-
 .../samples/userguideOutput/taskListAllReport.out  |   13 +-
 .../docs/src/transforms/release-notes.gradle       |   10 +-
 .../plugins/ear/EarPluginIntegrationTest.groovy    |  116 ++
 .../src/main/java/org/gradle/plugins/ear/Ear.java  |    5 +-
 .../java/org/gradle/plugins/ear/EarPlugin.java     |    5 +-
 .../ear/descriptor/DeploymentDescriptor.java       |    5 +-
 .../internal/DefaultDeploymentDescriptor.java      |    4 +-
 .../internal/VisualStudioProjectRegistry.java      |    3 +-
 subprojects/ide/ide.gradle                         |    3 +-
 .../eclipse/EclipseClasspathIntegrationTest.groovy |   68 +-
 ...WtpEarAndWebAndEjbProjectIntegrationTest.groovy |    1 +
 .../eclipse/EclipseWtpModelIntegrationTest.groovy  |   10 +-
 ...lipseWtpWebAndJavaProjectIntegrationTest.groovy |    2 +-
 .../EclipseWtpWebProjectIntegrationTest.groovy     |    2 +-
 ...deaDependencySubstitutionIntegrationTest.groovy |   16 +-
 .../plugins/ide/idea/IdeaIntegrationTest.groovy    |   10 +-
 .../ide/idea/IdeaModuleIntegrationTest.groovy      |  148 +-
 .../ide/idea/IdeaMultiModuleIntegrationTest.groovy |  114 +-
 .../expectedFiles/api/api.iml.xml                  |   13 +
 .../expectedFiles/webservice/webservice.iml.xml    |   78 +-
 .../expectedFiles/root.iml.xml                     |   23 +
 .../gradle/plugins/ide/eclipse/EclipsePlugin.java  |    4 +-
 .../model/internal/EclipseDependenciesCreator.java |    4 +-
 .../model/internal/ProjectDependencyBuilder.java   |    4 +-
 .../model/internal/WtpComponentFactory.java        |    6 +-
 .../org/gradle/plugins/ide/idea/IdeaPlugin.java    |   93 +-
 .../gradle/plugins/ide/idea/model/IdeaModule.java  |   22 +-
 .../gradle/plugins/ide/idea/model/IdeaProject.java |   14 +-
 .../idea/model/internal/GeneratedIdeaScope.java    |   26 +-
 .../model/internal/IdeaDependenciesProvider.java   |  356 ++--
 .../model/internal/ModuleDependencyBuilder.java    |    4 +-
 .../AbstractPersistableConfigurationObject.java    |    3 +-
 .../resolver/DefaultIdeDependencyResolver.java     |   15 +-
 .../resolver/model/IdeProjectDependency.java       |    1 -
 .../internal/tooling/BuildEnvironmentBuilder.java  |    5 +-
 .../internal/tooling/BuildInvocationsBuilder.java  |   30 +-
 .../ide/internal/tooling/EclipseModelBuilder.java  |   10 +-
 .../ide/internal/tooling/GradleBuildBuilder.java   |   28 +-
 .../ide/internal/tooling/GradleProjectBuilder.java |    5 +-
 .../ide/internal/tooling/IdeaModelBuilder.java     |    8 +-
 .../ide/internal/tooling/PublicationsBuilder.java  |   16 +-
 .../tooling/ToolingModelBuilderSupport.java        |    6 +-
 .../tooling/eclipse/DefaultEclipseProject.java     |   24 +-
 .../internal/tooling/idea/DefaultIdeaModule.java   |   31 +-
 .../tooling/model/DefaultBuildInvocations.java     |   26 +-
 .../tooling/model/LaunchableGradleProjectTask.java |    8 +-
 .../tooling/model/LaunchableGradleTask.java        |   17 +
 .../model/LaunchableGradleTaskSelector.java        |   35 +-
 .../plugins/ide/eclipse/EclipsePluginTest.groovy   |    6 +-
 .../ide/eclipse/EclipseWtpPluginTest.groovy        |   10 +-
 .../internal/ProjectDependencyBuilderTest.groovy   |   12 +-
 .../gradle/plugins/ide/idea/IdeaPluginTest.groovy  |    7 +-
 .../internal/IdeaDependenciesProviderTest.groovy   |   51 +-
 .../internal/ModuleDependencyBuilderTest.groovy    |   11 +-
 .../tooling/BuildInvocationsBuilderTest.groovy     |   14 -
 .../tooling/eclipse/EclipseModelBuilderTest.groovy |    4 +-
 .../plugins/ide/fixtures/IdeaModuleFixture.groovy  |    8 +
 subprojects/integ-test/integ-test.gradle           |   39 +-
 .../integtests/ApplicationIntegrationSpec.groovy   |    2 +
 .../BuildAggregationIntegrationTest.groovy         |    8 +-
 .../integtests/CacheProjectIntegrationTest.groovy  |   26 +-
 ...CachedKotlinTaskExecutionIntegrationTest.groovy |  136 ++
 .../integtests/CommandLineIntegrationTest.groovy   |   52 +-
 .../GradleBuildCacheCorruptionTest.groovy          |   47 +
 .../GradleScriptKotlinIntegrationTest.groovy       |   92 ++
 ...JavaCompileOnlyDependencyIntegrationTest.groovy |   14 +-
 .../integtests/JavaProjectIntegrationTest.groovy   |   22 +-
 ...esTransformingClassLoaderIntegrationTest.groovy |   56 +
 .../MixedJavaAndWebProjectIntegrationTest.groovy   |  120 +-
 .../MixedNativeAndJvmProjectIntegrationTest.groovy |   29 +-
 .../OsgiProjectSampleIntegrationTest.groovy        |    2 +
 .../StaleOutputHistoryLossIntegrationTest.groovy   |  628 +++++++
 .../integtests/StaleOutputIntegrationTest.groovy   |   34 +
 .../integtests/TaskExecutionIntegrationTest.groovy |   72 +-
 ...ssingBinaryCompatibilityCrossVersionSpec.groovy |   10 +-
 .../fixtures/StaleOutputJavaProject.groovy         |  150 ++
 .../SamplesCodeQualityIntegrationTest.groovy       |    4 +
 .../samples/UserGuideSamplesIntegrationTest.groovy |    8 +-
 .../samples/UserGuideSamplesRunner.groovy          |   14 +-
 .../internal-android-performance-testing.gradle    |    5 +-
 .../internal-integ-testing.gradle                  |    1 +
 .../fixtures/AbstractCompatibilityTestRunner.java  |    6 +-
 .../fixtures/AbstractIntegrationSpec.groovy        |   33 +-
 .../fixtures/AbstractIntegrationTest.java          |   12 +-
 .../AbstractTaskRelocationIntegrationTest.groovy   |   14 +-
 .../fixtures/CrossVersionIntegrationSpec.groovy    |    3 +-
 .../fixtures/LocalBuildCacheFixture.groovy         |   50 +
 .../ReproducibleArchivesInterceptor.groovy         |   72 +
 .../ReproducibleArchivesTestExtension.groovy       |   55 +
 .../archives/TestReproducibleArchives.groovy       |   43 +
 .../fixtures/build/BuildTestFixture.groovy         |    1 +
 .../fixtures/daemon/AbstractDaemonFixture.groovy   |    4 +
 .../integtests/fixtures/daemon/LegacyDaemon.groovy |    7 +-
 .../fixtures/daemon/TestableDaemon.groovy          |    5 +-
 .../executer/AbstractDelegatingGradleExecuter.java |    5 +-
 .../fixtures/executer/AbstractGradleExecuter.java  |  107 +-
 .../fixtures/executer/DaemonGradleExecuter.java    |    6 +
 .../executer/DefaultGradleDistribution.java        |    4 +-
 .../fixtures/executer/DurationMeasurement.java     |   22 +
 .../ExecuterDecoratingGradleDistribution.java      |    4 +-
 .../fixtures/executer/ForkingGradleExecuter.java   |    6 +-
 .../fixtures/executer/ForkingGradleHandle.java     |   44 +-
 .../executer/GradleContextualExecuter.java         |   37 +-
 .../fixtures/executer/GradleDistribution.java      |    2 +-
 .../fixtures/executer/GradleExecuter.java          |   39 +-
 .../fixtures/executer/InProcessGradleExecuter.java |   19 +-
 .../executer/IntegrationTestBuildContext.java      |   31 +-
 .../fixtures/executer/OutputCapturer.java          |   49 +
 .../executer/OutputScrapingExecutionResult.java    |    6 +-
 .../executer/ParallelForkingGradleExecuter.java    |    6 +-
 .../executer/ParallelForkingGradleHandle.java      |    4 +-
 .../UnderDevelopmentGradleDistribution.java        |   14 +-
 .../versions/ReleasedVersionDistributions.java     |   11 +-
 .../gradle/test/fixtures/ivy/IvyFileModule.groovy  |   14 +-
 .../org/gradle/test/fixtures/maven/MavenPom.groovy |    8 +
 .../gradle/test/fixtures/maven/MavenScope.groovy   |    5 +
 .../test/fixtures/plugin/PluginBuilder.groovy      |   13 +
 .../fixtures/server/http/BlockingHttpServer.groovy |   17 +-
 .../test/fixtures/server/http/IvyHttpModule.groovy |    5 +
 .../test/fixtures/server/sftp/SFTPServer.groovy    |    6 +
 .../executer/ForkingGradleHandleTest.groovy        |  122 ++
 .../ReleasedVersionDistributionsTest.groovy        |    7 +-
 .../internal-performance-testing.gradle            |   35 -
 ...dStudioMockupCrossVersionPerformanceTest.groovy |    2 +-
 .../AbstractCrossBuildPerformanceTest.groovy       |    8 +-
 .../AbstractCrossVersionPerformanceTest.groovy     |   11 +-
 .../AbstractGradleVsMavenPerformanceTest.groovy    |    9 +-
 ...actToolingApiCrossVersionPerformanceTest.groovy |   83 +-
 .../categories/AndroidPerformanceTest.java         |   21 -
 .../categories/BasicPerformanceTest.java           |   23 -
 .../gradle/performance/categories/Experiment.java  |   25 -
 .../categories/GradleCorePerformanceTest.java      |   21 -
 .../categories/JavaPerformanceTest.java            |   23 -
 .../categories/NativePerformanceTest.java          |   23 -
 .../categories/PerformanceExperiment.java          |   24 +
 .../categories/PerformanceRegressionTest.java      |   25 +
 .../categories/ToolingApiPerformanceTest.java      |   23 -
 ...AbstractGradleBuildPerformanceTestRunner.groovy |   19 +-
 .../fixture/BuildEventTimestampCollector.java      |   99 --
 .../performance/fixture/BuildExperimentRunner.java |   82 +-
 .../performance/fixture/BuildExperimentSpec.groovy |    6 +-
 .../fixture/CompilationLoggingCollector.java       |   60 -
 .../fixture/CompositeDataCollector.java            |    9 +-
 .../fixture/CrossBuildPerformanceTestRunner.groovy |   15 +-
 .../CrossVersionPerformanceTestRunner.groovy       |   38 +-
 .../fixture/DurationMeasurementImpl.java           |   57 +
 .../gradle/performance/fixture/GCEventParser.java  |   87 -
 .../performance/fixture/GCLoggingCollector.java    |  190 ---
 .../fixture/GradleBuildExperimentSpec.groovy       |   18 +-
 .../fixture/GradleExecuterBackedSession.groovy     |   94 +-
 .../performance/fixture/GradleSessionProvider.java |   12 +-
 .../GradleVsMavenBuildExperimentRunner.java        |   20 +-
 .../GradleVsMavenPerformanceTestRunner.groovy      |   12 +-
 .../fixture/InvocationExecutorProvider.java        |    5 +-
 .../org/gradle/performance/fixture/LogFiles.java   |   12 +
 .../fixture/MavenBuildExperimentSpec.groovy        |   19 +-
 .../performance/fixture/MemoryInfoCollector.groovy |   43 -
 .../gradle/performance/fixture/OperationTimer.java |   20 +-
 .../fixture/PerformanceCounterCollector.java       |  128 --
 .../PerformanceTestGradleDistribution.groovy       |   59 +
 .../fixture/PerformanceTestJvmOptions.groovy       |   43 +
 .../fixture/ToolingApiBackedGradleSession.groovy   |   27 +-
 .../gradle/performance/fixture/WaitingReader.java  |   10 +-
 .../org/gradle/performance/measure/Amount.java     |   26 +-
 .../org/gradle/performance/measure/DataSeries.java |   15 +
 .../performance/measure/MeasuredOperation.groovy   |   21 +-
 .../performance/results/BaselineVersion.groovy     |   59 +-
 .../org/gradle/performance/results/Checks.java     |   14 +-
 .../results/CrossBuildPerformanceResults.groovy    |    8 +-
 .../results/CrossVersionPerformanceResults.groovy  |   21 +-
 .../results/CrossVersionResultsStore.java          |   23 +-
 .../GradleVsMavenBuildPerformanceResults.groovy    |   12 +-
 .../results/GraphIndexPageGenerator.java           |   11 -
 .../performance/results/HtmlPageGenerator.java     |   48 +-
 .../results/MeasuredOperationList.groovy           |    8 +-
 .../performance/results/PrettyCalculator.groovy    |    4 +-
 .../performance/results/TestDataGenerator.java     |   18 +-
 .../performance/results/TestPageGenerator.java     |   85 +-
 .../org/gradle/reporting/performanceGraph.js       |    3 +-
 .../performance/plugin/BuildEventTimeStamps.java   |   97 --
 .../plugin/DiagnosticCommandMBeanHelper.java       |   44 -
 .../performance/plugin/ExternalResources.java      |   33 -
 .../org/gradle/performance/plugin/HeapDumper.java  |   77 -
 .../gradle/performance/plugin/HeapMeasurement.java |   74 -
 .../plugin/JavaFlightRecorderControl.java          |   50 -
 .../performance/plugin/MeasurementPlugin.java      |   81 -
 .../plugin/PerformanceCounterDumper.java           |   70 -
 .../plugin/PerformanceCounterMeasurement.java      |   65 -
 .../gradle/performance/plugin/ReflectionUtil.java  |  151 --
 .../src/templates/init.gradle                      |    5 -
 .../src/templates/measurement-plugin/build.gradle  |   17 -
 .../BuildEventTimestampCollectorTest.groovy        |   97 --
 ...CrossVersionPerformanceTestExecutionTest.groovy |  103 +-
 .../CrossVersionPerformanceTestRunnerTest.groovy   |   73 +-
 .../performance/fixture/GCEventParserTest.groovy   |   75 -
 .../fixture/GCLoggingCollectorTest.groovy          |   62 -
 .../fixture/PerformanceCounterCollectorTest.groovy |   49 -
 .../performance/measure/DataSeriesTest.groovy      |    3 +
 .../gradle/integtests/fixtures/UrlValidator.groovy |   11 +-
 .../gradle/test/fixtures/ConcurrentTestUtil.groovy |    5 +
 .../fixtures/archive/ArchiveTestFixture.groovy     |   25 +-
 .../test/fixtures/archive/JarTestFixture.groovy    |   16 +-
 .../test/fixtures/archive/TarTestFixture.groovy    |    1 +
 .../test/fixtures/archive/ZipTestFixture.groovy    |    1 +
 .../fixtures/concurrent/TestExecutorFactory.groovy |    5 +
 .../file/AbstractTestDirectoryProvider.java        |   20 +-
 .../org/gradle/test/fixtures/file/TestFile.java    |   35 +-
 .../gradle/testing/internal/util/RetryFailure.java |    4 +-
 .../gradle/testing/internal/util/RetryRule.groovy  |   12 +-
 .../gradle/testing/internal/util/RetryUtil.groovy  |   38 +
 .../org/gradle/util/SetSystemProperties.java       |   35 +
 .../testing/internal/util/RetryUtilTest.groovy     |   77 +
 .../org/gradle/util/SetSystemPropertiesTest.groovy |   78 +
 .../api/publish/ivy/IvyPublishHttpIntegTest.groovy |    2 +-
 .../api/publish/ivy/IvyPublishJavaIntegTest.groovy |    4 +-
 .../ivy/SamplesIvyPublishIntegrationTest.groovy    |    4 +-
 .../ivy/IvyHttpPublishIntegrationTest.groovy       |    2 +-
 .../ivy/IvyLocalPublishIntegrationTest.groovy      |  124 +-
 .../publication/DefaultIvyPublication.java         |   33 +-
 .../publication/DefaultIvyPublicationTest.groovy   |    7 +-
 ...actIvyRemoteLegacyPublishIntegrationTest.groovy |    2 +-
 .../plugins/JacocoCachingIntegrationTest.groovy    |   63 +
 .../JacocoMultiVersionIntegrationTest.groovy       |   34 +
 .../plugins/JacocoPluginIntegrationTest.groovy     |  227 +--
 .../JacocoPluginMultiVersionIntegrationTest.groovy |  269 +++
 .../JacocoReportRelocationIntegrationTest.groovy   |   61 +
 .../JacocoTestRelocationIntegrationTest.groovy     |   81 +
 ...acocoVersionCompatibilityIntegrationTest.groovy |   43 +
 .../jacoco/plugins/JacocoVersionIntegTest.groovy   |   67 -
 .../jacoco/plugins/fixtures/JacocoCoverage.groovy  |   91 +
 .../plugins/fixtures/JavaProjectUnderTest.groovy   |  115 ++
 ...verageVerificationVersionIntegrationTest.groovy |   43 +
 ...ficationCompatibleVersionIntegrationTest.groovy |   32 +
 ...cationIncompatibleVersionIntegrationTest.groovy |   33 +
 ...luginCoverageVerificationIntegrationTest.groovy |  373 +++++
 .../plugins/rules/JacocoViolationRulesLimit.groovy |   55 +
 .../internal/jacoco/AbstractAntJacocoReport.java   |   90 +
 .../org/gradle/internal/jacoco/AntJacocoCheck.java |  114 ++
 .../gradle/internal/jacoco/AntJacocoReport.java    |   91 +-
 .../gradle/internal/jacoco/JacocoCheckResult.java  |   39 +
 .../internal/jacoco/rules/JacocoLimitImpl.java     |  101 ++
 .../jacoco/rules/JacocoViolationRuleImpl.java      |  124 ++
 .../rules/JacocoViolationRulesContainerImpl.java   |   58 +
 .../testing/jacoco/plugins/JacocoPlugin.java       |   29 +-
 .../jacoco/plugins/JacocoPluginExtension.java      |   46 +-
 .../jacoco/plugins/JacocoTaskExtension.java        |   31 +-
 .../jacoco/tasks/JacocoCoverageVerification.java   |   91 +
 .../gradle/testing/jacoco/tasks/JacocoMerge.java   |    5 +
 .../gradle/testing/jacoco/tasks/JacocoReport.java  |  267 +--
 .../testing/jacoco/tasks/JacocoReportBase.java     |  293 ++++
 .../testing/jacoco/tasks/rules/JacocoLimit.java    |   91 +
 .../jacoco/tasks/rules/JacocoViolationRule.java    |   95 ++
 .../tasks/rules/JacocoViolationRulesContainer.java |   56 +
 .../testing/jacoco/tasks/rules/package-info.java   |   21 +
 .../internal/jacoco/JacocoAgentJarTest.groovy      |    4 +-
 .../jacoco/rules/JacocoLimitImplTest.groovy        |   32 +
 .../rules/JacocoViolationRuleImplTest.groovy       |   90 +
 .../JacocoViolationRulesContainerImplTest.groovy   |   80 +
 .../testing/jacoco/plugins/JacocoPluginSpec.groovy |   19 +-
 .../jacoco/plugins/JacocoReportFixture.groovy      |    8 +-
 .../jacoco/plugins/JacocoTaskExtensionSpec.groovy  |    2 +-
 subprojects/javascript/javascript.gradle           |    2 +-
 .../internal/tasks/compile/ApiGroovyCompiler.java  |   44 +-
 .../compile/DefaultGroovyJavaJointCompileSpec.java |    7 +-
 .../internal/tasks/compile/GroovyCompileSpec.java  |    5 +-
 .../tasks/compile/GroovyCompilerFactory.java       |   10 +-
 .../tasks/compile/NormalizingGroovyCompiler.java   |    7 +-
 .../tasks/compile/daemon/DaemonGroovyCompiler.java |    4 +-
 .../gradle/api/tasks/compile/GroovyCompile.java    |   19 +-
 .../org/gradle/api/tasks/javadoc/Groovydoc.java    |    4 +-
 .../compile/NormalizingGroovyCompilerTest.groovy   |    8 +-
 ...leAvoidanceWithBuildCacheIntegrationTest.groovy |  113 ++
 .../compile/JavaCompileIntegrationTest.groovy      |  436 ++++-
 .../JavaCompileRelocationIntegrationTest.groovy    |    1 -
 ...ncrementalJavaCompilationIntegrationTest.groovy |  731 ++++++++
 ...ncrementalJavaCompilationIntegrationTest.groovy |   83 +
 ...ncrementalJavaCompilationIntegrationTest.groovy |  387 +----
 ...lationUsingClassDirectoryIntegrationTest.groovy |   38 +
 ...ncrementalJavaCompilationIntegrationTest.groovy |  284 +++-
 .../gradle/javadoc/JavadocIntegrationTest.groovy   |   39 +
 ...aLanguageIncrementalBuildIntegrationTest.groovy |   64 +-
 .../java/JavaSourceSetIntegrationTest.groovy       |    2 +
 .../tasks/compile/AnnotationProcessorDetector.java |  123 ++
 .../tasks/compile/AntDependsStaleClassCleaner.java |    1 +
 .../tasks/compile/CleaningJavaCompiler.java        |   14 +-
 .../CommandLineJavaCompilerArgumentsGenerator.java |   22 +-
 .../internal/tasks/compile/DaemonJavaCompiler.java |    6 +-
 .../tasks/compile/DefaultJavaCompileSpec.java      |   14 +
 .../tasks/compile/DefaultJavaCompilerFactory.java  |    6 +-
 .../internal/tasks/compile/JavaCompileSpec.java    |   10 +
 .../compile/JavaCompilerArgumentsBuilder.java      |   90 +-
 .../tasks/compile/NormalizingJavaCompiler.java     |    7 +-
 .../compile/incremental/ClassChangeProcessor.java  |   18 +-
 .../incremental/ClassSetAnalysisUpdater.java       |   35 +-
 .../IncrementalCompilationFinalizer.java           |    2 +-
 .../IncrementalCompilationInitializer.java         |   10 +-
 .../incremental/IncrementalCompilerDecorator.java  |    9 +-
 .../incremental/IncrementalCompilerFactory.java    |   19 +-
 .../compile/incremental/JavaChangeProcessor.java   |    6 +-
 .../incremental/RecompilationNotNecessary.java     |    2 +-
 .../compile/incremental/SelectiveCompiler.java     |   19 +-
 .../analyzer/CachingClassDependenciesAnalyzer.java |   16 +-
 .../incremental/analyzer/ClassAnalysis.java        |   38 -
 .../incremental/analyzer/ClassAnalysisCache.java   |    1 +
 .../analyzer/ClassAnalysisSerializer.java          |   40 +-
 .../analyzer/ClassDependenciesAnalyzer.java        |    6 +-
 .../analyzer/ClassDependenciesVisitor.java         |   58 -
 .../incremental/analyzer/ClassFilesAnalyzer.java   |   39 +-
 .../incremental/analyzer/ClassRelevancyFilter.java |   30 -
 .../analyzer/DefaultClassAnalysisCache.java        |    8 +-
 .../analyzer/DefaultClassDependenciesAnalyzer.java |   59 +-
 .../incremental/asm/ClassDependenciesVisitor.java  |  328 ++++
 .../incremental/asm/ClassRelevancyFilter.java      |   49 +
 .../compile/incremental/cache/CompileCaches.java   |    6 +-
 .../cache/DefaultGeneralCompileCaches.java         |   67 +-
 .../incremental/cache/GeneralCompileCaches.java    |    7 +
 .../compile/incremental/deps/ClassAnalysis.java    |   64 +
 .../deps/ClassDependentsAccumulator.java           |   92 +-
 .../compile/incremental/deps/ClassSetAnalysis.java |   52 +-
 .../incremental/deps/ClassSetAnalysisData.java     |  211 ++-
 .../incremental/deps/DefaultDependentsSet.java     |   33 +-
 .../compile/incremental/deps/DependencyToAll.java  |    1 +
 .../deps/LocalClassSetAnalysisStore.java           |   17 +-
 .../incremental/jar/CachingJarSnapshotter.java     |    6 +-
 .../incremental/jar/ClasspathJarFinder.java        |    2 +-
 .../incremental/jar/DefaultJarSnapshotCache.java   |   35 +-
 .../incremental/jar/DefaultJarSnapshotter.java     |   48 +-
 .../tasks/compile/incremental/jar/JarArchive.java  |    6 +-
 .../incremental/jar/JarChangeDependentsFinder.java |   47 +-
 .../incremental/jar/JarChangeProcessor.java        |    2 +-
 .../incremental/jar/JarClasspathSnapshot.java      |    8 +
 .../jar/JarClasspathSnapshotDataSerializer.java    |   20 +-
 .../jar/JarClasspathSnapshotFactory.java           |   14 +-
 .../incremental/jar/JarClasspathSnapshotMaker.java |   11 +-
 .../tasks/compile/incremental/jar/JarSnapshot.java |   22 +-
 .../compile/incremental/jar/JarSnapshotCache.java  |    3 +-
 .../incremental/jar/JarSnapshotDataSerializer.java |   21 +-
 .../jar/LocalJarClasspathSnapshotStore.java        |   19 +-
 .../incremental/jar/PreviousCompilation.java       |   14 +-
 .../incremental/recomp/RecompilationSpec.java      |   22 +-
 .../gradle/api/tasks/compile/CompileOptions.java   |   48 +-
 .../gradle/api/tasks/compile/DependOptions.java    |    1 +
 .../org/gradle/api/tasks/compile/JavaCompile.java  |  104 +-
 .../java/org/gradle/api/tasks/javadoc/Javadoc.java |   29 +-
 .../external/javadoc/CoreJavadocOptions.java       |   25 +-
 .../external/javadoc/JavadocOfflineLink.java       |   23 +-
 .../external/javadoc/JavadocOptionFileOption.java  |    3 +
 .../external/javadoc/MinimalJavadocOptions.java    |    6 +-
 .../javadoc/OptionLessJavadocOptionFileOption.java |    2 +
 .../javadoc/StandardJavadocDocletOptions.java      |  120 +-
 .../internal/AbstractJavadocOptionFileOption.java  |   11 +-
 .../AbstractListJavadocOptionFileOption.java       |    7 +-
 .../internal/BooleanJavadocOptionFileOption.java   |   11 +-
 .../internal/EnumJavadocOptionFileOption.java      |    9 +-
 .../internal/FileJavadocOptionFileOption.java      |   11 +-
 .../internal/GroupsJavadocOptionFileOption.java    |   16 +-
 .../javadoc/internal/JavadocOptionFile.java        |   50 +-
 .../internal/JavadocOptionFileOptionInternal.java  |   24 +
 .../LinksOfflineJavadocOptionFileOption.java       |   12 +-
 .../MultilineStringsJavadocOptionFileOption.java   |   15 +-
 .../OptionLessJavadocOptionFileOptionInternal.java |   23 +
 .../OptionLessStringsJavadocOptionFileOption.java  |   14 +-
 .../internal/PathJavadocOptionFileOption.java      |   13 +-
 .../internal/StringJavadocOptionFileOption.java    |    9 +-
 .../internal/StringsJavadocOptionFileOption.java   |   15 +-
 .../JavaLanguagePluginServiceRegistry.java         |   11 +-
 .../internal/JavaToolChainServiceRegistry.java     |   12 +-
 .../language/java/plugins/JavaLanguagePlugin.java  |   17 +-
 .../compile/AnnotationProcessorDetectorTest.groovy |  124 ++
 ...ndLineJavaCompilerArgumentsGeneratorTest.groovy |   15 +-
 .../compile/DefaultJavaCompilerFactoryTest.groovy  |    6 +-
 .../JavaCompilerArgumentsBuilderTest.groovy        |  132 +-
 .../compile/NormalizingJavaCompilerTest.groovy     |   15 +-
 .../incremental/ClassChangeProcessorTest.groovy    |    4 +-
 .../incremental/ClassSetAnalysisUpdaterTest.groovy |   42 -
 .../DefaultClassDependenciesAnalyzerTest.groovy    |   73 +-
 .../deps/ClassDependentsAccumulatorTest.groovy     |   87 +-
 .../incremental/deps/ClassFilesAnalyzerTest.groovy |   33 +-
 .../deps/ClassSetAnalysisDataSerializerTest.groovy |   11 +-
 .../incremental/deps/ClassSetAnalysisTest.groovy   |   72 +-
 .../jar/DefaultJarSnapshotterTest.groovy           |   49 +-
 .../jar/JarClasspathSnapshotFactoryTest.groovy     |   27 +-
 .../jar/JarClasspathSnapshotMakerTest.groovy       |    7 +-
 .../compile/incremental/test/HasInnerClass.java    |   22 +
 .../api/tasks/compile/JavaCompileTest.groovy       |    2 +
 .../gradle/api/tasks/javadoc/JavadocTest.groovy    |   27 +-
 .../javadoc/StandardJavadocDocletOptionsTest.java  |    6 +-
 .../BooleanJavadocOptionFileOptionTest.java        |    2 +-
 .../internal/EnumJavadocOptionFileOptionTest.java  |    2 +-
 .../internal/FileJavadocOptionFileOptionTest.java  |    2 +-
 .../GroupsJavadocOptionFileOptionTest.java         |    3 +-
 .../javadoc/internal/JavadocOptionFileTest.groovy  |   42 +
 .../javadoc/internal/JavadocOptionFileTest.java    |   54 -
 .../internal/JavadocOptionFileWriterTest.groovy    |    2 +-
 .../LinksOfflineJavadocOptionFileOptionTest.java   |    3 +-
 ...ultilineStringsJavadocOptionFileOptionTest.java |    3 +-
 ...tionLessStringsJavadocOptionFileOptionTest.java |    3 +-
 .../internal/PathJavadocOptionFileOptionTest.java  |    3 +-
 .../StringJavadocOptionFileOptionTest.java         |    2 +-
 .../StringsJavadocOptionFileOptionTest.java        |    3 +-
 .../fixtures/AnnotationProcessorFixture.groovy     |  121 ++
 .../compile/DefaultJvmLanguageCompileSpec.java     |   18 +-
 .../tasks/compile/JvmLanguageCompileSpec.java      |    7 +
 .../compile/daemon/AbstractDaemonCompiler.java     |   50 +-
 .../tasks/compile/daemon/CompileResult.java        |   45 -
 .../compile/daemon/CompilerClientsManager.java     |   82 -
 .../tasks/compile/daemon/CompilerDaemon.java       |   26 -
 .../tasks/compile/daemon/CompilerDaemonClient.java |   46 -
 .../compile/daemon/CompilerDaemonFactory.java      |   24 -
 .../compile/daemon/CompilerDaemonManager.java      |   57 -
 .../compile/daemon/CompilerDaemonProtocol.java     |   24 -
 .../tasks/compile/daemon/CompilerDaemonServer.java |   39 -
 .../compile/daemon/CompilerDaemonStarter.java      |   60 -
 .../tasks/compile/daemon/CompilerDaemonWorker.java |   22 -
 .../tasks/compile/daemon/DaemonForkOptions.java    |  132 --
 .../daemon/InProcessCompilerDaemonFactory.java     |   27 +-
 .../language/jvm/internal/EmptyClasspath.java      |    4 +-
 .../jvm/internal/JvmPluginServiceRegistry.java     |   10 +
 .../daemon/CompilerClientsManagerTest.groovy       |   97 --
 .../daemon/CompilerDaemonManagerTest.groovy        |  100 --
 .../daemon/DaemonForkOptionsMergeTest.groovy       |   52 -
 .../compile/daemon/DaemonForkOptionsTest.groovy    |  176 --
 ...bstractCompilerContinuousIntegrationTest.groovy |    6 +-
 ...eLanguageIncrementalBuildIntegrationTest.groovy |    8 -
 ...anguageIncrementalCompileIntegrationTest.groovy |   11 +
 .../AbstractNativeLanguageIntegrationTest.groovy   |   32 +-
 ...ctNativePreCompiledHeaderIntegrationTest.groovy |    8 -
 ...ResourcesIncrementalBuildIntegrationTest.groovy |   13 +-
 .../incremental/CompilationStateSerializer.java    |  119 +-
 .../DefaultCompilationStateCacheFactory.java       |   35 +-
 .../incremental/IncrementalCompileProcessor.java   |   10 +-
 .../incremental/IncrementalCompilerBuilder.java    |   10 +-
 .../incremental/IncrementalNativeCompiler.java     |   10 +-
 .../IncrementalCompileProcessorTest.groovy         |   13 +-
 .../ScalaCompileParallelIntegrationTest.groovy     |   28 +-
 ...aLanguageIncrementalBuildIntegrationTest.groovy |    6 +-
 .../internal/tasks/scala/DaemonScalaCompiler.java  |    9 +-
 .../tasks/scala/NormalizingScalaCompiler.java      |    7 +-
 .../internal/tasks/scala/ZincScalaCompiler.java    |   92 +-
 .../tasks/scala/ZincScalaCompilerFactory.java      |  186 +++
 .../toolchain/DefaultScalaToolProvider.java        |    6 +-
 .../toolchain/DownloadingScalaToolChain.java       |    6 +-
 .../toolchain/ScalaToolChainServiceRegistry.java   |    4 +-
 .../language/scala/tasks/AbstractScalaCompile.java |    5 +-
 .../scala/NormalizingScalaCompilerTest.groovy      |    6 +-
 .../toolchain/DefaultScalaToolProviderTest.groovy  |    4 +-
 .../toolchain/DownloadingScalaToolChainTest.groovy |    4 +-
 subprojects/launcher/launcher.gradle               |   20 +-
 .../BuildEnvironmentIntegrationTest.groovy         |   22 +
 .../launcher/CommandLineIntegrationSpec.groovy     |  115 ++
 .../launcher/GradleNativeIntegrationTest.groovy    |    2 +
 .../ArchivesContinuousIntegrationTest.groovy       |    3 +
 .../BuildSrcContinuousIntegrationTest.groovy       |    9 +-
 ...ngesDuringBuildContinuousIntegrationTest.groovy |   13 +-
 ...nuousBuildChangeReportingIntegrationTest.groovy |   15 +-
 ...inuousWorkerDaemonServiceIntegrationTest.groovy |  103 ++
 .../SimpleJavaContinuousIntegrationTest.groovy     |   25 +-
 .../DaemonHealthLoggingIntegrationTest.groovy      |    2 +-
 .../DaemonInitScriptHandlingIntegrationTest.groovy |   11 +-
 ...itialCommunicationFailureIntegrationSpec.groovy |    6 +-
 .../daemon/DaemonReuseIntegrationTest.groovy       |    4 +-
 .../ProcessCrashHandlingIntegrationTest.groovy     |    2 -
 .../server/health/MemoryInfoIntegrationTest.groovy |   51 -
 .../scaninfo/DaemonScanInfoIntegrationSpec.groovy  |   58 +-
 .../daemon/testing/DaemonsEventSequence.groovy     |    3 +-
 .../org/gradle/launcher/debug/JDWPUtil.groovy      |    0
 .../org/gradle/launcher/cli/GuiActionsFactory.java |    2 +
 .../launcher/daemon/bootstrap/DaemonMain.java      |    4 +-
 .../daemon/bootstrap/ForegroundDaemonAction.java   |    3 +-
 .../daemon/client/DaemonClientServicesSupport.java |    2 +-
 .../launcher/daemon/client/DaemonStopClient.java   |   13 +-
 .../daemon/client/DefaultDaemonConnector.java      |   13 +-
 .../daemon/client/DefaultDaemonStarter.java        |    7 +-
 .../daemon/configuration/DaemonParameters.java     |    2 +-
 .../daemon/protocol/DaemonMessageSerializer.java   |  158 +-
 .../launcher/daemon/registry/DaemonInfo.java       |    4 +-
 .../org/gradle/launcher/daemon/server/Daemon.java  |    4 +-
 .../DaemonIdleTimeoutExpirationStrategy.java       |    2 +-
 .../launcher/daemon/server/DaemonServices.java     |   25 +-
 .../daemon/server/DaemonStateCoordinator.java      |   29 +-
 .../daemon/server/DefaultDaemonConnection.java     |    5 +
 .../daemon/server/MasterExpirationStrategy.java    |   32 +-
 .../daemon/server/exec/WatchForDisconnection.java  |    2 +-
 .../daemon/server/health/DaemonHealthStats.java    |   99 +-
 .../health/LowMemoryDaemonExpirationStrategy.java  |   54 +-
 .../server/health/gc/GarbageCollectionMonitor.java |   17 +-
 .../server/health/memory/AvailableMemory.java      |   21 -
 .../health/memory/MBeanAttributeProvider.java      |   53 -
 .../server/health/memory/MBeanAvailableMemory.java |   29 -
 .../health/memory/MeminfoAvailableMemory.java      |  132 --
 .../daemon/server/health/memory/MemoryInfo.java    |   69 -
 .../health/memory/VmstatAvailableMemory.java       |  126 --
 .../daemon/server/stats/DaemonRunningStats.java    |   23 +-
 .../launcher/exec/GradleBuildController.java       |    5 +
 .../internal/provider/ProviderConnection.java      |    2 +
 .../provider/ProviderStartParameterConverter.java  |    8 +-
 .../provider/ServicesSetupBuildActionExecuter.java |   10 +-
 .../DefaultOperationStartedProgressEvent.java      |    2 +-
 .../provider/events/DefaultTaskDescriptor.java     |    6 +-
 .../provider/events/DefaultTaskSuccessResult.java  |   14 +-
 .../DaemonIdleTimeoutExpirationStrategyTest.groovy |    4 +-
 .../daemon/server/DaemonServicesTest.groovy        |    3 +-
 .../server/DaemonStateCoordinatorTest.groovy       |    7 +-
 .../server/health/DaemonHealthStatsTest.groovy     |   10 +-
 .../LowMemoryDaemonExpirationStrategyTest.groovy   |   47 +-
 .../memory/MeminfoAvailableMemoryTest.groovy       |  132 --
 .../server/health/memory/MemoryInfoTest.groovy     |   57 -
 .../health/memory/VmstatAvailableMemoryTest.groovy |   53 -
 .../provider/AbstractClassGraphSpec.groovy         |    7 +
 .../ContinuousBuildActionExecuterTest.groovy       |    3 -
 .../serialization/ClasspathInfererTest.groovy      |   13 +
 .../AbstractContinuousIntegrationTest.groovy       |   11 +
 .../internal/logging/LoggingIntegrationTest.groovy |    3 +-
 .../console/ConsoleBackedProgressRenderer.java     |    4 +-
 .../progress/DefaultProgressLoggerFactory.java     |    2 +-
 .../logging/serializer/LogEventSerializer.java     |   52 +
 .../serializer/LogLevelChangeEventSerializer.java  |   42 +
 .../ProgressCompleteEventSerializer.java           |   44 +
 .../serializer/ProgressEventSerializer.java        |   42 +
 .../serializer/ProgressStartEventSerializer.java   |   55 +
 .../logging/serializer/SpanSerializer.java         |   42 +
 .../StyledTextOutputEventSerializer.java           |   53 +
 .../services/DefaultStyledTextOutputFactory.java   |    2 +-
 .../services/LoggingBackedStyledTextOutput.java    |    2 +-
 .../logging/services/LoggingServiceRegistry.java   |    4 +-
 .../internal/logging/sink/AnsiConsoleUtil.java     |  402 +++++
 .../logging/sink/ConsoleConfigureAction.java       |    4 +-
 .../internal/logging/sink/OutputEventRenderer.java |    2 +-
 .../slf4j/OutputEventListenerBackedLogger.java     |    2 +-
 .../OutputEventListenerBackedLoggerContext.java    |    2 +-
 .../logging/source/DefaultStdErrLoggingSystem.java |    2 +-
 .../logging/source/DefaultStdOutLoggingSystem.java |    2 +-
 .../logging/source/PrintStreamLoggingSystem.java   |    2 +-
 .../java/org/gradle/util/SingleMessageLogger.java  |  100 +-
 .../java/org/slf4j/impl/StaticLoggerBinder.java    |    2 +-
 .../DefaultProgressLoggerFactoryTest.groovy        |    2 +-
 .../services/LoggingServiceRegistryTest.groovy     |    4 +-
 ...tputEventListenerBackedLoggerContextTest.groovy |    2 +-
 ...enerBackedLoggerDefaultConfigurationTest.groovy |    2 +-
 .../OutputEventListenerBackedLoggerTest.groovy     |   18 +-
 .../slf4j/Slf4jLoggingConfigurerTest.groovy        |    7 +-
 .../source/JavaUtilLoggingSystemTest.groovy        |    6 +-
 .../source/PrintStreamLoggingSystemTest.groovy     |    2 +-
 .../text/LoggingBackedStyledTextOutputTest.groovy  |    6 +-
 .../logging/TestOutputEventListener.groovy         |   19 +-
 .../maven/MavenPublishDependenciesIntegTest.groovy |   59 +
 ...MavenPomGenerationPublishIntegrationTest.groovy |  225 +++
 .../maven/MavenPublishIntegrationTest.groovy       |   36 +
 .../java/org/gradle/api/plugins/MavenPlugin.java   |   15 +
 .../action/AbstractMavenPublishAction.java         |    7 +-
 .../pom/DefaultPomDependenciesConverter.java       |   11 +-
 .../internal/publication/DefaultMavenPom.java      |    5 +
 .../publication/DefaultMavenPublication.java       |   72 +-
 .../internal/publication/MavenPomInternal.java     |    2 +
 .../publication/MavenPublicationInternal.java      |    2 +
 .../internal/tasks/MavenPomFileGenerator.java      |    5 +-
 .../api/publish/maven/tasks/GenerateMavenPom.java  |    3 +
 .../org/gradle/api/plugins/MavenPluginTest.groovy  |  175 ++
 .../org/gradle/api/plugins/MavenPluginTest.java    |  140 --
 .../publication/DefaultMavenPublicationTest.groovy |    4 +-
 .../remote/UnicastMessagingIntegrationTest.groovy  |   36 +-
 .../internal/remote/ObjectConnectionBuilder.java   |    4 +-
 .../internal/RecoverableMessageIOException.java    |   26 +
 .../internal/hub/DefaultMethodArgsSerializer.java  |   23 +-
 ...avaSerializationBackedMethodArgsSerializer.java |    2 +-
 .../internal/remote/internal/hub/MessageHub.java   |   52 +-
 .../hub/MessageHubBackedObjectConnection.java      |   86 +-
 .../remote/internal/hub/StreamFailureHandler.java  |   27 +
 .../hub/protocol/StreamFailureMessage.java         |   36 +
 .../remote/internal/inet/InetAddresses.java        |    2 +-
 .../remote/internal/inet/SocketConnection.java     |    9 +
 .../serialize/AbstractCollectionSerializer.java    |   37 +-
 .../internal/serialize/AbstractSerializer.java     |   40 +
 .../internal/serialize/BaseSerializerFactory.java  |  104 +-
 .../internal/serialize/DefaultSerializer.java      |   18 +-
 .../serialize/DefaultSerializerRegistry.java       |   77 +-
 .../internal/serialize/HashCodeSerializer.java     |    2 +-
 .../gradle/internal/serialize/ListSerializer.java  |   21 +-
 .../gradle/internal/serialize/MapSerializer.java   |   20 +-
 .../internal/serialize/SerializerRegistry.java     |    5 +
 .../gradle/internal/serialize/SetSerializer.java   |   33 +-
 .../internal/serialize/kryo/KryoBackedEncoder.java |    2 +-
 .../hub/DefaultMethodArgsSerializerTest.groovy     |   22 +-
 .../MessageHubBackedObjectConnectionTest.groovy    |   40 +
 .../serialize/DefaultSerializerRegistryTest.groovy |   19 +
 .../serialize/DefaultSerializerTest.groovy         |   11 +
 subprojects/native/native.gradle                   |   57 +
 subprojects/native/src/jmh/html/index.html         |   50 +
 .../filesystem/FileMetadataAccessorBenchmark.java  |  115 ++
 .../filesystem/DefaultFileMetadata.java            |   58 +
 .../filesystem/FileMetadataAccessor.java           |   23 +
 .../filesystem/FileMetadataSnapshot.java           |   34 +
 .../nativeintegration/filesystem/FileType.java     |   23 +
 .../nativeintegration/filesystem/Stat.java         |    4 +-
 .../filesystem/jdk7/Jdk7FileMetadataAccessor.java  |   48 +
 .../services/FallbackFileMetadataAccessor.java     |   36 +
 .../filesystem/services/FileSystemServices.java    |   43 +-
 .../filesystem/services/GenericFileSystem.java     |   15 +-
 .../NativePlatformBackedFileMetadataAccessor.java  |   48 +
 .../nativeintegration/services/NativeServices.java |   83 +-
 .../filesystem/CommonFileSystemTest.groovy         |   57 +
 .../AbstractFileMetadataAccessorTest.groovy        |   80 +
 .../FallbackFileMetadataAccessorTest.groovy        |   32 +
 .../services/GenericFileSystemTest.groovy          |    4 +-
 .../services/Jdk7FileMetadataAccessorTest.groovy   |   37 +
 .../services/UnsupportedFilePermissionsTest.groovy |    9 +-
 .../plugins/osgi/OsgiPluginIntegrationSpec.groovy  |    2 +
 .../AbstractAndroidPerformanceTest.groovy          |   32 -
 .../performance/BaseJavalSourceFileUpdater.groovy  |  148 --
 .../DependencyReportPerformanceTest.groovy         |   51 -
 .../DependencyResolutionPerformanceTest.groovy     |   51 -
 .../EnterpriseJavaBuildPerformanceTest.groovy      |  102 --
 .../performance/FirstBuildPerformanceTest.groovy   |   44 -
 .../IdeIntegrationPerformanceTest.groovy           |   74 -
 .../JavaCleanDaemonPerformanceTest.groovy          |   77 -
 .../JavaConfigurationDaemonPerformanceTest.groovy  |   75 -
 .../JavaConfigurationPerformanceTest.groovy        |   52 -
 .../JavaFullAssembleDaemonPerformanceTest.groovy   |   85 -
 .../JavaFullBuildDaemonPerformanceTest.groovy      |   50 -
 .../JavaOldModelSourceFileUpdater.groovy           |   44 -
 ...JavaPartialAssembleDaemonPerformanceTest.groovy |   75 -
 .../JavaSoftwareModelBuildPerformanceTest.groovy   |   46 -
 ...wareModelCompileAvoidancePerformanceTest.groovy |   70 -
 .../JavaSoftwareModelSourceFileUpdater.groovy      |   99 --
 ...ChangesFullAssembleDaemonPerformanceTest.groovy |   46 -
 .../JavaTestExecutionPerformanceTest.groovy        |   66 -
 .../JavaTestGradleVsMavenPerformanceTest.groovy    |   97 --
 ...pToDateFullAssembleDaemonPerformanceTest.groovy |   66 -
 .../JavaUpToDateFullBuildPerformanceTest.groovy    |   72 -
 .../LocalTaskOutputCachePerformanceTest.groovy     |   52 -
 .../ManyEmptyProjectsHelpPerformanceTest.groovy    |   53 -
 .../NativeBuildDependentsPerformanceTest.groovy    |   80 -
 .../performance/NativeBuildPerformanceTest.groovy  |   63 -
 .../NativeParallelPerformanceTest.groovy           |   47 -
 .../NativePreCompiledHeaderPerformanceTest.groovy  |   48 -
 .../NativeScenarioPerformanceTest.groovy           |   71 -
 .../ParallelBuildPerformanceTest.groovy            |   44 -
 .../ProjectDependenciesPerformanceTest.groovy      |   44 -
 .../RealLifeAndroidBuildPerformanceTest.groovy     |   51 -
 ...alLifeAndroidStudioMockupPerformanceTest.groovy |   47 -
 .../RealWorldNativePluginPerformanceTest.groovy    |  163 --
 .../performance/SourceUpdateCardinality.java       |   63 -
 .../performance/TaskCreationPerformanceTest.groovy |   48 -
 .../TestExecutionPerformanceTest.groovy            |   52 -
 ...ngApiIdeModelCrossVersionPerformanceTest.groovy |  249 ---
 .../performance/VariantsPerformanceTest.groovy     |  116 --
 .../android/AbstractAndroidPerformanceTest.groovy  |   32 +
 .../RealLifeAndroidBuildPerformanceTest.groovy     |   45 +
 ...alLifeAndroidStudioMockupPerformanceTest.groovy |   46 +
 .../basic/FirstBuildPerformanceTest.groovy         |   42 +
 .../GradleScriptKotlinBuildPerformanceTest.groovy  |   49 +
 .../basic/ProjectCreationPerformanceTest.groovy    |   37 +
 .../basic/TaskCreationPerformanceTest.groovy       |   36 +
 .../basic/TasksReportPerformanceTest.groovy        |   72 +
 .../java/BaseJavaSourceFileUpdater.groovy          |  148 ++
 .../java/DependencyReportPerformanceTest.groovy    |   43 +
 .../DependencyResolutionPerformanceTest.groovy     |   42 +
 .../java/EnterpriseJavaBuildPerformanceTest.groovy |   75 +
 .../java/IdeIntegrationPerformanceTest.groovy      |   64 +
 .../java/JavaCleanAssemblePerformanceTest.groovy   |   46 +
 .../java/JavaCleanBuildPerformanceTest.groovy      |   43 +
 .../java/JavaCleanPerformanceTest.groovy           |   45 +
 .../java/JavaConfigurationPerformanceTest.groovy   |   45 +
 .../JavaPartialCleanAssemblePerformanceTest.groovy |   45 +
 .../performance/java/JavaSourceFileUpdater.groovy  |   44 +
 .../java/JavaTestExecutionPerformanceTest.groovy   |   65 +
 .../JavaTestGradleVsMavenPerformanceTest.groovy    |   98 ++
 .../JavaUpToDateFullBuildPerformanceTest.groovy    |   42 +
 ...TaskOutputCacheCrossBuildPerformanceTest.groovy |   67 +
 .../LocalTaskOutputCacheJavaPerformanceTest.groovy |   51 +
 .../java/NoDaemonJavaPerformanceTest.groovy        |   88 +
 .../java/ParallelBuildPerformanceTest.groovy       |   45 +
 .../java/ProjectDependenciesPerformanceTest.groovy |   36 +
 .../performance/java/SourceUpdateCardinality.java  |   63 +
 .../java/TestExecutionPerformanceTest.groovy       |   45 +
 ...ngApiIdeModelCrossVersionPerformanceTest.groovy |  189 +++
 .../NativeBuildDependentsPerformanceTest.groovy    |   70 +
 .../NativeBuildPerformanceTest.groovy              |   57 +
 .../NativeParallelPerformanceTest.groovy           |   47 +
 .../NativePreCompiledHeaderPerformanceTest.groovy  |   49 +
 .../RealWorldNativePluginPerformanceTest.groovy    |  158 ++
 .../templates/java-sw-model-project/build.gradle   |  164 --
 .../src/templates/kts-empty/build.gradle.kts       |   46 +
 .../kts-project-with-source/build.gradle.kts       |   51 +
 .../src/templates/kts-settings/settings.gradle     |   31 +
 .../googleTest/build.gradle                        |   12 +
 .../src/templates/native-scenario/build.gradle     |   70 -
 .../src/main/groovy/CheckstyleExtension.groovy     |   23 -
 .../src/main/groovy/CheckstyleTaskDefaults.groovy  |   27 -
 .../src/main/groovy/CustomExtension.groovy         |   27 -
 .../buildSrc/src/main/groovy/MyTaskClass.groovy    |   34 -
 .../buildSrc/src/main/groovy/TaskWiring.groovy     |   28 -
 .../src/templates/new-java-plugin/build.gradle     |   74 -
 .../src/templates/plain-ant-compile/build.gradle   |   40 -
 .../src/templates/variants-new-model/build.gradle  |  194 ---
 .../src/templates/variants-old-model/build.gradle  |  167 --
 subprojects/performance/templates.gradle           |  259 +--
 subprojects/platform-base/platform-base.gradle     |    1 +
 .../base/internal/AbstractLanguageSourceSet.java   |   19 +-
 .../base/internal/compile/CompileSpec.java         |    4 +-
 .../DefaultLibraryLocalComponentMetadata.java      |   27 +-
 .../language/base/plugins/LifecycleBasePlugin.java |    2 +-
 .../jvm/internal/DependencyResolvingClasspath.java |   97 +-
 .../resolve/JvmLocalLibraryMetaDataAdapter.java    |   60 +-
 .../SourceSetDependencyResolvingClasspath.java     |   15 +-
 .../jvm/internal/services/PlatformJvmServices.java |    2 +
 .../src/main/java/org/gradle/jvm/tasks/Jar.java    |    2 +-
 .../main/java/org/gradle/jvm/tasks/api/ApiJar.java |    7 +-
 .../jvm/tasks/api/internal/AccessibleMember.java   |   37 -
 .../jvm/tasks/api/internal/AnnotatableMember.java  |   51 -
 .../api/internal/AnnotationAnnotationValue.java    |   24 -
 .../jvm/tasks/api/internal/AnnotationMember.java   |   61 -
 .../jvm/tasks/api/internal/AnnotationValue.java    |   36 -
 .../jvm/tasks/api/internal/ApiClassExtractor.java  |   97 --
 .../jvm/tasks/api/internal/ApiMemberSelector.java  |  230 ---
 .../tasks/api/internal/ArrayAnnotationValue.java   |   24 -
 .../gradle/jvm/tasks/api/internal/ClassMember.java |   45 -
 .../tasks/api/internal/EnumAnnotationValue.java    |   31 -
 .../gradle/jvm/tasks/api/internal/FieldMember.java |   39 -
 .../jvm/tasks/api/internal/InnerClassMember.java   |   45 -
 .../org/gradle/jvm/tasks/api/internal/Member.java  |   51 -
 .../jvm/tasks/api/internal/MethodMember.java       |   77 -
 .../internal/MethodStubbingApiMemberAdapter.java   |   85 -
 .../api/internal/ParameterAnnotationMember.java    |   38 -
 .../tasks/api/internal/SimpleAnnotationValue.java  |   24 -
 .../api/internal/SortingAnnotationVisitor.java     |   89 -
 .../gradle/jvm/tasks/api/internal/TypedMember.java |   38 -
 .../ApiClassExtractorInnerClassTest.groovy         |   34 +-
 .../api/internal/ApiClassExtractorTest.groovy      |   29 +
 .../internal/ApiClassExtractorTestSupport.groovy   |    1 +
 .../NativeToolChainDiscoveryIntegrationTest.groovy |    3 -
 .../internal/AbstractNativeLibraryBinarySpec.java  |    3 +-
 .../internal/CompilerOutputFileNamingScheme.java   |   14 +-
 .../CompilerOutputFileNamingSchemeFactory.java     |   33 +
 .../NativeDependentBinariesResolutionStrategy.java |    9 +-
 .../internal/services/NativeBinaryServices.java    |   11 +
 .../nativeplatform/tasks/InstallExecutable.java    |    6 +-
 .../toolchain/internal/NativeCompiler.java         |    8 +-
 .../toolchain/internal/OutputCleaningCompiler.java |   16 +-
 .../toolchain/internal/clang/ClangToolChain.java   |    5 +-
 .../gcc/AbstractGccCompatibleToolChain.java        |   11 +-
 .../toolchain/internal/gcc/Assembler.java          |    5 +-
 .../toolchain/internal/gcc/CCompiler.java          |    5 +-
 .../toolchain/internal/gcc/CPCHCompiler.java       |    5 +-
 .../toolchain/internal/gcc/CppCompiler.java        |    5 +-
 .../toolchain/internal/gcc/CppPCHCompiler.java     |    5 +-
 .../internal/gcc/GccCompatibleNativeCompiler.java  |    5 +-
 .../internal/gcc/GccPlatformToolProvider.java      |   39 +-
 .../toolchain/internal/gcc/GccToolChain.java       |    7 +-
 .../toolchain/internal/gcc/ObjectiveCCompiler.java |    5 +-
 .../internal/gcc/ObjectiveCPCHCompiler.java        |    5 +-
 .../internal/gcc/ObjectiveCppCompiler.java         |    5 +-
 .../internal/gcc/ObjectiveCppPCHCompiler.java      |    5 +-
 .../toolchain/internal/msvcpp/Assembler.java       |    5 +-
 .../toolchain/internal/msvcpp/CCompiler.java       |    5 +-
 .../toolchain/internal/msvcpp/CPCHCompiler.java    |    5 +-
 .../toolchain/internal/msvcpp/CppCompiler.java     |    5 +-
 .../toolchain/internal/msvcpp/CppPCHCompiler.java  |    5 +-
 .../internal/msvcpp/DefaultUcrtLocator.java        |  249 +++
 .../toolchain/internal/msvcpp/Ucrt.java            |   98 ++
 .../toolchain/internal/msvcpp/UcrtLocator.java     |   29 +
 .../internal/msvcpp/VisualCppNativeCompiler.java   |    5 +-
 .../msvcpp/VisualCppPlatformToolProvider.java      |   38 +-
 .../internal/msvcpp/VisualCppToolChain.java        |   35 +-
 .../internal/msvcpp/WindowsResourceCompiler.java   |    5 +-
 .../toolchain/plugins/ClangCompilerPlugin.java     |    4 +-
 .../toolchain/plugins/GccCompilerPlugin.java       |    5 +-
 .../plugins/MicrosoftVisualCppCompilerPlugin.java  |    6 +-
 .../CompilerOutputFileNamingSchemeTest.groovy      |   39 +
 .../toolchain/internal/NativeCompilerTest.groovy   |   10 +-
 .../internal/OutputCleaningCompilerTest.groovy     |   22 +-
 .../gcc/AbstractGccCompatibleToolChainTest.groovy  |    8 +-
 .../toolchain/internal/gcc/AssemblerTest.groovy    |    2 +-
 .../toolchain/internal/gcc/CCompilerTest.groovy    |    2 +-
 .../toolchain/internal/gcc/CPCHCompilerTest.groovy |    2 +-
 .../internal/gcc/ClangToolChainTest.groovy         |    3 +-
 .../toolchain/internal/gcc/CppCompilerTest.groovy  |    4 +-
 .../internal/gcc/CppPCHCompilerTest.groovy         |    2 +-
 .../toolchain/internal/gcc/GccToolChainTest.groovy |    3 +-
 .../internal/gcc/ObjectiveCCompilerTest.groovy     |    2 +-
 .../internal/gcc/ObjectiveCPCHCompilerTest.groovy  |    2 +-
 .../internal/gcc/ObjectiveCppCompilerTest.groovy   |    2 +-
 .../gcc/ObjectiveCppPCHCompilerTest.groovy         |    2 +-
 .../toolchain/internal/msvcpp/AssemblerTest.groovy |    2 +-
 .../toolchain/internal/msvcpp/CCompilerTest.groovy |    2 +-
 .../internal/msvcpp/CPCHCompilerTest.groovy        |    2 +-
 .../internal/msvcpp/CppCompilerTest.groovy         |    2 +-
 .../internal/msvcpp/CppPCHCompilerTest.groovy      |    2 +-
 .../internal/msvcpp/DefaultUcrtLocatorTest.groovy  |  189 +++
 .../VisualCppPlatformToolProviderTest.groovy       |    3 +-
 .../internal/msvcpp/VisualCppToolChainTest.groovy  |   19 +-
 .../msvcpp/WindowsResourceCompilerTest.groovy      |    4 +-
 ...bstractInstalledToolChainIntegrationSpec.groovy |   26 +-
 .../fixtures/AvailableToolChains.java              |   11 +
 .../fixtures/LinkerOptionsFixture.groovy           |   40 +
 .../fixtures/ToolChainRequirement.java             |    4 +
 .../fixtures/VisualStudioVersion.java              |    3 +-
 .../fixtures/app/CHelloWorldApp.groovy             |    1 +
 .../fixtures/binaryinfo/OtoolBinaryInfo.groovy     |    6 +-
 .../run/PlayApplicationDeploymentHandle.java       |    1 +
 .../internal/toolchain/DaemonPlayCompiler.java     |    6 +-
 .../internal/toolchain/DefaultPlayToolChain.java   |    6 +-
 .../toolchain/DefaultPlayToolProvider.java         |    6 +-
 .../toolchain/PlayToolChainServiceRegistry.java    |    4 +-
 .../play/internal/DefaultPlayToolChainTest.groovy  |    4 +-
 .../toolchain/DaemonPlayCompilerTest.groovy        |    4 +-
 .../toolchain/DefaultPlayToolProviderTest.groovy   |    4 +-
 ...adleImplDepsCompatibilityIntegrationTest.groovy |    5 -
 .../devel/tasks/PluginUnderTestMetadata.java       |    5 +-
 .../plugin/devel/tasks/ValidateTaskProperties.java |   12 +-
 .../plugins/JavaGradlePluginPluginTest.groovy      |    2 +-
 .../JavaGradlePluginPluginTestKitSetupTest.groovy  |    4 +-
 .../NonDeclarativePluginUseIntegrationSpec.groovy  |   23 +
 ...tPluginResolutionFailuresIntegrationSpec.groovy |   23 +-
 ...ginResolutionServiceCommsIntegrationTest.groovy |    4 +-
 .../use/resolve/service/internal/ClientStatus.java |    3 +-
 ...istentCachingPluginResolutionServiceClient.java |   47 +-
 .../service/internal/PluginUseMetaData.java        |    3 +-
 ...CachingPluginResolutionServiceClientTest.groovy |    2 +-
 subprojects/plugins/plugins.gradle                 |    9 +-
 .../AbstractCachedCompileIntegrationTest.groovy    |   28 +-
 .../ApplicationPluginIntegrationTest.groovy        |  165 +-
 .../plugins/BuildSrcPluginIntegrationTest.groovy   |   65 +-
 .../DistributionPluginIntegrationTest.groovy       |    2 +
 .../JavaLibraryDistributionIntegrationTest.groovy  |    2 +
 .../api/tasks/bundling/JarIntegrationTest.groovy   |   25 +
 .../tasks/bundling/WarTaskIntegrationTest.groovy   |    2 +
 .../CachedGroovyCompileIntegrationTest.groovy      |   12 +-
 ...vaJointCompileSourceOrderIntegrationTest.groovy |   77 +
 .../JavaLibraryCompilationIntegrationTest.groovy   |  438 +++++
 ...ompileAvoidanceAgainstJarIntegrationSpec.groovy |   87 +
 ...tractJavaCompileAvoidanceIntegrationSpec.groovy | 1032 ++++++++++++
 .../CachedJavaCompileIntegrationTest.groovy        |   33 +-
 ...ncrementalCompileMultiProjectTestFixture.groovy |   56 +
 ...eAvoidanceAgainstClassDirIntegrationSpec.groovy |   24 +
 ...ompileAvoidanceAgainstJarIntegrationSpec.groovy |   24 +
 .../IncrementalJavaCompileIntegrationTest.groovy   |  211 ++-
 ...eAvoidanceAgainstClassDirIntegrationSpec.groovy |   23 +
 ...ompileAvoidanceAgainstJarIntegrationSpec.groovy |   20 +
 .../DaemonJavaCompilerIntegrationTest.groovy       |    2 +-
 .../recompilesDependentClasses/NewIPerson.java     |    4 -
 .../recompilesDependentClasses/build.gradle        |    1 -
 .../src/main/java/IPerson.java                     |    3 -
 .../src/main/java/Person.java                      |    3 -
 .../NewIPerson.java                                |    4 -
 .../app/src/main/java/Person.java                  |    3 -
 .../build.gradle                                   |    9 -
 .../lib/src/main/java/IPerson.java                 |    3 -
 .../settings.gradle                                |    1 -
 .../build.gradle                                   |    4 -
 .../src/main/java/Test.java                        |    3 -
 .../org/gradle/api/internal/java/JavaLibrary.java  |  100 +-
 .../gradle/api/internal/java/WebApplication.java   |   15 +-
 .../plugins/DefaultArtifactPublicationSet.java     |    9 +-
 .../gradle/api/internal/tasks/CompileServices.java |   27 +-
 .../api/internal/tasks/DefaultGroovySourceSet.java |   12 +-
 .../api/internal/tasks/DefaultSourceSet.java       |   67 +-
 .../org/gradle/api/plugins/ApplicationPlugin.java  |    4 +-
 .../java/org/gradle/api/plugins/BasePlugin.java    |    2 +-
 .../org/gradle/api/plugins/JavaBasePlugin.java     |   90 +-
 .../org/gradle/api/plugins/JavaLibraryPlugin.java  |   90 +
 .../java/org/gradle/api/plugins/JavaPlugin.java    |  320 +++-
 .../gradle/api/plugins/JavaPluginConvention.java   |   31 +-
 .../java/org/gradle/api/tasks/GroovySourceSet.java |   11 +
 .../main/java/org/gradle/api/tasks/SourceSet.java  |   88 +
 .../org.gradle.java-library.properties             |   17 +
 .../tasks/DefaultGroovySourceSetTest.groovy        |    8 +
 .../api/internal/tasks/DefaultSourceSetTest.groovy |   18 +
 .../org/gradle/api/plugins/GroovyPluginTest.groovy |  122 +-
 .../gradle/api/plugins/JavaBasePluginTest.groovy   |   38 +-
 .../api/plugins/JavaLibraryPluginTest.groovy       |  234 +++
 .../api/plugins/JavaPluginConventionTest.groovy    |    8 +
 .../org/gradle/api/plugins/JavaPluginTest.groovy   |   95 +-
 .../org/gradle/api/plugins/WarPluginTest.groovy    |  138 +-
 .../gradle/api/tasks/testing/TestTaskSpec.groovy   |    7 +
 .../org/gradle/api/tasks/testing/TestTest.groovy   |    7 +
 .../process-services/process-services.gradle       |    1 +
 .../health/memory/MemoryInfoIntegrationTest.groovy |   84 +
 .../MemoryStatusUpdateIntegrationTest.groovy       |   69 +
 .../internal/health/memory/AvailableMemory.java    |   21 +
 .../health/memory/DefaultMemoryManager.java        |  198 +++
 .../internal/health/memory/JvmMemoryStatus.java    |   32 +
 .../health/memory/JvmMemoryStatusListener.java     |   21 +
 .../health/memory/JvmMemoryStatusSnapshot.java     |   42 +
 .../health/memory/MBeanAttributeProvider.java      |   53 +
 .../health/memory/MBeanAvailableMemory.java        |   27 +
 .../internal/health/memory/MaximumHeapHelper.java  |   84 +
 .../health/memory/MeminfoAvailableMemory.java      |  132 ++
 .../internal/health/memory/MemoryAmount.java       |  130 ++
 .../internal/health/memory/MemoryHolder.java       |   33 +
 .../process/internal/health/memory/MemoryInfo.java |   80 +
 .../internal/health/memory/MemoryManager.java      |   52 +
 .../internal/health/memory/OsMemoryStatus.java     |   32 +
 .../health/memory/OsMemoryStatusListener.java      |   21 +
 .../health/memory/OsMemoryStatusSnapshot.java      |   42 +
 .../health/memory/VmstatAvailableMemory.java       |  126 ++
 .../health/memory/DefaultMemoryManagerTest.groovy  |  180 ++
 .../health/memory/MaximumHeapHelperTest.groovy     |   71 +
 .../memory/MeminfoAvailableMemoryTest.groovy       |  132 ++
 .../internal/health/memory/MemoryAmountTest.groovy |  108 ++
 .../internal/health/memory/MemoryInfoTest.groovy   |   75 +
 .../health/memory/VmstatAvailableMemoryTest.groovy |   54 +
 .../api/reporting/GenerateBuildDashboard.java      |    3 +-
 .../reporting/internal/DefaultReportContainer.java |   13 +-
 .../authentication/DefaultBasicAuthentication.java |    5 +
 .../DefaultDigestAuthentication.java               |    5 +
 .../resource/s3/S3ClientIntegrationTest.groovy     |   41 +-
 .../s3/maven/MavenPublishS3IntegrationTest.groovy  |   52 +
 .../maven/MavenS3RepoErrorsIntegrationTest.groovy  |    2 +-
 .../authentication/aws/AwsImAuthentication.java    |   31 +
 .../gradle/authentication/aws/package-info.java    |   25 +
 .../authentication/DefaultAwsImAuthentication.java |   38 +
 .../resource/transport/aws/s3/S3Client.java        |   37 +-
 .../transport/aws/s3/S3ConnectorFactory.java       |   36 +-
 .../aws/s3/S3ResourcesPluginServiceRegistry.java   |   12 +
 .../resource/transport/aws/s3/S3ClientTest.groovy  |   14 +
 .../transport/aws/s3/S3ConnectorFactoryTest.groovy |   21 +-
 .../sftp/SftpClientReuseIntegrationTest.groovy     |   92 ++
 .../transport/sftp/LockableSftpClient.java         |    1 +
 .../resource/transport/sftp/SftpClientFactory.java |   55 +-
 .../transport/sftp/SftpClientFactoryTest.groovy    |  117 +-
 subprojects/resources/resources.gradle             |    1 +
 .../resource/ResourceContentMetadataSnapshot.java  |   29 +
 .../connector/ResourceConnectorSpecification.java  |    4 +-
 .../SamplesMixedJavaAndScalaIntegrationTest.groovy |   23 +-
 ...plesScalaCustomizedLayoutIntegrationTest.groovy |    8 +-
 .../SamplesScalaQuickstartIntegrationTest.groovy   |    9 +-
 .../samples/SamplesScalaZincIntegrationTest.groovy |    4 +-
 .../api/internal/tasks/DefaultScalaSourceSet.java  |   12 +-
 .../internal/tasks/scala/ScalaCompilerFactory.java |    6 +-
 .../java/org/gradle/api/tasks/ScalaSourceSet.java  |   13 +-
 .../org/gradle/api/tasks/scala/ScalaCompile.java   |    6 +-
 .../tasks/DefaultScalaSourceSetTest.groovy         |    8 +
 subprojects/smoke-test/smoke-test.gradle           |    8 +
 .../smoketests/CacheInitScriptsSmokeTest.groovy    |  116 ++
 .../smoketests/GradleScriptKotlinSmokeTest.groovy  |   42 +
 .../org/gradle/smoketests/GrettySmokeTest.groovy   |   15 +-
 .../smoketests/ThirdPartyPluginsSmokeTest.groovy   |    4 +-
 .../smoketests/cache-init-scripts/build.gradle     |    9 +
 .../cache-init-scripts/src/main/java/Hello.java    |    5 +
 .../cache-init-scripts/taskCacheInit.gradle        |    1 +
 .../gsk-multi-project-with-buildSrc/README.md      |   19 +
 .../bluewhale/build.gradle.kts                     |    3 +
 .../build.gradle.kts                               |    9 +
 .../buildSrc/build.gradle.kts                      |   17 +
 .../buildSrc/settings.gradle                       |    1 +
 .../buildSrc/src/main/kotlin/HelloTask.kt          |   21 +
 .../krill/build.gradle.kts                         |    3 +
 .../settings.gradle                                |    8 +
 subprojects/soak/soak.gradle                       |    7 +-
 .../DaemonPerformanceMonitoringSoakTest.groovy     |    7 +-
 .../resolve/DependencyResolutionStressTest.groovy  |    6 +-
 .../http/HttpTaskOutputCacheIntegrationTest.groovy |  248 ---
 .../tasks/http/HttpTaskOutputCacheTest.groovy      |   62 -
 .../cache/tasks/http/HttpTaskOutputCache.java      |  121 --
 .../tasks/http/HttpTaskOutputCacheFactory.java     |   47 -
 .../runner/BaseGradleRunnerIntegrationTest.groovy  |   34 +-
 .../runner/GradleRunnerCacheIntegrationTest.groovy |   83 +
 ...GradleRunnerCaptureOutputIntegrationTest.groovy |    2 +-
 .../GradleRunnerIsolationIntegrationTest.groovy    |    6 +-
 .../GradleRunnerResultIntegrationTest.groovy       |   26 +-
 .../runner/fixtures/WithNoSourceTaskOutcome.java   |   33 +
 .../org/gradle/testkit/runner/GradleRunner.java    |    2 +-
 .../org/gradle/testkit/runner/TaskOutcome.java     |   26 +-
 .../runner/internal/ToolingApiGradleExecutor.java  |   27 +-
 .../testing/JULRedirectorIntegrationTest.groovy    |    4 +
 .../tasks/testing/AbstractTestDescriptor.java      |    4 +-
 .../tasks/testing/DefaultTestDescriptor.java       |    4 +-
 .../tasks/testing/DefaultTestOutputEvent.java      |    4 +-
 .../tasks/testing/DefaultTestSuiteDescriptor.java  |    4 +-
 .../tasks/testing/SuiteTestClassProcessor.java     |    2 +-
 .../internal/tasks/testing/TestClassRunInfo.java   |    4 +-
 .../internal/tasks/testing/TestCompleteEvent.java  |    4 +-
 .../api/internal/tasks/testing/TestStartEvent.java |    4 +-
 .../tasks/testing/processors/TestMainAction.java   |    2 +-
 .../testing/worker/ForkingTestClassProcessor.java  |    1 +
 .../internal/tasks/testing/worker/TestWorker.java  |    4 +-
 .../testing/worker/WorkerTestClassProcessor.java   |    2 +-
 .../base/plugins/TestingModelBasePlugin.java       |   13 +-
 .../testing/SuiteTestClassProcessorTest.groovy     |    2 +-
 .../testing/processors/TestMainActionTest.groovy   |    2 +-
 .../worker/ForkingTestClassProcessorTest.groovy    |    4 +-
 .../gradle/testing/TestTaskIntegrationTest.groovy  |    6 +-
 .../TestTaskJdkRelocationIntegrationTest.groovy    |  102 ++
 .../TestTaskRelocationIntegrationTest.groovy       |   74 +
 .../detection/AbstractTestFrameworkDetector.java   |    6 +-
 .../testing/detection/DefaultTestExecuter.java     |   23 +-
 .../testing/detection/TestFrameworkDetector.java   |    4 +-
 .../testing/junit/JUnitTestClassProcessor.java     |    2 +-
 .../tasks/testing/junit/JUnitTestEventAdapter.java |    2 +-
 .../tasks/testing/junit/JUnitTestFramework.java    |    2 +-
 .../junit/TestClassExecutionEventGenerator.java    |    2 +-
 .../testing/junit/report/DefaultTestReport.java    |    7 +-
 .../result/Binary2JUnitXmlReportGenerator.java     |    7 +-
 .../testing/testng/TestNGTestClassProcessor.java   |    2 +-
 .../tasks/testing/testng/TestNGTestFramework.java  |    2 +-
 .../testng/TestNGTestResultProcessorAdapter.java   |    2 +-
 .../java/org/gradle/api/tasks/testing/Test.java    |   24 +-
 .../api/tasks/testing/junit/JUnitOptions.java      |    6 +-
 .../api/tasks/testing/testng/TestNGOptions.java    |    5 +-
 .../gradle/jvm/plugins/JvmTestSuiteBasePlugin.java |    8 +-
 .../detection/DefaultTestExecuterTest.groovy       |   77 -
 .../junit/JUnitTestClassProcessorTest.groovy       |    2 +-
 .../TestClassExecutionEventGeneratorTest.groovy    |    2 +-
 .../junit/report/DefaultTestReportTest.groovy      |    3 +-
 .../Binary2JUnitXmlReportGeneratorSpec.groovy      |    3 +-
 .../testng/TestNGTestClassProcessorTest.groovy     |    2 +-
 .../CUnitDependentComponentsIntegrationSpec.groovy |    3 +-
 .../test/cunit/CUnitIntegrationTest.groovy         |    3 +-
 .../test/cunit/CUnitSamplesIntegrationTest.groovy  |   13 +-
 ...leTestDependentComponentsIntegrationSpec.groovy |    3 +-
 .../googletest/GoogleTestIntegrationTest.groovy    |   17 +-
 .../GoogleTestSamplesIntegrationTest.groovy        |   10 +-
 .../test/cunit/tasks/gradle_cunit_main.c           |    2 +-
 .../provider/runner/BuildModelActionRunner.java    |   22 +-
 .../runner/ClientForwardingBuildListener.java      |    2 +-
 .../runner/ClientForwardingTaskListener.java       |   80 +-
 .../runner/ClientForwardingTestListener.java       |   37 +-
 .../runner/ClientProvidedBuildActionRunner.java    |   14 +-
 .../provider/runner/DefaultBuildController.java    |   69 +-
 .../RunAsBuildOperationBuildActionRunner.java      |   47 +
 .../runner/SubscribableBuildActionRunner.java      |   31 +-
 .../runner/TestExecutionRequestActionRunner.java   |    2 +-
 .../runner/TestExecutionResultEvaluator.java       |   29 +-
 .../provider/runner/ToolingBuilderServices.java    |   16 +-
 .../runner/DefaultBuildControllerTest.groovy       |   42 +-
 .../runner/TestExecutionResultEvaluatorTest.groovy |    7 +-
 .../tooling-api-builders.gradle                    |    1 +
 subprojects/tooling-api/buildship.gradle           |    4 +-
 ...GlobalLoggingManipulationIntegrationTest.groovy |   12 +-
 .../SamplesToolingApiIntegrationTest.groovy        |    7 +-
 .../tooling/ToolingApiIntegrationTest.groovy       |   26 +-
 ...gApiUnsupportedClientJvmCrossVersionSpec.groovy |    2 +-
 ...sionToolingApiSpecificationRetryRuleTest.groovy |  192 +++
 .../ToolingApiEclipseModelCrossVersionSpec.groovy  |    9 +
 .../m3/ToolingApiLoggingCrossVersionSpec.groovy    |    3 +-
 .../m5/ToolingApiIdeaModelCrossVersionSpec.groovy  |   18 +-
 .../m8/ToolingApiLoggingCrossVersionSpec.groovy    |   16 +-
 .../r112/BuildInvocationsCrossVersionSpec.groovy   |   10 -
 .../DependencyMetaDataCrossVersionSpec.groovy      |    2 -
 .../ModelsWithGradleProjectCrossVersionSpec.groovy |   24 +-
 ...hGradleProjectIdentifierCrossVersionSpec.groovy |   12 +-
 .../r22/ClientShutdownCrossVersionSpec.groovy      |   23 +-
 .../r24/TestProgressCrossVersionSpec.groovy        |    8 +-
 .../r25/BuildProgressCrossVersionSpec.groovy       |    6 +-
 ...tinuousBuildCancellationCrossVersionSpec.groovy |    2 +-
 ...pportedToolingApiVersionCrossVersionSpec.groovy |    6 +-
 .../r25/TaskProgressCrossVersionSpec.groovy        |   54 +-
 .../r26/BuildProgressCrossVersionSpec.groovy       |    8 +-
 .../r26/TestLauncherCrossVersionSpec.groovy        |   26 +-
 ...teDependencySubstitutionCrossVersionSpec.groovy |  141 ++
 ...teDependencySubstitutionCrossVersionSpec.groovy |  149 ++
 .../r31/ToolingApiIdeaModelCrossVersionSpec.groovy |    7 +-
 ...NonSerializableExceptionCrossVersionSpec.groovy |    9 +-
 ...tionCompatibilityMappingCrossVersionSpec.groovy |   77 +
 ...uildActionCompositeBuildCrossVersionSpec.groovy |   62 +
 .../r33/BuildProgressCrossVersionSpec.groovy       |  426 +++++
 .../CacheableTaskOutcomeCrossVersionSpec.groovy    |  102 ++
 ...xecutionOnIncludedBuildsCrossVersionSpec.groovy |  105 ++
 .../tooling/r33/FetchBuildEnvironments.java        |   38 +
 .../tooling/r33/FetchBuildInvocations.java         |   29 +
 .../tooling/r33/FetchEclipseProjects.java          |   46 +
 .../integtests/tooling/r33/FetchGradleBuild.java   |   29 +
 .../integtests/tooling/r33/FetchIdeaProject.java   |   29 +
 .../tooling/r33/FetchIncludedBuildInvocations.java |   38 +
 .../tooling/r33/FetchIncludedGradleProjects.java   |   38 +
 .../r33/GradleBuildModelCrossVersionSpec.groovy    |   70 +
 .../r33/IdeaProjectModelCrossVersionSpec.groovy    |   40 +
 .../r33/IncompatibilityCrossVersionSpec.groovy     |  134 ++
 .../tooling/r34/BuildActionCrossVersionSpec.groovy |   61 +
 .../r34/NoSourceTaskOutcomeCrossVersionSpec.groovy |   67 +
 .../r34/ToolingApiIdeaModelCrossVersionSpec.groovy |  144 ++
 .../java/org/gradle/tooling/GradleConnector.java   |    2 +-
 .../tooling/events/task/TaskSuccessResult.java     |   16 +-
 .../task/internal/DefaultTaskSuccessResult.java    |    8 +-
 .../internal/adapter/ProtocolToModelAdapter.java   |    9 +-
 .../internal/build/DefaultBuildEnvironment.java    |   17 +-
 .../connection/DefaultBuildIdentifier.java         |   59 -
 .../connection/DefaultProjectIdentifier.java       |   71 -
 .../internal/consumer/DefaultModelBuilder.java     |    1 -
 .../consumer/ProjectConnectionBuildLauncher.java   |    1 -
 .../internal/consumer/SynchronizedLogging.java     |    4 +-
 .../connection/AbstractBuildController.java        |   45 +
 .../connection/AbstractConsumerConnection.java     |    1 -
 .../connection/ActionAwareConsumerConnection.java  |   47 +-
 .../BuildActionRunnerBackedConsumerConnection.java |   27 +-
 .../connection/BuildControllerAdapter.java         |   58 +-
 .../BuildInvocationsAdapterController.java         |   45 +
 .../connection/CancellableConsumerConnection.java  |   31 +-
 ...CancellableModelBuilderBackedModelProducer.java |    1 -
 .../connection/HasCompatibilityMapping.java        |   33 +-
 .../connection/InternalBuildActionAdapter.java     |   14 +-
 .../ModelBuilderBackedConsumerConnection.java      |   17 +-
 .../ModelBuilderBackedModelProducer.java           |    1 -
 .../BasicGradleProjectIdentifierMixin.java         |   15 +-
 .../converters/BuildInvocationsConverter.java      |   12 +-
 .../ConsumerProvidedBuildInvocations.java          |   12 +-
 .../converters/FixedBuildIdentifierProvider.java   |   18 +-
 .../consumer/converters/GradleBuildConverter.java  |    5 +-
 .../converters/GradleProjectIdentifierMixin.java   |   15 +-
 .../converters/IdeaModelCompatibilityMapping.java  |   54 -
 .../consumer/converters/IncludedBuildsMixin.java   |   30 +
 .../TaskDisplayNameCompatibilityMapping.java       |   37 -
 .../consumer/converters/TaskNameComparator.java    |    3 +-
 .../parameters/BuildProgressListenerAdapter.java   |    7 +-
 .../parameters/ConsumerOperationParameters.java    |   22 +-
 .../consumer/versioning/VersionDetails.java        |  119 +-
 .../internal/gradle/BasicGradleProject.java        |    5 +-
 .../internal/gradle/ConsumerProvidedTask.java      |    3 +-
 .../gradle/ConsumerProvidedTaskSelector.java       |    3 +-
 .../internal/gradle/DefaultBuildIdentifier.java    |   38 +
 .../internal/gradle/DefaultGradleBuild.java        |   23 +-
 .../internal/gradle/DefaultGradleProject.java      |   87 +-
 .../internal/gradle/DefaultGradlePublication.java  |   23 +-
 .../internal/gradle/DefaultProjectIdentifier.java  |   52 +
 .../gradle/DefaultProjectPublications.java         |   23 +-
 .../internal/gradle/GradleBuildIdentity.java       |   23 +
 .../internal/gradle/GradleProjectIdentity.java     |    4 +-
 .../internal/gradle/PartialBasicGradleProject.java |   31 +-
 .../internal/gradle/PartialGradleProject.java      |   98 --
 .../internal/protocol/ConnectionVersion4.java      |    1 -
 .../internal/protocol/InternalLaunchable.java      |    4 +-
 .../protocol/events/InternalTaskCachedResult.java  |   26 +
 .../org/gradle/tooling/model/BuildIdentifier.java  |   11 +-
 .../org/gradle/tooling/model/HasGradleProject.java |    8 +-
 .../gradle/tooling/model/ProjectIdentifier.java    |   12 +-
 .../gradle/tooling/model/gradle/GradleBuild.java   |   10 +-
 .../tooling/model/gradle/GradlePublication.java    |   13 +-
 .../tooling/model/gradle/ProjectPublications.java  |    2 +-
 .../org/gradle/tooling/model/idea/IdeaModule.java  |    9 +
 .../tooling/model/idea/IdeaModuleDependency.java   |    1 +
 .../consumer/DefaultBuildLauncherTest.groovy       |    4 +-
 .../ActionAwareConsumerConnectionTest.groovy       |   17 +-
 ...ActionRunnerBackedConsumerConnectionTest.groovy |    1 -
 .../connection/BuildControllerAdapterTest.groovy   |   11 +-
 .../CancellableConsumerConnectionTest.groovy       |   10 +-
 ...lableModelBuilderBackedModelProducerTest.groovy |    2 +-
 .../GradleBuildAdapterProducerTest.groovy          |    3 +-
 ...ModelBuilderBackedConsumerConnectionTest.groovy |    1 -
 .../ModelBuilderBackedModelProducerTest.groovy     |    2 +-
 .../converters/GradleBuildConverterTest.groovy     |    5 +-
 .../ConsumerOperationParametersTest.groovy         |    4 +-
 .../gradle/DefaultGradleProjectTest.groovy         |   12 +-
 .../fixture/AbstractToolingApiSpecification.groovy |   98 --
 .../ContinuousBuildToolingApiSpecification.groovy  |   36 +-
 .../tooling/fixture/IgnoreIntegratedComposite.java |   28 -
 .../tooling/fixture/ProgressEvents.groovy          |   60 +-
 .../fixture/RequiresIntegratedComposite.java       |   28 -
 .../integtests/tooling/fixture/ToolingApi.groovy   |   23 +-
 .../fixture/ToolingApiDistributionResolver.groovy  |    6 +-
 .../tooling/fixture/ToolingApiExecution.groovy     |    2 +-
 .../tooling/fixture/ToolingApiSpecification.groovy |  229 ++-
 .../tooling/fixture/ToolingApiVersions.java        |   11 -
 subprojects/tooling-api/tooling-api.gradle         |   84 +-
 ...projectProjectAndTaskListIntegrationTest.groovy |    6 +
 subprojects/ui/ui.gradle                           |    4 +
 subprojects/version-info/version-info.gradle       |  160 ++
 ...stractWorkerDaemonServiceIntegrationTest.groovy |  205 +++
 .../WorkerDaemonExpirationIntegrationTest.groovy   |   73 +
 ...aemonServiceErrorHandlingIntegrationTest.groovy |  330 ++++
 .../WorkerDaemonServiceIntegrationTest.groovy      |  409 +++++
 ...orkerDaemonServiceLoggingIntegrationTest.groovy |  154 ++
 .../daemon/WorkerDaemonExecutionException.java     |   37 +
 .../process/daemon/WorkerDaemonExecutor.java       |   71 +
 .../gradle/process/daemon/WorkerDaemonService.java |   34 +
 .../org/gradle/process/daemon/package-info.java    |   20 +
 .../gradle/process/internal/WorkersServices.java   |   73 +
 .../daemon/AbstractWorkerDaemonExecutor.java       |  144 ++
 .../process/internal/daemon/DaemonForkOptions.java |  133 ++
 .../daemon/DefaultWorkerDaemonService.java         |   36 +
 .../gradle/process/internal/daemon/WorkSpec.java   |   22 +
 .../process/internal/daemon/WorkerDaemon.java      |   23 +
 .../internal/daemon/WorkerDaemonAction.java        |   25 +
 .../internal/daemon/WorkerDaemonClient.java        |   62 +
 .../daemon/WorkerDaemonClientsManager.java         |  107 ++
 .../internal/daemon/WorkerDaemonExpiration.java    |  117 ++
 .../internal/daemon/WorkerDaemonFactory.java       |   24 +
 .../internal/daemon/WorkerDaemonManager.java       |   63 +
 .../internal/daemon/WorkerDaemonProtocol.java      |   21 +
 .../internal/daemon/WorkerDaemonResult.java        |   45 +
 .../daemon/WorkerDaemonRunnableExecutor.java       |   78 +
 .../internal/daemon/WorkerDaemonServer.java        |   41 +
 .../internal/daemon/WorkerDaemonStarter.java       |   64 +
 .../internal/daemon/WorkerDaemonWorker.java        |   22 +
 ...e.internal.service.scopes.PluginServiceRegistry |    1 +
 .../daemon/AbstractWorkerDaemonExecutorTest.groovy |  113 ++
 .../daemon/DaemonForkOptionsMergeTest.groovy       |   52 +
 .../internal/daemon/DaemonForkOptionsTest.groovy   |  176 ++
 .../daemon/DefaultWorkerDaemonServiceTest.groovy   |   36 +
 .../internal/daemon/WorkerDaemonClientTest.groovy  |  109 ++
 .../daemon/WorkerDaemonClientsManagerTest.groovy   |  152 ++
 .../daemon/WorkerDaemonExpirationTest.groovy       |  157 ++
 .../internal/daemon/WorkerDaemonManagerTest.groovy |  118 ++
 .../daemon/WorkerDaemonRunnableExecutorTest.groovy |   72 +
 .../child/BootstrapSecurityManagerTest.groovy      |    0
 .../worker/child/SerializableMockHelper.groovy     |    0
 .../WorkerProcessClassPathProviderTest.groovy      |    0
 subprojects/workers/workers.gradle                 |   11 +
 .../AbstractWrapperIntegrationSpec.groovy          |    3 +-
 .../WrapperGenerationIntegrationTest.groovy        |    2 +-
 .../gradle/wrapper/ExclusiveFileAccessManager.java |    8 +-
 subprojects/wrapper/wrapper.gradle                 |   23 +-
 version.txt                                        |    2 +-
 2573 files changed, 87824 insertions(+), 31142 deletions(-)

diff --cc debian/changelog
index 71b2e97,0000000..216d5a6
mode 100644,000000..100644
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,524 -1,0 +1,540 @@@
++gradle (3.4.1-1) experimental; urgency=medium
++
++  * Team upload.
++  * New upstream version 3.4.1.
++  * Remove the symlink and entry for subproject gradle-task-cache-http because
++    it is gone.
++  * Drop fix-classpath-annotation.patch. Apparently it is no longer required.
++  * Refresh and update all other patches to make the package compile.
++  * Fix two FTBFS by adding jansi.patch and commons-io.patch.
++  * Symlink WriteProperties.java and PropertiesUtils.java into buildSrc
++    directory to avoid another FTBFS due to missing WriteProperties class.
++  * Tighten build-dependency of libnative-platform-java to >= 0.14.
++  * libgradle-core-java: Install new gradle-workers and gradle-version-info jar.
++
++ -- Markus Koschany <apo at debian.org>  Sat, 25 Nov 2017 16:59:33 +0100
++
 +gradle (3.2.1-5) unstable; urgency=medium
 +
 +  * Team upload.
 +  * No longer use the wagon2 artifacts
 +  * Depend on plexus-classworlds instead of plexus-classworlds2
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Sat, 11 Nov 2017 10:13:24 +0100
 +
 +gradle (3.2.1-4) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Fixed the 'Cannot find JAR' error with plexus-component-annotations 1.7.1-6
 +  * Depend on libxbean-reflect-java instead of libxbean-java
 +  * Standards-Version updated to 4.1.1
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Thu, 09 Nov 2017 02:27:56 +0100
 +
 +gradle (3.2.1-3) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Use the maven-resolver jars instead of eclipse-aether
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Fri, 08 Sep 2017 11:00:16 +0200
 +
 +gradle (3.2.1-2) unstable; urgency=medium
 +
 +  * Team upload.
 +
 +  [ Miguel Landaeta ]
 +  * Remove myself from uploaders list. (Closes: #871856)
 +  * Update copyright info.
 +
 +  [ Emmanuel Bourg ]
 +  * Depend on libplexus-component-annotations-java and
 +    libplexus-container-default1.5-java instead of libplexus-containers1.5-java
 +  * Standards-Version updated to 4.1.0
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Wed, 06 Sep 2017 11:06:08 +0200
 +
 +gradle (3.2.1-1) unstable; urgency=medium
 +
 +  * Team upload.
 +  * New upstream release
 +    - Refreshed the patches
 +    - Skip the internalAndroidPerformanceTesting build
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Thu, 22 Dec 2016 11:31:24 +0100
 +
 +gradle (3.1-2) unstable; urgency=medium
 +
 +  * d/control:
 +    * Requires JDK >= 7 as the upstream does
 +    * libgradle-plugins-java Breaks & Replaces libgradle-core-java (<< 3.1-1~)
 +      because gradle-wrapper.jar is moved. This may be able to fix #844336.
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Wed, 16 Nov 2016 14:07:14 +0800
 +
 +gradle (3.1-1) unstable; urgency=medium
 +
 +  * New upstream release (Closes: #844020)
 +  * Rename javadoc directory: /usr/share/doc/gradle/{javadoc => api}
 +  * Update to debhelper 10
 +  * d/gradle.desktop: Improve zh-TW translation
 +  * Move gradle-wrapper.jar from libgradle-core-java to libgradle-plugins-java
 +  * gradle-doc: Install DSL documentations and release notes
 +  * Use javahelper to install Javadoc
 +  * No longer embed Class-Path in JAR manifests since Gradle uses its own class
 +    loading mechanism, otherwise 2 sets of the same JARs will be loaded
 +  * d/gradle-doc.lintian-overrides: Override duplicate-files since they are
 +    example files not mistakes and the warnings are annoying
 +  * Drop/new patches:
 +    - disable_tests.diff: Now use a cleaner way to bypass tests
 +    - disable_sonar.diff: Upstream dropped the sonar plugin
 +    + drop_http-builder.patch: http-builder is not in Debian yet
 +    + new_APIs_in_3.0.patch
 +    + disable_Kotlin.patch
 +    + disable_buildSrc_tests.patch
 +    + dependency-management_depends_on_testkit.patch: Otherwise ZIP I/O errors
 +    + Groovy_projects_depends_on_localGroovy.patch: Otherwise errors
 +    + remove_timestamps.patch: Improve reproducibility by manually setting
 +      timestamps and other dynamic properties
 +    + drop_jmh-gradle-plugin.patch: jmh-gradle-plugin is not in Debian yet
 +  * New JARs:
 +    * gradle-composite-builds.jar
 +    * gradle-ide-play.jar
 +    * gradle-installation-beacon.jar
 +    * gradle-jvm-services.jar
 +    * gradle-logging.jar
 +    * gradle-process-services.jar
 +    * gradle-task-cache-http.jar
 +  * d/control:
 +    * Build-Depends on libfindbugs instead of findbugs
 +    * Restrict dependencies:
 +      * groovy >= 2.4.7
 +      * gradle >= 2.13
 +      * libnative-platform-java >= 0.11
 +    * gradle now Suggests gradle-doc (Closes: #843211)
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Mon, 14 Nov 2016 13:34:34 +0800
 +
 +gradle (2.13-4) unstable; urgency=emergency
 +
 +  * Make all dependencies versionless (Closes: #836391)
 +  * Drop 30_envjs.diff: simpleframework is already in Debian
 +  * d/gradle.desktop: Add zh-HK translation
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Sun, 04 Sep 2016 22:41:19 +0800
 +
 +gradle (2.13-3) unstable; urgency=high
 +
 +  * Team upload.
 +  * Use a versionless dependency on groovy-all in the classpath of the modules
 +  * Use a versionless dependency on httpcore in the classpath
 +    of the resources-http module
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Thu, 23 Jun 2016 10:09:10 +0200
 +
 +gradle (2.13-2) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Added the missing dependency on ant-optional for libgradle-plugins-java
 +    (required to use groovy-ant in gradle-plugins)
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Thu, 19 May 2016 09:33:06 +0200
 +
 +gradle (2.13-1) unstable; urgency=medium
 +
 +  * Team upload.
 +  * New upstream release
 +    - Refreshed the patches
 +  * Transition to Jetty 9 (patch imported from Fedora, thanks to Michal Srb)
 +  * Modified the Groovy jar detection logic to recognize the jar
 +    in the system Maven repository
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Wed, 18 May 2016 22:10:23 +0200
 +
 +gradle (2.12-1) unstable; urgency=medium
 +
 +  * Team upload.
 +  * New upstream release
 +    - Refreshed the patches
 +  * Standards-Version updated to 3.9.8 (no changes)
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Thu, 12 May 2016 10:33:01 +0200
 +
 +gradle (2.11-1) unstable; urgency=medium
 +
 +  * Team upload.
 +  * New upstream release
 +    - Refreshed the patches
 +    - Install the new gradle-testing-base and gradle-testing-jvm artifacts
 +  * Removed the unused dependency on libclassworlds-java
 +  * Depend on libasm-java instead of libasm4-java
 +  * Depend on libcglib-nodep-java instead of libcglib3-java
 +  * Depend on groovy instead of groovy2
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Tue, 03 May 2016 08:57:42 +0200
 +
 +gradle (2.10-2) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Fixed the CycleDetectedException when installing Maven artifacts.
 +    Thanks to Mikolaj Izdebski for the patch. (Closes: #810817)
 +  * Removed disable_java9.diff (no longer required)
 +  * Removed 26_disable_commitid.diff (not required)
 +  * Replaced disable_release_notes.diff with a task exclusion parameter
 +  * Moved aether dependencies changes to eclipse-aether.diff
 +  * Merged maven-aether-provider.diff into eclipse-aether.diff
 +  * Merged maven_builder_support.diff into maven-3.3.9-compatibility.patch
 +  * Removed unnecessary changes performed by use_local_artifacts.diff
 +  * Standards-Version updated to 3.9.7 (no changes)
 +  * Use a secure Vcs-Git URL
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Tue, 01 Mar 2016 15:17:36 +0100
 +
 +gradle (2.10-1) unstable; urgency=medium
 +
 +  * New upstream release
 +    - Update manpage
 +  * Drop the use of javahelper since it never works well with maven-repo-helper
 +  * d/generate_classpath.gradle: Sort classpaths for reproducibility
 +  * drop d/patches/disable_distributions.diff: Unnecessary
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Thu, 21 Jan 2016 15:55:53 +0800
 +
 +gradle (2.9-1) unstable; urgency=medium
 +
 +  * Team upload.
 +  * New upstream release
 +    - Refreshed the patches
 +    - Apply the java plugin in debian/generate-classpath.gradle
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Wed, 06 Jan 2016 17:56:19 +0100
 +
 +gradle (2.8-1) unstable; urgency=medium
 +
 +  * Team upload.
 +  * New upstream release
 +    - Refreshed the patches
 +    - Updated the Lintian overrides libgradle-core-java
 +  * Re-use the faster clean logic from gradle-debian-helper
 +  * Build depend on libspock-java >= 0.7 and drop disable_buildSrc_tests.diff
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Wed, 30 Dec 2015 15:00:47 +0100
 +
 +gradle (2.7-4) unstable; urgency=medium
 +
 +  * Team upload.
 +
 +  [ Emmanuel Bourg ]
 +  * Fixed the compatibility with Maven 3.3.9 by adding commons-lang3
 +    to the classpath
 +
 +  [ Kai-Chung Yan ]
 +  * Removed the Debian revision from the version number in the manpage
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Tue, 24 Nov 2015 13:14:44 +0100
 +
 +gradle (2.7-3) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Drop use-bndlib-1.50.0.patch and transition to bnd 2.1.0.
 +
 + -- Markus Koschany <apo at debian.org>  Tue, 17 Nov 2015 20:41:57 +0100
 +
 +gradle (2.7-2) unstable; urgency=medium
 +
 +  * Team upload.
 +  * d/rules: Remove mh_linkjars override. Apparently the override makes no
 +    difference.
 +  * Add ivy-2.4.0.patch and fix FTBFS with ivy 2.4.0. Thanks to
 +    Christ West for the report and Mikołaj Izdebski for the patch.
 +    (Closes: #804470)
 +
 + -- Markus Koschany <apo at gambaru.de>  Wed, 11 Nov 2015 21:55:31 +0100
 +
 +gradle (2.7-1) unstable; urgency=low
 +
 +  [ Kai-Chung Yan ]
 +  * New upstream release
 +  * d/copyright: Simplify file exclusion pattern with *.min.js
 +  * Remove maven_testng.diff: No longer needed.
 +  * d/control:
 +    - Remove maven from Build-Depends
 +    - Add libcglib3-java to Build-Depends
 +    - Build-Depends on gradle (>= 2.5)
 +    - Add dh-exec to Build-Depends
 +    - Add java6-runtime-headless to Depends as an option
 +    - Replace dependencies of libservlet2.5-java and libtomcat7-java with
 +      libservlet3.1-java and libtomcat8-java
 +    - Add default-jre to Suggests and document it in the description
 +    - Remove all Recommends
 +  * d/rules: No need to copy gradle-core codes to buildSrc
 +  * Remove fix_DocGenerationException.diff: No longer needed
 +  * Update maven_jcommander.diff to jcommander.diff
 +  * Remove build_init.diff: Obsolete
 +  * Remove taskOrdering.diff: Obsolete
 +  * d/rules: Update parallel Gradle usage
 +  * Add an application menu entry for Gradle GUI
 +  * Add symlinks to all Gradle jars in /usr/share/gradle, making a pseudo
 +    making a pseudo Gradle installation
 +  * New d/generate-classpath.gradle: Auto generate
 +    classpath attributes to jar manifest
 +  * Refresh use_local_artifacts.diff and jetty.diff to migrate to Tomcat 8
 +    (Closes: #801014)
 +  * New d/generate-pom.gradle: Auto generate POMs and install to maven-repo
 +
 +  [ Emmanuel Bourg ]
 +  * debian/watch: Exclude the release candidates from the versions reported
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Mon, 26 Oct 2015 16:31:38 +0100
 +
 +gradle (2.5-3) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Upload to unstable.
 +
 + -- Markus Koschany <apo at gambaru.de>  Mon, 17 Aug 2015 20:02:49 +0200
 +
 +gradle (2.5-2) experimental; urgency=medium
 +
 +  [ Markus Koschany ]
 +  * Add use-bndlib-1.50.0.patch and switch to bnd 1.50.0, so that Gradle can be
 +    uploaded to unstable.
 +  * debian/control: Remove versioned dependency of bnd.
 +
 +  [ Kai-Chung Yan ]
 +  * New maven_builder_support.diff: maven-builder-support.jar is also needed
 +  * use_local_artifacts.diff: Remove version of plexus-cipher and
 +    plexus-sec-dispatcher
 +  * d/gradle.1.md: Correct typo and update version
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Fri, 14 Aug 2015 23:55:50 +0800
 +
 +gradle (2.5-1) experimental; urgency=low
 +
 +  * New upstream release (Closes: #754725)
 +  * d/control: Remove libmaven2-core-java(-doc)
 +               Remove bintray-client-java
 +               Change Groovy dependencies to groovy2 (>= 2.3.10)
 +               Remove groovy from Build-Conflicts
 +               Remove libjna-posix-java
 +               Remove ant-optional
 +               Remove libplexus-container-default-java
 +               Change maven to libmaven3-core-java (>= 3.3.3)
 +  * d/watch: Watch services.gradle.org
 +  * d/copyright: Add Files-Excluded for uscan
 +  * d/rules: Simplify get-orig-source target
 +  * Drop multiple patches under d/patches/:
 +    - 03_plexus.diff: Files not exist
 +    - 11_fix_jni_path.diff: Files not exist
 +    - 35_ivy_23.diff: Files not exist
 +    - 36_java8_compatibility.diff: Files not exist
 +    - 37_replace_internal_testng_api.diff: Files not exist
 +    - 38_use_jdk7_nio_file_api.diff: Files not exist
 +    - 39_ignore_test_processor_assertion.diff: Files not exist
 +    - bintray_api.diff: No longer use bintray
 +    - bintray_dependencies.diff: No longer use bintray
 +    - diagnostics_jquery.diff: Minified .js not exist
 +    - disable_css3pie.diff: No longer use css3pie
 +    - remove_test_dependencies.diff: Integrated into disable_tests.diff
 +  * Multiple new patches under debian/patches/:
 +    - disable_aws.diff: AWS SDK for Java is not in Debian
 +    - disable_java9.diff: java9.gradle causes errors
 +    - taskOrdering.diff: shouldRunAfter() is not in Gradle 1.5
 +    - maven_depends.diff: Maven module uses jcommander but does not declare
 +    - maven_testng.diff: Maven module uses a deprecated API from testng
 +    - nekohtml.diff: Fix nekohtml usage
 +    - relax_warnings.diff: strictCompile.gradle is too strict
 +    - eclipse-aether.diff: Original aether is deprecated
 +    - maven-aether-provider.diff: Used deprecated API of maven-aether-provider
 +  * gradle-doc no longer provides Gradle User Guide and DSL Reference because
 +    missing Sonar plugins cause their compilation to produce errors.
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Mon, 13 Jul 2015 22:47:30 +0200
 +
 +gradle (1.12-1) experimental; urgency=medium
 +
 +  * New upstream release (Closes: #733148)
 +  * d/control: Refresh multiple Build-Depends and Depends
 +  * d/control: Add myself as Uploaders (Closes: #683666)
 +  * d/bootstrap: Use Gradle 1.5 for bootstrap
 +  * d/gradle.1.md: Updated man page for gradle using Pandoc Markdown
 +  * Remove most symlinks to external jar files
 +  * Install multiple doc-base for all documentations
 +  * Move jars between packages
 +    - gradle-cli.jar from gradle to libgradle-core-java
 +    - gradle-open-api.jar from gradle to libgradle-core-java
 +    - gradle-messaging.jar from gradle to libgradle-core-java
 +    - gradle-native.jar from gradle to libgradle-core-java
 +    - gradle-tooling-api.jar from gradle to libgradle-core-java
 +  * Drop multiple patches under debian/patches/:
 +    - 13_fix_javadocs_links.diff: Already merged into docs.diff
 +    - 23_replace_jna-posix_with_jnr-posix.diff: Future Gradle no longer use jnr
 +    - 24_pegdown.diff: Pegdown is already in Debian
 +    - 27_maven.diff: Already merged into use_local_artifacts.diff
 +    - 28_findbugs.diff: Findbugs is already in Debian
 +    - 31_hamcrest_12.diff: This patch is for tests codes, hence not needed
 +    - 90_respect_user_java_home.diff: No longer needed in Gradle 1.12
 +  * Multiple new patches under debian/patches/
 +    - bintray-api.diff: Update the usage of bintray APIs 0.8.1
 +    - bintray-dependencies.diff: bintray libraries are renamed in 0.8.1
 +    - build_init.diff: build-init.gradle uses APIs higher than Gradle 1.5
 +    - diagnostics_jquery.diff: Use local jQuery instead of shipping one
 +    - disable_buildSrc_tests.diff: Disable buildSrc tests
 +    - disable_distributions.diff: Disable the tasks to generate a Zip file
 +    - disable_docs.diff: Temporarily disable Gradle documentations
 +    - disable_sonar.diff: Updated version of 02_sonar.diff
 +    - disable_tests.diff: Extended version of 32_disable_it.diff
 +    - fix_DocGenerationException.diff:
 +    - jetty.diff: Replace some Jetty libraries with existing ones
 +    - remove_test_depedencies.diff: Remove dependencies for building tests
 +    - search_system_jar.diff: Let Gradle search Java libraries in
 +      /usr/share/java/
 +    - use_local_artifacts.diff: Updated version of 01_use_debian_jars.diff
 +
 + -- Kai-Chung Yan <seamlikok at gmail.com>  Fri, 26 Jun 2015 23:44:30 +0200
 +
 +gradle (1.5-3) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Fixed a compatibility issue with testng 6.9
 +  * Use the JDK 7 API for the chmod/stat operations until jnr-posix
 +    is fixed in sid
 +  * Removed a failing assertion in JUnitTestEventAdapter
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Fri, 05 Jun 2015 14:40:27 +0200
 +
 +gradle (1.5-2) unstable; urgency=medium
 +
 +  * Team upload.
 +  * Fixed a build failure caused by the transition of libspock-java to cglib3
 +  * Added an explicit build dependency on libaether-java
 +  * Standards-Version updated to 3.9.6 (no changes)
 +
 + -- Emmanuel Bourg <ebourg at apache.org>  Wed, 08 Oct 2014 09:45:56 +0200
 +
 +gradle (1.5-1) unstable; urgency=medium
 +
 +  [ Emmanuel Bourg ]
 +  * Team upload.
 +  * New upstream release
 +    - Added a build dependency on libjatl-java
 +    - Refreshed the patches
 +  * Fixed a compilation error with Java 8
 +  * Standards-Version updated to 3.9.5 (no changes)
 +  * Updated the version of Guava used to fix a clean error
 +  * Use XZ compression for the upstream tarball
 +  * Switch to debhelper level 9
 +
 +  [ Miguel Landaeta ]
 +  * Add patch to don't override user defined JAVA_HOME in the gradle script.
 +    (Closes: #719814).
 +  * Fix possible-unindented-list-in-extended-description lintian tag.
 +
 + -- Miguel Landaeta <nomadium at debian.org>  Tue, 13 May 2014 17:38:10 -0300
 +
 +gradle (1.4-2) unstable; urgency=low
 +
 +  * Fix compatibility with Apache Ivy 2.3 (Closes: #713171):
 +    - d/patches/35_ivy_23.diff: fix FTBFS on downloadRepositoryResource method
 +    - d/control: {Build,}-Depends on ivy (>= 2.3)
 +  * d/patches/34_disable_code_quality.diff: Disable some code analysis check
 +    to speed-up package build.
 +  * d/control: Merge Depends/Recommends field because Gradle just fails on
 +    missing dependencies (event if module is not used by user).
 +    (Closes: #718960, #707764).
 +
 + -- Damien Raude-Morvan <drazzib at debian.org>  Sun, 11 Aug 2013 16:13:00 +0200
 +
 +gradle (1.4-1) unstable; urgency=low
 +
 +  * New upstream release.
 +  * Upload to unstable.
 +  * Merge all plugins packages into gradle-plugins: there is not real value
 +    in providing all those small packages since libgradle-core-java Depends
 +    on most of plugins dependencies.
 +  * d/control: Build-Depends on libasm4-java instead of libasm3-java.
 +  * d/control: Add Build-Depends on libnative-platform-java and
 +    libnative-platform-jni.
 +  * d/control: Build-Depends on libjarjar-java (>= 1.4+svn142-1) to build
 +    Gradle with jarjar which handle correctly updating the fully qualified
 +    class names in the jar's resources. Otherwise, we get errors during plexus
 +    startup.
 +  * d/rules: Add support for DEB_BUILD_OPTIONS parallel=n using new Gradle
 +    parallel feature.
 +  * d/control: Add Build-Depends on libkryo-java.
 +  * d/control: Bump Standards-Version to 3.9.4 (no changes needed).
 +  * d/control: Use canonical URL for Vcs-* fields.
 +
 + -- Damien Raude-Morvan <drazzib at debian.org>  Tue, 05 Feb 2013 23:38:19 +0100
 +
 +gradle (1.1-1) experimental; urgency=low
 +
 +  * New upstream release (Closes: #667077).
 +
 +  [ Miguel Landaeta ]
 +  * Replace dependencies on jna-posix library with jnr-posix. (Closes: #628662).
 +
 +  [ Damien Raude-Morvan ]
 +  * d/control: Add myself as Uploader.
 +  * d/control: Depends and B-D on new groovy (>= 1.8) (Closes: #637273).
 +  * Update all patches for new Gradle 1.1:
 +    - Drop d/patches/12_fix_missing_classpath.diff since its not needed anymore.
 +  * d/control: Replace B-D on libcommons-httpclient-java to libhttpclient-java.
 +  * d/control: Replace B-D on libgoogle-collections-java to libguava-java.
 +  * d/control: Add B-D on libjarjar-java,
 +    libjcifs-java, libjcip-annotations-java.
 +  * d/control: Drop B-D on libjoptsimple-java and libjzlib-java.
 +  * d/control: Replace B-D on maven (>= 3.0.4-4) instead of libmaven2-*.
 +  * d/bootstrap.sh: Update to Gradle 1.1 and add Provides for libraries.
 +  * Bump Standards-Version to 3.9.3: no changes needed.
 +  * Generate documentation:
 +    - d/patches/21_docs.diff: Fix links in docbook files.
 +    - Add B-D on docbook-xsl for documentation export.
 +    - Add B-D on libxalan2-java, libxerces2-java, libxslthl-java
 +      and libcore-renderer-java.
 +  * Enable new modules module cpp, ear, javascript, signing:
 +    - Add B-D on libbcpg-java and libbcprov-java.
 +    - Add B-D on librhino-java, libgoogle-gson-java.
 +  * Tomcat 6 / 7 compatibility (Closes: #683595):
 +    - Depends in libservlet2.5-java and libecj-java instead of libtomcat6-java.
 +  * Include new d/watch from Bart Martens <bartm at debian.org>.
 +
 + -- Damien Raude-Morvan <drazzib at debian.org>  Wed, 26 Dec 2012 23:52:01 +0100
 +
 +gradle (1.0~m3-1) unstable; urgency=low
 +
 +  * New upstream release.
 +  * Fix FTBFS bug due to changes introduced in recent Groovy versions.
 +    (Closes: #625767).
 +  * Refresh patches.
 +  * Drop libgradle-eclipse-java and libgradle-idea-java packages.
 +  * Add libgradle-ide-java package.
 +  * Set Ant >= 1.8 as the minimal version to depend on.
 +  * Add Depends on bsh and libtomcat6-java.
 +  * Bump Standards-Version to 3.9.2. No changes were required.
 +  * Update watch file.
 +  * Fix missing-classpath lintian warnings.
 +  * Update copyright dates and make it DEP-5 compliant.
 +  * Add README.source.
 +  * Link javadocs to system javadocs.
 +
 + -- Miguel Landaeta <miguel at miguel.cc>  Tue, 31 May 2011 00:47:16 +0200
 +
 +gradle (0.9.2-1) unstable; urgency=low
 +
 +  * New upstream release.
 +  * Upload to unstable.
 +  * Refresh patches.
 +  * Add Build-Depends on libgradle-maven-java.
 +  * Update watch file.
 +  * Update copyright dates.
 +  * Drop unneeded patch for liblogback-java and set (>= 0.9.28) as
 +    minimal version to depend on.
 +  * Drop Build-Depends on quilt.
 +
 + -- Miguel Landaeta <miguel at miguel.cc>  Sat, 26 Mar 2011 23:07:59 +0100
 +
 +gradle (0.9.1-1) experimental; urgency=low
 +
 +  * Initial release. (Closes: #587832).
 +
 + -- Miguel Landaeta <miguel at miguel.cc>  Tue, 04 Jan 2011 19:43:27 -0430
diff --cc debian/control
index dd7e2ef,0000000..2e7b220
mode 100644,000000..100644
--- a/debian/control
+++ b/debian/control
@@@ -1,237 -1,0 +1,237 @@@
 +Source: gradle
 +Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
 +Uploaders: Damien Raude-Morvan <drazzib at debian.org>,
 +           Kai-Chung Yan <seamlikok at gmail.com>
 +Section: java
 +Priority: optional
 +Build-Depends: ant,
 +               bnd (>= 2.1.0),
 +               checkstyle,
 +               debhelper (>= 10),
 +               default-jdk-doc,
 +               default-jdk-headless | default-jdk (>= 2:1.7),
 +               dh-exec,
 +               docbook-xsl,
 +               gradle (>= 2.13),
 +               groovy (>= 2.4.7),
 +               groovy-doc,
 +               ivy,
 +               javahelper,
 +               junit4,
 +               libantlr-java,
 +               libasm-java (>= 5.0),
 +               libatinject-jsr330-api-java,
 +               libbcpg-java,
 +               libcglib-nodep-java,
 +               libclassycle-java,
 +               libcommons-cli-java,
 +               libcommons-collections3-java,
 +               libcommons-io-java,
 +               libcommons-lang-java (>= 2.6),
 +               libcommons-lang3-java,
 +               libcore-renderer-java,
 +               libdom4j-java,
 +               libfindbugs-java,
 +               libgoogle-gson-java,
 +               libguava-java,
 +               libhttpclient-java,
 +               libhttpcore-java,
 +               libjansi-java,
 +               libjarjar-java,
 +               libjatl-java,
 +               libjaxen-java,
 +               libjcifs-java,
 +               libjcip-annotations-java,
 +               libjetty9-java,
 +               libjetty9-extra-java,
 +               libjhighlight-java,
 +               libjna-java,
 +               libjs-jquery,
 +               libjsch-java,
 +               libjsoup-java,
 +               libkryo-java,
 +               liblogback-java,
 +               libmaven3-core-java (>= 3.5.0),
-                libnative-platform-java (>= 0.11),
++               libnative-platform-java (>= 0.14),
 +               libnekohtml-java,
 +               libobjenesis-java,
 +               libpegdown-java,
 +               libplexus-component-annotations-java (>= 1.7.1-6~),
 +               libplexus-container-default1.5-java,
 +               libplexus-interpolation-java,
 +               libplexus-utils-java,
 +               libpolyglot-maven-java,
 +               librhino-java,
 +               libservlet3.1-java,
 +               libsimple-http-java,
 +               libslf4j-java,
 +               libspock-java (>= 0.7),
 +               libtomcat8-java,
 +               libwagon-file-java,
 +               libwagon-http-java,
 +               libwagon2-java,
 +               libxalan2-java,
 +               libxbean-reflect-java,
 +               libxerces2-java,
 +               libxslthl-java,
 +               maven-repo-helper,
 +               pandoc,
 +               testng
 +Standards-Version: 4.1.1
 +Vcs-Git: https://anonscm.debian.org/git/pkg-java/gradle.git
 +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/gradle.git
 +Homepage: http://gradle.org
 +
 +Package: gradle
 +Architecture: all
 +Depends: default-jre-headless (>= 2:1.7) | java7-runtime-headless,
 +         libgradle-core-java (>= ${binary:Version}),
 +         libgradle-plugins-java (>= ${binary:Version}),
 +         ${misc:Depends}
 +Breaks: libgradle-core-java (<< 1.12)
 +Replaces: libgradle-core-java (<< 1.12)
 +Suggests: default-jre, gradle-doc
 +Description: Powerful build system for the JVM
 + Gradle is a build tool with a focus on build automation and support for
 + multi-language development. If you are building, testing, publishing, and
 + deploying software on any platform, Gradle offers a flexible model that can
 + support the entire development lifecycle from compiling and packaging code to
 + publishing web sites. Gradle has been designed to support build automation
 + across multiple languages and platforms including Java, Scala, Android, C/C++,
 + and Groovy, and is closely integrated with development tools and continuous
 + integration servers including Eclipse, IntelliJ, and Jenkins.
 + .
 + Gradle has an GUI interface by using "gradle --gui". If you want to use it,
 + default-jre must be installed to provide GUI functionalities.
 +
 +Package: libgradle-core-java
 +Architecture: all
 +Depends: ant,
 +         groovy (>= 2.4.7),
 +         ivy,
 +         libasm-java (>= 5.0),
 +         libatinject-jsr330-api-java,
 +         libcommons-collections3-java,
 +         libcommons-io-java,
 +         libcommons-lang-java (>= 2.6),
 +         libguava-java,
 +         libhttpclient-java,
 +         libhttpcore-java,
 +         libjansi-java,
 +         libjarjar-java,
 +         libjcifs-java,
 +         libjcip-annotations-java,
 +         libjna-java,
 +         libjsch-java,
 +         libkryo-java,
 +         liblogback-java,
 +         libnative-platform-java (>= 0.11),
 +         libnekohtml-java,
 +         libreflectasm-java,
 +         libslf4j-java,
 +         libxbean-reflect-java,
 +         ${misc:Depends}
 +Breaks: libgradle-wrapper-java,
 +        libgradle-plugins-java (<< 1.12)
 +Replaces: libgradle-wrapper-java,
 +          libgradle-plugins-java (<< 1.12)
 +Description: Powerful build system for the JVM - Core libraries
 + Gradle is a build tool with a focus on build automation and support for
 + multi-language development. If you are building, testing, publishing, and
 + deploying software on any platform, Gradle offers a flexible model that can
 + support the entire development lifecycle from compiling and packaging code to
 + publishing web sites. Gradle has been designed to support build automation
 + across multiple languages and platforms including Java, Scala, Android, C/C++,
 + and Groovy, and is closely integrated with development tools and continuous
 + integration servers including Eclipse, IntelliJ, and Jenkins.
 + .
 + This package contains the Gradle Core API library.
 +
 +Package: libgradle-plugins-java
 +Architecture: all
 +Depends: ant-optional,
 +         bnd (>= 2.1.0),
 +         junit4,
 +         libantlr-java,
 +         libatinject-jsr330-api-java,
 +         libbcpg-java,
 +         libcommons-cli-java,
 +         libdom4j-java,
 +         libfindbugs-java,
 +         libgoogle-gson-java,
 +         libgradle-core-java (>= ${binary:Version}),
 +         libjatl-java,
 +         libjaxen-java,
 +         libjetty9-java,
 +         libjetty9-extra-java,
 +         libjs-jquery,
 +         libmaven3-core-java (>= 3.5.0),
 +         libobjenesis-java,
 +         libplexus-component-annotations-java,
 +         libplexus-container-default1.5-java,
 +         libplexus-interpolation-java,
 +         libplexus-utils-java,
 +         libpolyglot-maven-java,
 +         librhino-java,
 +         libservlet3.1-java,
 +         libsimple-http-java,
 +         libtomcat8-java,
 +         libwagon-file-java,
 +         libwagon-http-java,
 +         libxerces2-java,
 +         testng,
 +         ${misc:Depends}
 +Breaks: libgradle-announce-java,
 +        libgradle-antlr-java,
 +        libgradle-code-quality-java,
 +        libgradle-ear-java,
 +        libgradle-ide-java,
 +        libgradle-javascript-java,
 +        libgradle-jetty-java,
 +        libgradle-maven-java,
 +        libgradle-osgi-java,
 +        libgradle-scala-java,
 +        libgradle-signing-java,
 +        libgradle-core-java (<< 3.1-1~)
 +Replaces: libgradle-announce-java,
 +          libgradle-antlr-java,
 +          libgradle-code-quality-java,
 +          libgradle-ear-java,
 +          libgradle-ide-java,
 +          libgradle-javascript-java,
 +          libgradle-jetty-java,
 +          libgradle-maven-java,
 +          libgradle-osgi-java,
 +          libgradle-scala-java,
 +          libgradle-signing-java,
 +          libgradle-core-java (<< 3.1-1~)
 +Description: Powerful build system for the JVM - All plugins
 + Gradle is a build tool with a focus on build automation and support for
 + multi-language development. If you are building, testing, publishing, and
 + deploying software on any platform, Gradle offers a flexible model that can
 + support the entire development lifecycle from compiling and packaging code to
 + publishing web sites. Gradle has been designed to support build automation
 + across multiple languages and platforms including Java, Scala, Android, C/C++,
 + and Groovy, and is closely integrated with development tools and continuous
 + integration servers including Eclipse, IntelliJ, and Jenkins.
 + .
 + This package contains the standard Gradle plugins except for the Sonar and the
 + Sonar Runner plugin, and it does not support Zinc Scala compiler.
 +
 +Package: gradle-doc
 +Architecture: all
 +Section: doc
 +Depends: default-jdk-doc,
 +         groovy-doc,
 +         ${misc:Depends}
 +Description: Powerful build system for the JVM - Documentations
 + Gradle is a build tool with a focus on build automation and support for
 + multi-language development. If you are building, testing, publishing, and
 + deploying software on any platform, Gradle offers a flexible model that can
 + support the entire development lifecycle from compiling and packaging code to
 + publishing web sites. Gradle has been designed to support build automation
 + across multiple languages and platforms including Java, Scala, Android, C/C++,
 + and Groovy, and is closely integrated with development tools and continuous
 + integration servers including Eclipse, IntelliJ, and Jenkins.
 + .
 + This package contains Gradle API Javadoc and Groovydoc.
diff --cc debian/libgradle-core-java.links
index 25d753f,0000000..70b6e76
mode 100755,000000..100755
--- a/debian/libgradle-core-java.links
+++ b/debian/libgradle-core-java.links
@@@ -1,18 -1,0 +1,20 @@@
 +#!/usr/bin/dh-exec
 +
 +usr/share/java/gradle-base-services-${GRADLE_VERSION}.jar        usr/share/gradle/lib/gradle-base-services-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-base-services-groovy-${GRADLE_VERSION}.jar usr/share/gradle/lib/gradle-base-services-groovy-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-cli-${GRADLE_VERSION}.jar                  usr/share/gradle/lib/gradle-cli-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-core-${GRADLE_VERSION}.jar                 usr/share/gradle/lib/gradle-core-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-docs-${GRADLE_VERSION}.jar                 usr/share/gradle/lib/gradle-docs-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-installation-beacon-${GRADLE_VERSION}.jar  usr/share/gradle/lib/gradle-installation-beacon-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-jvm-services-${GRADLE_VERSION}.jar         usr/share/gradle/lib/gradle-jvm-services-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-logging-${GRADLE_VERSION}.jar              usr/share/gradle/lib/gradle-logging-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-messaging-${GRADLE_VERSION}.jar            usr/share/gradle/lib/gradle-messaging-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-model-core-${GRADLE_VERSION}.jar           usr/share/gradle/lib/gradle-model-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-model-groovy-${GRADLE_VERSION}.jar         usr/share/gradle/lib/gradle-model-groovy-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-native-${GRADLE_VERSION}.jar               usr/share/gradle/lib/gradle-native-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-open-api-${GRADLE_VERSION}.jar             usr/share/gradle/lib/gradle-open-api-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-process-services-${GRADLE_VERSION}.jar     usr/share/gradle/lib/gradle-process-services-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-resources-${GRADLE_VERSION}.jar            usr/share/gradle/lib/gradle-resources-${GRADLE_VERSION}.jar
- usr/share/java/gradle-tooling-api-${GRADLE_VERSION}.jar          usr/share/gradle/lib/gradle-tooling-api-${GRADLE_VERSION}.jar
++usr/share/java/gradle-tooling-api-${GRADLE_VERSION}.jar          usr/share/gradle/lib/gradle-tooling-api-${GRADLE_VERSION}.jar
++usr/share/java/gradle-workers-${GRADLE_VERSION}.jar              usr/share/gradle/lib/gradle-workers-${GRADLE_VERSION}.jar
++usr/share/java/gradle-version-info-${GRADLE_VERSION}.jar         usr/share/gradle/lib/plugins/gradle-version-info-${GRADLE_VERSION}.jar
diff --cc debian/libgradle-core-java.poms
index 6128dd9,0000000..b118162
mode 100644,000000..100644
--- a/debian/libgradle-core-java.poms
+++ b/debian/libgradle-core-java.poms
@@@ -1,16 -1,0 +1,18 @@@
 +subprojects/base-services-groovy/build/pom.xml --artifact=subprojects/base-services-groovy/build/libs/*.jar --java-lib
 +subprojects/base-services/build/pom.xml        --artifact=subprojects/base-services/build/libs/*.jar        --java-lib
 +subprojects/cli/build/pom.xml                  --artifact=subprojects/cli/build/libs/*.jar                  --java-lib
 +subprojects/core/build/pom.xml                 --artifact=subprojects/core/build/libs/*.jar                 --java-lib
 +subprojects/docs/build/pom.xml                 --artifact=subprojects/docs/build/libs/*.jar                 --java-lib
 +subprojects/installation-beacon/build/pom.xml  --artifact=subprojects/installation-beacon/build/libs/*.jar  --java-lib
 +subprojects/jvm-services/build/pom.xml         --artifact=subprojects/jvm-services/build/libs/*.jar         --java-lib
 +subprojects/logging/build/pom.xml              --artifact=subprojects/logging/build/libs/*.jar              --java-lib
 +subprojects/messaging/build/pom.xml            --artifact=subprojects/messaging/build/libs/*.jar            --java-lib
 +subprojects/model-core/build/pom.xml           --artifact=subprojects/model-core/build/libs/*.jar           --java-lib
 +subprojects/model-groovy/build/pom.xml         --artifact=subprojects/model-groovy/build/libs/*.jar         --java-lib
 +subprojects/native/build/pom.xml               --artifact=subprojects/native/build/libs/*.jar               --java-lib
 +subprojects/open-api/build/pom.xml             --artifact=subprojects/open-api/build/libs/*.jar             --java-lib
 +subprojects/process-services/build/pom.xml     --artifact=subprojects/process-services/build/libs/*.jar     --java-lib
 +subprojects/resources/build/pom.xml            --artifact=subprojects/resources/build/libs/*.jar            --java-lib
 +subprojects/tooling-api/build/pom.xml          --artifact=subprojects/tooling-api/build/libs/*.jar          --java-lib
++subprojects/workers/build/pom.xml              --artifact=subprojects/workers/build/libs/*.jar              --java-lib
++subprojects/version-info/build/pom.xml         --artifact=subprojects/version-info/build/libs/prod/*.jar    --java-lib
diff --cc debian/libgradle-plugins-java.links
index 08bd11b,0000000..6d12639
mode 100755,000000..100755
--- a/debian/libgradle-plugins-java.links
+++ b/debian/libgradle-plugins-java.links
@@@ -1,45 -1,0 +1,44 @@@
 +#!/usr/bin/dh-exec
 +
 +usr/share/java/gradle-announce-${GRADLE_VERSION}.jar              usr/share/gradle/lib/plugins/gradle-announce-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-antlr-${GRADLE_VERSION}.jar                 usr/share/gradle/lib/plugins/gradle-antlr-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-build-comparison-${GRADLE_VERSION}.jar      usr/share/gradle/lib/plugins/gradle-build-comparisn-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-build-init-${GRADLE_VERSION}.jar            usr/share/gradle/lib/plugins/gradle-build-init-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-code-quality-${GRADLE_VERSION}.jar          usr/share/gradle/lib/plugins/gradle-code-quality-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-composite-builds-${GRADLE_VERSION}.jar      usr/share/gradle/lib/gradle-composite-builds-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-dependency-management-${GRADLE_VERSION}.jar usr/share/gradle/lib/plugins/gradle-dependency-management-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-diagnostics-${GRADLE_VERSION}.jar           usr/share/gradle/lib/plugins/gradle-diagnostics-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-ear-${GRADLE_VERSION}.jar                   usr/share/gradle/lib/plugins/gradle-ear-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-ide-${GRADLE_VERSION}.jar                   usr/share/gradle/lib/plugins/gradle-ide-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-ide-native-${GRADLE_VERSION}.jar            usr/share/gradle/lib/plugins/gradle-ide-native-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-ide-play-${GRADLE_VERSION}.jar              usr/share/gradle/lib/gradle-ide-play-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-ivy-${GRADLE_VERSION}.jar                   usr/share/gradle/lib/plugins/gradle-ivy-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-jacoco-${GRADLE_VERSION}.jar                usr/share/gradle/lib/plugins/gradle-jacoco-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-javascript-${GRADLE_VERSION}.jar            usr/share/gradle/lib/plugins/gradle-javascript-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-jetty-${GRADLE_VERSION}.jar                 usr/share/gradle/lib/plugins/gradle-jetty-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-language-groovy-${GRADLE_VERSION}.jar       usr/share/gradle/lib/plugins/gradle-language-groovy-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-language-java-${GRADLE_VERSION}.jar         usr/share/gradle/lib/plugins/gradle-language-java-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-language-jvm-${GRADLE_VERSION}.jar          usr/share/gradle/lib/plugins/gradle-language-jvm-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-language-native-${GRADLE_VERSION}.jar       usr/share/gradle/lib/plugins/gradle-language-native-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-language-scala-${GRADLE_VERSION}.jar        usr/share/gradle/lib/plugins/gradle-language-scala-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-maven-${GRADLE_VERSION}.jar                 usr/share/gradle/lib/plugins/gradle-maven-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-osgi-${GRADLE_VERSION}.jar                  usr/share/gradle/lib/plugins/gradle-osgi-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-platform-base-${GRADLE_VERSION}.jar         usr/share/gradle/lib/plugins/gradle-platform-base-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-platform-jvm-${GRADLE_VERSION}.jar          usr/share/gradle/lib/plugins/gradle-platform-jvm-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-platform-native-${GRADLE_VERSION}.jar       usr/share/gradle/lib/plugins/gradle-platform-native-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-platform-play-${GRADLE_VERSION}.jar         usr/share/gradle/lib/plugins/gradle-platform-play-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-plugin-development-${GRADLE_VERSION}.jar    usr/share/gradle/lib/plugins/gradle-plugin-development-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-plugin-use-${GRADLE_VERSION}.jar            usr/share/gradle/lib/plugins/gradle-plugin-use-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-plugins-${GRADLE_VERSION}.jar               usr/share/gradle/lib/plugins/gradle-plugins-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-publish-${GRADLE_VERSION}.jar               usr/share/gradle/lib/plugins/gradle-publish-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-reporting-${GRADLE_VERSION}.jar             usr/share/gradle/lib/plugins/gradle-reporting-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-resources-http-${GRADLE_VERSION}.jar        usr/share/gradle/lib/plugins/gradle-resources-http-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-resources-sftp-${GRADLE_VERSION}.jar        usr/share/gradle/lib/plugins/gradle-resources-sftp-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-scala-${GRADLE_VERSION}.jar                 usr/share/gradle/lib/plugins/gradle-scala-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-signing-${GRADLE_VERSION}.jar               usr/share/gradle/lib/plugins/gradle-signing-${GRADLE_VERSION}.jar
- usr/share/java/gradle-task-cache-http-${GRADLE_VERSION}.jar       usr/share/gradle/lib/gradle-task-cache-http-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-test-kit-${GRADLE_VERSION}.jar              usr/share/gradle/lib/plugins/gradle-test-kit-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-testing-base-${GRADLE_VERSION}.jar          usr/share/gradle/lib/plugins/gradle-testing-base-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-testing-jvm-${GRADLE_VERSION}.jar           usr/share/gradle/lib/plugins/gradle-testing-jvm-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-testing-native-${GRADLE_VERSION}.jar        usr/share/gradle/lib/plugins/gradle-testing-native-${GRADLE_VERSION}.jar
 +usr/share/java/gradle-tooling-api-builders-${GRADLE_VERSION}.jar  usr/share/gradle/lib/plugins/gradle-tooling-api-builders-${GRADLE_VERSION}.jar
- usr/share/java/gradle-wrapper-${GRADLE_VERSION}.jar               usr/share/gradle/lib/gradle-wrapper-${GRADLE_VERSION}.jar
++usr/share/java/gradle-wrapper-${GRADLE_VERSION}.jar               usr/share/gradle/lib/gradle-wrapper-${GRADLE_VERSION}.jar
diff --cc debian/libgradle-plugins-java.poms
index 08ec28f,0000000..8335e8a
mode 100644,000000..100644
--- a/debian/libgradle-plugins-java.poms
+++ b/debian/libgradle-plugins-java.poms
@@@ -1,43 -1,0 +1,42 @@@
 +subprojects/announce/build/pom.xml              --artifact=subprojects/announce/build/libs/*.jar               --java-lib
 +subprojects/antlr/build/pom.xml                 --artifact=subprojects/antlr/build/libs/*.jar                  --java-lib
 +subprojects/build-comparison/build/pom.xml      --artifact=subprojects/build-comparison/build/libs/*.jar       --java-lib
 +subprojects/build-init/build/pom.xml            --artifact=subprojects/build-init/build/libs/*.jar             --java-lib
 +subprojects/code-quality/build/pom.xml          --artifact=subprojects/code-quality/build/libs/*.jar           --java-lib
 +subprojects/composite-builds/build/pom.xml      --artifact=subprojects/composite-builds/build/libs/*.jar       --java-lib
 +subprojects/dependency-management/build/pom.xml --artifact=subprojects/dependency-management/build/libs/*.jar  --java-lib
 +subprojects/diagnostics/build/pom.xml           --artifact=subprojects/diagnostics/build/libs/*.jar            --java-lib
 +subprojects/ear/build/pom.xml                   --artifact=subprojects/ear/build/libs/*.jar                    --java-lib
 +subprojects/ide-native/build/pom.xml            --artifact=subprojects/ide-native/build/libs/*.jar             --java-lib
 +subprojects/ide-play/build/pom.xml              --artifact=subprojects/ide-play/build/libs/*.jar               --java-lib
 +subprojects/ide/build/pom.xml                   --artifact=subprojects/ide/build/libs/*.jar                    --java-lib
 +subprojects/ivy/build/pom.xml                   --artifact=subprojects/ivy/build/libs/*.jar                    --java-lib
 +subprojects/jacoco/build/pom.xml                --artifact=subprojects/jacoco/build/libs/*.jar                 --java-lib
 +subprojects/javascript/build/pom.xml            --artifact=subprojects/javascript/build/libs/*.jar             --java-lib
 +subprojects/jetty/build/pom.xml                 --artifact=subprojects/jetty/build/libs/*.jar                  --java-lib
 +subprojects/language-groovy/build/pom.xml       --artifact=subprojects/language-groovy/build/libs/*.jar        --java-lib
 +subprojects/language-java/build/pom.xml         --artifact=subprojects/language-java/build/libs/*.jar          --java-lib
 +subprojects/language-jvm/build/pom.xml          --artifact=subprojects/language-jvm/build/libs/*.jar           --java-lib
 +subprojects/language-native/build/pom.xml       --artifact=subprojects/language-native/build/libs/*.jar        --java-lib
 +subprojects/language-scala/build/pom.xml        --artifact=subprojects/language-scala/build/libs/*.jar         --java-lib
 +subprojects/maven/build/pom.xml                 --artifact=subprojects/maven/build/libs/*.jar                  --java-lib
 +subprojects/osgi/build/pom.xml                  --artifact=subprojects/osgi/build/libs/*.jar                   --java-lib
 +subprojects/platform-base/build/pom.xml         --artifact=subprojects/platform-base/build/libs/*.jar          --java-lib
 +subprojects/platform-jvm/build/pom.xml          --artifact=subprojects/platform-jvm/build/libs/*.jar           --java-lib
 +subprojects/platform-native/build/pom.xml       --artifact=subprojects/platform-native/build/libs/*.jar        --java-lib
 +subprojects/platform-play/build/pom.xml         --artifact=subprojects/platform-play/build/libs/*.jar          --java-lib
 +subprojects/plugin-development/build/pom.xml    --artifact=subprojects/plugin-development/build/libs/*.jar     --java-lib
 +subprojects/plugin-use/build/pom.xml            --artifact=subprojects/plugin-use/build/libs/*.jar             --java-lib
 +subprojects/plugins/build/pom.xml               --artifact=subprojects/plugins/build/libs/*.jar                --java-lib
 +subprojects/publish/build/pom.xml               --artifact=subprojects/publish/build/libs/*.jar                --java-lib
 +subprojects/reporting/build/pom.xml             --artifact=subprojects/reporting/build/libs/*.jar              --java-lib
 +subprojects/resources-http/build/pom.xml        --artifact=subprojects/resources-http/build/libs/*.jar         --java-lib
 +subprojects/resources-sftp/build/pom.xml        --artifact=subprojects/resources-sftp/build/libs/*.jar         --java-lib
 +subprojects/scala/build/pom.xml                 --artifact=subprojects/scala/build/libs/*.jar                  --java-lib
 +subprojects/signing/build/pom.xml               --artifact=subprojects/signing/build/libs/*.jar                --java-lib
- subprojects/task-cache-http/build/pom.xml       --artifact=subprojects/task-cache-http/build/libs/*.jar        --java-lib
 +subprojects/test-kit/build/pom.xml              --artifact=subprojects/test-kit/build/libs/*.jar               --java-lib
 +subprojects/testing-base/build/pom.xml          --artifact=subprojects/testing-base/build/libs/*.jar           --java-lib
 +subprojects/testing-jvm/build/pom.xml           --artifact=subprojects/testing-jvm/build/libs/*.jar            --java-lib
 +subprojects/testing-native/build/pom.xml        --artifact=subprojects/testing-native/build/libs/*.jar         --java-lib
 +subprojects/tooling-api-builders/build/pom.xml  --artifact=subprojects/tooling-api-builders/build/libs/*.jar   --java-lib
 +subprojects/wrapper/build/pom.xml               --artifact=subprojects/wrapper/build/libs/gradle-wrapper-*.jar --java-lib
diff --cc debian/patches/33_scala_zinc.diff
index 4384e74,0000000..3432fd9
mode 100644,000000..100644
--- a/debian/patches/33_scala_zinc.diff
+++ b/debian/patches/33_scala_zinc.diff
@@@ -1,76 -1,0 +1,93 @@@
- Description: No Zinc Compiler (https://github.com/typesafehub/zinc) in Debian.
-              Zinc depends on SBT compiler and SBT is not yet in Debian
-              See SBT ITP : http://bugs.debian.org/639910
- Author: Damien Raude-Morvan <drazzib at debian.org>
-         Kai-Chung Yan (殷啟聰)
- Last-Update: 2016-10-20
++From: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
++Date: Sun, 12 Nov 2017 21:04:50 +0100
++Subject: _scala_zinc
++
++No Zinc Compiler (https://github.com/typesafehub/zinc) in Debian. Zinc depends
++on SBT compiler and SBT is not yet in Debian See SBT ITP :
++http://bugs.debian.org/639910
++
 +Forwarded: not-needed
++---
++ subprojects/language-scala/language-scala.gradle                   | 4 ++--
++ .../scala/internal/toolchain/DefaultScalaToolProvider.java         | 7 +------
++ .../org/gradle/api/internal/tasks/scala/ScalaCompilerFactory.java  | 6 ++----
++ .../main/java/org/gradle/api/plugins/scala/ScalaBasePlugin.java    | 6 +-----
++ 4 files changed, 6 insertions(+), 17 deletions(-)
++
++diff --git a/subprojects/language-scala/language-scala.gradle b/subprojects/language-scala/language-scala.gradle
++index 07037ed..d29778d 100644
 +--- a/subprojects/language-scala/language-scala.gradle
 ++++ b/subprojects/language-scala/language-scala.gradle
- @@ -8,8 +8,6 @@
++@@ -8,8 +8,6 @@ dependencies {
 +     compile project(":platformJvm")
 +     compile project(":languageJava")
 +     compile project(":languageJvm")
 +-    // keep in sync with ScalaLanguagePlugin code
 +-    provided("com.typesafe.zinc:zinc:0.3.7")
 + 
 +     testCompile libraries.groovy
 + }
- @@ -19,3 +17,5 @@
++@@ -19,3 +17,5 @@ useTestFixtures()
 + useTestFixtures(project: ":languageJvm", sourceSet: 'testFixtures')
 + useTestFixtures(project: ":platformBase")
 + useTestFixtures(project: ":launcher")
 ++
- +sourceSets.main.java { exclude "**/ZincScalaCompiler.java" }
- --- a/subprojects/scala/src/main/java/org/gradle/api/plugins/scala/ScalaBasePlugin.java
- +++ b/subprojects/scala/src/main/java/org/gradle/api/plugins/scala/ScalaBasePlugin.java
- @@ -153,11 +153,7 @@
-                  compile.getConventionMapping().map("zincClasspath", new Callable<Configuration>() {
-                      @Override
-                      public Configuration call() throws Exception {
- -                        Configuration config = project.getConfigurations().getAt(ZINC_CONFIGURATION_NAME);
- -                        if (config.getDependencies().isEmpty()) {
- -                            project.getDependencies().add("zinc", "com.typesafe.zinc:zinc:" + DefaultScalaToolProvider.DEFAULT_ZINC_VERSION);
- -                        }
- -                        return config;
- +                        return null;
-                      }
-                  });
-              }
+++sourceSets.main.java { exclude "**/ZincScalaCompiler*.java" }
++diff --git a/subprojects/language-scala/src/main/java/org/gradle/language/scala/internal/toolchain/DefaultScalaToolProvider.java b/subprojects/language-scala/src/main/java/org/gradle/language/scala/internal/toolchain/DefaultScalaToolProvider.java
++index fa3c128..1762649 100644
 +--- a/subprojects/language-scala/src/main/java/org/gradle/language/scala/internal/toolchain/DefaultScalaToolProvider.java
 ++++ b/subprojects/language-scala/src/main/java/org/gradle/language/scala/internal/toolchain/DefaultScalaToolProvider.java
- @@ -20,7 +20,6 @@
++@@ -20,7 +20,6 @@ import org.gradle.process.internal.daemon.WorkerDaemonManager;
 + import org.gradle.api.internal.tasks.scala.DaemonScalaCompiler;
 + import org.gradle.api.internal.tasks.scala.NormalizingScalaCompiler;
 + import org.gradle.api.internal.tasks.scala.ScalaJavaJointCompileSpec;
 +-import org.gradle.api.internal.tasks.scala.ZincScalaCompiler;
 + import org.gradle.language.base.internal.compile.CompileSpec;
 + import org.gradle.language.base.internal.compile.Compiler;
 + import org.gradle.platform.base.internal.toolchain.ToolProvider;
- @@ -49,11 +48,7 @@
++@@ -49,11 +48,7 @@ public class DefaultScalaToolProvider implements ToolProvider {
 +     @Override
 +     @SuppressWarnings("unchecked")
 +     public <T extends CompileSpec> org.gradle.language.base.internal.compile.Compiler<T> newCompiler(Class<T> spec) {
 +-        if (ScalaJavaJointCompileSpec.class.isAssignableFrom(spec)) {
 +-            Compiler<ScalaJavaJointCompileSpec> scalaCompiler = new ZincScalaCompiler(resolvedScalaClasspath, resolvedZincClasspath, gradleUserHomeDir);
 +-            return (Compiler<T>) new NormalizingScalaCompiler(new DaemonScalaCompiler<ScalaJavaJointCompileSpec>(rootProjectDir, scalaCompiler, compilerDaemonManager, resolvedZincClasspath));
 +-        }
 +-        throw new IllegalArgumentException(String.format("Cannot create Compiler for unsupported CompileSpec type '%s'", spec.getSimpleName()));
 ++        throw new org.gradle.api.GradleException("Gradle in Debian does not support Zinc compiler.");
 +     }
 + 
 +     @Override
++diff --git a/subprojects/scala/src/main/java/org/gradle/api/internal/tasks/scala/ScalaCompilerFactory.java b/subprojects/scala/src/main/java/org/gradle/api/internal/tasks/scala/ScalaCompilerFactory.java
++index 1e987f3..a1ee07f 100644
 +--- a/subprojects/scala/src/main/java/org/gradle/api/internal/tasks/scala/ScalaCompilerFactory.java
 ++++ b/subprojects/scala/src/main/java/org/gradle/api/internal/tasks/scala/ScalaCompilerFactory.java
- @@ -46,9 +46,7 @@
++@@ -46,9 +46,7 @@ public class ScalaCompilerFactory implements CompilerFactory<ScalaJavaJointCompi
 +         Set<File> zincClasspathFiles = zincClasspath.getFiles();
 + 
 +         // currently, we leave it to ZincScalaCompiler to also compile the Java code
 +-        Compiler<ScalaJavaJointCompileSpec> scalaCompiler = new DaemonScalaCompiler<ScalaJavaJointCompileSpec>(
 +-            rootProjectDirectory, new ZincScalaCompiler(scalaClasspathFiles, zincClasspathFiles, gradleUserHomeDir),
 +-            compilerDaemonFactory, zincClasspathFiles);
 +-        return new NormalizingScalaCompiler(scalaCompiler);
 ++        Compiler<ScalaJavaJointCompileSpec> scalaCompiler = null;
 ++        throw new org.gradle.api.GradleException("Gradle in Debian does not support Zinc compiler.");
 +     }
 + }
++diff --git a/subprojects/scala/src/main/java/org/gradle/api/plugins/scala/ScalaBasePlugin.java b/subprojects/scala/src/main/java/org/gradle/api/plugins/scala/ScalaBasePlugin.java
++index 3846391..f2828ab 100644
++--- a/subprojects/scala/src/main/java/org/gradle/api/plugins/scala/ScalaBasePlugin.java
+++++ b/subprojects/scala/src/main/java/org/gradle/api/plugins/scala/ScalaBasePlugin.java
++@@ -153,11 +153,7 @@ public class ScalaBasePlugin implements Plugin<Project> {
++                 compile.getConventionMapping().map("zincClasspath", new Callable<Configuration>() {
++                     @Override
++                     public Configuration call() throws Exception {
++-                        Configuration config = project.getConfigurations().getAt(ZINC_CONFIGURATION_NAME);
++-                        if (config.getDependencies().isEmpty()) {
++-                            project.getDependencies().add("zinc", "com.typesafe.zinc:zinc:" + DefaultScalaToolProvider.DEFAULT_ZINC_VERSION);
++-                        }
++-                        return config;
+++                        return null;
++                     }
++                 });
++             }
diff --cc debian/patches/34-disable-code-quality.patch
index 0000000,0000000..e94f9fd
new file mode 100644
--- /dev/null
+++ b/debian/patches/34-disable-code-quality.patch
@@@ -1,0 -1,0 +1,89 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sun, 12 Nov 2017 21:15:25 +0100
++Subject: 34 disable code quality
++
++Disable checkstyle and codenarc tasks during build Gradle failed to build on
++amd64 due to an apparent upstream bug. As extra comment, the issue is not
++present when gradle is built with Oracle JDK.
++
++Bug-Debian: http://bugs.debian.org/719415
++Bug-Upstream: http://issues.gradle.org/browse/GRADLE-2858
++Forwarded: not-needed
++---
++ build.gradle                                                        | 2 --
++ buildSrc/build.gradle                                               | 6 +-----
++ .../main/groovy/org/gradle/plugins/classycle/ClassyclePlugin.groovy | 1 -
++ subprojects/core/core.gradle                                        | 2 --
++ subprojects/docs/docs.gradle                                        | 6 +-----
++ 5 files changed, 2 insertions(+), 15 deletions(-)
++
++diff --git a/build.gradle b/build.gradle
++index fba4e24..543f7ca 100644
++--- a/build.gradle
+++++ b/build.gradle
++@@ -246,8 +246,6 @@ subprojects {
++         apply from: "$rootDir/gradle/publish.gradle"
++     }
++ 
++-    apply from: "$rootDir/gradle/codeQuality.gradle"
++-
++     if (isCiServer) {
++         reporting.baseDir "$rootProject.reporting.baseDir/${path.replaceFirst(':', '').replaceAll(':', '.')}"
++     }
++diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
++index 804d584..c32a847 100644
++--- a/buildSrc/build.gradle
+++++ b/buildSrc/build.gradle
++@@ -49,8 +49,4 @@ apply from: '../gradle/taskOrdering.gradle'
++ apply from: '../gradle/dependencies.gradle'
++ apply from: '../gradle/classycle.gradle'
++ 
++-ext.isCiServer = System.getenv().containsKey("TEAMCITY_VERSION")
++-
++-if (!isCiServer || (isCiServer && Boolean.getBoolean('enableCodeQuality'))) {
++-    apply from: '../gradle/codeQuality.gradle'
++-}
+++ext.isCiServer = System.getenv().containsKey("TEAMCITY_VERSION")
++\ No newline at end of file
++diff --git a/buildSrc/src/main/groovy/org/gradle/plugins/classycle/ClassyclePlugin.groovy b/buildSrc/src/main/groovy/org/gradle/plugins/classycle/ClassyclePlugin.groovy
++index 39b0dbb..542c9e0 100644
++--- a/buildSrc/src/main/groovy/org/gradle/plugins/classycle/ClassyclePlugin.groovy
+++++ b/buildSrc/src/main/groovy/org/gradle/plugins/classycle/ClassyclePlugin.groovy
++@@ -48,7 +48,6 @@ class ClassyclePlugin implements Plugin<Project> {
++             } as Action<Classycle>)
++             classycleTask.dependsOn(taskName)
++             project.tasks.getByPath('check').dependsOn(taskName)
++-            project.tasks.getByPath('codeQuality').dependsOn(taskName)
++         }
++     }
++ }
++diff --git a/subprojects/core/core.gradle b/subprojects/core/core.gradle
++index d09b1ce..6fa1f07 100755
++--- a/subprojects/core/core.gradle
+++++ b/subprojects/core/core.gradle
++@@ -14,8 +14,6 @@
++  * limitations under the License.
++  */
++ 
++-apply from: "$rootDir/gradle/taskProperties.gradle"
++-
++ sourceCompatibility = javaVersion.java9Compatible ? 1.6 : 1.5
++ 
++ configurations {
++diff --git a/subprojects/docs/docs.gradle b/subprojects/docs/docs.gradle
++index a48874e..c85a9ac 100755
++--- a/subprojects/docs/docs.gradle
+++++ b/subprojects/docs/docs.gradle
++@@ -394,11 +394,7 @@ task javadocAll(type: Javadoc) {
++     ext.entryPoint = "$destinationDir/index.html"
++ }
++ 
++-task checkstyleApi(type: Checkstyle) {
++-    source javadocAll.source
++-    configFile = file("$checkstyleConfigDir/checkstyle-api.xml")
++-    classpath = files()
++-    reports.xml.destination = file("$checkstyle.reportsDir/checkstyle-api.xml")
+++task checkstyleApi {
++ }
++ 
++ task userguideFragmentSrc(type: UserGuideTransformTask, dependsOn: [userguideStyleSheets]) {
diff --cc debian/patches/Groovy_projects_depends_on_localGroovy.patch
index 5cf1b5a,0000000..4dc5a75
mode 100644,000000..100644
--- a/debian/patches/Groovy_projects_depends_on_localGroovy.patch
+++ b/debian/patches/Groovy_projects_depends_on_localGroovy.patch
@@@ -1,15 -1,0 +1,21 @@@
- Description: Otherwise it complains "Cannot infer Groovy class path because no
-              Groovy Jar was found on class path
- Author: Kai-Chung Yan (殷啟聰)
- Last-Update: 2016-10-27
++From: Markus Koschany <apo at debian.org>
++Date: Sun, 12 Nov 2017 01:16:51 +0100
++Subject: Groovy_projects_depends_on_localGroovy
++
++---
++ subprojects/plugins/plugins.gradle | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/subprojects/plugins/plugins.gradle b/subprojects/plugins/plugins.gradle
++index 43c9395..c8ef93f 100644
 +--- a/subprojects/plugins/plugins.gradle
 ++++ b/subprojects/plugins/plugins.gradle
- @@ -23,7 +23,7 @@
++@@ -23,7 +23,7 @@ configurations {
 + }
 + 
 + dependencies {
 +-    compile libraries.groovy
 ++    compile localGroovy()
 + 
 +     compile project(':core')
-      compile project(':dependencyManagement')
++     compile project(':workers')
diff --cc debian/patches/commons-io.patch
index 0000000,0000000..f5f85a0
new file mode 100644
--- /dev/null
+++ b/debian/patches/commons-io.patch
@@@ -1,0 -1,0 +1,25 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sat, 25 Nov 2017 16:41:39 +0100
++Subject: commons-io
++
++Required for the new WriteProperties class that it is symlinked into buildSrc.
++See also debian/rules. It should be possible to drop this patch once 3.4.1 is
++in unstable (hopefully).
++
++Forwarded: not-needed.
++---
++ buildSrc/build.gradle | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
++index 77061bd..6c9cc7b 100644
++--- a/buildSrc/build.gradle
+++++ b/buildSrc/build.gradle
++@@ -40,6 +40,7 @@ dependencies {
++     compile "org.pegdown:pegdown:1.6.0"
++     compile "org.jsoup:jsoup:1.6.3"
++     compile files('/usr/share/java/gradle-core.jar')
+++    compile "commons-io:commons-io:2.4"
++ }
++ 
++ apply from: '../gradle/compile.gradle'
diff --cc debian/patches/dependency-management_depends_on_testkit.patch
index b01083f,0000000..7779f44
mode 100644,000000..100644
--- a/debian/patches/dependency-management_depends_on_testkit.patch
+++ b/debian/patches/dependency-management_depends_on_testkit.patch
@@@ -1,11 -1,0 +1,19 @@@
- Description: Otherwise it complains about ZIP file I/O errors
- Author: Kai-Chung Yan (殷啟聰)
- Last-Update: 2016-10-28
++From: Kai-Chung Yan
++Date: Sun, 12 Nov 2017 21:04:51 +0100
++Subject: dependency-management_depends_on_testkit
++
++Otherwise it complains about ZIP file I/O errors
++---
++ subprojects/dependency-management/dependency-management.gradle | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/subprojects/dependency-management/dependency-management.gradle b/subprojects/dependency-management/dependency-management.gradle
++index 2635284..2e64541 100644
 +--- a/subprojects/dependency-management/dependency-management.gradle
 ++++ b/subprojects/dependency-management/dependency-management.gradle
- @@ -62,4 +62,4 @@
++@@ -77,4 +77,4 @@ task generateTestKitPackageList(type: org.gradle.api.internal.runtimeshaded.Pack
 + }
 + 
 + jar.dependsOn(generateGradleApiPackageList, generateTestKitPackageList)
 +-
 ++generateTestKitPackageList.dependsOn ':testKit:jar'
diff --cc debian/patches/disable-Kotlin.patch
index 0000000,0000000..e8afd90
new file mode 100644
--- /dev/null
+++ b/debian/patches/disable-Kotlin.patch
@@@ -1,0 -1,0 +1,21 @@@
++From: Kai-Chung Yan
++Date: Sun, 12 Nov 2017 21:18:22 +0100
++Subject: disable Kotlin
++
++Kotlin is not in Debian yet
++---
++ subprojects/dependency-management/dependency-management.gradle | 1 -
++ 1 file changed, 1 deletion(-)
++
++diff --git a/subprojects/dependency-management/dependency-management.gradle b/subprojects/dependency-management/dependency-management.gradle
++index 2e64541..1800cf8 100644
++--- a/subprojects/dependency-management/dependency-management.gradle
+++++ b/subprojects/dependency-management/dependency-management.gradle
++@@ -50,7 +50,6 @@ task configureGenerateGradleApiPackageList {
++     doLast {
++         generateGradleApiPackageList.configure {
++             classpath = files(
++-                rootProject.configurations.externalModules,
++                 [':core', ':dependencyManagement', ':pluginUse', ":toolingApi"].collect() {
++                     project(it).configurations.runtime
++                 }, project(':').configurations.gradlePlugins)
diff --cc debian/patches/disable-aws.patch
index 0000000,0000000..7ce4ae1
new file mode 100644
--- /dev/null
+++ b/debian/patches/disable-aws.patch
@@@ -1,0 -1,0 +1,87 @@@
++From: Kai-Chung Yan
++Date: Sun, 12 Nov 2017 01:19:48 +0100
++Subject: disable aws
++
++AWS SDK for Java is not in Debian yet.
++---
++ build.gradle                                                   | 2 +-
++ gradle/buildSplits.gradle                                      | 1 -
++ settings.gradle                                                | 1 -
++ subprojects/dependency-management/dependency-management.gradle | 1 -
++ subprojects/ivy/ivy.gradle                                     | 1 -
++ subprojects/maven/maven.gradle                                 | 1 -
++ 6 files changed, 1 insertion(+), 6 deletions(-)
++
++diff --git a/build.gradle b/build.gradle
++index 543f7ca..314c2c8 100644
++--- a/build.gradle
+++++ b/build.gradle
++@@ -176,7 +176,7 @@ ext {
++         'platformJvm', 'languageJvm', 'languageJava', 'languageGroovy', 'languageScala',
++         'platformNative', 'platformPlay', 'idePlay', 'languageNative', 'ideNative', 'testingBase',
++         'testingNative', 'testingJvm', 'pluginDevelopment', 'pluginUse', 'resourcesHttp',
++-        'resourcesSftp', 'resourcesS3', 'toolingApiBuilders', 'compositeBuilds', 'buildCacheHttp'
+++        'resourcesSftp', 'toolingApiBuilders', 'compositeBuilds', 'buildCacheHttp'
++     ].collect {
++         project(it)
++     }
++diff --git a/gradle/buildSplits.gradle b/gradle/buildSplits.gradle
++index 6c8656a..0799838 100644
++--- a/gradle/buildSplits.gradle
+++++ b/gradle/buildSplits.gradle
++@@ -22,7 +22,6 @@ def buckets = [
++     "2": [
++         ":toolingApi",
++         ":compositeBuilds",
++-        ":resourcesS3",
++         ":jetty",
++         ":resources",
++         ":jvmServices",
++diff --git a/settings.gradle b/settings.gradle
++index a1fa84d..5498b41 100644
++--- a/settings.gradle
+++++ b/settings.gradle
++@@ -28,7 +28,6 @@ include 'launcher'
++ include 'messaging'
++ include 'resources'
++ include 'resourcesHttp'
++-include 'resourcesS3'
++ include 'resourcesSftp'
++ include 'plugins'
++ include 'scala'
++diff --git a/subprojects/dependency-management/dependency-management.gradle b/subprojects/dependency-management/dependency-management.gradle
++index 1800cf8..4676306 100644
++--- a/subprojects/dependency-management/dependency-management.gradle
+++++ b/subprojects/dependency-management/dependency-management.gradle
++@@ -31,7 +31,6 @@ dependencies {
++     integTestRuntime project(":ivy")
++     integTestRuntime project(":maven")
++     integTestRuntime project(":resourcesHttp")
++-    integTestRuntime project(":resourcesS3")
++     integTestRuntime project(":resourcesSftp")
++     //this dependency is necessary to run IvySFtpResolverIntegrationTest on ibm jdk
++     //integTestRuntime "org.bouncycastle:bcprov-jdk15:1.46 at jar"
++diff --git a/subprojects/ivy/ivy.gradle b/subprojects/ivy/ivy.gradle
++index 3ba932c..9790abb 100644
++--- a/subprojects/ivy/ivy.gradle
+++++ b/subprojects/ivy/ivy.gradle
++@@ -25,7 +25,6 @@ dependencies {
++ 
++     testCompile libraries.groovy
++     integTestCompile project(":ear")
++-    integTestRuntime project(":resourcesS3")
++     integTestRuntime project(":resourcesSftp")
++     testFixturesCompile project(":internalIntegTesting")
++ }
++diff --git a/subprojects/maven/maven.gradle b/subprojects/maven/maven.gradle
++index d51c3e1..fa560a1 100644
++--- a/subprojects/maven/maven.gradle
+++++ b/subprojects/maven/maven.gradle
++@@ -32,7 +32,6 @@ dependencies {
++     testCompile libraries.xmlunit
++ 
++     integTestCompile project(":ear")
++-    integTestRuntime project(":resourcesS3")
++     integTestRuntime project(":resourcesSftp")
++ 
++     testFixturesCompile project(":internalIntegTesting")
diff --cc debian/patches/disable_buildSrc_tests.patch
index 40ca0bf,0000000..34e0ee0
mode 100644,000000..100644
--- a/debian/patches/disable_buildSrc_tests.patch
+++ b/debian/patches/disable_buildSrc_tests.patch
@@@ -1,17 -1,0 +1,21 @@@
- Description: Disable buildSrc tests
-  When building Gradle 3.1 using Gradle 2.13, buildSrc tests complained about
-  being unable find a method in native-platform. After Gradle in Debian is
-  updated to 3.1, this patch should be safe to remove.
- Author: Kai-Chung Yan (殷啟聰)
- Last-Update: 2016-10-27
++From: Markus Koschany <apo at debian.org>
++Date: Sun, 12 Nov 2017 01:24:42 +0100
++Subject: disable_buildSrc_tests
++
++---
++ buildSrc/build.gradle | 2 ++
++ 1 file changed, 2 insertions(+)
++
++diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
++index c32a847..06e486d 100644
 +--- a/buildSrc/build.gradle
 ++++ b/buildSrc/build.gradle
- @@ -25,6 +25,8 @@
-      maven { url 'file:///usr/share/maven-repo' }
++@@ -25,6 +25,8 @@ repositories {
++     maven { url 'https://repo.gradle.org/gradle/libs-releases' }
 + }
 + 
 ++sourceSets { test { groovy { exclude '**' } } }
 ++
 + dependencies {
 +     compile 'org.ow2.asm:asm-all:5.0.3'
 +     compile gradleApi()
diff --cc debian/patches/docs.patch
index 0000000,0000000..02d7ba5
new file mode 100644
--- /dev/null
+++ b/debian/patches/docs.patch
@@@ -1,0 -1,0 +1,223 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sun, 12 Nov 2017 21:28:41 +0100
++Subject: docs
++
++Fix build of documentation to build everything using docbook-xsl, xalan2 and
++xhtmlrenderer from Debian
++
++Forwarded: not-needed
++---
++ .../org/gradle/build/docs/Docbook2Xhtml.groovy     |  4 +--
++ subprojects/docs/docs.gradle                       | 34 ++++++----------------
++ subprojects/docs/src/docs/stylesheets/dslHtml.xsl  |  2 +-
++ .../docs/src/docs/stylesheets/standaloneHtml.xsl   |  4 +--
++ .../docs/src/docs/stylesheets/userGuideHtml.xsl    |  2 +-
++ .../src/docs/stylesheets/userGuideHtmlCommon.xsl   |  4 +--
++ .../docs/src/docs/stylesheets/userGuidePdf.xsl     |  4 +--
++ .../src/docs/stylesheets/userGuideSingleHtml.xsl   |  2 +-
++ .../docs/src/transforms/release-notes.gradle       |  3 +-
++ 9 files changed, 22 insertions(+), 37 deletions(-)
++
++diff --git a/buildSrc/src/main/groovy/org/gradle/build/docs/Docbook2Xhtml.groovy b/buildSrc/src/main/groovy/org/gradle/build/docs/Docbook2Xhtml.groovy
++index 489a7df..b25c36d 100755
++--- a/buildSrc/src/main/groovy/org/gradle/build/docs/Docbook2Xhtml.groovy
+++++ b/buildSrc/src/main/groovy/org/gradle/build/docs/Docbook2Xhtml.groovy
++@@ -89,8 +89,8 @@ class Docbook2Xhtml extends SourceTask {
++                 jvmArgs '-Xmx1024m'
++                 classpath ClasspathUtil.getClasspathForClass(XslTransformer)
++                 classpath this.classpath
++-                classpath new File(stylesheetsDir, 'extensions/xalan27.jar')
++-                systemProperty 'xslthl.config', new File("$stylesheetsDir/highlighting/xslthl-config.xml").toURI()
+++                classpath new File("/usr/share/java/xalan2.jar")
+++                systemProperty 'xslthl.config', new File("/usr/share/xml/docbook/stylesheet/docbook-xsl/highlighting/xslthl-config.xml").toURI()
++                 systemProperty 'org.apache.xerces.xni.parser.XMLParserConfiguration', 'org.apache.xerces.parsers.XIncludeParserConfiguration'
++             }
++         }
++diff --git a/subprojects/docs/docs.gradle b/subprojects/docs/docs.gradle
++index c85a9ac..198aa73 100755
++--- a/subprojects/docs/docs.gradle
+++++ b/subprojects/docs/docs.gradle
++@@ -35,18 +35,11 @@ apply plugin: 'jsoup'
++ apply plugin: 'javascript-base'
++ 
++ repositories {
++-    javaScript.googleApis()
++-
++-    ivy {
++-        name "Google Fonts"
++-        url "http://themes.googleusercontent.com/static/fonts/"
++-        layout 'pattern', {
++-            artifact '[organisation]/v[revision](/[classifier])(.[ext])'
++-            ivy '[organisation]/v[revision]/ivy(.[ext])'
++-        }
+++    maven { url 'file:///usr/share/maven-repo' }
+++    flatDir {
+++      dirs '/usr/share/javascript/jquery'
+++      dirs "${rootDir}/debian/additionalSrc/javascript"
++     }
++-
++-    maven { url 'https://repo.gradle.org/gradle/gradle-build-internal' }
++ }
++ 
++ configurations {
++@@ -66,7 +59,7 @@ dependencies {
++ 
++     userGuideStyleSheets 'docbook:docbook-xsl:1.75.2 at zip'
++     jquery "jquery:jquery.min:1.8.0 at js"
++-    jqueryTipTip "com.drewwilson.code:jquery.tipTip:1.3:minified at js"
+++    jqueryTipTip "com.drewwilson.code:jquery.tipTip:1.3:@js"
++ 
++     fonts \
++         "lato:regular:6:v0SdcGFAl2aezM9Vq_aFTQ at ttf",
++@@ -146,12 +139,7 @@ task configureCss {
++             [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
+++        ext.tokens = images
++         css.inputs.property 'tokens', tokens
++         css.filter ReplaceTokens, tokens: tokens
++     }
++@@ -200,10 +188,6 @@ task userguideStyleSheets(type: Copy) {
++         include '*.xsl'
++     }
++     from(cssFiles)
++-    from({ zipTree(configurations.userGuideStyleSheets.singleFile) }) {
++-        // Remove the prefix
++-        eachFile { fcd -> fcd.path = fcd.path.replaceFirst('^docbook-xsl-[0-9\\.]+/', '') }
++-    }
++ }
++ 
++ task samplesDocbook(type: AssembleSamplesDocTask) {
++@@ -344,8 +328,8 @@ task userguidePdf(type: Xhtml2Pdf, dependsOn: pdfUserguideXhtml) {
++     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 javaApiUrl = "file:///usr/share/doc/default-jdk/api/"
+++def groovyApiUrl = "file:///usr/share/doc/groovy/api/"
++ def mavenApiUrl = "http://maven.apache.org/ref/${versions.maven}/maven-model/apidocs"
++ 
++ task javadocAll(type: Javadoc) {
++@@ -389,7 +373,7 @@ task javadocAll(type: Javadoc) {
++     include 'org/gradle/testkit/**'
++     include 'org/gradle/testing/**'
++     exclude '**/internal/**'
++-    options.links(javaApiUrl, groovyApiUrl, mavenApiUrl)
+++    options.links(javaApiUrl, groovyApiUrl)
++     title = "Gradle API $version"
++     ext.entryPoint = "$destinationDir/index.html"
++ }
++diff --git a/subprojects/docs/src/docs/stylesheets/dslHtml.xsl b/subprojects/docs/src/docs/stylesheets/dslHtml.xsl
++index c63d675..847220c 100644
++--- a/subprojects/docs/src/docs/stylesheets/dslHtml.xsl
+++++ b/subprojects/docs/src/docs/stylesheets/dslHtml.xsl
++@@ -14,7 +14,7 @@
++   ~ limitations under the License.
++   -->
++ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
++-    <xsl:import href="html/chunkfast.xsl"/>
+++    <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/html/chunkfast.xsl"/>
++     <xsl:import href="userGuideHtmlCommon.xsl"/>
++ 
++     <xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/strict.dtd"
++diff --git a/subprojects/docs/src/docs/stylesheets/standaloneHtml.xsl b/subprojects/docs/src/docs/stylesheets/standaloneHtml.xsl
++index 53e75ae..f00edfc 100644
++--- a/subprojects/docs/src/docs/stylesheets/standaloneHtml.xsl
+++++ b/subprojects/docs/src/docs/stylesheets/standaloneHtml.xsl
++@@ -17,7 +17,7 @@
++         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
++         xmlns:xi="http://www.w3.org/2001/XInclude"
++         version="1.0">
++-    <xsl:import href="html/docbook.xsl"/>
+++    <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/html/docbook.xsl"/>
++     <xsl:import href="userGuideHtmlCommon.xsl"/>
++ 
++     <xsl:param name="section.autolabel">0</xsl:param>
++@@ -36,4 +36,4 @@
++             <xi:include href="userguide.css" parse="text"/>
++         </style>
++     </xsl:template>
++-</xsl:stylesheet>
++\ No newline at end of file
+++</xsl:stylesheet>
++diff --git a/subprojects/docs/src/docs/stylesheets/userGuideHtml.xsl b/subprojects/docs/src/docs/stylesheets/userGuideHtml.xsl
++index d2c1f73..e14e1f3 100644
++--- a/subprojects/docs/src/docs/stylesheets/userGuideHtml.xsl
+++++ b/subprojects/docs/src/docs/stylesheets/userGuideHtml.xsl
++@@ -15,7 +15,7 @@
++   -->
++ <xsl:stylesheet
++         xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
++-    <xsl:import href="html/chunkfast.xsl"/>
+++    <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/html/chunkfast.xsl"/>
++     <xsl:import href="userGuideHtmlCommon.xsl"/>
++ 
++     <xsl:param name="root.filename">userguide</xsl:param>
++diff --git a/subprojects/docs/src/docs/stylesheets/userGuideHtmlCommon.xsl b/subprojects/docs/src/docs/stylesheets/userGuideHtmlCommon.xsl
++index 94b5f86..b71de82 100644
++--- a/subprojects/docs/src/docs/stylesheets/userGuideHtmlCommon.xsl
+++++ b/subprojects/docs/src/docs/stylesheets/userGuideHtmlCommon.xsl
++@@ -16,8 +16,8 @@
++ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
++                 xmlns:xslthl="http://xslthl.sf.net"
++                 version="1.0">
++-    <xsl:import href="highlighting/common.xsl"/>
++-    <xsl:import href="html/highlight.xsl"/>
+++    <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/highlighting/common.xsl"/>
+++    <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/html/highlight.xsl"/>
++ 
++     <xsl:output method="html"
++                 encoding="UTF-8"
++diff --git a/subprojects/docs/src/docs/stylesheets/userGuidePdf.xsl b/subprojects/docs/src/docs/stylesheets/userGuidePdf.xsl
++index 002ea21..7b10e8e 100644
++--- a/subprojects/docs/src/docs/stylesheets/userGuidePdf.xsl
+++++ b/subprojects/docs/src/docs/stylesheets/userGuidePdf.xsl
++@@ -14,7 +14,7 @@
++   ~ limitations under the License.
++   -->
++ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
++-    <xsl:import href="xhtml/docbook.xsl"/>
+++    <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/xhtml/docbook.xsl"/>
++     <xsl:import href="userGuideHtmlCommon.xsl"/>
++ 
++     <xsl:output method="xml"
++@@ -59,4 +59,4 @@
++             <xsl:apply-templates select=".." mode="title.markup"/>
++         </h1>
++     </xsl:template>
++-</xsl:stylesheet>
++\ No newline at end of file
+++</xsl:stylesheet>
++diff --git a/subprojects/docs/src/docs/stylesheets/userGuideSingleHtml.xsl b/subprojects/docs/src/docs/stylesheets/userGuideSingleHtml.xsl
++index 18715e6..5f87bb7 100644
++--- a/subprojects/docs/src/docs/stylesheets/userGuideSingleHtml.xsl
+++++ b/subprojects/docs/src/docs/stylesheets/userGuideSingleHtml.xsl
++@@ -15,7 +15,7 @@
++   -->
++ <xsl:stylesheet
++         xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
++-    <xsl:import href="html/docbook.xsl"/>
+++    <xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/html/docbook.xsl"/>
++     <xsl:import href="userGuideHtmlCommon.xsl"/>
++ 
++     <!--
++diff --git a/subprojects/docs/src/transforms/release-notes.gradle b/subprojects/docs/src/transforms/release-notes.gradle
++index c0c7688..390adca 100644
++--- a/subprojects/docs/src/transforms/release-notes.gradle
+++++ b/subprojects/docs/src/transforms/release-notes.gradle
++@@ -1,6 +1,7 @@
++ buildscript {
++     repositories {
++-        mavenCentral()
+++        maven { url "file:///usr/share/maven-repo/" }
+++        flatDir { dirs "/usr/share/java/" }
++     }
++     dependencies {
++         classpath('com.uwyn:jhighlight:1.0') {
diff --cc debian/patches/drop-http-builder.patch
index 0000000,0000000..a484c53
new file mode 100644
--- /dev/null
+++ b/debian/patches/drop-http-builder.patch
@@@ -1,0 -1,0 +1,159 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sat, 18 Nov 2017 22:52:22 +0100
++Subject: drop http builder
++
++http-builder is not in Debian yet
++---
++ buildSrc/build.gradle                              |  6 +-
++ .../testing/DistributedPerformanceTest.groovy      | 81 ++--------------------
++ 2 files changed, 7 insertions(+), 80 deletions(-)
++
++diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
++index 06e486d..5569752 100644
++--- a/buildSrc/build.gradle
+++++ b/buildSrc/build.gradle
++@@ -33,10 +33,6 @@ dependencies {
++     compile 'com.google.guava:guava-jdk5:14.0.1 at jar'
++     compile 'commons-lang:commons-lang:2.6 at jar'
++     compile localGroovy()
++-    compile('org.codehaus.groovy.modules.http-builder:http-builder:0.7.2') {
++-        exclude(module: 'groovy')
++-        exclude(module: 'xercesImpl')
++-    }
++     testCompile 'junit:junit:4.12 at jar'
++     testCompile 'org.spockframework:spock-core:1.0-groovy-2.4 at jar', 'cglib:cglib-nodep:2.2', 'org.objenesis:objenesis:1.2'
++     testCompile 'org.hamcrest:hamcrest-core:1.3'
++@@ -51,4 +47,4 @@ apply from: '../gradle/taskOrdering.gradle'
++ apply from: '../gradle/dependencies.gradle'
++ apply from: '../gradle/classycle.gradle'
++ 
++-ext.isCiServer = System.getenv().containsKey("TEAMCITY_VERSION")
++\ No newline at end of file
+++ext.isCiServer = System.getenv().containsKey("TEAMCITY_VERSION")
++diff --git a/buildSrc/src/main/groovy/org/gradle/testing/DistributedPerformanceTest.groovy b/buildSrc/src/main/groovy/org/gradle/testing/DistributedPerformanceTest.groovy
++index 8d9947f..f304f6f 100644
++--- a/buildSrc/src/main/groovy/org/gradle/testing/DistributedPerformanceTest.groovy
+++++ b/buildSrc/src/main/groovy/org/gradle/testing/DistributedPerformanceTest.groovy
++@@ -22,8 +22,6 @@ import groovy.transform.CompileStatic
++ import groovy.transform.TypeChecked
++ import groovy.transform.TypeCheckingMode
++ import groovy.xml.XmlUtil
++-import groovyx.net.http.ContentType
++-import groovyx.net.http.RESTClient
++ import org.gradle.api.GradleException
++ import org.gradle.api.tasks.Input
++ import org.gradle.api.tasks.Optional
++@@ -74,7 +72,7 @@ class DistributedPerformanceTest extends PerformanceTest {
++     @OutputFile
++     File scenarioReport
++ 
++-    RESTClient client
+++    GroovyObject client
++ 
++     List<String> scheduledBuilds = Lists.newArrayList()
++ 
++@@ -161,36 +159,7 @@ class DistributedPerformanceTest extends PerformanceTest {
++ 
++     @TypeChecked(TypeCheckingMode.SKIP)
++     private void schedule(Scenario scenario, String lastChangeId) {
++-        def buildRequest = """
++-                <build${branchName ? " branchName=\"${branchName}\"" : ""}>
++-                    <buildType id="${buildTypeId}"/>
++-                    <properties>
++-                        <property name="scenario" value="${scenario.id}"/>
++-                        <property name="templates" value="${scenario.templates.join(' ')}"/>
++-                        <property name="baselines" value="${baselines?:'defaults'}"/>
++-                        <property name="warmups" value="${warmups!=null?:'defaults'}"/>
++-                        <property name="runs" value="${runs!=null?:'defaults'}"/>
++-                        <property name="checks" value="${checks?:'all'}"/>
++-                        <property name="channel" value="${channel?:'commits'}"/>
++-                    </properties>
++-                    ${renderLastChange(lastChangeId)}
++-                </build>
++-            """
++-        logger.info("Scheduling $scenario.id, estimated runtime: $scenario.estimatedRuntime, coordinatorBuildId: $coordinatorBuildId, lastChangeId: $lastChangeId, build request: $buildRequest")
++-        def response = client.post(
++-            path: "buildQueue",
++-            requestContentType: ContentType.XML,
++-            body: buildRequest
++-        )
++-        if (!response.success) {
++-            throw new RuntimeException("Cannot schedule build job. build request: $buildRequest\nresponse: ${xmlToString(response.data)}")
++-        }
++-        def workerBuildId = response.data. at id
++-        def scheduledChangeId = findLastChangeIdInXml(response.data)
++-        if (lastChangeId && scheduledChangeId != lastChangeId) {
++-            throw new RuntimeException("The requested change id is different than the actual one. requested change id: $lastChangeId in coordinatorBuildId: $coordinatorBuildId , actual change id: $scheduledChangeId in workerBuildId: $workerBuildId\nresponse: ${xmlToString(response.data)}")
++-        }
++-        scheduledBuilds += workerBuildId
+++        throw new GradleException('Groovy HTTPBuilder not available in Debian')
++     }
++ 
++     @TypeChecked(TypeCheckingMode.SKIP)
++@@ -235,24 +204,7 @@ class DistributedPerformanceTest extends PerformanceTest {
++ 
++     @TypeChecked(TypeCheckingMode.SKIP)
++     private void join(String jobId) {
++-        def finished = false
++-        def response
++-        while (!finished) {
++-            response = client.get(path: "builds/id:$jobId")
++-            finished = response.data. at state == "finished"
++-            if (!finished) {
++-                sleep(TimeUnit.MINUTES.toMillis(1))
++-            }
++-        }
++-        finishedBuilds += response.data
++-
++-        try {
++-            def results = fetchTestResults(jobId, response.data)
++-            testResultFilesForBuild.put(jobId, results)
++-            fireTestListener(results, response.data)
++-        } catch (e) {
++-            e.printStackTrace(System.err)
++-        }
+++       throw new GradleException('Groovy HTTPBuilder not available in Debian')
++     }
++ 
++     private void fireTestListener(List<File> results, Object build) {
++@@ -264,26 +216,7 @@ class DistributedPerformanceTest extends PerformanceTest {
++ 
++     @TypeChecked(TypeCheckingMode.SKIP)
++     private def fetchTestResults(String jobId, buildData) {
++-        def unzippedFiles = []
++-        def artifactsUri = buildData?.artifacts?. at href?.text()
++-        if (artifactsUri) {
++-            def resultArtifacts = client.get(path: "${artifactsUri}/results/${project.name}/build/")
++-            if (resultArtifacts.success) {
++-                def zipName = "test-results-${workerTestTaskName}.zip".toString()
++-                def fileNode = resultArtifacts.data.file.find {
++-                    it. at name.text() == zipName
++-                }
++-                if (fileNode) {
++-                    def resultsDirectory = new File(workerTestResultsTempDir, jobId)
++-                    def contentUri = fileNode.content. at href.text()
++-                    client.get(path: contentUri, contentType: ContentType.BINARY) {
++-                        resp, inputStream ->
++-                            unzippedFiles = unzipToDirectory(inputStream, resultsDirectory)
++-                    }
++-                }
++-            }
++-        }
++-        unzippedFiles
+++        throw new GradleException('Groovy HTTPBuilder not available in Debian')
++     }
++ 
++     @TypeChecked(TypeCheckingMode.SKIP)
++@@ -321,10 +254,8 @@ class DistributedPerformanceTest extends PerformanceTest {
++         }
++     }
++ 
++-    private RESTClient createClient() {
++-        client = new RESTClient("$teamCityUrl/httpAuth/app/rest/9.1")
++-        client.auth.basic(teamCityUsername, teamCityPassword)
++-        client
+++    private GroovyObject createClient() {
+++        throw new GradleException('Groovy HTTPBuilder not available in Debian')
++     }
++ 
++ 
diff --cc debian/patches/drop-jmh-gradle-plugin.patch
index 0000000,0000000..1fc28fa
new file mode 100644
--- /dev/null
+++ b/debian/patches/drop-jmh-gradle-plugin.patch
@@@ -1,0 -1,0 +1,49 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sat, 18 Nov 2017 22:54:06 +0100
++Subject: drop jmh gradle plugin
++
++jmh-gradle-plugin is not in Debian yet
++---
++ gradle/groovyProject.gradle      | 4 ----
++ subprojects/native/native.gradle | 6 +++---
++ 2 files changed, 3 insertions(+), 7 deletions(-)
++
++diff --git a/gradle/groovyProject.gradle b/gradle/groovyProject.gradle
++index 9b293e2..9d9522b 100644
++--- a/gradle/groovyProject.gradle
+++++ b/gradle/groovyProject.gradle
++@@ -82,10 +82,6 @@ if (file("src/performanceTest").exists()) {
++     apply from: "$rootDir/gradle/performanceTest.gradle"
++ }
++ 
++-if (file("src/jmh").exists()) {
++-    apply from: "$rootDir/gradle/jmh.gradle"
++-}
++-
++ // This is here mostly for the TravisCI build.
++ // It advertises as an ANSI capable terminal but isn't, so we run with -q there to make
++ // the output legible, but we still want test result info
++diff --git a/subprojects/native/native.gradle b/subprojects/native/native.gradle
++index 95ba904..c29006b 100755
++--- a/subprojects/native/native.gradle
+++++ b/subprojects/native/native.gradle
++@@ -19,10 +19,10 @@ useTestFixtures()
++ useTestFixtures(project: ":logging")
++ useClassycle()
++ 
++-jmh {
+++/*jmh {
++     fork = 1
++     resultFormat = 'CSV'
++-}
+++}*/
++ 
++ task copyJmhReport(type: Copy) {
++     destinationDir = file("$buildDir/reports/jmh-html")
++@@ -73,5 +73,5 @@ task convertCSV {
++ }
++ 
++ task jmhReport {
++-    dependsOn 'jmh', copyJmhReport, convertCSV
+++    //dependsOn 'jmh', copyJmhReport, convertCSV
++ }
diff --cc debian/patches/eclipse-aether.patch
index 0000000,0000000..7adab14
new file mode 100644
--- /dev/null
+++ b/debian/patches/eclipse-aether.patch
@@@ -1,0 -1,0 +1,270 @@@
++From: Kai-Chung Yan
++Date: Sat, 18 Nov 2017 22:55:51 +0100
++Subject: eclipse aether
++
++Maven module originally uses aether which is deprecated. This patch changes it
++to use eclipse-aether/maven-resolver.
++
++Forwarded: no
++---
++ gradle/dependencies.gradle                         | 10 +++----
++ .../internal/maven/MavenProjectsCreator.java       |  4 +--
++ .../action/AbstractMavenPublishAction.java         | 33 +++++++++++----------
++ .../action/LoggingMavenTransferListener.java       |  6 ++--
++ .../maven/internal/action/MavenDeployAction.java   | 34 ++++++++++++----------
++ .../maven/internal/action/MavenInstallAction.java  | 10 +++----
++ .../internal/action/SnapshotVersionManager.java    | 18 ++++++------
++ 7 files changed, 61 insertions(+), 54 deletions(-)
++
++diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
++index 40de42c..75ac599 100755
++--- a/gradle/dependencies.gradle
+++++ b/gradle/dependencies.gradle
++@@ -132,11 +132,11 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.m
++     dependency 'org.apache.maven.wagon:wagon-http-shared4:2.4 at jar'
++ 
++     //eather:
++-    dependency "org.sonatype.aether:aether-api:1.13.1 at jar"
++-    dependency "org.sonatype.aether:aether-impl:1.13.1 at jar"
++-    dependency "org.sonatype.aether:aether-spi:1.13.1 at jar"
++-    dependency "org.sonatype.aether:aether-util:1.13.1 at jar"
++-    dependency 'org.sonatype.aether:aether-connector-wagon:1.13.1 at jar'
+++    dependency 'org.eclipse.aether:maven-resolver-api:1.13.1 at jar'
+++    dependency 'org.eclipse.aether:maven-resolver-impl:1.13.1 at jar'
+++    dependency 'org.eclipse.aether:maven-resolver-spi:1.13.1 at jar'
+++    dependency 'org.eclipse.aether:maven-resolver-util:1.13.1 at jar'
+++    dependency 'org.eclipse.aether:maven-resolver-connector-basic:1.13.1 at jar'
++ }
++ 
++ libraries.spock = [
++diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
++index 7a85812..ad181c2 100644
++--- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
+++++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
++@@ -29,8 +29,8 @@ 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.RepositorySystemSession;
+++import org.eclipse.aether.DefaultRepositorySystemSession;
++ import org.gradle.util.CollectionUtils;
++ 
++ import java.io.File;
++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 9dd6e69..a0e1cee 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,7 +18,7 @@ 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.MavenRepositorySystemUtils;
++ import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory;
++ import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory;
++ import org.codehaus.plexus.DefaultContainerConfiguration;
++@@ -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.impl.Deployer;
+++import org.eclipse.aether.internal.impl.DefaultDeployer;
+++import org.eclipse.aether.repository.LocalRepository;
+++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<File> 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 org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory().newInstance(session, new LocalRepository(localMavenRepository)));
+++        } catch (org.eclipse.aether.repository.NoLocalRepositoryManagerException e) {
+++            throw UncheckedException.throwAsUncheckedException(e);
+++        }
++     }
++ 
++     public void setMainArtifact(File file) {
++@@ -131,7 +134,7 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction {
++             // 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.setMetadataGeneratorFactories(null);
++             deployer.addMetadataGeneratorFactory(new VersionsMetadataGeneratorFactory());
++             deployer.addMetadataGeneratorFactory(new SnapshotMetadataGeneratorFactory());
++             deployer.addMetadataGeneratorFactory(snapshotVersionManager);
++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 5d75a16..46287cf 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 220e853..b5a2c69 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,14 @@ 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.DefaultProxySelector;
++ 
++ import java.io.File;
++ import java.util.Collection;
++@@ -57,7 +57,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 +69,26 @@ 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 repo = 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()));
+++            org.eclipse.aether.util.repository.AuthenticationBuilder authBuilder = new org.eclipse.aether.util.repository.AuthenticationBuilder();
+++            authBuilder.addUsername(auth.getUserName()).addPassword(auth.getPassword()).addPrivateKey(auth.getPrivateKey(), auth.getPassphrase());
+++            repo.setAuthentication(authBuilder.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());
+++            org.eclipse.aether.util.repository.AuthenticationBuilder authBuilder = new org.eclipse.aether.util.repository.AuthenticationBuilder();
+++            authBuilder.addUsername(proxy.getUserName()).addPassword(proxy.getPassword());
+++            Authentication proxyAuth = authBuilder.build();
++             proxySelector.add(new Proxy(proxy.getType(), proxy.getHost(), proxy.getPort(), proxyAuth), proxy.getNonProxyHosts());
++-            repo.setProxy(proxySelector.getProxy(repo));
+++            repo.setProxy(proxySelector.getProxy(repo.build()));
++         }
++ 
++-        return repo;
+++        return repo.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 37d9dc5..3b12111 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 1fedf1d..c69a8d1 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,8 +35,8 @@ class SnapshotVersionManager implements MetadataGeneratorFactory, MetadataGenera
++     }
++ 
++     @Override
++-    public int getPriority() {
++-        return -100;
+++    public float getPriority() {
+++        return -100.0F;
++     }
++ 
++     @Override
diff --cc debian/patches/generate_pom.diff
index b3842e1,0000000..dba446b
mode 100644,000000..100644
--- a/debian/patches/generate_pom.diff
+++ b/debian/patches/generate_pom.diff
@@@ -1,17 -1,0 +1,25 @@@
- Description:
-  By default Gradle won't generate POMs for itself. generate_pom.gradle makes
-  Gradle auto generate POMs for all of the JARs so that we can install the
-  POMs to /usr/share/maven-repo
- Author: Kai-Chung Yan (殷啟聰)
- Last-Updtae: 2016-09-08
++From: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
++Date: Sun, 12 Nov 2017 21:04:50 +0100
++Subject: generate_pom
++
++By default Gradle won't generate POMs for itself. generate_pom.gradle makes
++Gradle auto generate POMs for all of the JARs so that we can install the POMs
++to /usr/share/maven-repo
++
 +Forwarded: not-needed
++---
++ build.gradle | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/build.gradle b/build.gradle
++index 3650654..fba4e24 100644
 +--- a/build.gradle
 ++++ b/build.gradle
- @@ -228,6 +228,7 @@
++@@ -239,6 +239,7 @@ subprojects {
 +         apply from: "$rootDir/gradle/java9.gradle"
 +         check.dependsOn ":docs:checkstyleApi"
 +         check.dependsOn "codeQuality"
 ++        apply from: "${rootDir}/debian/generate_pom.gradle"
 +     }
 + 
 +     if (project in publishedProjects) {
diff --cc debian/patches/groovy-jar.patch
index d7e3e68,0000000..8d0a3d2
mode 100644,000000..100644
--- a/debian/patches/groovy-jar.patch
+++ b/debian/patches/groovy-jar.patch
@@@ -1,32 -1,0 +1,33 @@@
- Description: Tweaks the Groovy classpath detection logic to recognize the groovy jar
-  in the system Maven repository (/usr/share/maven-repo/org/codehaus/groovy/groovy/debian/groovy-debian.jar)
++From: Markus Koschany <apo at debian.org>
++Date: Sat, 18 Nov 2017 23:00:03 +0100
++Subject: groovy jar
++
++Tweaks the Groovy classpath detection logic to recognize the groovy jar in the
++system Maven repository
++(/usr/share/maven-repo/org/codehaus/groovy/groovy/debian/groovy-debian.jar)
++---
++ .../src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java  | 4 ++--
++ 1 file changed, 2 insertions(+), 2 deletions(-)
++
++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 735fb76..d10293e 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 @@
++@@ -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)?)-(debian|\\d.*?)(-indy)?.jar");
 + 
 +     private final File file;
 +     private final Matcher matcher;
- @@ -42,7 +42,7 @@
++@@ -42,7 +42,7 @@ public class GroovyJarFile {
 +     }
 + 
 +     public VersionNumber getVersion() {
 +-        return VersionNumber.parse(matcher.group(2));
 ++        return VersionNumber.parse("debian".equals(matcher.group(2)) ? "2.4.6" : matcher.group(2));
 +     }
 + 
 +     public boolean isGroovyAll() {
- --- a/gradle/groovyProject.gradle
- +++ b/gradle/groovyProject.gradle
- @@ -111,6 +111,7 @@
-      Properties createProperties() {
-          def properties = new Properties()
-          properties.runtime = getRuntime()
- +        properties.runtime = properties.runtime.replaceAll('groovy-all-[\\d\\.]+.jar', 'groovy-all.jar');
-          properties.projects = getProjects()
-          if (!getOptionalProjects().empty) {
-              properties.optional = getOptionalProjects().join(',')
diff --cc debian/patches/ivy-2.4.0.patch
index db5a1b7,0000000..4025293
mode 100644,000000..100644
--- a/debian/patches/ivy-2.4.0.patch
+++ b/debian/patches/ivy-2.4.0.patch
@@@ -1,25 -1,0 +1,26 @@@
 +From: Markus Koschany <apo at debian.org>
 +Date: Wed, 11 Nov 2015 19:53:35 +0100
 +Subject: ivy 2.4.0
 +
 +Fix FTBFS with ivy 2.4.0. Patch taken from
 +https://github.com/mizdebsk/gradle/commit/e0138b1
 +Thanks to Mikołaj Izdebski
 +
 +Forwarded: no
 +---
-  .../ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java  | 2 +-
-  .../component/external/model/DefaultIvyModuleResolveMetaData.java   | 6 +++---
-  2 files changed, 4 insertions(+), 4 deletions(-)
++ .../ivyservice/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 96af585..362527a 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
- @@ -1184,7 +1184,7 @@
++@@ -1184,7 +1184,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) {
diff --cc debian/patches/jansi.patch
index 0000000,0000000..96ca9e1
new file mode 100644
--- /dev/null
+++ b/debian/patches/jansi.patch
@@@ -1,0 -1,0 +1,39 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Thu, 23 Nov 2017 21:08:11 +0100
++Subject: jansi
++
++Fix FTBFS because of missing jansi-native build-dependency. It is not clear to
++me why this subproject is failing because there is a build-dependency on jansi
++already.
++
++Forwarded: not-needed
++---
++ subprojects/logging/logging.gradle | 8 ++++++++
++ 1 file changed, 8 insertions(+)
++
++diff --git a/subprojects/logging/logging.gradle b/subprojects/logging/logging.gradle
++index b1cb8b3..65eb7e0 100644
++--- a/subprojects/logging/logging.gradle
+++++ b/subprojects/logging/logging.gradle
++@@ -4,6 +4,12 @@
++ 
++ sourceCompatibility = javaVersion.java9Compatible ? 1.6 : 1.5
++ 
+++repositories {
+++    flatDir {
+++        dirs '/usr/share/java/'
+++    }
+++}
+++
++ dependencies {
++     compile libraries.groovy
++     compile libraries.slf4j_api
++@@ -14,6 +20,8 @@ dependencies {
++     compile project(":messaging")
++     compile project(":cli")
++ 
+++    compile name: 'jansi-native'
+++
++     runtime libraries.log4j_to_slf4j
++     runtime libraries.jcl_to_slf4j
++ 
diff --cc debian/patches/jcommander.patch
index 0000000,0000000..977cc89
new file mode 100644
--- /dev/null
+++ b/debian/patches/jcommander.patch
@@@ -1,0 -1,0 +1,62 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sat, 18 Nov 2017 23:04:09 +0100
++Subject: jcommander
++
++Various modules use jcommander but do not declare.
++
++Forwarded: not-needed
++---
++ subprojects/antlr/antlr.gradle                               | 1 +
++ subprojects/maven/maven.gradle                               | 1 +
++ subprojects/plugins/plugins.gradle                           | 1 +
++ subprojects/tooling-api-builders/tooling-api-builders.gradle | 1 +
++ 4 files changed, 4 insertions(+)
++
++diff --git a/subprojects/antlr/antlr.gradle b/subprojects/antlr/antlr.gradle
++index 9869cf7..451d9b1 100644
++--- a/subprojects/antlr/antlr.gradle
+++++ b/subprojects/antlr/antlr.gradle
++@@ -23,6 +23,7 @@ dependencies {
++     provided "antlr:antlr:2.7.7 at jar"
++ 
++     compile libraries.slf4j_api
+++    compile 'com.beust:jcommander:1.x'
++ }
++ 
++ useTestFixtures()
++diff --git a/subprojects/maven/maven.gradle b/subprojects/maven/maven.gradle
++index fa560a1..0f5bd8f 100644
++--- a/subprojects/maven/maven.gradle
+++++ b/subprojects/maven/maven.gradle
++@@ -28,6 +28,7 @@ dependencies {
++     compile "org.sonatype.pmaven:pmaven-common:0.8-20100325 at jar"
++     compile "org.sonatype.pmaven:pmaven-groovy:0.8-20100325 at jar"
++     compile "org.codehaus.plexus:plexus-component-annotations:1.5.2 at jar"
+++    compile "com.beust:jcommander:1.x"
++ 
++     testCompile libraries.xmlunit
++ 
++diff --git a/subprojects/plugins/plugins.gradle b/subprojects/plugins/plugins.gradle
++index c8ef93f..cadef0a 100644
++--- a/subprojects/plugins/plugins.gradle
+++++ b/subprojects/plugins/plugins.gradle
++@@ -41,6 +41,7 @@ dependencies {
++     compile libraries.commons_io
++     compile libraries.commons_lang
++     compile libraries.slf4j_api
+++    compile 'com.beust:jcommander:1.x'
++ 
++     runtime libraries.commons_cli
++ 
++diff --git a/subprojects/tooling-api-builders/tooling-api-builders.gradle b/subprojects/tooling-api-builders/tooling-api-builders.gradle
++index ebe3564..0280805 100644
++--- a/subprojects/tooling-api-builders/tooling-api-builders.gradle
+++++ b/subprojects/tooling-api-builders/tooling-api-builders.gradle
++@@ -4,6 +4,7 @@ dependencies {
++     compile project(':launcher')
++     compile project(':toolingApi')
++     compile project(':compositeBuilds')
+++    compile 'com.beust:jcommander:1.x'
++ }
++ 
++ useClassycle()
diff --cc debian/patches/maven-3.3-compatibility.patch
index da03ba6,0000000..0f60770
mode 100644,000000..100644
--- a/debian/patches/maven-3.3-compatibility.patch
+++ b/debian/patches/maven-3.3-compatibility.patch
@@@ -1,61 -1,0 +1,77 @@@
- Description: Fix the compatibility with Maven 3.3
- Author: Emmanuel Bourg <ebourg at apache.org>
++From: Emmanuel Bourg <ebourg at apache.org>
++Date: Sat, 18 Nov 2017 23:06:02 +0100
++Subject: maven 3.3 compatibility
++
++Fix the compatibility with Maven 3.3
++
 +Forwarded: no
++---
++ gradle/dependencies.gradle                                    | 11 ++++++++++-
++ .../plugins/internal/maven/MavenProjectsCreator.java          |  2 +-
++ .../maven/internal/action/AbstractMavenPublishAction.java     |  2 +-
++ 3 files changed, 12 insertions(+), 3 deletions(-)
++
++diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
++index 75ac599..9f84f82 100755
 +--- a/gradle/dependencies.gradle
 ++++ b/gradle/dependencies.gradle
- @@ -109,9 +109,15 @@
++@@ -107,9 +107,15 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.m
 +     dependency "org.codehaus.plexus:plexus-utils:2.0.6 at jar"
 +     dependency "org.codehaus.plexus:plexus-interpolation:1.14 at jar"
 +     dependency "org.codehaus.plexus:plexus-component-annotations:1.5.5 at jar"
 +-    dependency "org.codehaus.plexus:plexus-container-default:1.5.5 at jar"
 +     dependency "org.codehaus.plexus:plexus-classworlds:2.4 at jar"
 + 
 ++    // Maven 3.3 compatibility
 ++    dependency 'aopalliance:aopalliance:debian'
 ++    dependency 'javax.inject:atinject-jsr330-api:debian'
 ++    dependency 'org.eclipse.sisu:sisu-inject:debian'
 ++    dependency 'org.eclipse.sisu:sisu-plexus:debian'
 ++    dependency 'org.google.inject:guice:debian'
 ++
 +     //sonatype plexus
 +     dependency "org.sonatype.plexus:plexus-cipher:1.7 at jar"
 +     dependency "org.sonatype.plexus:plexus-sec-dispatcher:1.3 at jar"
- @@ -121,6 +127,7 @@
-      dependency "org.apache.maven:maven-compat-3.x:${versions.maven}@jar"
-      dependency "org.apache.maven:maven-model-builder-3.x:${versions.maven}@jar"
-      dependency "org.apache.maven:maven-model-3.x:${versions.maven}@jar"
++@@ -119,6 +125,7 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.m
++     dependency "org.apache.maven:maven-compat:${versions.maven}@jar"
++     dependency "org.apache.maven:maven-model-builder:${versions.maven}@jar"
++     dependency "org.apache.maven:maven-model:${versions.maven}@jar"
 ++    dependency 'org.apache.maven:maven-builder-support-3.x:3.x'
 + 
 +     //somewhat core:
-      dependency "org.apache.maven:maven-artifact-3.x:${versions.maven}@jar"
- @@ -139,6 +146,8 @@
++     dependency "org.apache.maven:maven-artifact:${versions.maven}@jar"
++@@ -137,6 +144,8 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.m
 +     dependency 'org.eclipse.aether:maven-resolver-spi:1.13.1 at jar'
 +     dependency 'org.eclipse.aether:maven-resolver-util:1.13.1 at jar'
 +     dependency 'org.eclipse.aether:maven-resolver-connector-basic:1.13.1 at jar'
 ++
 ++    dependency "org.apache.commons:commons-lang3"
 + }
 + 
 + libraries.spock = [
- --- 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
- @@ -115,7 +115,7 @@
-                      classRealm.addURL(jar.toURI().toURL());
-                  }
-              }
- -            return new DefaultPlexusContainer(new DefaultContainerConfiguration().setRealm(classRealm));
- +            return new DefaultPlexusContainer(new DefaultContainerConfiguration().setRealm(classRealm).setClassPathScanning("index").setAutoWiring(true));
-          } catch (PlexusContainerException e) {
-              throw UncheckedException.throwAsUncheckedException(e);
-          } catch (MalformedURLException e) {
++diff --git a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
++index ad181c2..b54893b 100644
 +--- a/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
 ++++ b/subprojects/build-init/src/main/groovy/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
- @@ -55,7 +55,7 @@
++@@ -55,7 +55,7 @@ public class MavenProjectsCreator {
 +     private Set<MavenProject> 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("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 a0e1cee..6b00a23 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
++@@ -120,7 +120,7 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction {
++                     classRealm.addURL(jar.toURI().toURL());
++                 }
++             }
++-            return new DefaultPlexusContainer(new DefaultContainerConfiguration().setRealm(classRealm));
+++            return new DefaultPlexusContainer(new DefaultContainerConfiguration().setRealm(classRealm).setClassPathScanning("index").setAutoWiring(true));
++         } catch (PlexusContainerException e) {
++             throw UncheckedException.throwAsUncheckedException(e);
++         } catch (MalformedURLException e) {
diff --cc debian/patches/nekohtml.patch
index 0000000,0000000..62285f1
new file mode 100644
--- /dev/null
+++ b/debian/patches/nekohtml.patch
@@@ -1,0 -1,0 +1,24 @@@
++From: Kai-Chung Yan
++Date: Sat, 18 Nov 2017 23:07:26 +0100
++Subject: nekohtml
++
++The usage of nekohtml APIs must comes with xerces.The usage of nekohtml APIs must comes with xerces.
++
++Forwarded: no
++---
++ gradle/dependencies.gradle | 2 ++
++ 1 file changed, 2 insertions(+)
++
++diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
++index 9f84f82..41d0716 100755
++--- a/gradle/dependencies.gradle
+++++ b/gradle/dependencies.gradle
++@@ -99,6 +99,8 @@ libraries += [
++         jsoup:'org.jsoup:jsoup:1.6.3'
++ ]
++ 
+++libraries.nekohtml = [libraries.nekohtml, libraries.xerces]
+++
++ 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"
diff --cc debian/patches/new_APIs_in_3.0.patch
index c15c704,0000000..e0dabc4
mode 100644,000000..100644
--- a/debian/patches/new_APIs_in_3.0.patch
+++ b/debian/patches/new_APIs_in_3.0.patch
@@@ -1,17 -1,0 +1,21 @@@
- Description: buildSrc uses new APIs in Gradle 3.1
-  This workaround consists of:
-    * Add some new Java files to buildSrc's source files
-    * buildSrc links to gradle-core.jar
-  This patch should be safe to remove once Gradle is updated to 3.1
- Author: Kai-Chung Yan (殷啟聰)
- Last-Update: 2016-10-28
++From: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
++Date: Sun, 12 Nov 2017 01:04:51 +0100
++Subject: new_APIs_in_3.0
++
++
++---
++ buildSrc/build.gradle | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
++index 88fbc7a..804d584 100644
 +--- a/buildSrc/build.gradle
 ++++ b/buildSrc/build.gradle
- @@ -37,6 +37,7 @@
++@@ -41,6 +41,7 @@ dependencies {
 + 
 +     compile "org.pegdown:pegdown:1.6.0"
 +     compile "org.jsoup:jsoup:1.6.3"
 ++    compile files('/usr/share/java/gradle-core.jar')
 + }
 + 
 + apply from: '../gradle/compile.gradle'
diff --cc debian/patches/relax_warnings.diff
index fef5f76,0000000..2ff819e
mode 100644,000000..100644
--- a/debian/patches/relax_warnings.diff
+++ b/debian/patches/relax_warnings.diff
@@@ -1,15 -1,0 +1,22 @@@
- Description: resource-http produces lots of warnings and "-Werror" makes them
-              errors.
- Author: Kai-Chung Yan (殷啟聰)
- Last-Update: 2015-07-03
++From: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
++Date: Sun, 12 Nov 2017 01:04:50 +0100
++Subject: relax_warnings
++
++resource-http produces lots of warnings and "-Werror" makes them errors.
++---
++ gradle/strictCompile.gradle | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/gradle/strictCompile.gradle b/gradle/strictCompile.gradle
++index b070602..2c2f9d4 100644
 +--- a/gradle/strictCompile.gradle
 ++++ b/gradle/strictCompile.gradle
 +@@ -17,7 +17,7 @@
 + allprojects {
 +     ext.strictCompile = {
 +         tasks.withType(AbstractCompile) {
 +-            options.compilerArgs << "-Werror" << "-Xlint:all" << "-Xlint:-options" << "-Xlint:-serial"
 ++            options.compilerArgs << "-Xlint:all" << "-Xlint:-options" << "-Xlint:-serial"
 +         }
 +     }
 +     ext.strictCompileIgnoreDeprecations = {
diff --cc debian/patches/remove-timestamps.patch
index 0000000,0000000..34bd006
new file mode 100644
--- /dev/null
+++ b/debian/patches/remove-timestamps.patch
@@@ -1,0 -1,0 +1,32 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sat, 18 Nov 2017 23:15:53 +0100
++Subject: remove timestamps
++
++his patch manually sets the timestamps and other dynamic strings that break
++the reproducibility.
++
++Forwarded: no
++---
++ subprojects/version-info/version-info.gradle | 5 ++---
++ 1 file changed, 2 insertions(+), 3 deletions(-)
++
++diff --git a/subprojects/version-info/version-info.gradle b/subprojects/version-info/version-info.gradle
++index 8af907d..684c888 100644
++--- a/subprojects/version-info/version-info.gradle
+++++ b/subprojects/version-info/version-info.gradle
++@@ -96,13 +96,12 @@ task determineCommitId {
++ }
++ 
++ task configureBuildReceipt {
++-    dependsOn determineCommitId
++     doLast {
++         createBuildReceipt.versionNumber = rootProject.version
++         createBuildReceipt.baseVersion = rootProject.baseVersion
++         createBuildReceipt.snapshot = rootProject.isSnapshot
++-        createBuildReceipt.buildTimestamp = rootProject.buildTimestamp
++-        createBuildReceipt.commitId = determineCommitId.commitId
+++        createBuildReceipt.buildTimestamp = '20121221000000+0000'
+++        createBuildReceipt.commitId = 'none'
++     }
++ }
++ 
diff --cc debian/patches/search_system_jar.diff
index 959fcd4,0000000..4cc30c1
mode 100644,000000..100644
--- a/debian/patches/search_system_jar.diff
+++ b/debian/patches/search_system_jar.diff
@@@ -1,35 -1,0 +1,45 @@@
- Description: Gradle searches its own directory for Java libraries ignoring
-              /usr/share/java/. Somehow Gradle even fails to locate its home
-              directory which is /usr/share/gradle/. This patch fixes these
-              issues, and the large amount of symlinks in the binary packages
-              may be possible to remove. Maintaining so many symlinks is too
-              error prone.
- Author: Kai-Chung Yan (殷啟聰)
- Last-Update: 2016-10-20
++From: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
++Date: Sun, 12 Nov 2017 01:04:50 +0100
++Subject: search_system_jar
++
++Gradle searches its own directory for Java libraries ignoring /usr/share/java/.
++Somehow Gradle even fails to locate its home directory which is
++/usr/share/gradle/. This patch fixes these issues, and the large amount of
++symlinks in the binary packages may be possible to remove. Maintaining so many
++symlinks is too error prone.
++---
++ .../internal/installation/CurrentGradleInstallationLocator.java   | 8 +-------
++ .../java/org/gradle/internal/installation/GradleInstallation.java | 1 +
++ 2 files changed, 2 insertions(+), 7 deletions(-)
++
++diff --git a/subprojects/core/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java b/subprojects/core/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java
++index 88d6b0b..fe9086c 100644
 +--- a/subprojects/core/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java
 ++++ b/subprojects/core/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java
- @@ -51,13 +51,7 @@
++@@ -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/internal/installation/GradleInstallation.java b/subprojects/core/src/main/java/org/gradle/internal/installation/GradleInstallation.java
++index be3722a..b291431 100644
 +--- a/subprojects/core/src/main/java/org/gradle/internal/installation/GradleInstallation.java
 ++++ b/subprojects/core/src/main/java/org/gradle/internal/installation/GradleInstallation.java
- @@ -49,6 +49,7 @@
++@@ -49,6 +49,7 @@ public class GradleInstallation {
 +     private static List<File> findLibDirs(File dir) {
 +         List<File> libDirAndSubdirs = new ArrayList<File>();
 +         collectWithSubdirectories(new File(dir, "lib"), libDirAndSubdirs);
 ++        libDirAndSubdirs.add(new File("/usr/share/java"));
 +         return libDirAndSubdirs;
 +     }
 + 
diff --cc debian/patches/series
index f1eac7b,0000000..ed8cc6f
mode 100644,000000..100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@@ -1,24 -1,0 +1,25 @@@
- use_local_artifacts.diff
- 34_disable_code_quality.diff
 +33_scala_zinc.diff
- docs.diff
 +search_system_jar.diff
- disable_aws.diff
- jcommander.diff
- nekohtml.diff
 +relax_warnings.diff
- eclipse-aether.diff
 +generate_pom.diff
 +ivy-2.4.0.patch
- maven-3.3-compatibility.patch
- groovy-jar.patch
 +upgrade-to-jetty9.patch
- remove_timestamps.patch
- drop_http-builder.patch
 +new_APIs_in_3.0.patch
- disable_Kotlin.patch
- disable_buildSrc_tests.patch
 +dependency-management_depends_on_testkit.patch
++34-disable-code-quality.patch
 +Groovy_projects_depends_on_localGroovy.patch
- drop_jmh-gradle-plugin.patch
- fix-classpath-annotation.patch
++disable-Kotlin.patch
++disable-aws.patch
++disable_buildSrc_tests.patch
++docs.patch
++drop-http-builder.patch
++drop-jmh-gradle-plugin.patch
++eclipse-aether.patch
++groovy-jar.patch
++jcommander.patch
++maven-3.3-compatibility.patch
++nekohtml.patch
++remove-timestamps.patch
++use-local-artifacts.patch
++jansi.patch
++commons-io.patch
diff --cc debian/patches/upgrade-to-jetty9.patch
index f94d997,0000000..0cefadd
mode 100644,000000..100644
--- a/debian/patches/upgrade-to-jetty9.patch
+++ b/debian/patches/upgrade-to-jetty9.patch
@@@ -1,447 -1,0 +1,482 @@@
- Description: Upgrade to Jetty 9
- Author: Michal Srb <msrb at redhat.com>
++From: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
++Date: Sun, 12 Nov 2017 01:04:51 +0100
++Subject: upgrade-to-jetty9
++
 +Forwarded: no
++---
++ gradle/dependencies.gradle                         |   6 +-
++ subprojects/jetty/jetty.gradle                     |  25 +++--
++ .../api/plugins/jetty/AbstractJettyRunTask.java    |  18 ++--
++ .../org/gradle/api/plugins/jetty/JettyRun.java     |  18 ++--
++ .../org/gradle/api/plugins/jetty/JettyRunWar.java  |   6 +-
++ .../plugins/jetty/internal/Jetty6PluginServer.java |  40 ++++----
++ .../plugins/jetty/internal/JettyConfiguration.java | 102 +++------------------
++ .../plugins/jetty/internal/JettyPluginServer.java  |   2 +-
++ .../jetty/internal/JettyPluginWebAppContext.java   |  16 ++--
++ .../gradle/api/plugins/jetty/internal/Monitor.java |   2 +-
++ 10 files changed, 85 insertions(+), 150 deletions(-)
++
++diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
++index 2a648f9..40de42c 100755
 +--- a/gradle/dependencies.gradle
 ++++ b/gradle/dependencies.gradle
- @@ -62,12 +62,12 @@
++@@ -62,12 +62,12 @@ libraries.logback_classic = dependencies.module('ch.qos.logback:logback-classic:
 + }
 + 
 + // Jetty
 +-libraries.servlet_api = "org.mortbay.jetty:servlet-api:2.5-20081211 at jar"
 +-libraries.jetty_util = dependencies.module("org.mortbay.jetty:jetty-util:6.1.26") {
 ++libraries.servlet_api = "javax.servlet:servlet-api-3.1"
 ++libraries.jetty_util = dependencies.module("org.eclipse.jetty:jetty9-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:jetty9-server") {
 +     dependency libraries.jetty_util
 +     dependency libraries.servlet_api
 + }
++diff --git a/subprojects/jetty/jetty.gradle b/subprojects/jetty/jetty.gradle
++index 8864923..cef7831 100644
 +--- a/subprojects/jetty/jetty.gradle
 ++++ b/subprojects/jetty/jetty.gradle
- @@ -23,22 +23,27 @@
++@@ -23,22 +23,27 @@ dependencies {
 +     compile libraries.jetty
 +     compile libraries.jetty_util
 +     compile libraries.servlet_api
 +-    compile module("org.mortbay.jetty:jetty-plus:6.1.26") {
 ++    compile module("org.eclipse.jetty:jetty9-plus") {
 ++        dependency "org.eclipse.jetty:jetty9-security"
 ++        dependency "org.eclipse.jetty:jetty9-webapp"
 ++        dependency "org.eclipse.jetty:jetty9-servlet"
 ++        dependency "org.eclipse.jetty:jetty9-xml"
 +         dependency libraries.jetty
 +-        module("org.mortbay.jetty:jetty-naming:6.1.26") {
 +-            dependency libraries.jetty
 +-        }
 +     }
 + 
 +-    runtime module("org.mortbay.jetty:jsp-2.1:6.1.14") {
 +-        dependency "org.eclipse.jdt:core:3.1.1 at jar"
 +-        dependency "org.mortbay.jetty:jsp-api-2.1:6.1.14 at jar"
 ++    runtime module("org.eclipse.jetty:jetty9-apache-jsp") {
 ++        dependency "org.eclipse.jetty:jetty9-server"
 ++        dependency "org.eclipse.jetty:jetty9-util"
 ++        dependency "org.eclipse.jetty:jetty9-security"
 ++        dependency "org.eclipse.jetty:jetty9-webapp"
 ++        dependency "org.eclipse.jetty:jetty9-servlet"
 ++        dependency "org.eclipse.jetty:jetty9-xml"
 ++        dependency "org.eclipse.jetty:jetty9-plus"
 +         dependency libraries.jetty_util
 +         dependency libraries.servlet_api
 +     }
 + 
 +-    runtime "org.mortbay.jetty:jetty-annotations:6.1.26 at jar"
 +-    runtime "org.apache.geronimo.specs:geronimo-annotation_1.0_spec:1.0 at jar"
 ++    runtime "org.eclipse.jetty:jetty9-annotations"
 + }
 + 
 +-useTestFixtures()
 +\ No newline at end of file
 ++useTestFixtures()
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/AbstractJettyRunTask.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/AbstractJettyRunTask.java
++index 5fadb76..e1b9587 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/AbstractJettyRunTask.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/AbstractJettyRunTask.java
- @@ -30,11 +30,11 @@
++@@ -30,11 +30,11 @@ import org.gradle.api.tasks.TaskAction;
 + import org.gradle.internal.classpath.DefaultClassPath;
 + import org.gradle.internal.logging.progress.ProgressLogger;
 + import org.gradle.internal.logging.progress.ProgressLoggerFactory;
 +-import org.mortbay.jetty.Connector;
 +-import org.mortbay.jetty.RequestLog;
 +-import org.mortbay.jetty.Server;
 +-import org.mortbay.jetty.security.UserRealm;
 +-import org.mortbay.util.Scanner;
 ++import org.eclipse.jetty.server.Connector;
 ++import org.eclipse.jetty.server.RequestLog;
 ++import org.eclipse.jetty.server.Server;
 ++import org.eclipse.jetty.security.LoginService;
 ++import org.eclipse.jetty.util.Scanner;
 + import org.slf4j.Logger;
 + import org.slf4j.LoggerFactory;
 + 
- @@ -119,7 +119,7 @@
++@@ -119,7 +119,7 @@ public abstract class AbstractJettyRunTask extends ConventionTask {
 +     /**
 +      * List of security realms to set up. Optional.
 +      */
 +-    private UserRealm[] userRealms;
 ++    private LoginService[] userRealms;
 + 
 +     /**
 +      * A RequestLog implementation to use for the webapp at runtime. Optional.
- @@ -325,7 +325,7 @@
++@@ -325,7 +325,7 @@ public abstract class AbstractJettyRunTask extends ConventionTask {
 +     /**
 +      * Run a scanner thread on the given list of files and directories, calling stop/start on the given list of LifeCycle objects if any of the watched files change.
 +      */
 +-    private void startScanner() {
 ++    private void startScanner() throws Exception {
 + 
 +         // check if scanning is enabled
 +         if (getScanIntervalSeconds() <= 0) {
- @@ -558,11 +558,11 @@
++@@ -558,11 +558,11 @@ public abstract class AbstractJettyRunTask extends ConventionTask {
 +     }
 + 
 +     @Internal
 +-    public UserRealm[] getUserRealms() {
 ++    public LoginService[] getUserRealms() {
 +         return userRealms;
 +     }
 + 
 +-    public void setUserRealms(UserRealm[] userRealms) {
 ++    public void setUserRealms(LoginService[] userRealms) {
 +         this.userRealms = userRealms;
 +     }
 + 
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRun.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRun.java
++index 58aa8e4..7f3eb11 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRun.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRun.java
- @@ -27,15 +27,15 @@
++@@ -27,15 +27,15 @@ import org.gradle.api.tasks.InputDirectory;
 + import org.gradle.api.tasks.InputFile;
 + import org.gradle.api.tasks.Internal;
 + import org.gradle.api.tasks.Optional;
 +-import org.mortbay.jetty.Handler;
 +-import org.mortbay.jetty.Server;
 +-import org.mortbay.jetty.handler.ContextHandler;
 +-import org.mortbay.jetty.handler.ContextHandlerCollection;
 +-import org.mortbay.jetty.handler.HandlerCollection;
 +-import org.mortbay.resource.Resource;
 +-import org.mortbay.resource.ResourceCollection;
 +-import org.mortbay.util.Scanner;
 +-import org.mortbay.xml.XmlConfiguration;
 ++import org.eclipse.jetty.server.Handler;
 ++import org.eclipse.jetty.server.Server;
 ++import org.eclipse.jetty.server.handler.ContextHandler;
 ++import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 ++import org.eclipse.jetty.server.handler.HandlerCollection;
 ++import org.eclipse.jetty.util.resource.Resource;
 ++import org.eclipse.jetty.util.resource.ResourceCollection;
 ++import org.eclipse.jetty.util.Scanner;
 ++import org.eclipse.jetty.xml.XmlConfiguration;
 + import org.slf4j.Logger;
 + import org.slf4j.LoggerFactory;
 + 
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRunWar.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRunWar.java
++index 93d0e26..11dac4d 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRunWar.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/JettyRunWar.java
 +@@ -17,8 +17,8 @@
 + package org.gradle.api.plugins.jetty;
 + 
 + import org.gradle.api.plugins.jetty.internal.Jetty6PluginServer;
 +-import org.mortbay.util.Scanner;
 +-import org.mortbay.xml.XmlConfiguration;
 ++import org.eclipse.jetty.util.Scanner;
 ++import org.eclipse.jetty.xml.XmlConfiguration;
 + import org.slf4j.Logger;
 + import org.slf4j.LoggerFactory;
 + import org.gradle.api.tasks.InputFile;
- @@ -54,7 +54,7 @@
++@@ -54,7 +54,7 @@ public class JettyRunWar extends AbstractJettyRunTask {
 +     }
 + 
 +     /* (non-Javadoc)
 +-    * @see org.mortbay.jetty.plugin.util.AbstractJettyTask#configureScanner()
 ++    * @see org.eclipse.jetty.plugin.util.AbstractJettyTask#configureScanner()
 +     */
 +     public void configureScanner() {
 +         List<File> scanList = new ArrayList<File>();
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Jetty6PluginServer.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Jetty6PluginServer.java
++index ec736ff..932bff5 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Jetty6PluginServer.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Jetty6PluginServer.java
 +@@ -16,18 +16,21 @@
 + 
 + package org.gradle.api.plugins.jetty.internal;
 + 
 +-import org.mortbay.jetty.Connector;
 +-import org.mortbay.jetty.Handler;
 +-import org.mortbay.jetty.RequestLog;
 +-import org.mortbay.jetty.Server;
 +-import org.mortbay.jetty.handler.ContextHandlerCollection;
 +-import org.mortbay.jetty.handler.DefaultHandler;
 +-import org.mortbay.jetty.handler.HandlerCollection;
 +-import org.mortbay.jetty.handler.RequestLogHandler;
 +-import org.mortbay.jetty.nio.SelectChannelConnector;
 +-import org.mortbay.jetty.security.UserRealm;
 +-import org.mortbay.jetty.webapp.WebAppContext;
 +-import org.mortbay.resource.Resource;
 ++import java.util.Arrays;
 ++import java.util.List;
 ++
 ++import org.eclipse.jetty.server.Connector;
 ++import org.eclipse.jetty.server.Handler;
 ++import org.eclipse.jetty.server.RequestLog;
 ++import org.eclipse.jetty.server.Server;
 ++import org.eclipse.jetty.server.ServerConnector;
 ++import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 ++import org.eclipse.jetty.server.handler.DefaultHandler;
 ++import org.eclipse.jetty.server.handler.HandlerCollection;
 ++import org.eclipse.jetty.server.handler.RequestLogHandler;
 ++import org.eclipse.jetty.security.LoginService;
 ++import org.eclipse.jetty.webapp.WebAppContext;
 ++import org.eclipse.jetty.util.resource.Resource;
 + import org.slf4j.Logger;
 + import org.slf4j.LoggerFactory;
 + 
- @@ -39,6 +42,7 @@
++@@ -39,6 +42,7 @@ public class Jetty6PluginServer implements JettyPluginServer {
 + 
 +     public static final int DEFAULT_MAX_IDLE_TIME = 30000;
 +     private final Server server;
 ++    private List<LoginService> loginServices;
 +     private ContextHandlerCollection contexts; //the list of ContextHandlers
 +     HandlerCollection handlers; //the list of lists of Handlers
 +     private RequestLogHandler requestLogHandler; //the request log handler
- @@ -63,7 +67,7 @@
++@@ -63,7 +67,7 @@ public class Jetty6PluginServer implements JettyPluginServer {
 + 
 +         for (int i = 0; i < connectors.length; i++) {
 +             Connector connector = (Connector) connectors[i];
 +-            LOGGER.debug("Setting Connector: {} on port {}", connector.getClass().getName(), connector.getPort());
 ++            LOGGER.debug("Setting Connector: {}", connector.getClass().getName());
 +             this.server.addConnector(connector);
 +         }
 +     }
- @@ -83,8 +87,10 @@
++@@ -83,8 +87,10 @@ public class Jetty6PluginServer implements JettyPluginServer {
 +             return;
 +         }
 + 
 ++        this.loginServices = Arrays.asList((LoginService[]) realms);
 ++
 +         for (int i = 0; i < realms.length; i++) {
 +-            this.server.addUserRealm((UserRealm) realms[i]);
 ++            this.server.addBean((LoginService) realms[i]);
 +         }
 +     }
 + 
- @@ -92,7 +98,7 @@
++@@ -92,7 +98,7 @@ public class Jetty6PluginServer implements JettyPluginServer {
 +      * @see org.gradle.api.plugins.jetty.internal.JettyPluginServer#getUserRealms()
 +      */
 +     public Object[] getUserRealms() {
 +-        return this.server.getUserRealms();
 ++        return this.loginServices.toArray();
 +     }
 + 
 +     public void setRequestLog(Object requestLog) {
- @@ -156,9 +162,9 @@
++@@ -156,9 +162,9 @@ public class Jetty6PluginServer implements JettyPluginServer {
 +     }
 + 
 +     public Object createDefaultConnector(int port) throws Exception {
 +-        SelectChannelConnector connector = new SelectChannelConnector();
 ++        ServerConnector connector = new ServerConnector(server);
 +         connector.setPort(port);
 +-        connector.setMaxIdleTime(DEFAULT_MAX_IDLE_TIME);
 ++        connector.setIdleTimeout(DEFAULT_MAX_IDLE_TIME);
 + 
 +         return connector;
 +     }
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyConfiguration.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyConfiguration.java
++index 7c312c3..43970cd 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyConfiguration.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyConfiguration.java
 +@@ -16,29 +16,23 @@
 + 
 + package org.gradle.api.plugins.jetty.internal;
 + 
 +-import org.mortbay.jetty.plus.annotation.InjectionCollection;
 +-import org.mortbay.jetty.plus.annotation.LifeCycleCallbackCollection;
 +-import org.mortbay.jetty.plus.annotation.RunAsCollection;
 +-import org.mortbay.jetty.plus.webapp.Configuration;
 +-import org.mortbay.jetty.servlet.FilterHolder;
 +-import org.mortbay.jetty.servlet.ServletHolder;
 +-import org.mortbay.jetty.webapp.WebAppClassLoader;
 +-import org.mortbay.jetty.webapp.WebAppContext;
 +-import org.mortbay.log.Log;
 +-import org.mortbay.util.LazyList;
 ++import org.eclipse.jetty.webapp.WebAppContext;
 ++import org.eclipse.jetty.webapp.WebAppClassLoader;
 ++import org.eclipse.jetty.webapp.WebXmlConfiguration;
 ++import org.eclipse.jetty.util.log.Log;
 ++import org.eclipse.jetty.util.log.Logger;
 + 
 + import java.io.File;
 +-import java.io.IOException;
 +-import java.lang.reflect.Method;
 +-import java.net.URL;
 + import java.net.URLClassLoader;
 +-import java.util.Iterator;
 + import java.util.List;
 ++import java.util.Arrays;
 + 
 +-public class JettyConfiguration extends Configuration {
 ++public class JettyConfiguration extends WebXmlConfiguration {
 +     private List<File> classPathFiles;
 +     private File webXmlFile;
 + 
 ++    private static final Logger LOG = Log.getLogger(JettyConfiguration.class);
 ++
 +     public JettyConfiguration() {
 +         super();
 +     }
- @@ -54,85 +48,19 @@
++@@ -54,85 +48,19 @@ public class JettyConfiguration extends Configuration {
 +     /**
 +      * Set up the classloader for the webapp, using the various parts of the Maven project
 +      *
 +-     * @see org.mortbay.jetty.webapp.Configuration#configureClassLoader()
 ++     * @see org.eclipse.jetty.webapp.Configuration#configureClassLoader()
 +      */
 +-    public void configureClassLoader() throws Exception {
 ++    @Override
 ++    public void configure(WebAppContext context) throws Exception {
 +         if (classPathFiles != null) {
 +-            Log.debug("Setting up classpath ...");
 ++            LOG.debug("Setting up classpath ...");
 + 
 +             //put the classes dir and all dependencies into the classpath
 +             for (File classPathFile : classPathFiles) {
 +-                ((WebAppClassLoader) getWebAppContext().getClassLoader()).addClassPath(
 ++                ((WebAppClassLoader) context.getClassLoader()).addClassPath(
 +                         classPathFile.getCanonicalPath());
 +             }
 +-
 +-            if (Log.isDebugEnabled()) {
 +-                Log.debug("Classpath = " + LazyList.array2List(
 +-                        ((URLClassLoader) getWebAppContext().getClassLoader()).getURLs()));
 +-            }
 +-        } else {
 +-            super.configureClassLoader();
 +-        }
 +-    }
 +-
 +-    protected URL findWebXml() throws IOException {
 +-        //if an explicit web.xml file has been set (eg for jetty:run) then use it
 +-        if (webXmlFile != null && webXmlFile.exists()) {
 +-            return webXmlFile.toURI().toURL();
 +-        }
 +-
 +-        //if we haven't overridden location of web.xml file, use the
 +-        //standard way of finding it
 +-        Log.debug("Looking for web.xml file in WEB-INF");
 +-        return super.findWebXml();
 +-    }
 +-
 +-    public void parseAnnotations() throws Exception {
 +-        String v = System.getProperty("java.version");
 +-        String[] version = v.split("\\.");
 +-        if (version == null) {
 +-            Log.info("Unable to determine jvm version, annotations will not be supported");
 +-            return;
 +-        }
 +-        int major = Integer.parseInt(version[0]);
 +-        int minor = Integer.parseInt(version[1]);
 +-        if ((major >= 1) && (minor >= 5)) {
 +-            //TODO it would be nice to be able to re-use the parseAnnotations() method on
 +-            //the org.mortbay.jetty.annotations.Configuration class, but it's too difficult?
 +-
 +-            //able to use annotations on jdk1.5 and above
 +-            Class<?> annotationParserClass = Thread.currentThread().getContextClassLoader().loadClass(
 +-                    "org.mortbay.jetty.annotations.AnnotationParser");
 +-            Method parseAnnotationsMethod = annotationParserClass.getMethod("parseAnnotations", WebAppContext.class,
 +-                    Class.class, RunAsCollection.class, InjectionCollection.class, LifeCycleCallbackCollection.class);
 +-
 +-            //look thru _servlets
 +-            Iterator itor = LazyList.iterator(_servlets);
 +-            while (itor.hasNext()) {
 +-                ServletHolder holder = (ServletHolder) itor.next();
 +-                //TODO: Some paths within Jetty can acquire persistent file locks on the jars containing these classes.
 +-                Class servlet = getWebAppContext().loadClass(holder.getClassName());
 +-                parseAnnotationsMethod.invoke(null, getWebAppContext(), servlet, _runAsCollection, _injections,
 +-                        _callbacks);
 +-            }
 +-
 +-            //look thru _filters
 +-            itor = LazyList.iterator(_filters);
 +-            while (itor.hasNext()) {
 +-                FilterHolder holder = (FilterHolder) itor.next();
 +-                Class filter = getWebAppContext().loadClass(holder.getClassName());
 +-                parseAnnotationsMethod.invoke(null, getWebAppContext(), filter, null, _injections, _callbacks);
 +-            }
 +-
 +-            //look thru _listeners
 +-            itor = LazyList.iterator(_listeners);
 +-            while (itor.hasNext()) {
 +-                Object listener = itor.next();
 +-                parseAnnotationsMethod.invoke(null, getWebAppContext(), listener.getClass(), null, _injections,
 +-                        _callbacks);
 +-            }
 +-        } else {
 +-            Log.info("Annotations are not supported on jvms prior to jdk1.5");
 ++            super.configure(context);
 +         }
 +     }
 + }
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginServer.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginServer.java
++index e1f5f30..e8b2274 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginServer.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginServer.java
 +@@ -16,7 +16,7 @@
 + 
 + package org.gradle.api.plugins.jetty.internal;
 + 
 +-import org.mortbay.jetty.webapp.WebAppContext;
 ++import org.eclipse.jetty.webapp.WebAppContext;
 + 
 + /**
 +  * JettyPluginServer
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginWebAppContext.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginWebAppContext.java
++index 7e13851..0094593 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginWebAppContext.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/JettyPluginWebAppContext.java
- @@ -19,12 +19,11 @@
++@@ -19,12 +19,11 @@ package org.gradle.api.plugins.jetty.internal;
 + import java.io.File;
 + import java.util.List;
 + 
 +-import org.mortbay.jetty.plus.webapp.EnvConfiguration;
 +-import org.mortbay.jetty.webapp.Configuration;
 +-import org.mortbay.jetty.webapp.JettyWebXmlConfiguration;
 +-import org.mortbay.jetty.webapp.TagLibConfiguration;
 +-import org.mortbay.jetty.webapp.WebAppContext;
 +-import org.mortbay.jetty.webapp.WebInfConfiguration;
 ++import org.eclipse.jetty.plus.webapp.EnvConfiguration;
 ++import org.eclipse.jetty.webapp.Configuration;
 ++import org.eclipse.jetty.webapp.JettyWebXmlConfiguration;
 ++import org.eclipse.jetty.webapp.WebAppContext;
 ++import org.eclipse.jetty.webapp.WebInfConfiguration;
 + 
 + /**
 +  * Jetty6PluginWebAppContext
- @@ -37,9 +36,8 @@
++@@ -37,9 +36,8 @@ public class JettyPluginWebAppContext extends WebAppContext {
 +     private EnvConfiguration envConfig = new EnvConfiguration();
 +     private JettyConfiguration mvnConfig = new JettyConfiguration();
 +     private JettyWebXmlConfiguration jettyWebConfig = new JettyWebXmlConfiguration();
 +-    private TagLibConfiguration tagConfig = new TagLibConfiguration();
 +     private Configuration[] configs = new Configuration[]{
 +-            webInfConfig, envConfig, mvnConfig, jettyWebConfig, tagConfig
 ++            webInfConfig, envConfig, mvnConfig, jettyWebConfig
 +     };
 + 
 +     public JettyPluginWebAppContext() {
- @@ -108,12 +106,10 @@
++@@ -108,12 +106,10 @@ public class JettyPluginWebAppContext extends WebAppContext {
 +     }
 + 
 +     public void doStart() throws Exception {
 +-        setShutdown(false);
 +         super.doStart();
 +     }
 + 
 +     public void doStop() throws Exception {
 +-        setShutdown(true);
 +         //just wait a little while to ensure no requests are still being processed
 +         Thread.sleep(500L);
 +         super.doStop();
++diff --git a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Monitor.java b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Monitor.java
++index 7f3fb08..a4e1dfb 100644
 +--- a/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Monitor.java
 ++++ b/subprojects/jetty/src/main/java/org/gradle/api/plugins/jetty/internal/Monitor.java
 +@@ -16,7 +16,7 @@
 + 
 + package org.gradle.api.plugins.jetty.internal;
 + 
 +-import org.mortbay.jetty.Server;
 ++import org.eclipse.jetty.server.Server;
 + import org.slf4j.Logger;
 + import org.slf4j.LoggerFactory;
 + 
diff --cc debian/patches/use-local-artifacts.patch
index 0000000,0000000..760e9c8
new file mode 100644
--- /dev/null
+++ b/debian/patches/use-local-artifacts.patch
@@@ -1,0 -1,0 +1,297 @@@
++From: Markus Koschany <apo at debian.org>
++Date: Sat, 18 Nov 2017 23:27:06 +0100
++Subject: use local artifacts
++
++Use local jar files to build Gradle. The core point is using "flatDir" as the
++only artifacts repository and make all dependencies versionless by removing the
++version number of some of the dependency declarations. Typical Gradle projects
++do not need to remove the versions but Gradle is an exception because it
++dynamically loads libraries using its own mechanism and maintains classpaths.
++
++Forwarded: not-needed
++---
++ build.gradle                                       |  4 +--
++ buildSrc/build.gradle                              |  7 ++--
++ gradle/dependencies.gradle                         | 42 +++++++++++-----------
++ gradle/testSetup.gradle                            |  2 +-
++ .../dependency-management.gradle                   |  5 ---
++ subprojects/docs/docs.gradle                       | 15 ++------
++ subprojects/javascript/javascript.gradle           |  2 +-
++ subprojects/maven/maven.gradle                     |  2 +-
++ subprojects/reporting/reporting.gradle             |  2 +-
++ .../testing/worker/ForkingTestClassProcessor.java  |  2 +-
++ 10 files changed, 34 insertions(+), 49 deletions(-)
++
++diff --git a/build.gradle b/build.gradle
++index 314c2c8..c332b01 100644
++--- a/build.gradle
+++++ b/build.gradle
++@@ -214,8 +214,7 @@ allprojects {
++     group = 'org.gradle'
++ 
++     repositories {
++-        maven { url 'https://repo.gradle.org/gradle/libs-releases' }
++-        maven { url 'https://repo.gradle.org/gradle/libs-milestones' }
+++        flatDir { dirs '/usr/share/java' }
++     }
++ 
++     // Force clean tasks to run before any other tasks 
++@@ -234,6 +233,7 @@ subprojects {
++     version = rootProject.version
++ 
++     if (project in groovyProjects) {
+++        apply from: "${rootDir}/debian/substituteDependencies.gradle"
++         apply from: "$rootDir/gradle/groovyProject.gradle"
++         apply from: "$rootDir/gradle/testWithUnknownOS.gradle"
++         apply from: "$rootDir/gradle/java9.gradle"
++diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
++index 5569752..77061bd 100644
++--- a/buildSrc/build.gradle
+++++ b/buildSrc/build.gradle
++@@ -22,7 +22,7 @@ sourceCompatibility = '1.7'
++ targetCompatibility = '1.7'
++ 
++ repositories {
++-    maven { url 'https://repo.gradle.org/gradle/libs-releases' }
+++    maven { url 'file:///usr/share/maven-repo' }
++ }
++ 
++ sourceSets { test { groovy { exclude '**' } } }
++@@ -30,10 +30,10 @@ sourceSets { test { groovy { exclude '**' } } }
++ dependencies {
++     compile 'org.ow2.asm:asm-all:5.0.3'
++     compile gradleApi()
++-    compile 'com.google.guava:guava-jdk5:14.0.1 at jar'
+++    compile 'com.google.guava:guava:14.0.1 at jar'
++     compile 'commons-lang:commons-lang:2.6 at jar'
++     compile localGroovy()
++-    testCompile 'junit:junit:4.12 at jar'
+++    testCompile 'junit:junit:4.x at jar'
++     testCompile 'org.spockframework:spock-core:1.0-groovy-2.4 at jar', 'cglib:cglib-nodep:2.2', 'org.objenesis:objenesis:1.2'
++     testCompile 'org.hamcrest:hamcrest-core:1.3'
++ 
++@@ -46,5 +46,6 @@ apply from: '../gradle/compile.gradle'
++ apply from: '../gradle/taskOrdering.gradle'
++ apply from: '../gradle/dependencies.gradle'
++ apply from: '../gradle/classycle.gradle'
+++apply from: '../debian/substituteDependencies.gradle'
++ 
++ ext.isCiServer = System.getenv().containsKey("TEAMCITY_VERSION")
++diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
++index 41d0716..d66d56c 100755
++--- a/gradle/dependencies.gradle
+++++ b/gradle/dependencies.gradle
++@@ -25,24 +25,24 @@ versions.groovy = "2.4.7"
++ 
++ versions.bouncycastle = "1.51"
++ 
++-versions.maven = "3.0.4"
+++versions.maven = "3.x"
++ 
++ libraries.ant = dependencies.module('org.apache.ant:ant:1.9.6') {
++     dependency 'org.apache.ant:ant-launcher:1.9.6 at jar'
++ }
++ 
++ libraries.asm =  'org.ow2.asm:asm-all:5.1'
++-libraries.bndlib = dependencies.module('biz.aQute.bnd:biz.aQute.bndlib:3.2.0')
+++libraries.bndlib = dependencies.module('biz.aQute.bnd:bndlib:3.2.0')
++ libraries.commons_cli = 'commons-cli:commons-cli:1.2 at jar'
++ libraries.commons_io = dependencies.module(versions.commons_io)
++ libraries.commons_lang = 'commons-lang:commons-lang:2.6 at jar'
++-libraries.commons_collections = 'commons-collections:commons-collections:3.2.2 at jar'
+++libraries.commons_collections = 'commons-collections:commons-collections3:3.x at jar'
++ libraries.jsch = "com.jcraft:jsch:0.1.53"
++ libraries.ivy = dependencies.module('org.apache.ivy:ivy:2.2.0'){
++     dependency libraries.jsch
++ }
++ libraries.jcip = "net.jcip:jcip-annotations:1.0 at jar"
++-libraries.inject = dependencies.module('javax.inject:javax.inject:1')
+++libraries.inject = dependencies.module('javax.inject:atinject-jsr330-api:debian')
++ 
++ // Logging
++ libraries.slf4j_api = dependencies.module('org.slf4j:slf4j-api:1.7.10')
++@@ -84,12 +84,12 @@ libraries.commons_httpclient = dependencies.module('org.apache.httpcomponents:ht
++ 
++ libraries += [
++         dom4j: 'dom4j:dom4j:1.6.1 at jar',
++-        guava: 'com.google.guava:guava-jdk5:17.0 at jar',
+++        guava: 'com.google.guava:guava:17.0 at jar',
++         jsr305: 'com.google.code.findbugs:jsr305:1.3.9 at jar',
++-        groovy: "org.codehaus.groovy:groovy-all:${versions.groovy}",
+++        groovy: "org.codehaus.groovy:groovy-all:debian",
++         jaxen: 'jaxen:jaxen:1.1 at jar',
++         jcip: "net.jcip:jcip-annotations:1.0 at jar",
++-        junit: 'junit:junit:4.12 at jar',
+++        junit: 'junit:junit4:4.x at jar',
++         xmlunit: 'xmlunit:xmlunit:1.3',
++         nekohtml: 'net.sourceforge.nekohtml:nekohtml:1.9.14',
++         xbean: 'org.apache.xbean:xbean-reflect:3.4 at jar', //required by maven3 classes
++@@ -101,9 +101,9 @@ libraries += [
++ 
++ libraries.nekohtml = [libraries.nekohtml, libraries.xerces]
++ 
++-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"
+++libraries.maven3 = dependencies.module("org.apache.maven:maven-core-3.x:${versions.maven}") {
+++    dependency "org.apache.maven:maven-settings-3.x:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-settings-builder-3.x:${versions.maven}@jar"
++ 
++     //plexus:
++     dependency "org.codehaus.plexus:plexus-utils:2.0.6 at jar"
++@@ -123,22 +123,22 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.m
++     dependency "org.sonatype.plexus:plexus-sec-dispatcher:1.3 at jar"
++ 
++     //core:
++-    dependency "org.apache.maven:maven-core:${versions.maven}@jar"
++-    dependency "org.apache.maven:maven-compat:${versions.maven}@jar"
++-    dependency "org.apache.maven:maven-model-builder:${versions.maven}@jar"
++-    dependency "org.apache.maven:maven-model:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-core-3.x:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-compat-3.x:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-model-builder-3.x:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-model-3.x:${versions.maven}@jar"
++     dependency 'org.apache.maven:maven-builder-support-3.x:3.x'
++ 
++     //somewhat core:
++-    dependency "org.apache.maven:maven-artifact:${versions.maven}@jar"
++-    dependency "org.apache.maven:maven-repository-metadata:${versions.maven}@jar"
++-    dependency "org.apache.maven:maven-plugin-api:${versions.maven}@jar"
++-    dependency "org.apache.maven:maven-aether-provider:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-artifact-3.x:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-repository-metadata-3.x:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-plugin-api-3.x:${versions.maven}@jar"
+++    dependency "org.apache.maven:maven-aether-provider-3.x:${versions.maven}@jar"
++ 
++     dependency 'org.apache.maven.wagon:wagon-file:2.4 at jar'
++     dependency 'org.apache.maven.wagon:wagon-http:2.4 at jar'
++     dependency 'org.apache.maven.wagon:wagon-provider-api:2.4 at jar'
++-    dependency 'org.apache.maven.wagon:wagon-http-shared4:2.4 at jar'
+++    dependency 'org.apache.maven.wagon:wagon-http-shared:2.4 at jar'
++ 
++     //eather:
++     dependency 'org.eclipse.aether:maven-resolver-api:1.13.1 at jar'
++@@ -171,8 +171,8 @@ libraries.sshd = dependencies.module("org.apache.sshd:sshd-core:0.13.0") {
++     dependency "org.apache.mina:mina-core:2.0.8"
++ }
++ 
++-libraries.bouncycastle_provider = "org.bouncycastle:bcprov-jdk15on:${versions.bouncycastle}@jar"
++-libraries.bouncycastle_pgp = dependencies.module("org.bouncycastle:bcpg-jdk15on:${versions.bouncycastle}") {
+++libraries.bouncycastle_provider = "org.bouncycastle:bcprov:debian"
+++libraries.bouncycastle_pgp = dependencies.module("org.bouncycastle:bcpg:debian") {
++     dependency libraries.bouncycastle_provider
++ }
++ 
++diff --git a/gradle/testSetup.gradle b/gradle/testSetup.gradle
++index f20e797..9799da3 100644
++--- a/gradle/testSetup.gradle
+++++ b/gradle/testSetup.gradle
++@@ -2,6 +2,6 @@
++ // Calculate the set of released versions - do this at configuration time because we need this to create various tasks
++ // At some point, make this a configuration rule
++ ext.releasedVersions = new org.gradle.build.ReleasedVersions()
++-releasedVersions.destFile = new File(buildDir, "all-released-versions.json")
+++releasedVersions.destFile = file("${rootDir}/debian/additionalSrc/resources/all-released-versions.json")
++ releasedVersions.offline = gradle.startParameter.offline
++ releasedVersions.prepare()
++diff --git a/subprojects/dependency-management/dependency-management.gradle b/subprojects/dependency-management/dependency-management.gradle
++index 4676306..52cf52c 100644
++--- a/subprojects/dependency-management/dependency-management.gradle
+++++ b/subprojects/dependency-management/dependency-management.gradle
++@@ -6,11 +6,6 @@ configurations {
++     mvn3Input
++ }
++ 
++-repositories {
++-    jcenter()
++-    mavenCentral()
++-}
++-
++ dependencies {
++     compile project(":core")
++     compile project(":resources")
++diff --git a/subprojects/docs/docs.gradle b/subprojects/docs/docs.gradle
++index 198aa73..3b2bde8 100755
++--- a/subprojects/docs/docs.gradle
+++++ b/subprojects/docs/docs.gradle
++@@ -51,26 +51,15 @@ configurations {
++ }
++ 
++ dependencies {
++-    userGuideTask 'xalan:xalan:2.7.1', libraries.xerces
++-    userGuideTask module('xhtmlrenderer:xhtmlrenderer:R8rc1') {
+++    userGuideTask 'xalan:xalan2:debian', libraries.xerces
+++    userGuideTask module('xhtmlrenderer:core-renderer') {
++         dependency 'itext:itext:2.0.8 at jar'
++     }
++     userGuideTask 'xslthl:xslthl:2.0.1 at jar'
++ 
++-    userGuideStyleSheets 'docbook:docbook-xsl:1.75.2 at zip'
++     jquery "jquery:jquery.min:1.8.0 at js"
++     jqueryTipTip "com.drewwilson.code:jquery.tipTip:1.3:@js"
++ 
++-    fonts \
++-        "lato:regular:6:v0SdcGFAl2aezM9Vq_aFTQ at ttf",
++-        "lato:regular-italic:6:LqowQDslGv4DmUBAfWa2Vw at ttf",
++-        "lato:bold:6:DvlFBScY1r-FMtZSYIYoYw at ttf",
++-        "lato:bold-italic:6:HkF_qI1x_noxlxhrhMQYEKCWcynf_cDxXwCLxiixG1c at ttf",
++-        "ubuntumono:regular:3:ViZhet7Ak-LRXZMXzuAfkZ0EAVxt0G0biEntp43Qt6E at ttf",
++-        "ubuntumono:regular-italic:3:KAKuHXAHZOeECOWAHsRKA-LrC4Du4e_yfTJ8Ol60xk0 at ttf",
++-        "ubuntumono:bold:3:ceqTZGKHipo8pJj4molytp_TkvowlIOtbR7ePgFOpF4 at ttf",
++-        "ubuntumono:bold-italic:3:n_d8tv_JOIiYyMXR4eaV9WsGzsqhEorxQDpu60nfWEc at ttf"
++-
++     testCompile libraries.groovy
++     testCompile "org.pegdown:pegdown:1.1.0"
++     testCompile libraries.jsoup
++diff --git a/subprojects/javascript/javascript.gradle b/subprojects/javascript/javascript.gradle
++index 1e94bd8..5d86634 100644
++--- a/subprojects/javascript/javascript.gradle
+++++ b/subprojects/javascript/javascript.gradle
++@@ -17,7 +17,7 @@
++ dependencies {
++     compile libraries.groovy
++ 
++-    compile "org.mozilla:rhino:1.7R3"
+++    compile "rhino:js:debian"
++     compile libraries.gson // used by JsHint
++     compile "org.simpleframework:simple:4.1.21" // used by http package in envjs
++     compile project(':core'), project(":plugins"), project(':workers')
++diff --git a/subprojects/maven/maven.gradle b/subprojects/maven/maven.gradle
++index 0f5bd8f..9dfe2a2 100644
++--- a/subprojects/maven/maven.gradle
+++++ b/subprojects/maven/maven.gradle
++@@ -27,7 +27,7 @@ dependencies {
++     compile libraries.maven3
++     compile "org.sonatype.pmaven:pmaven-common:0.8-20100325 at jar"
++     compile "org.sonatype.pmaven:pmaven-groovy:0.8-20100325 at jar"
++-    compile "org.codehaus.plexus:plexus-component-annotations:1.5.2 at jar"
+++    compile "org.codehaus.plexus:plexus-component-annotations-1.5:1.6 at jar"
++     compile "com.beust:jcommander:1.x"
++ 
++     testCompile libraries.xmlunit
++diff --git a/subprojects/reporting/reporting.gradle b/subprojects/reporting/reporting.gradle
++index f0489d9..0ee7bf4 100644
++--- a/subprojects/reporting/reporting.gradle
+++++ b/subprojects/reporting/reporting.gradle
++@@ -7,7 +7,7 @@ configurations {
++ }
++ 
++ repositories {
++-    javaScript.googleApis()
+++    flatDir { dirs "/usr/share/javascript/jquery" }
++ }
++ 
++ dependencies {
++diff --git a/subprojects/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/worker/ForkingTestClassProcessor.java b/subprojects/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/worker/ForkingTestClassProcessor.java
++index 0d1900c..4045078 100755
++--- a/subprojects/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/worker/ForkingTestClassProcessor.java
+++++ b/subprojects/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/worker/ForkingTestClassProcessor.java
++@@ -103,7 +103,7 @@ public class ForkingTestClassProcessor implements TestClassProcessor {
++             moduleRegistry.getModule("gradle-native").getImplementationClasspath().getAsURLs(),
++             moduleRegistry.getModule("gradle-testing-base").getImplementationClasspath().getAsURLs(),
++             moduleRegistry.getModule("gradle-testing-jvm").getImplementationClasspath().getAsURLs(),
++-            moduleRegistry.getExternalModule("guava-jdk5").getImplementationClasspath().getAsURLs(),
+++            moduleRegistry.getExternalModule("guava").getImplementationClasspath().getAsURLs(),
++             moduleRegistry.getExternalModule("slf4j-api").getImplementationClasspath().getAsURLs(),
++             moduleRegistry.getExternalModule("jul-to-slf4j").getImplementationClasspath().getAsURLs(),
++             moduleRegistry.getExternalModule("native-platform").getImplementationClasspath().getAsURLs(),
diff --cc debian/rules
index 65c12e7,0000000..7603d9f
mode 100755,000000..100755
--- a/debian/rules
+++ b/debian/rules
@@@ -1,67 -1,0 +1,65 @@@
 +#!/usr/bin/make -f
 +
 +GRADLE_TASKS = assemble startScripts docs
 +GRADLE_EXCLUDED_PROJECTS = distributions \
 +                           internalAndroidPerformanceTesting \
 +                           internalTesting \
 +                           internalIntegTesting \
 +                           internalPerformanceTesting
 +export GRADLE_VERSION = $(shell cat version.txt)
 +
 +# Only for debug purpose
 +# export JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
 +
 +# Under fakeroot Gradle will show error while creating /root/.gradle, hence
 +# specifying the Gradle home location.
 +# Excluding userguidePdf since PDF compiling using xhtmlrenderer requires the
 +# headful JDK installed.
 +# Excluding :killExistingDaemons since it runs /bin/ps which is not installed in
 +# a Buildd.
 +GRADLE_FLAGS = --project-prop finalRelease=true --offline --stacktrace \
 +               --gradle-user-home debian/.gradlehome --no-daemon \
 +               $(patsubst %,-x :%:assemble,$(GRADLE_EXCLUDED_PROJECTS)) \
 +               -x :internalAndroidPerformanceTesting:renameAndroidTools \
 +               -x :internalAndroidPerformanceTesting:jar \
 +               -x userguidePdf -x :killExistingDaemons
 +
 +# Support for DEB_BUILD_OPTIONS parallel=n
 +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
 +	NUMTHREADS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
 +	GRADLE_FLAGS += --parallel --max-workers=$(NUMTHREADS)
 +endif
 +
 +%:
 +	dh $@ --with maven_repo_helper,javahelper
 +
 +override_dh_auto_build:
 +	mkdir --parents buildSrc/src/main/java
- 	# These symlinks are due to new APIs introduced in Gradle 3.1
- 	ln -s ../../../../subprojects/dependency-management/src/main/java/org/gradle/api/internal/runtimeshaded/PackageListGenerator.java buildSrc/src/main/java/PackageListGenerator.java
- 	ln -s ../../../../subprojects/dependency-management/src/main/java/org/gradle/api/internal/runtimeshaded/Trie.java buildSrc/src/main/java/Trie.java
- 	ln -s ../../../../subprojects/core/src/main/java/org/gradle/api/tasks/OrderSensitive.java buildSrc/src/main/java/OrderSensitive.java
- 	ln -s ../../../../subprojects/core/src/main/java/org/gradle/api/tasks/Classpath.java buildSrc/src/main/java/Classpath.java
- 	gradle $(GRADLE_TASKS) $(GRADLE_FLAGS) 
++	# These symlinks are due to new APIs introduced in Gradle 3.4.1
++	ln -s ../../../../subprojects/core/src/main/java/org/gradle/api/tasks/WriteProperties.java buildSrc/src/main/java/WriteProperties.java
++	ln -s ../../../../subprojects/core/src/main/java/org/gradle/api/internal/PropertiesUtils.java buildSrc/src/main/java/PropertiesUtils.java
++	gradle $(GRADLE_TASKS) $(GRADLE_FLAGS)
 +	pandoc -s -o debian/gradle.1 debian/gradle.1.md
 +
 +override_dh_auto_clean:
 +	dh_auto_clean
 +	find . -wholename .*build/generated-resources | xargs echo | sed -e 's^build/generated-resources^build^g' | xargs rm -Rf
 +	rm -r -f .gradle debian/.gradlehome buildSrc/.gradle buildSrc/build build
 +	rm -r -f debian/gradle.1 subprojects/distributions/build
 +	$(RM) -r buildSrc/src/main/java
 +
 +override_dh_install:
 +	dh_install
 +	# Remove lintian warning zero-byte-file-in-doc-directory
 +	rm debian/gradle-doc/usr/share/doc/gradle/dsl/dsl-standalone.html
 +	rm debian/gradle-doc/usr/share/doc/gradle/dsl/sidebar.js
 +
 +get-orig-source:
 +	uscan --download-current-version --force-download --repack --compression xz
 +
 +# since gradle build-depends on itself, a way to generate a deb from upstream
 +# binary distribution is provided with this target. With the resulting .deb,
 +# gradle can be rebuilt from source.
 +bootstrap:
 +	cd $(dir $(firstword $(MAKEFILE_LIST)))../ && \
 +	./debian/bootstrap.sh

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/gradle.git



More information about the pkg-java-commits mailing list