From f3a22da0c4043b56b1c9dd151cff8a58142b056c Mon Sep 17 00:00:00 2001 From: Madalin Valceleanu Date: Mon, 22 Apr 2024 15:23:30 +0100 Subject: [PATCH] Gradle Toolchain remove PropertyOrigin.java and other cleanups Signed-off-by: Madalin Valceleanu --- .../tasks/UpdateDaemonJvmModifier.java | 14 +++----- .../buildoption/AbstractBuildOption.java | 32 ++++++------------- .../EnabledOnlyBooleanBuildOption.java | 2 +- .../internal/buildoption/EnumBuildOption.java | 20 ++++-------- .../internal/buildoption/ListBuildOption.java | 2 +- .../internal/buildoption/PropertyOrigin.java | 25 --------------- .../buildoption/StringBuildOption.java | 6 +--- .../launcher/cli/BuildActionsFactory.java | 2 -- .../LayoutToPropertiesConverter.java | 6 ++-- .../context/DaemonCompatibilitySpec.java | 6 ++-- .../cli/BuildActionsFactoryTest.groovy | 2 -- .../LoggingConfigurationBuildOptions.java | 2 +- .../internal-api-nullability.txt | 1 - .../executer/InProcessGradleExecuter.java | 2 -- 14 files changed, 31 insertions(+), 91 deletions(-) delete mode 100644 platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/PropertyOrigin.java diff --git a/platforms/core-runtime/build-configuration/src/main/java/org/gradle/internal/buildconfiguration/tasks/UpdateDaemonJvmModifier.java b/platforms/core-runtime/build-configuration/src/main/java/org/gradle/internal/buildconfiguration/tasks/UpdateDaemonJvmModifier.java index 728687041614..97ef96632192 100644 --- a/platforms/core-runtime/build-configuration/src/main/java/org/gradle/internal/buildconfiguration/tasks/UpdateDaemonJvmModifier.java +++ b/platforms/core-runtime/build-configuration/src/main/java/org/gradle/internal/buildconfiguration/tasks/UpdateDaemonJvmModifier.java @@ -39,22 +39,18 @@ public static void updateJvmCriteria( ) { validateToolchainVersion(toolchainVersion); - Properties daemonJVMProperties = new Properties(); - daemonJVMProperties.put(DaemonJvmPropertiesDefaults.TOOLCHAIN_VERSION_PROPERTY, toolchainVersion.getMajorVersion()); + Properties daemonJvmProperties = new Properties(); + daemonJvmProperties.put(DaemonJvmPropertiesDefaults.TOOLCHAIN_VERSION_PROPERTY, toolchainVersion.getMajorVersion()); if (toolchainVendor != null) { - daemonJVMProperties.put(DaemonJvmPropertiesDefaults.TOOLCHAIN_VENDOR_PROPERTY, toolchainVendor.getKnownVendor().name()); - } else { - daemonJVMProperties.remove(DaemonJvmPropertiesDefaults.TOOLCHAIN_VENDOR_PROPERTY); + daemonJvmProperties.put(DaemonJvmPropertiesDefaults.TOOLCHAIN_VENDOR_PROPERTY, toolchainVendor.getKnownVendor().name()); } if (toolchainImplementation != null) { - daemonJVMProperties.put(DaemonJvmPropertiesDefaults.TOOLCHAIN_IMPLEMENTATION_PROPERTY, toolchainImplementation.toString()); - } else { - daemonJVMProperties.remove(DaemonJvmPropertiesDefaults.TOOLCHAIN_IMPLEMENTATION_PROPERTY); + daemonJvmProperties.put(DaemonJvmPropertiesDefaults.TOOLCHAIN_IMPLEMENTATION_PROPERTY, toolchainImplementation.toString()); } GFileUtils.parentMkdirs(propertiesFile); try { - PropertiesUtils.store(daemonJVMProperties, propertiesFile, "This file is generated by " + DaemonJvmPropertiesConfigurator.TASK_NAME); + PropertiesUtils.store(daemonJvmProperties, propertiesFile, "This file is generated by " + DaemonJvmPropertiesConfigurator.TASK_NAME); } catch (IOException e) { throw new UncheckedIOException(e); } diff --git a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/AbstractBuildOption.java b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/AbstractBuildOption.java index bcda6a6b78c9..15b311204b77 100644 --- a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/AbstractBuildOption.java +++ b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/AbstractBuildOption.java @@ -31,39 +31,25 @@ */ public abstract class AbstractBuildOption implements BuildOption { - protected final PropertyOrigin propertyOrigin; protected final String property; protected final List commandLineOptionConfigurations; protected final String deprecatedProperty; public AbstractBuildOption(String property) { - this(property, null, PropertyOrigin.GRADLE_PROPERTIES, Collections.emptyList()); + this(property, null, Collections.emptyList()); } public AbstractBuildOption(String property, String deprecatedProperty, V... commandLineOptionConfiguration) { - this(property, deprecatedProperty, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.emptyList()); + this(property, deprecatedProperty, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.emptyList()); } public AbstractBuildOption(String property, V... commandLineOptionConfiguration) { - this(property, null, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.emptyList()); + this(property, null, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.emptyList()); } - public AbstractBuildOption(String property, PropertyOrigin propertyOrigin) { - this(property, null, propertyOrigin, Collections.emptyList()); - } - - public AbstractBuildOption(String property, String deprecatedProperty, PropertyOrigin propertyOrigin, V... commandLineOptionConfiguration) { - this(property, deprecatedProperty, propertyOrigin, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.emptyList()); - } - - public AbstractBuildOption(String property, PropertyOrigin propertyOrigin, V... commandLineOptionConfiguration) { - this(property, null, propertyOrigin, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.emptyList()); - } - - private AbstractBuildOption(String property, String deprecatedProperty, PropertyOrigin propertyOrigin, List commandLineOptionConfigurations) { + private AbstractBuildOption(String property, String deprecatedProperty, List commandLineOptionConfigurations) { this.property = property; this.deprecatedProperty = deprecatedProperty; - this.propertyOrigin = propertyOrigin; this.commandLineOptionConfigurations = commandLineOptionConfigurations; } @@ -99,24 +85,24 @@ protected CommandLineOption configureCommandLineOption(CommandLineParser parser, protected OptionValue getFromProperties(Map properties) { String value = properties.get(property); if (value != null) { - return new OptionValue(value, property, propertyOrigin); + return new OptionValue(value, Origin.forGradleProperty(property)); } if (deprecatedProperty != null) { value = properties.get(deprecatedProperty); if (value != null) { - return new OptionValue(value, deprecatedProperty, propertyOrigin); + return new OptionValue(value, Origin.forGradleProperty(deprecatedProperty)); } } - return new OptionValue(null, null, propertyOrigin); + return new OptionValue(null, null); } protected static class OptionValue { private final T value; private final Origin origin; - public OptionValue(T value, String property, PropertyOrigin propertyOrigin) { + public OptionValue(T value, Origin origin) { this.value = value; - this.origin = propertyOrigin.toOrigin(property); + this.origin = origin; } public T getValue() { diff --git a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnabledOnlyBooleanBuildOption.java b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnabledOnlyBooleanBuildOption.java index e786ceaac264..faaebc809064 100644 --- a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnabledOnlyBooleanBuildOption.java +++ b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnabledOnlyBooleanBuildOption.java @@ -39,7 +39,7 @@ public EnabledOnlyBooleanBuildOption(String property, CommandLineOptionConfigura @Override public void applyFromProperty(Map properties, T settings) { if (properties.get(property) != null) { - applyTo(settings, propertyOrigin.toOrigin(property)); + applyTo(settings, Origin.forGradleProperty(property)); } } diff --git a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnumBuildOption.java b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnumBuildOption.java index 534f26ffa079..7aaa82fb810d 100644 --- a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnumBuildOption.java +++ b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/EnumBuildOption.java @@ -35,25 +35,17 @@ public abstract class EnumBuildOption, T> extends AbstractBuil private final Class enumClass; private final List possibleValues; - public EnumBuildOption(String displayName, Class enumClass, E[] possibleValues, String property, String deprecatedProperty, CommandLineOptionConfiguration... commandLineOptionConfigurations) { - this(displayName, enumClass, possibleValues, property, deprecatedProperty, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfigurations); - } - - public EnumBuildOption(String displayName, Class enumClass, E[] possibleValues, String property, CommandLineOptionConfiguration... commandLineOptionConfigurations) { - this(displayName, enumClass, possibleValues, property, null, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfigurations); - } - - public EnumBuildOption(String displayName, Class enumClass, E[] possibleValues, String property, PropertyOrigin propertyOrigin, CommandLineOptionConfiguration... commandLineOptionConfigurations) { - this(displayName, enumClass, possibleValues, property, null, propertyOrigin, commandLineOptionConfigurations); - } - - public EnumBuildOption(String displayName, Class enumClass, E[] possibleValues, String property, String deprecatedProperty, PropertyOrigin propertyOrigin, CommandLineOptionConfiguration... commandLineOptionConfigurations) { - super(property, deprecatedProperty, propertyOrigin, commandLineOptionConfigurations); + public EnumBuildOption(String displayName, Class enumClass, E[] possibleValues, String gradleProperty, String deprecatedProperty, CommandLineOptionConfiguration... commandLineOptionConfigurations) { + super(gradleProperty, deprecatedProperty, commandLineOptionConfigurations); this.displayName = displayName; this.enumClass = enumClass; this.possibleValues = Collections.unmodifiableList(Arrays.asList(possibleValues)); } + public EnumBuildOption(String displayName, Class enumClass, E[] possibleValues, String gradleProperty, CommandLineOptionConfiguration... commandLineOptionConfigurations) { + this(displayName, enumClass, possibleValues, gradleProperty, null, commandLineOptionConfigurations); + } + @Override public void applyFromProperty(Map properties, T settings) { OptionValue propertyValue = getFromProperties(properties); diff --git a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/ListBuildOption.java b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/ListBuildOption.java index 7171699e4595..6f9cd823fa03 100644 --- a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/ListBuildOption.java +++ b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/ListBuildOption.java @@ -44,7 +44,7 @@ public void applyFromProperty(Map properties, T settings) { if (value != null) { String[] splitValues = value.split("\\s*,\\s*"); - applyTo(Arrays.asList(splitValues), settings, propertyOrigin.toOrigin(property)); + applyTo(Arrays.asList(splitValues), settings, Origin.forGradleProperty(property)); } } diff --git a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/PropertyOrigin.java b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/PropertyOrigin.java deleted file mode 100644 index c14d794761ad..000000000000 --- a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/PropertyOrigin.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.gradle.internal.buildoption; - -public enum PropertyOrigin { - GRADLE_PROPERTIES; - - public Origin toOrigin(String property) { - return Origin.forGradleProperty(property); - } -} diff --git a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/StringBuildOption.java b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/StringBuildOption.java index d6d92bf40a87..044005edb4e7 100644 --- a/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/StringBuildOption.java +++ b/platforms/core-runtime/build-option/src/main/java/org/gradle/internal/buildoption/StringBuildOption.java @@ -32,10 +32,6 @@ public StringBuildOption(String property) { super(property); } - public StringBuildOption(String property, PropertyOrigin propertyOrigin) { - super(property, propertyOrigin); - } - public StringBuildOption(String property, CommandLineOptionConfiguration... commandLineOptionConfigurations) { super(property, commandLineOptionConfigurations); } @@ -45,7 +41,7 @@ public void applyFromProperty(Map properties, T settings) { String value = properties.get(property); if (value != null) { - applyTo(value, settings, propertyOrigin.toOrigin(property)); + applyTo(value, settings, Origin.forGradleProperty(property)); } } diff --git a/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/BuildActionsFactory.java b/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/BuildActionsFactory.java index 9d7fa4c92721..7bc8bbb9c930 100644 --- a/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/BuildActionsFactory.java +++ b/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/BuildActionsFactory.java @@ -46,7 +46,6 @@ import org.gradle.internal.service.scopes.GradleUserHomeScopeServiceRegistry; import org.gradle.internal.service.scopes.Scope; import org.gradle.launcher.bootstrap.ExecutionListener; -import org.gradle.launcher.configuration.AllProperties; import org.gradle.launcher.daemon.bootstrap.ForegroundDaemonAction; import org.gradle.launcher.daemon.client.DaemonClient; import org.gradle.launcher.daemon.client.DaemonClientFactory; @@ -104,7 +103,6 @@ public Action createAction(CommandLineParser parser, StartParameterInternal startParameter = parameters.getStartParameter(); DaemonParameters daemonParameters = parameters.getDaemonParameters(); - AllProperties allProperties = parameters.getProperties(); if (daemonParameters.isStop()) { return Actions.toAction(stopAllDaemons(daemonParameters)); diff --git a/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/converter/LayoutToPropertiesConverter.java b/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/converter/LayoutToPropertiesConverter.java index d6f8d0b80507..8ae26dc49d08 100644 --- a/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/converter/LayoutToPropertiesConverter.java +++ b/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/cli/converter/LayoutToPropertiesConverter.java @@ -70,9 +70,9 @@ public AllProperties convert(InitialProperties initialProperties, BuildLayoutRes configureFromSystemPropertiesOfThisJvm(Cast.uncheckedNonnullCast(properties)); properties.putAll(initialProperties.getRequestedSystemProperties()); - Map daemonJVMProperties = new HashMap<>(); - configureFromDaemonJVMProperties(layout, daemonJVMProperties); - return new Result(properties, daemonJVMProperties, initialProperties); + Map daemonJvmProperties = new HashMap<>(); + configureFromDaemonJVMProperties(layout, daemonJvmProperties); + return new Result(properties, daemonJvmProperties, initialProperties); } private void configureFromSystemPropertiesOfThisJvm(Map properties) { diff --git a/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/daemon/context/DaemonCompatibilitySpec.java b/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/daemon/context/DaemonCompatibilitySpec.java index e1037f9ff6e6..1f164ca65a44 100644 --- a/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/daemon/context/DaemonCompatibilitySpec.java +++ b/platforms/core-runtime/launcher/src/main/java/org/gradle/launcher/daemon/context/DaemonCompatibilitySpec.java @@ -16,6 +16,7 @@ package org.gradle.launcher.daemon.context; import org.gradle.api.internal.specs.ExplainingSpec; +import org.gradle.internal.jvm.JavaInfo; import org.gradle.internal.jvm.Jvm; import java.io.File; @@ -67,9 +68,10 @@ private boolean jvmCompatible(DaemonContext potentialContext) { } else { try { File potentialJavaHome = potentialContext.getJavaHome(); - if (potentialJavaHome.exists()) { + JavaInfo desiredJavaHome = desiredContext.getJavaHome(); + if (potentialJavaHome.exists() && desiredJavaHome != null) { File potentialJava = Jvm.forHome(potentialJavaHome).getJavaExecutable(); - File desiredJava = desiredContext.getJavaHome().getJavaExecutable(); + File desiredJava = desiredJavaHome.getJavaExecutable(); return Files.isSameFile(potentialJava.toPath(), desiredJava.toPath()); } } catch (IOException e) { diff --git a/platforms/core-runtime/launcher/src/test/groovy/org/gradle/launcher/cli/BuildActionsFactoryTest.groovy b/platforms/core-runtime/launcher/src/test/groovy/org/gradle/launcher/cli/BuildActionsFactoryTest.groovy index f591a60158f9..07944e2a0f25 100644 --- a/platforms/core-runtime/launcher/src/test/groovy/org/gradle/launcher/cli/BuildActionsFactoryTest.groovy +++ b/platforms/core-runtime/launcher/src/test/groovy/org/gradle/launcher/cli/BuildActionsFactoryTest.groovy @@ -29,7 +29,6 @@ import org.gradle.internal.logging.text.StyledTextOutputFactory import org.gradle.internal.nativeintegration.services.NativeServices import org.gradle.internal.service.DefaultServiceRegistry import org.gradle.internal.service.ServiceRegistry -import org.gradle.internal.time.Clock import org.gradle.launcher.daemon.bootstrap.ForegroundDaemonAction import org.gradle.launcher.daemon.client.DaemonClient import org.gradle.launcher.daemon.client.SingleUseDaemonClient @@ -57,7 +56,6 @@ class BuildActionsFactoryTest extends Specification { def setup() { def factoryLoggingManager = Mock(Factory) { _ * create() >> Mock(LoggingManagerInternal) } - loggingServices.add(Clock, Mock(Clock)) loggingServices.add(OutputEventListener, Mock(OutputEventListener)) loggingServices.add(GlobalUserInputReceiver, Mock(GlobalUserInputReceiver)) loggingServices.add(StyledTextOutputFactory, Mock(StyledTextOutputFactory)) diff --git a/platforms/core-runtime/logging/src/main/java/org/gradle/internal/logging/LoggingConfigurationBuildOptions.java b/platforms/core-runtime/logging/src/main/java/org/gradle/internal/logging/LoggingConfigurationBuildOptions.java index 8d9da111cd8f..e8714f74e455 100644 --- a/platforms/core-runtime/logging/src/main/java/org/gradle/internal/logging/LoggingConfigurationBuildOptions.java +++ b/platforms/core-runtime/logging/src/main/java/org/gradle/internal/logging/LoggingConfigurationBuildOptions.java @@ -154,7 +154,7 @@ public void applyFromProperty(Map properties, LoggingConfigurati } else if (value.equalsIgnoreCase("full")) { settings.setShowStacktrace(ShowStacktrace.ALWAYS_FULL); } else { - propertyOrigin.toOrigin(GRADLE_PROPERTY).handleInvalidValue(value, "must be one of internal, all, or full"); + Origin.forGradleProperty(GRADLE_PROPERTY).handleInvalidValue(value, "must be one of internal, all, or full"); } } } diff --git a/testing/architecture-test/src/changes/archunit_store/internal-api-nullability.txt b/testing/architecture-test/src/changes/archunit_store/internal-api-nullability.txt index 00aae4c509c7..57b86b219baa 100644 --- a/testing/architecture-test/src/changes/archunit_store/internal-api-nullability.txt +++ b/testing/architecture-test/src/changes/archunit_store/internal-api-nullability.txt @@ -1754,7 +1754,6 @@ Class is not annotate Class is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (Origin.java:0) Class is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (Origin.java:0) Class is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (PropertiesConverter.java:0) -Class is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (PropertyOrigin.java:0) Class is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (StringBuildOption.java:0) Class is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (StringInternalOption.java:0) Class is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (MonitoredCleanupAction.java:0) diff --git a/testing/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/InProcessGradleExecuter.java b/testing/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/InProcessGradleExecuter.java index 9681aacd7170..698bc57747c7 100644 --- a/testing/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/InProcessGradleExecuter.java +++ b/testing/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/InProcessGradleExecuter.java @@ -31,7 +31,6 @@ import org.gradle.api.internal.file.FileCollectionFactory; import org.gradle.api.internal.file.TestFiles; import org.gradle.api.logging.configuration.ConsoleOutput; -import org.gradle.api.model.ObjectFactory; import org.gradle.api.specs.Spec; import org.gradle.api.tasks.TaskState; import org.gradle.cli.CommandLineParser; @@ -370,7 +369,6 @@ private BuildResult executeBuild(GradleInvocation invocation, OutputStream outpu // TODO: Reuse more of CommandlineActionFactory CommandLineParser parser = new CommandLineParser(); FileCollectionFactory fileCollectionFactory = TestFiles.fileCollectionFactory(); - ObjectFactory propertyFactory = GLOBAL_SERVICES.get(ObjectFactory.class); BuildEnvironmentConfigurationConverter buildEnvironmentConfigurationConverter = new BuildEnvironmentConfigurationConverter(new BuildLayoutFactory(), fileCollectionFactory); buildEnvironmentConfigurationConverter.configure(parser); Parameters parameters = buildEnvironmentConfigurationConverter.convertParameters(parser.parse(getAllArgs()), getWorkingDir());