Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
WIP

  1. … 17 more files in changeset.
WIP

  1. … 20 more files in changeset.
Rework how the compiler plugin is loaded

The previous implementation had a performance regression due to the inclusion of `tools.jar`

on the worker classpath. Some classes of the Java compiler were loaded multiple times. To

avoid this, we need to separate the compiler plugin from Gradle itself, so that we can load

it in isolation in the same classloader as the loader which has `tools.jar`.

Therefore, the compiler plugin is restricted to plain Java APIs, and the "communication"

with Gradle, for example the intelligence of relativizing paths or writing the generated

mapping file, is done passing lambdas to the compiler.

Last but not least, this also means that the construction of the incremental compile task

has to be done via reflection (otherwise we would load the task in the wrong classloader).

  1. … 21 more files in changeset.
Rework how the compiler plugin is loaded

The previous implementation had a performance regression due to the inclusion of `tools.jar`

on the worker classpath. Some classes of the Java compiler were loaded multiple times. To

avoid this, we need to separate the compiler plugin from Gradle itself, so that we can load

it in isolation in the same classloader as the loader which has `tools.jar`.

Therefore, the compiler plugin is restricted to plain Java APIs, and the "communication"

with Gradle, for example the intelligence of relativizing paths or writing the generated

mapping file, is done passing lambdas to the compiler.

Last but not least, this also means that the construction of the incremental compile task

has to be done via reflection (otherwise we would load the task in the wrong classloader).

  1. … 21 more files in changeset.
Rework how the compiler plugin is loaded

The previous implementation had a performance regression due to the inclusion of `tools.jar`

on the worker classpath. Some classes of the Java compiler were loaded multiple times. To

avoid this, we need to separate the compiler plugin from Gradle itself, so that we can load

it in isolation in the same classloader as the loader which has `tools.jar`.

Therefore, the compiler plugin is restricted to plain Java APIs, and the "communication"

with Gradle, for example the intelligence of relativizing paths or writing the generated

mapping file, is done passing lambdas to the compiler.

Last but not least, this also means that the construction of the incremental compile task

has to be done via reflection (otherwise we would load the task in the wrong classloader).

  1. … 21 more files in changeset.
Rework how the compiler plugin is loaded

The previous implementation had a performance regression due to the inclusion of `tools.jar`

on the worker classpath. Some classes of the Java compiler were loaded multiple times. To

avoid this, we need to separate the compiler plugin from Gradle itself, so that we can load

it in isolation in the same classloader as the loader which has `tools.jar`.

Therefore, the compiler plugin is restricted to plain Java APIs, and the "communication"

with Gradle, for example the intelligence of relativizing paths or writing the generated

mapping file, is done passing lambdas to the compiler.

Last but not least, this also means that the construction of the incremental compile task

has to be done via reflection (otherwise we would load the task in the wrong classloader).

  1. … 21 more files in changeset.
WIP

  1. … 20 more files in changeset.
WIP

  1. … 19 more files in changeset.
WIP

  1. … 20 more files in changeset.
Move JavaModuleDetector service to build session scope

This makes modular classpath handling available to more Gradle

infrastructure which itself runs on the JVM. In particular

the execution service (project.javaexec {}) can support running

modules through this.

    • -6
    • +0
    ./JavaLanguagePluginServiceRegistry.java
  1. … 10 more files in changeset.
Move JavaModuleDetector service to build session scope

This makes modular classpath handling available to more Gradle

infrastructure which itself runs on the JVM. In particular

the execution service (project.javaexec {}) can support running

modules through this.

    • -6
    • +0
    ./JavaLanguagePluginServiceRegistry.java
  1. … 10 more files in changeset.
Move JavaModuleDetector service to build session scope

This makes modular classpath handling available to more Gradle

infrastructure which itself runs on the JVM. In particular

the execution service (project.javaexec {}) can support running

modules through this.

    • -6
    • +0
    ./JavaLanguagePluginServiceRegistry.java
  1. … 10 more files in changeset.
Add JavaModuleDetector service

A service that analyses JAR files, class and source folders to

determine if they represent a Java module. It caches the result

of the analysis of jar and class files.

It has as similar structure as AnnotationProcessorDetector.

    • -0
    • +6
    ./JavaLanguagePluginServiceRegistry.java
  1. … 3 more files in changeset.
Add JavaModuleDetector service

A service that analyses JAR files, class and source folders to

determine if they represent a Java module. It caches the result

of the analysis of jar and class files.

It has as similar structure as AnnotationProcessorDetector.

    • -0
    • +6
    ./JavaLanguagePluginServiceRegistry.java
  1. … 3 more files in changeset.
Add JavaModuleDetector service

A service that analyses JAR files, class and source folders to

determine if they represent a Java module. It caches the result

of the analysis of jar and class files.

It has as similar structure as AnnotationProcessorDetector.

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 3 more files in changeset.
Add JavaModuleDetector service

A service that analyses JAR files, class and source folders to

determine if they represent a Java module. It caches the result

of the analysis of jar and class files.

It has as similar structure as AnnotationProcessorDetector.

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 3 more files in changeset.
Add JavaModuleDetector service

A service that analyses JAR files, class and source folders to

determine if they represent a Java module. It caches the result

of the analysis of jar and class files.

It has as similar structure as AnnotationProcessorDetector.

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 3 more files in changeset.
Add compilation support for Java modules using the --module-path

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 26 more files in changeset.
Add compilation support for Java modules using the --module-path

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 24 more files in changeset.
Add compilation support for Java modules using the --module-path

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 24 more files in changeset.
Add compilation support for Java modules using the --module-path

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 26 more files in changeset.
Add compilation support for Java modules using the --module-path

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 26 more files in changeset.
Add compilation support for Java modules using the --module-path

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 26 more files in changeset.
Add compilation support for Java modules using the --module-path

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 21 more files in changeset.
Add support for compiling Java modules

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 15 more files in changeset.
Add support for compiling Java modules

    • -0
    • +5
    ./JavaLanguagePluginServiceRegistry.java
  1. … 9 more files in changeset.
Fixes for previous commit.

  1. … 5 more files in changeset.
Fixes for previous commit.

  1. … 5 more files in changeset.
Fixes for previous commit.

  1. … 5 more files in changeset.
Replace several usages of direct `FileCollection` implementation instantiation with a factory method. Attempt to use the public API when the usage lives in a plugin.

  1. … 16 more files in changeset.