From 0686c40cd903015874f334dd0b72a90455baca15 Mon Sep 17 00:00:00 2001 From: Mercy Ma Date: Mon, 7 Sep 2026 10:35:45 +0800 Subject: [PATCH 1/8] Bump microsphere-build to 0.3.15 Update the parent Maven build dependency from 0.3.14 to 0.3.15 in the root pom.xml so the project uses the latest build configuration and fixes provided by the parent POM. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 956fb212d..11c7124e5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.microsphere-projects microsphere-build - 0.3.14 + 0.3.15 4.0.0 From 6589385eec62c2e0fcb7bab3aa4cce28a3b4606d Mon Sep 17 00:00:00 2001 From: Mercy Ma Date: Sun, 20 Sep 2026 11:14:58 +0800 Subject: [PATCH 2/8] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 11c7124e5..9f0a61020 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.microsphere-projects microsphere-build - 0.3.15 + 0.3.16 4.0.0 From d908481c52431610651209e6fa73b61b92973e86 Mon Sep 17 00:00:00 2001 From: Mercy Date: Mon, 28 Sep 2026 20:41:01 +0800 Subject: [PATCH 3/8] Update GitHub Actions workflow dependencies Bumps key workflow actions to newer versions across CI and release pipelines, including `actions/checkout`, `actions/setup-java`, and `codecov/codecov-action`. Also extends Dependabot config to monitor GitHub Actions weekly, so future action updates are tracked automatically. --- .github/dependabot.yml | 8 +++++++- .github/workflows/maven-build.yml | 6 +++--- .github/workflows/maven-publish.yml | 6 +++--- .github/workflows/sync-branches-from-upstream.yml | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3fe4d0654..0d35062f8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,4 +9,10 @@ updates: directory: "/" schedule: interval: "daily" - open-pull-requests-limit: 10 \ No newline at end of file + open-pull-requests-limit: 10 + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + # Check for updates to GitHub Actions every week + interval: "weekly" \ No newline at end of file diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index 3a5f11c13..5df7f30b5 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -30,10 +30,10 @@ jobs: steps: - name: Checkout Source - uses: actions/checkout@v5 + uses: actions/checkout@v7.0.1 - name: Setup Java ${{ matrix.java }} - uses: actions/setup-java@v5 + uses: actions/setup-java@v6.0.1 with: distribution: 'temurin' java-version: ${{ matrix.java }} @@ -49,7 +49,7 @@ jobs: --activate-profiles test,coverage,${{ matrix.maven-profile-spring-framework }} - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v7.1.1 with: token: ${{ secrets.CODECOV_TOKEN }} slug: microsphere-projects/microsphere-spring \ No newline at end of file diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml index e5b7bba56..9b0f68f03 100644 --- a/.github/workflows/maven-publish.yml +++ b/.github/workflows/maven-publish.yml @@ -33,10 +33,10 @@ jobs: fi - name: Checkout Source - uses: actions/checkout@v5 + uses: actions/checkout@v7.0.1 - name: Setup Maven Central Repository - uses: actions/setup-java@v5 + uses: actions/setup-java@v6.0.1 with: java-version: '8' distribution: 'temurin' @@ -69,7 +69,7 @@ jobs: models: read steps: - name: Checkout Source - uses: actions/checkout@v5 + uses: actions/checkout@v7.0.1 with: fetch-depth: 0 diff --git a/.github/workflows/sync-branches-from-upstream.yml b/.github/workflows/sync-branches-from-upstream.yml index 95ee58254..fa2620ad4 100644 --- a/.github/workflows/sync-branches-from-upstream.yml +++ b/.github/workflows/sync-branches-from-upstream.yml @@ -52,7 +52,7 @@ jobs: - name: Checkout Repository if: steps.fork_check.outputs.is_fork == 'true' - uses: actions/checkout@v5 + uses: actions/checkout@v7.0.1 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} From 9eee7231abe96eb0e73eea5aaf39e9fa16357174 Mon Sep 17 00:00:00 2001 From: Mercy Ma Date: Thu, 15 Oct 2026 09:35:21 +0800 Subject: [PATCH 4/8] Bump microsphere-build parent to 0.3.17 Update the Maven parent version from 0.3.16 to 0.3.17 so the project inherits the latest build configuration and dependency management updates. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9f0a61020..69050c600 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.microsphere-projects microsphere-build - 0.3.16 + 0.3.17 4.0.0 From 661a4524976148f8b19307b24ad52c7e3084a436 Mon Sep 17 00:00:00 2001 From: Mercy Ma Date: Sat, 17 Oct 2026 12:01:44 +0800 Subject: [PATCH 5/8] Bump Microsphere dependency versions Upgrade microsphere-java to 0.3.20 and microsphere-logging to 0.2.3. --- microsphere-spring-parent/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microsphere-spring-parent/pom.xml b/microsphere-spring-parent/pom.xml index d02907e57..93e78ffc4 100644 --- a/microsphere-spring-parent/pom.xml +++ b/microsphere-spring-parent/pom.xml @@ -19,8 +19,8 @@ Microsphere Spring Parent - 0.3.19 - 0.2.2 + 0.3.20 + 0.2.3 2.22.2 2.6 3.9.1 From b5d4b161b1f704bf2642fe0daef66978c9998825 Mon Sep 17 00:00:00 2001 From: Mercy Ma Date: Fri, 23 Oct 2026 09:36:58 +0800 Subject: [PATCH 6/8] Fix WebRequestPatternsRule spelling Rename the misspelled WebRequestPattensRule class and its test to WebRequestPatternsRule, updating references accordingly. --- ...sRule.java => WebRequestPatternsRule.java} | 26 +++++----- ...t.java => WebRequestPatternsRuleTest.java} | 52 +++++++++---------- .../web/rule/WebRequestProducesRuleTest.java | 2 +- 3 files changed, 40 insertions(+), 40 deletions(-) rename microsphere-spring-web/src/main/java/io/microsphere/spring/web/rule/{WebRequestPattensRule.java => WebRequestPatternsRule.java} (88%) rename microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/{WebRequestPattensRuleTest.java => WebRequestPatternsRuleTest.java} (76%) diff --git a/microsphere-spring-web/src/main/java/io/microsphere/spring/web/rule/WebRequestPattensRule.java b/microsphere-spring-web/src/main/java/io/microsphere/spring/web/rule/WebRequestPatternsRule.java similarity index 88% rename from microsphere-spring-web/src/main/java/io/microsphere/spring/web/rule/WebRequestPattensRule.java rename to microsphere-spring-web/src/main/java/io/microsphere/spring/web/rule/WebRequestPatternsRule.java index 4491b5023..0c77eb509 100644 --- a/microsphere-spring-web/src/main/java/io/microsphere/spring/web/rule/WebRequestPattensRule.java +++ b/microsphere-spring-web/src/main/java/io/microsphere/spring/web/rule/WebRequestPatternsRule.java @@ -54,7 +54,7 @@ * @see org.springframework.web.reactive.result.condition.PatternsRequestCondition * @since 1.0.0 */ -public class WebRequestPattensRule extends AbstractWebRequestRule { +public class WebRequestPatternsRule extends AbstractWebRequestRule { static final Set EMPTY_PATH_PATTERN = ofSet(EMPTY_STRING); @@ -76,48 +76,48 @@ public class WebRequestPattensRule extends AbstractWebRequestRule { * @param patterns 0 or more URL patterns; no patterns results in an empty * path {@code ""} mapping which matches all requests. */ - public WebRequestPattensRule(String... patterns) { + public WebRequestPatternsRule(String... patterns) { this(patterns, true, null); } /** - * Variant of {@link #WebRequestPattensRule(String...)} with a + * Variant of {@link #WebRequestPatternsRule(String...)} with a * {@link PathMatcher} and flag for matching trailing slashes. */ - public WebRequestPattensRule(String[] patterns, boolean useTrailingSlashMatch, - @Nullable PathMatcher pathMatcher) { + public WebRequestPatternsRule(String[] patterns, boolean useTrailingSlashMatch, + @Nullable PathMatcher pathMatcher) { this(patterns, pathMatcher, useTrailingSlashMatch); } /** - * Variant of {@link #WebRequestPattensRule(String...)} with a + * Variant of {@link #WebRequestPatternsRule(String...)} with a * {@link UrlPathHelper} and a {@link PathMatcher}, and whether to match * trailing slashes. *

