diff --git a/integration/integration-maven-plugin/src/main/java/com/schbrain/maven/plugin/mojo/PrepareMojo.java b/integration/integration-maven-plugin/src/main/java/com/schbrain/maven/plugin/mojo/PrepareMojo.java index 1967b3e8ab0992f0a6b3095bc771f8002a87035a..ae85309f4ce4a2ca3525b796176470e1f0559ddf 100644 --- a/integration/integration-maven-plugin/src/main/java/com/schbrain/maven/plugin/mojo/PrepareMojo.java +++ b/integration/integration-maven-plugin/src/main/java/com/schbrain/maven/plugin/mojo/PrepareMojo.java @@ -9,6 +9,8 @@ import org.apache.maven.project.MavenProject; import java.io.File; import java.io.IOException; import java.nio.file.*; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -23,6 +25,7 @@ import java.util.Map.Entry; requiresDependencyCollection = ResolutionScope.COMPILE_PLUS_RUNTIME) public class PrepareMojo extends AbstractMojo { + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); private static final String DOCKER_BUILD_INFO = "dockerBuildInfo"; /** @@ -139,6 +142,7 @@ public class PrepareMojo extends AbstractMojo { variables.put("VERSION", version); variables.put("REGISTRY", dockerRegistry); variables.put("PROFILE", springProfile); + variables.put("BUILD_TIME", FORMATTER.format(LocalDateTime.now())); // add additionalProperties if (additionalProperties != null) { variables.putAll(additionalProperties); diff --git a/pom.xml b/pom.xml index 422b6ff0515ba18b89f2e7696fe662d59f6421c2..8dceb0a02db7c7c0728ad4af13f8b4077454a23e 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.17 + 2.7.18 com.schbrain.framework diff --git a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java index b4fb55b3dc294533d6dd9836dec5340039efb087..5fbf48fbe9be8f512872db4cc51631a53eb9bc4f 100644 --- a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java +++ b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java @@ -2,8 +2,8 @@ package com.schbrain.framework.autoconfigure.oss.util; import cn.hutool.core.date.DatePattern; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.net.url.UrlBuilder; import cn.hutool.core.text.StrFormatter; -import cn.hutool.core.util.URLUtil; import cn.hutool.http.HttpUtil; import com.aliyun.oss.*; import com.aliyun.oss.common.comm.ResponseMessage; @@ -27,8 +27,6 @@ import org.apache.commons.lang3.StringUtils; import java.io.File; import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.Date; @@ -193,8 +191,8 @@ public class OssUtils { public static String withBucketPrefix(String objectKey, String bucket) { // oss supports https by default - String prefix = "https://" + bucket + "." + ossProperties.getEndpoint(); - return URLUtil.completeUrl(prefix, objectKey); + String httpUrl = "https://" + bucket + "." + ossProperties.getEndpoint(); + return UrlBuilder.ofHttp(httpUrl).addPath(objectKey).build(); } public static String replaceWithDefaultDomain(String ossUrl) { @@ -205,15 +203,11 @@ public class OssUtils { if (StringUtils.isBlank(domain)) { return ossUrl; } - domain = URLUtil.normalize(domain); - URL originUrl = URLUtil.url(ossUrl); - URL domainUrl = URLUtil.url(domain); - try { - return new URL(domainUrl.getProtocol(), domainUrl.getHost(), domainUrl.getPort(), originUrl.getPath()).toString(); - } catch (MalformedURLException e) { - log.warn("replace domain fail, return the default url instead", e); - return ossUrl; - } + UrlBuilder originUrlBuilder = UrlBuilder.ofHttp(ossUrl); + return UrlBuilder.ofHttp(domain) + .setPath(originUrlBuilder.getPath()) + .setQuery(originUrlBuilder.getQuery()) + .build(); } public static CopyResult copyObject(String sourceKey, String destinationKey) {