From 69f40627f49cd02e830e955a96f52093d42b00cc Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Thu, 9 May 2024 15:15:51 +0800 Subject: [PATCH] Insist on using `CollectionUtils.isEmpty()` and `StringUtils.hasLength()` search `(\w+) != null && !(\1).isEmpty\(\)` --- .../actuate/autoconfigure/health/HealthProperties.java | 3 ++- .../boot/autoconfigure/condition/ConditionMessage.java | 3 ++- .../boot/buildpack/platform/build/BuilderException.java | 4 +++- .../boot/buildpack/platform/build/EphemeralBuilder.java | 3 ++- .../boot/buildpack/platform/docker/TotalProgressBar.java | 4 +++- .../buildpack/platform/docker/type/ContainerConfig.java | 3 ++- .../boot/gradle/tasks/bundling/BootBuildImage.java | 9 +++++---- .../gradle/tasks/bundling/LaunchScriptConfiguration.java | 4 +++- .../org/springframework/boot/maven/RepackageMojo.java | 3 ++- 9 files changed, 24 insertions(+), 12 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthProperties.java index 95ef11c5de13..26106b3bcd62 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/health/HealthProperties.java @@ -25,6 +25,7 @@ import org.springframework.boot.actuate.endpoint.Show; import org.springframework.boot.context.properties.NestedConfigurationProperty; +import org.springframework.util.CollectionUtils; /** * Properties used to configure the health endpoint and endpoint groups. @@ -92,7 +93,7 @@ public List getOrder() { } public void setOrder(List statusOrder) { - if (statusOrder != null && !statusOrder.isEmpty()) { + if (!CollectionUtils.isEmpty(statusOrder)) { this.order = statusOrder; } } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionMessage.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionMessage.java index 31547d3866e5..37308a1971a8 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionMessage.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionMessage.java @@ -25,6 +25,7 @@ import org.springframework.util.Assert; import org.springframework.util.ClassUtils; +import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; @@ -388,7 +389,7 @@ public ConditionMessage items(Style style, Collection items) { else if (StringUtils.hasLength(this.plural)) { message.append(" ").append(this.plural); } - if (items != null && !items.isEmpty()) { + if (!CollectionUtils.isEmpty(items)) { message.append(" ").append(StringUtils.collectionToDelimitedString(items, ", ")); } return this.condition.because(message.toString()); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/BuilderException.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/BuilderException.java index a218dec6b195..1ac0664a2b19 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/BuilderException.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/BuilderException.java @@ -16,6 +16,8 @@ package org.springframework.boot.buildpack.platform.build; +import org.springframework.util.StringUtils; + /** * Exception thrown to indicate a Builder error. * @@ -52,7 +54,7 @@ public int getStatusCode() { private static String buildMessage(String operation, int statusCode) { StringBuilder message = new StringBuilder("Builder"); - if (operation != null && !operation.isEmpty()) { + if (StringUtils.hasLength(operation)) { message.append(" lifecycle '").append(operation).append("'"); } message.append(" failed with status code ").append(statusCode); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilder.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilder.java index c88b565a0eb4..7a1ab1b77981 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilder.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilder.java @@ -25,6 +25,7 @@ import org.springframework.boot.buildpack.platform.docker.type.Layer; import org.springframework.boot.buildpack.platform.io.Content; import org.springframework.boot.buildpack.platform.io.Owner; +import org.springframework.util.CollectionUtils; /** * A short-lived builder that is created for each {@link Lifecycle} run. @@ -66,7 +67,7 @@ class EphemeralBuilder { update.withUpdatedConfig(this.builderMetadata::attachTo); update.withUpdatedConfig((config) -> config.withLabel(BUILDER_FOR_LABEL_NAME, targetImage.toString())); update.withTag(name); - if (env != null && !env.isEmpty()) { + if (!CollectionUtils.isEmpty(env)) { update.withNewLayer(getEnvLayer(env)); } if (buildpacks != null) { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/TotalProgressBar.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/TotalProgressBar.java index b478efd33d4e..63a137abbc08 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/TotalProgressBar.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/TotalProgressBar.java @@ -19,6 +19,8 @@ import java.io.PrintStream; import java.util.function.Consumer; +import org.springframework.util.StringUtils; + /** * Utility to render a simple progress bar based on consumed {@link TotalProgressEvent} * objects. @@ -63,7 +65,7 @@ public TotalProgressBar(String prefix, PrintStream out) { public TotalProgressBar(String prefix, char progressChar, boolean bookend, PrintStream out) { this.progressChar = progressChar; this.bookend = bookend; - if (prefix != null && !prefix.isEmpty()) { + if (StringUtils.hasLength(prefix)) { out.print(prefix); out.print(" "); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/ContainerConfig.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/ContainerConfig.java index 99546f08e372..13798eb7346f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/ContainerConfig.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type/ContainerConfig.java @@ -32,6 +32,7 @@ import org.springframework.boot.buildpack.platform.json.SharedObjectMapper; import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; import org.springframework.util.StreamUtils; import org.springframework.util.StringUtils; @@ -71,7 +72,7 @@ public class ContainerConfig { } ArrayNode bindsNode = hostConfigNode.putArray("Binds"); bindings.forEach((binding) -> bindsNode.add(binding.toString())); - if (securityOptions != null && !securityOptions.isEmpty()) { + if (!CollectionUtils.isEmpty(securityOptions)) { ArrayNode securityOptsNode = hostConfigNode.putArray("SecurityOpt"); securityOptions.forEach(securityOptsNode::add); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java index 2ba12dae88e8..98055f5c3608 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java @@ -49,6 +49,7 @@ import org.springframework.boot.buildpack.platform.docker.type.ImageReference; import org.springframework.boot.buildpack.platform.io.ZipFileTarArchive; import org.springframework.boot.gradle.util.VersionExtractor; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; /** @@ -382,7 +383,7 @@ private BuildRequest customizeRunImage(BuildRequest request) { private BuildRequest customizeEnvironment(BuildRequest request) { Map environment = getEnvironment().getOrNull(); - if (environment != null && !environment.isEmpty()) { + if (!CollectionUtils.isEmpty(environment)) { request = request.withEnv(environment); } return request; @@ -411,7 +412,7 @@ private BuildRequest customizePublish(BuildRequest request) { private BuildRequest customizeBuildpacks(BuildRequest request) { List buildpacks = getBuildpacks().getOrNull(); - if (buildpacks != null && !buildpacks.isEmpty()) { + if (!CollectionUtils.isEmpty(buildpacks)) { return request.withBuildpacks(buildpacks.stream().map(BuildpackReference::of).toList()); } return request; @@ -419,7 +420,7 @@ private BuildRequest customizeBuildpacks(BuildRequest request) { private BuildRequest customizeBindings(BuildRequest request) { List bindings = getBindings().getOrNull(); - if (bindings != null && !bindings.isEmpty()) { + if (!CollectionUtils.isEmpty(bindings)) { return request.withBindings(bindings.stream().map(Binding::of).toList()); } return request; @@ -427,7 +428,7 @@ private BuildRequest customizeBindings(BuildRequest request) { private BuildRequest customizeTags(BuildRequest request) { List tags = getTags().getOrNull(); - if (tags != null && !tags.isEmpty()) { + if (!CollectionUtils.isEmpty(tags)) { return request.withTags(tags.stream().map(ImageReference::of).toList()); } return request; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/LaunchScriptConfiguration.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/LaunchScriptConfiguration.java index b53ef7b5ad39..63dd55290e22 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/LaunchScriptConfiguration.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/LaunchScriptConfiguration.java @@ -30,6 +30,8 @@ import org.gradle.api.tasks.PathSensitivity; import org.gradle.api.tasks.bundling.AbstractArchiveTask; +import org.springframework.util.StringUtils; + /** * Encapsulates the configuration of the launch script for an executable jar or war. * @@ -111,7 +113,7 @@ private String augmentLineBreaks(String string) { private void putIfMissing(Map properties, String key, String... valueCandidates) { if (!properties.containsKey(key)) { for (String candidate : valueCandidates) { - if (candidate != null && !candidate.isEmpty()) { + if (StringUtils.hasLength(candidate)) { properties.put(key, candidate); return; } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java index 13a16c2a144a..e260a8d17d8f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java @@ -38,6 +38,7 @@ import org.springframework.boot.loader.tools.Libraries; import org.springframework.boot.loader.tools.LoaderImplementation; import org.springframework.boot.loader.tools.Repackager; +import org.springframework.util.StringUtils; /** * Repackage existing JAR and WAR archives so that they can be executed from the command @@ -271,7 +272,7 @@ private String removeLineBreaks(String description) { private void putIfMissing(Properties properties, String key, String... valueCandidates) { if (!properties.containsKey(key)) { for (String candidate : valueCandidates) { - if (candidate != null && !candidate.isEmpty()) { + if (StringUtils.hasLength(candidate)) { properties.put(key, candidate); return; }