As of 5.3 the path is obtained through the static method * {@link UrlPathHelper#getResolvedLookupPath} and a {@code UrlPathHelper} * does not need to be passed in. - * {@link #WebRequestPattensRule(String[], boolean, PathMatcher)}. + * {@link #WebRequestPatternsRule(String[], boolean, PathMatcher)}. */ @Deprecated - public WebRequestPattensRule(String[] patterns, @Nullable PathMatcher pathMatcher, boolean useTrailingSlashMatch) { + public WebRequestPatternsRule(String[] patterns, @Nullable PathMatcher pathMatcher, boolean useTrailingSlashMatch) { this(patterns, pathMatcher, false, useTrailingSlashMatch); } /** - * Variant of {@link #WebRequestPattensRule(String...)} with a + * Variant of {@link #WebRequestPatternsRule(String...)} with a * {@link UrlPathHelper} and a {@link PathMatcher}, and flags for matching * with suffixes and trailing slashes. *

As of 5.3 the path is obtained through the static method * {@link UrlPathHelper#getResolvedLookupPath} and a {@code UrlPathHelper} * does not need to be passed in. */ - public WebRequestPattensRule(String[] patterns, @Nullable PathMatcher pathMatcher, boolean useSuffixPatternMatch, boolean useTrailingSlashMatch) { + public WebRequestPatternsRule(String[] patterns, @Nullable PathMatcher pathMatcher, boolean useSuffixPatternMatch, boolean useTrailingSlashMatch) { this(patterns, pathMatcher, useSuffixPatternMatch, useTrailingSlashMatch, null); } /** - * Variant of {@link #WebRequestPattensRule(String...)} with a + * Variant of {@link #WebRequestPatternsRule(String...)} with a * {@link UrlPathHelper} and a {@link PathMatcher}, and flags for matching * with suffixes and trailing slashes, along with specific extensions. * @@ -127,8 +127,8 @@ public WebRequestPattensRule(String[] patterns, @Nullable PathMatcher pathMatche * @param useTrailingSlashMatch * @param fileExtensions */ - public WebRequestPattensRule(String[] patterns, @Nullable PathMatcher pathMatcher, boolean useSuffixPatternMatch, - boolean useTrailingSlashMatch, @Nullable List fileExtensions) { + public WebRequestPatternsRule(String[] patterns, @Nullable PathMatcher pathMatcher, boolean useSuffixPatternMatch, + boolean useTrailingSlashMatch, @Nullable List fileExtensions) { this.patterns = initPatterns(patterns); this.pathMatcher = pathMatcher != null ? pathMatcher : new AntPathMatcher(); this.useSuffixPatternMatch = useSuffixPatternMatch; diff --git a/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestPattensRuleTest.java b/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestPatternsRuleTest.java similarity index 76% rename from microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestPattensRuleTest.java rename to microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestPatternsRuleTest.java index 43dcf8411..6d05ddedb 100644 --- a/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestPattensRuleTest.java +++ b/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestPatternsRuleTest.java @@ -26,9 +26,9 @@ import static io.microsphere.collection.Lists.ofList; import static io.microsphere.collection.Sets.ofSet; import static io.microsphere.spring.test.util.SpringTestWebUtils.createWebRequest; -import static io.microsphere.spring.web.rule.WebRequestPattensRule.EMPTY_PATH_PATTERN; -import static io.microsphere.spring.web.rule.WebRequestPattensRule.hasPattern; -import static io.microsphere.spring.web.rule.WebRequestPattensRule.initPatterns; +import static io.microsphere.spring.web.rule.WebRequestPatternsRule.EMPTY_PATH_PATTERN; +import static io.microsphere.spring.web.rule.WebRequestPatternsRule.hasPattern; +import static io.microsphere.spring.web.rule.WebRequestPatternsRule.initPatterns; import static io.microsphere.util.ArrayUtils.EMPTY_STRING_ARRAY; import static io.microsphere.util.ArrayUtils.ofArray; import static io.microsphere.util.StringUtils.EMPTY_STRING; @@ -40,12 +40,12 @@ import static org.junit.Assert.assertTrue; /** - * {@link WebRequestPattensRule} Test + * {@link WebRequestPatternsRule} Test * * @author Mercy * @since 1.0.0 */ -public class WebRequestPattensRuleTest extends BaseWebRequestRuleTest { +public class WebRequestPatternsRuleTest extends BaseWebRequestRuleTest { @Test public void testHasPattern() { @@ -67,7 +67,7 @@ public void testInitPatterns() { // Test empty patterns match all requests @Test public void testEmptyPatternMatchesAllPaths() { - WebRequestPattensRule rule = new WebRequestPattensRule(); + WebRequestPatternsRule rule = new WebRequestPatternsRule(); assertFalse(rule.matches(createWebRequest("/any-path"))); assertTrue(rule.matches("")); } @@ -75,7 +75,7 @@ public void testEmptyPatternMatchesAllPaths() { // Test exact path matching @Test public void testExactPathMatching() { - WebRequestPattensRule rule = new WebRequestPattensRule("/api/users"); + WebRequestPatternsRule rule = new WebRequestPatternsRule("/api/users"); assertTrue(rule.matches(createWebRequest("/api/users"))); assertFalse(rule.matches("/api/products")); } @@ -83,7 +83,7 @@ public void testExactPathMatching() { // Test wildcard pattern matching @Test public void testWildcardPatternMatching() { - WebRequestPattensRule rule = new WebRequestPattensRule("/api/*"); + WebRequestPatternsRule rule = new WebRequestPatternsRule("/api/*"); assertTrue(rule.matches(createWebRequest("/api/users"))); assertTrue(rule.matches("/api/products")); assertFalse(rule.matches("/admin/users")); @@ -93,7 +93,7 @@ public void testWildcardPatternMatching() { @Test public void testSuffixPatternMatching() { List extensions = ofList("json", ".xml"); - WebRequestPattensRule rule = new WebRequestPattensRule( + WebRequestPatternsRule rule = new WebRequestPatternsRule( new String[]{"/data"}, null, true, @@ -109,7 +109,7 @@ public void testSuffixPatternMatching() { // Test trailing slash matching @Test public void testTrailingSlashMatching() { - WebRequestPattensRule rule = new WebRequestPattensRule( + WebRequestPatternsRule rule = new WebRequestPatternsRule( new String[]{"/resources"}, true, new AntPathMatcher() @@ -123,7 +123,7 @@ public void testTrailingSlashMatching() { // Test multiple matching patterns sorting @Test public void testMultipleMatchingPatternsSorting() { - WebRequestPattensRule rule = new WebRequestPattensRule( + WebRequestPatternsRule rule = new WebRequestPatternsRule( "/api/**", "/api/v1/users", "/api/v1/*" @@ -144,87 +144,87 @@ public void testPreFlightRequestNotMatched() { request.addHeader("Access-Control-Request-Method", "GET"); ServletWebRequest webRequest = new ServletWebRequest(request); - WebRequestPattensRule rule = new WebRequestPattensRule("/api/*"); + WebRequestPatternsRule rule = new WebRequestPatternsRule("/api/*"); assertFalse(rule.matches(webRequest)); } // Test pattern initialization adds leading slash @Test public void testPatternInitializationAddsLeadingSlash() { - WebRequestPattensRule rule = new WebRequestPattensRule("admin", "users"); + WebRequestPatternsRule rule = new WebRequestPatternsRule("admin", "users"); assertTrue(rule.getContent().contains("/admin")); assertTrue(rule.getContent().contains("/users")); } @Test public void testGetMatchingPatterns() { - WebRequestPattensRule rule = new WebRequestPattensRule(EMPTY_STRING_ARRAY, null, true, true); + WebRequestPatternsRule rule = new WebRequestPatternsRule(EMPTY_STRING_ARRAY, null, true, true); assertEquals("/api/*.*", rule.getMatchingPattern("/api/*", "/api/data.json")); } @Test public void testGetMatchingPatternOnWildcardExtensionMatched() { - WebRequestPattensRule rule = new WebRequestPattensRule(EMPTY_STRING_ARRAY, null, true, true); + WebRequestPatternsRule rule = new WebRequestPatternsRule(EMPTY_STRING_ARRAY, null, true, true); assertNull(rule.getMatchingPattern("/", "/data.json")); } @Test public void testGetMatchingPatternWithSuffix() { - WebRequestPattensRule rule = new WebRequestPattensRule(EMPTY_STRING_ARRAY, null, true, true); + WebRequestPatternsRule rule = new WebRequestPatternsRule(EMPTY_STRING_ARRAY, null, true, true); assertEquals("/*.json", rule.getMatchingPattern("/*.json", "/data.json")); } @Test public void testGetMatchingPatternWithoutTrailingSlashMatch() { - WebRequestPattensRule rule = new WebRequestPattensRule(EMPTY_STRING_ARRAY, null, true, false); + WebRequestPatternsRule rule = new WebRequestPatternsRule(EMPTY_STRING_ARRAY, null, true, false); assertNull(rule.getMatchingPattern("/*.txt", "/data.json")); } @Test public void testGetMatchingPatternOnWildcardExtensionNotMatched() { - WebRequestPattensRule rule = new WebRequestPattensRule(EMPTY_STRING_ARRAY, null, true, true); + WebRequestPatternsRule rule = new WebRequestPatternsRule(EMPTY_STRING_ARRAY, null, true, true); assertNull(rule.getMatchingPattern("/", "/data.json")); } @Test public void testGetMatchingPatternOnFileExtensionMatched() { - WebRequestPattensRule rule = new WebRequestPattensRule(EMPTY_STRING_ARRAY, null, true, true, ofList("json")); + WebRequestPatternsRule rule = new WebRequestPatternsRule(EMPTY_STRING_ARRAY, null, true, true, ofList("json")); assertEquals("/*.json", rule.getMatchingPattern("/*", "/data.json")); } @Test public void testGetMatchingPatternOnFileExtensionNotMatched() { - WebRequestPattensRule rule = new WebRequestPattensRule(EMPTY_STRING_ARRAY, null, true, true, ofList("json")); + WebRequestPatternsRule rule = new WebRequestPatternsRule(EMPTY_STRING_ARRAY, null, true, true, ofList("json")); assertEquals("/*", rule.getMatchingPattern("/*", "/data")); } @Override public void doTestGetToStringInfix() { - WebRequestPattensRule rule = new WebRequestPattensRule(); + WebRequestPatternsRule rule = new WebRequestPatternsRule(); assertEquals(" || ", rule.getToStringInfix()); } @Override protected void doTestEquals() { - WebRequestPattensRule rule = new WebRequestPattensRule("/api/*"); + WebRequestPatternsRule rule = new WebRequestPatternsRule("/api/*"); assertEquals(rule, rule); - assertEquals(rule, new WebRequestPattensRule("/api/*")); + assertEquals(rule, new WebRequestPatternsRule("/api/*")); - assertNotEquals(rule, new WebRequestPattensRule("/test")); + assertNotEquals(rule, new WebRequestPatternsRule("/test")); assertNotEquals(rule, this); assertNotEquals(rule, null); } @Override protected void doTestHashCode() { - WebRequestPattensRule rule = new WebRequestPattensRule("/api/*"); + WebRequestPatternsRule rule = new WebRequestPatternsRule("/api/*"); assertEquals(rule.hashCode(), rule.getContent().hashCode()); } @Override protected void doTestToString() { - WebRequestPattensRule rule = new WebRequestPattensRule("/api/*"); + WebRequestPatternsRule rule = new WebRequestPatternsRule("/api/*"); assertEquals("[/api/*]", rule.toString()); } } \ No newline at end of file diff --git a/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestProducesRuleTest.java b/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestProducesRuleTest.java index 138b4b1e6..b56d71fab 100644 --- a/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestProducesRuleTest.java +++ b/microsphere-spring-web/src/test/java/io/microsphere/spring/web/rule/WebRequestProducesRuleTest.java @@ -82,7 +82,7 @@ protected void doTestEquals() { assertEquals(rule, rule); assertEquals(rule, new WebRequestProducesRule(APPLICATION_JSON_VALUE)); - assertNotEquals(rule, new WebRequestPattensRule(APPLICATION_XML_VALUE)); + assertNotEquals(rule, new WebRequestPatternsRule(APPLICATION_XML_VALUE)); assertNotEquals(rule, this); assertNotEquals(rule, null); } From a36cddb3f742d4b6e23fc154c21fb3ca8a202fe4 Mon Sep 17 00:00:00 2001 From: Mercy Ma Date: Fri, 30 Oct 2026 09:41:19 +0800 Subject: [PATCH 7/8] Upgrade microsphere-build parent to 1.0.1 Use the updated build parent version instead of 0.3.17. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 69050c600..8a7c7c901 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.microsphere-projects microsphere-build - 0.3.17 + 1.0.1 4.0.0 From 7689d7c4d6034aeebdd465542d7e5653212126e6 Mon Sep 17 00:00:00 2001 From: Mercy Date: Sun, 1 Nov 2026 21:53:53 +0800 Subject: [PATCH 8/8] Bump Microsphere dependency versions Update the parent POM to align with the latest Microsphere Java and logging releases: 0.3.21 and 0.3.1 respectively. This keeps the project on the current dependency baseline and ensures compatibility with newer upstream fixes. --- microsphere-spring-parent/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microsphere-spring-parent/pom.xml b/microsphere-spring-parent/pom.xml index 93e78ffc4..b14bbca28 100644 --- a/microsphere-spring-parent/pom.xml +++ b/microsphere-spring-parent/pom.xml @@ -19,8 +19,8 @@ Microsphere Spring Parent - 0.3.20 - 0.2.3 + 0.3.21 + 0.3.1 2.22.2 2.6 3.9.1