Skip to content

Commit

Permalink
Gradle Toolchain remove PropertyOrigin.java and other cleanups
Browse files Browse the repository at this point in the history
Signed-off-by: Madalin Valceleanu <vmadalin@google.com>
  • Loading branch information
vmadalin committed Apr 28, 2024
1 parent a450cc3 commit f3a22da
Show file tree
Hide file tree
Showing 14 changed files with 31 additions and 91 deletions.
Expand Up @@ -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);
}
Expand Down
Expand Up @@ -31,39 +31,25 @@
*/
public abstract class AbstractBuildOption<T, V extends CommandLineOptionConfiguration> implements BuildOption<T> {

protected final PropertyOrigin propertyOrigin;
protected final String property;
protected final List<V> commandLineOptionConfigurations;
protected final String deprecatedProperty;

public AbstractBuildOption(String property) {
this(property, null, PropertyOrigin.GRADLE_PROPERTIES, Collections.<V>emptyList());
this(property, null, Collections.<V>emptyList());
}

public AbstractBuildOption(String property, String deprecatedProperty, V... commandLineOptionConfiguration) {
this(property, deprecatedProperty, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.<V>emptyList());
this(property, deprecatedProperty, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.<V>emptyList());
}

public AbstractBuildOption(String property, V... commandLineOptionConfiguration) {
this(property, null, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.<V>emptyList());
this(property, null, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.<V>emptyList());
}

public AbstractBuildOption(String property, PropertyOrigin propertyOrigin) {
this(property, null, propertyOrigin, Collections.<V>emptyList());
}

public AbstractBuildOption(String property, String deprecatedProperty, PropertyOrigin propertyOrigin, V... commandLineOptionConfiguration) {
this(property, deprecatedProperty, propertyOrigin, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.<V>emptyList());
}

public AbstractBuildOption(String property, PropertyOrigin propertyOrigin, V... commandLineOptionConfiguration) {
this(property, null, propertyOrigin, commandLineOptionConfiguration != null ? Arrays.asList(commandLineOptionConfiguration) : Collections.<V>emptyList());
}

private AbstractBuildOption(String property, String deprecatedProperty, PropertyOrigin propertyOrigin, List<V> commandLineOptionConfigurations) {
private AbstractBuildOption(String property, String deprecatedProperty, List<V> commandLineOptionConfigurations) {
this.property = property;
this.deprecatedProperty = deprecatedProperty;
this.propertyOrigin = propertyOrigin;
this.commandLineOptionConfigurations = commandLineOptionConfigurations;
}

Expand Down Expand Up @@ -99,24 +85,24 @@ protected CommandLineOption configureCommandLineOption(CommandLineParser parser,
protected OptionValue<String> getFromProperties(Map<String, String> properties) {
String value = properties.get(property);
if (value != null) {
return new OptionValue<String>(value, property, propertyOrigin);
return new OptionValue<String>(value, Origin.forGradleProperty(property));
}
if (deprecatedProperty != null) {
value = properties.get(deprecatedProperty);
if (value != null) {
return new OptionValue<String>(value, deprecatedProperty, propertyOrigin);
return new OptionValue<String>(value, Origin.forGradleProperty(deprecatedProperty));
}
}
return new OptionValue<String>(null, null, propertyOrigin);
return new OptionValue<String>(null, null);
}

protected static class OptionValue<T> {
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() {
Expand Down
Expand Up @@ -39,7 +39,7 @@ public EnabledOnlyBooleanBuildOption(String property, CommandLineOptionConfigura
@Override
public void applyFromProperty(Map<String, String> properties, T settings) {
if (properties.get(property) != null) {
applyTo(settings, propertyOrigin.toOrigin(property));
applyTo(settings, Origin.forGradleProperty(property));
}
}

Expand Down
Expand Up @@ -35,25 +35,17 @@ public abstract class EnumBuildOption<E extends Enum<E>, T> extends AbstractBuil
private final Class<E> enumClass;
private final List<E> possibleValues;

public EnumBuildOption(String displayName, Class<E> enumClass, E[] possibleValues, String property, String deprecatedProperty, CommandLineOptionConfiguration... commandLineOptionConfigurations) {
this(displayName, enumClass, possibleValues, property, deprecatedProperty, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfigurations);
}

public EnumBuildOption(String displayName, Class<E> enumClass, E[] possibleValues, String property, CommandLineOptionConfiguration... commandLineOptionConfigurations) {
this(displayName, enumClass, possibleValues, property, null, PropertyOrigin.GRADLE_PROPERTIES, commandLineOptionConfigurations);
}

public EnumBuildOption(String displayName, Class<E> enumClass, E[] possibleValues, String property, PropertyOrigin propertyOrigin, CommandLineOptionConfiguration... commandLineOptionConfigurations) {
this(displayName, enumClass, possibleValues, property, null, propertyOrigin, commandLineOptionConfigurations);
}

public EnumBuildOption(String displayName, Class<E> enumClass, E[] possibleValues, String property, String deprecatedProperty, PropertyOrigin propertyOrigin, CommandLineOptionConfiguration... commandLineOptionConfigurations) {
super(property, deprecatedProperty, propertyOrigin, commandLineOptionConfigurations);
public EnumBuildOption(String displayName, Class<E> 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<E> enumClass, E[] possibleValues, String gradleProperty, CommandLineOptionConfiguration... commandLineOptionConfigurations) {
this(displayName, enumClass, possibleValues, gradleProperty, null, commandLineOptionConfigurations);
}

@Override
public void applyFromProperty(Map<String, String> properties, T settings) {
OptionValue<String> propertyValue = getFromProperties(properties);
Expand Down
Expand Up @@ -44,7 +44,7 @@ public void applyFromProperty(Map<String, String> 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));
}
}

Expand Down

This file was deleted.

Expand Up @@ -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);
}
Expand All @@ -45,7 +41,7 @@ public void applyFromProperty(Map<String, String> properties, T settings) {
String value = properties.get(property);

if (value != null) {
applyTo(value, settings, propertyOrigin.toOrigin(property));
applyTo(value, settings, Origin.forGradleProperty(property));
}
}

Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -104,7 +103,6 @@ public Action<? super ExecutionListener> createAction(CommandLineParser parser,

StartParameterInternal startParameter = parameters.getStartParameter();
DaemonParameters daemonParameters = parameters.getDaemonParameters();
AllProperties allProperties = parameters.getProperties();

if (daemonParameters.isStop()) {
return Actions.toAction(stopAllDaemons(daemonParameters));
Expand Down
Expand Up @@ -70,9 +70,9 @@ public AllProperties convert(InitialProperties initialProperties, BuildLayoutRes
configureFromSystemPropertiesOfThisJvm(Cast.uncheckedNonnullCast(properties));
properties.putAll(initialProperties.getRequestedSystemProperties());

Map<String, String> daemonJVMProperties = new HashMap<>();
configureFromDaemonJVMProperties(layout, daemonJVMProperties);
return new Result(properties, daemonJVMProperties, initialProperties);
Map<String, String> daemonJvmProperties = new HashMap<>();
configureFromDaemonJVMProperties(layout, daemonJvmProperties);
return new Result(properties, daemonJvmProperties, initialProperties);
}

private void configureFromSystemPropertiesOfThisJvm(Map<Object, Object> properties) {
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down
Expand Up @@ -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
Expand Down Expand Up @@ -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))
Expand Down
Expand Up @@ -154,7 +154,7 @@ public void applyFromProperty(Map<String, String> 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");
}
}
}
Expand Down
Expand Up @@ -1754,7 +1754,6 @@ Class <org.gradle.internal.buildoption.Origin$CommandLineOrigin> is not annotate
Class <org.gradle.internal.buildoption.Origin$GradlePropertyOrigin> is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (Origin.java:0)
Class <org.gradle.internal.buildoption.Origin> is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (Origin.java:0)
Class <org.gradle.internal.buildoption.PropertiesConverter> is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (PropertiesConverter.java:0)
Class <org.gradle.internal.buildoption.PropertyOrigin> is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (PropertyOrigin.java:0)
Class <org.gradle.internal.buildoption.StringBuildOption> is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (StringBuildOption.java:0)
Class <org.gradle.internal.buildoption.StringInternalOption> is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (StringInternalOption.java:0)
Class <org.gradle.internal.cache.MonitoredCleanupAction> is not annotated (directly or via its package) with @org.gradle.api.NonNullApi in (MonitoredCleanupAction.java:0)
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand Down

0 comments on commit f3a22da

Please sign in to comment.