mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[Gradle|Exec] cleanup: move Gradle log level resolution to the GradleProperties class
GitOrigin-RevId: 13110e3df4cf57e7cb6db8f0305e6fb9cddaee8b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2dd12bd2fe
commit
079d78d040
@@ -1,13 +1,15 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.properties
|
||||
|
||||
import org.gradle.api.logging.LogLevel
|
||||
import org.jetbrains.plugins.gradle.properties.models.Property
|
||||
|
||||
interface GradleProperties {
|
||||
|
||||
val javaHomeProperty: Property<String>?
|
||||
|
||||
val gradleLoggingLevel: Property<String>?
|
||||
val logLevel: Property<String>?
|
||||
fun getGradleLogLevel(): LogLevel?
|
||||
|
||||
val parallel: Property<Boolean>?
|
||||
val isolatedProjects: Property<Boolean>?
|
||||
|
||||
@@ -78,7 +78,7 @@ object GradlePropertiesFile {
|
||||
val properties = GradleUtil.readGradleProperties(propertiesPath) ?: return null
|
||||
return GradlePropertiesImpl(
|
||||
javaHomeProperty = properties.getStringProperty(GRADLE_JAVA_HOME_PROPERTY, propertiesPath),
|
||||
gradleLoggingLevel = properties.getStringProperty(GRADLE_LOGGING_LEVEL_PROPERTY, propertiesPath),
|
||||
logLevel = properties.getStringProperty(GRADLE_LOGGING_LEVEL_PROPERTY, propertiesPath),
|
||||
parallel = properties.getBooleanProperty(GRADLE_PARALLEL_PROPERTY, propertiesPath),
|
||||
isolatedProjects = properties.getBooleanProperty(GRADLE_ISOLATED_PROJECTS_PROPERTY, propertiesPath),
|
||||
jvmOptions = properties.getStringProperty(GRADLE_JVM_OPTIONS_PROPERTY, propertiesPath)
|
||||
@@ -88,7 +88,7 @@ object GradlePropertiesFile {
|
||||
private fun mergeGradleProperties(most: GradleProperties, other: GradleProperties): GradleProperties {
|
||||
return GradlePropertiesImpl(
|
||||
javaHomeProperty = most.javaHomeProperty ?: other.javaHomeProperty,
|
||||
gradleLoggingLevel = most.gradleLoggingLevel ?: other.gradleLoggingLevel,
|
||||
logLevel = most.logLevel ?: other.logLevel,
|
||||
parallel = most.parallel ?: other.parallel,
|
||||
isolatedProjects = most.isolatedProjects ?: other.isolatedProjects,
|
||||
jvmOptions = most.jvmOptions ?: other.jvmOptions
|
||||
@@ -97,7 +97,7 @@ object GradlePropertiesFile {
|
||||
|
||||
private val EMPTY_GRADLE_PROPERTIES = GradlePropertiesImpl(
|
||||
javaHomeProperty = null,
|
||||
gradleLoggingLevel = null,
|
||||
logLevel = null,
|
||||
parallel = null,
|
||||
isolatedProjects = null,
|
||||
jvmOptions = null,
|
||||
|
||||
@@ -1,12 +1,33 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.properties
|
||||
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import org.gradle.api.logging.LogLevel
|
||||
import org.jetbrains.plugins.gradle.properties.models.Property
|
||||
import java.util.Locale
|
||||
|
||||
private val LOG = logger<GradlePropertiesImpl>()
|
||||
|
||||
data class GradlePropertiesImpl(
|
||||
override val javaHomeProperty: Property<String>?,
|
||||
override val gradleLoggingLevel: Property<String>?,
|
||||
override val logLevel: Property<String>?,
|
||||
override val parallel: Property<Boolean>?,
|
||||
override val isolatedProjects: Property<Boolean>?,
|
||||
override val jvmOptions: Property<String>?
|
||||
) : GradleProperties
|
||||
override val jvmOptions: Property<String>?,
|
||||
) : GradleProperties {
|
||||
|
||||
override fun getGradleLogLevel(): LogLevel? {
|
||||
if (logLevel == null) {
|
||||
return null
|
||||
}
|
||||
var value = logLevel.value
|
||||
var name = value.uppercase(Locale.ROOT)
|
||||
try {
|
||||
return LogLevel.valueOf(name)
|
||||
}
|
||||
catch (_: IllegalArgumentException) {
|
||||
LOG.warn("The Gradle property 'org.gradle.logging.level=$value' is invalid. It must be one of quiet, warn, lifecycle, info, or debug")
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-19
@@ -25,14 +25,12 @@ import com.intellij.util.lang.JavaVersion;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.StatusCode;
|
||||
import io.opentelemetry.context.Scope;
|
||||
import org.gradle.api.logging.LogLevel;
|
||||
import org.gradle.tooling.*;
|
||||
import org.gradle.tooling.events.OperationType;
|
||||
import org.gradle.tooling.model.build.BuildEnvironment;
|
||||
import org.gradle.util.GradleVersion;
|
||||
import org.jetbrains.annotations.*;
|
||||
import org.jetbrains.plugins.gradle.jvmcompat.GradleJvmSupportMatrix;
|
||||
import org.jetbrains.plugins.gradle.properties.GradleProperties;
|
||||
import org.jetbrains.plugins.gradle.properties.GradlePropertiesFile;
|
||||
import org.jetbrains.plugins.gradle.service.execution.cmd.GradleCommandLineOptionsProvider;
|
||||
import org.jetbrains.plugins.gradle.service.project.GradleExecutionHelperExtension;
|
||||
@@ -323,7 +321,7 @@ public final class GradleExecutionHelper {
|
||||
var buildRoot = getBuildRoot(buildEnvironment);
|
||||
if (buildRoot != null) {
|
||||
var properties = GradlePropertiesFile.getProperties(settings.getServiceDirectory(), buildRoot);
|
||||
var logLevel = getGradleLoggingLevel(properties);
|
||||
var logLevel = properties.getGradleLogLevel();
|
||||
if (logLevel != null) {
|
||||
switch (logLevel) {
|
||||
case DEBUG -> settings.withArgument("-d");
|
||||
@@ -345,22 +343,6 @@ public final class GradleExecutionHelper {
|
||||
}
|
||||
}
|
||||
|
||||
private static @Nullable LogLevel getGradleLoggingLevel(@NotNull GradleProperties properties) {
|
||||
var property = properties.getGradleLoggingLevel();
|
||||
if (property == null) {
|
||||
return null;
|
||||
}
|
||||
var value = property.getValue();
|
||||
var name = value.toUpperCase(Locale.ROOT);
|
||||
try {
|
||||
return LogLevel.valueOf(name);
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
LOG.warn("org.gradle.logging.level must be one of quiet, warn, lifecycle, info, or debug");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static @Nullable Path getWorkingRoot(@Nullable BuildEnvironment buildEnvironment) {
|
||||
if (buildEnvironment == null) {
|
||||
return null;
|
||||
|
||||
+24
-8
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.properties
|
||||
|
||||
import org.gradle.api.logging.LogLevel
|
||||
import org.junit.jupiter.api.Assertions
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
@@ -11,7 +12,7 @@ class GradlePropertiesFileTest : GradlePropertiesFileTestCase() {
|
||||
createGradlePropertiesFile {}
|
||||
assertGradlePropertiesFile {
|
||||
Assertions.assertNull(javaHomeProperty)
|
||||
Assertions.assertNull(gradleLoggingLevel)
|
||||
Assertions.assertNull(logLevel)
|
||||
Assertions.assertNull(parallel)
|
||||
Assertions.assertNull(isolatedProjects)
|
||||
Assertions.assertNull(jvmOptions)
|
||||
@@ -26,7 +27,7 @@ class GradlePropertiesFileTest : GradlePropertiesFileTestCase() {
|
||||
}
|
||||
assertGradlePropertiesFile {
|
||||
Assertions.assertNull(javaHomeProperty)
|
||||
Assertions.assertNull(gradleLoggingLevel)
|
||||
Assertions.assertNull(logLevel)
|
||||
Assertions.assertNull(parallel)
|
||||
Assertions.assertNull(isolatedProjects)
|
||||
Assertions.assertNull(jvmOptions)
|
||||
@@ -45,13 +46,14 @@ class GradlePropertiesFileTest : GradlePropertiesFileTestCase() {
|
||||
assertGradlePropertiesFile {
|
||||
Assertions.assertEquals("javaHome", javaHomeProperty?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, javaHomeProperty?.location)
|
||||
Assertions.assertEquals("info", gradleLoggingLevel?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, gradleLoggingLevel?.location)
|
||||
Assertions.assertEquals("info", logLevel?.value)
|
||||
Assertions.assertEquals(LogLevel.INFO, getGradleLogLevel())
|
||||
Assertions.assertEquals(projectPropertiesPath, logLevel?.location)
|
||||
Assertions.assertEquals(true, parallel?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, parallel?.location)
|
||||
Assertions.assertEquals(true, isolatedProjects?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, isolatedProjects?.location)
|
||||
Assertions.assertEquals( "-Xmx20G", jvmOptions?.value)
|
||||
Assertions.assertEquals("-Xmx20G", jvmOptions?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, jvmOptions?.location)
|
||||
}
|
||||
}
|
||||
@@ -61,7 +63,7 @@ class GradlePropertiesFileTest : GradlePropertiesFileTestCase() {
|
||||
createGradlePropertiesFile {
|
||||
setProperty("another.property.1", "value1")
|
||||
setProperty(GRADLE_JAVA_HOME_PROPERTY, "value2")
|
||||
setProperty(GRADLE_LOGGING_LEVEL_PROPERTY, "value3")
|
||||
setProperty(GRADLE_LOGGING_LEVEL_PROPERTY, "debug")
|
||||
setProperty(GRADLE_PARALLEL_PROPERTY, "true")
|
||||
setProperty(GRADLE_ISOLATED_PROJECTS_PROPERTY, "true")
|
||||
setProperty(GRADLE_JVM_OPTIONS_PROPERTY, "-Xmx20G")
|
||||
@@ -70,8 +72,9 @@ class GradlePropertiesFileTest : GradlePropertiesFileTestCase() {
|
||||
assertGradlePropertiesFile {
|
||||
Assertions.assertEquals("value2", javaHomeProperty?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, javaHomeProperty?.location)
|
||||
Assertions.assertEquals("value3", gradleLoggingLevel?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, gradleLoggingLevel?.location)
|
||||
Assertions.assertEquals("debug", logLevel?.value)
|
||||
Assertions.assertEquals(LogLevel.DEBUG, getGradleLogLevel())
|
||||
Assertions.assertEquals(projectPropertiesPath, logLevel?.location)
|
||||
Assertions.assertEquals(true, parallel?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, parallel?.location)
|
||||
Assertions.assertEquals(true, isolatedProjects?.value)
|
||||
@@ -80,4 +83,17 @@ class GradlePropertiesFileTest : GradlePropertiesFileTestCase() {
|
||||
Assertions.assertEquals(projectPropertiesPath, jvmOptions?.location)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testInvalidLogLevelInProjectGradlePropertiesFile() {
|
||||
createGradlePropertiesFile {
|
||||
setProperty(GRADLE_LOGGING_LEVEL_PROPERTY, "invalid")
|
||||
}
|
||||
assertGradlePropertiesFile {
|
||||
Assertions.assertEquals("invalid", logLevel?.value)
|
||||
Assertions.assertEquals(projectPropertiesPath, logLevel?.location)
|
||||
|
||||
Assertions.assertNull(getGradleLogLevel())
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user