You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2026/09/13 17:54:58 UTC

(juneau) branch juneau-release-manager updated: Fix three Sonar findings in release-manager: extract ReleaseRest S1192 duplicated string constants, collapse JavadocVerifyStep S9358 duplicate returns, and drop MilestoneService S5860 named regex groups.

This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch juneau-release-manager
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/juneau-release-manager by this push:
     new 708f43e9b6 Fix three Sonar findings in release-manager: extract ReleaseRest S1192 duplicated string constants, collapse JavadocVerifyStep S9358 duplicate returns, and drop MilestoneService S5860 named regex groups.
708f43e9b6 is described below

commit 708f43e9b60e5120ddfc161a6d764eb11138f8c8
Author: James Bognar <ja...@apache.org>
AuthorDate: Sun Sep 13 13:54:53 2026 -0400

    Fix three Sonar findings in release-manager: extract ReleaseRest S1192 duplicated string constants, collapse JavadocVerifyStep S9358 duplicate returns, and drop MilestoneService S5860 named regex groups.
---
 .../juneau/releng/engine/steps/JavadocVerifyStep.java      |  4 ++--
 .../apache/juneau/releng/milestone/MilestoneService.java   | 10 +++++-----
 .../java/org/apache/juneau/releng/rest/ReleaseRest.java    | 14 ++++++++++----
 3 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/apache/juneau/releng/engine/steps/JavadocVerifyStep.java b/src/main/java/org/apache/juneau/releng/engine/steps/JavadocVerifyStep.java
index ab1bb92401..53f00bcf23 100644
--- a/src/main/java/org/apache/juneau/releng/engine/steps/JavadocVerifyStep.java
+++ b/src/main/java/org/apache/juneau/releng/engine/steps/JavadocVerifyStep.java
@@ -54,7 +54,7 @@ public class JavadocVerifyStep implements ReleaseStep {
 	public StepResult apply(StepContext ctx) {
 		var res = ctx.exec(List.of("mvn", "-f", ctx.stagingRepo.toString() + "/pom.xml", "javadoc:aggregate"));
 		// Non-zero-but-noisy javadoc historically continues; require human "looks clean" via the review gate.
-		return res.ok() ? StepResult.ok("Javadoc generated — review the log, then confirm.")
-				: StepResult.ok("Javadoc finished with warnings/errors — review the log carefully, then confirm.");
+		return StepResult.ok(res.ok() ? "Javadoc generated — review the log, then confirm."
+				: "Javadoc finished with warnings/errors — review the log carefully, then confirm.");
 	}
 }
diff --git a/src/main/java/org/apache/juneau/releng/milestone/MilestoneService.java b/src/main/java/org/apache/juneau/releng/milestone/MilestoneService.java
index 6be25c188c..fe5055713c 100644
--- a/src/main/java/org/apache/juneau/releng/milestone/MilestoneService.java
+++ b/src/main/java/org/apache/juneau/releng/milestone/MilestoneService.java
@@ -29,8 +29,8 @@ import org.apache.juneau.releng.release.ReleaseVersion;
 public class MilestoneService {
 
 	// "Bump <dep> from <old> to <new>" with optional trailing " in <path>".
-	private static final Pattern BUMP = Pattern
-			.compile("^Bump (?<dep>.+?) from (?<from>\\S+) to (?<to>\\S+?)(?: in (?<path>\\S+))?$");
+	// Capture groups: 1=dependency, 2=from-version, 3=to-version, 4=optional path.
+	private static final Pattern BUMP = Pattern.compile("^Bump (.+?) from (\\S+) to (\\S+?)(?: in (\\S+))?$");
 
 	/** The release tag immediately preceding {@code version} (prereleases excluded). */
 	public String previousTag(List<String> tags, String version) {
@@ -49,10 +49,10 @@ public class MilestoneService {
 			var m = BUMP.matcher(pr.title == null ? "" : pr.title.strip());
 			if (!m.matches())
 				continue; // non-bump / human PR -> excluded from ** Changes
-			var dep = m.group("dep");
-			var path = m.group("path");
+			var dep = m.group(1);
+			var path = m.group(4);
 			var key = path == null ? dep : dep + " in " + path;
-			groups.computeIfAbsent(key, ChangelogEntry.Builder::new).add(m.group("from"), m.group("to"), pr.number);
+			groups.computeIfAbsent(key, ChangelogEntry.Builder::new).add(m.group(2), m.group(3), pr.number);
 		}
 
 		var out = new ArrayList<ChangelogEntry>();
diff --git a/src/main/java/org/apache/juneau/releng/rest/ReleaseRest.java b/src/main/java/org/apache/juneau/releng/rest/ReleaseRest.java
index 4a5e0a31f2..cc72d25943 100644
--- a/src/main/java/org/apache/juneau/releng/rest/ReleaseRest.java
+++ b/src/main/java/org/apache/juneau/releng/rest/ReleaseRest.java
@@ -62,9 +62,15 @@ public class ReleaseRest extends BasicRestResource {
 	/** This resource's absolute mount (RootRest {@code /rest/*} + {@code /releases}), used to resolve asset/data URLs. */
 	static final String MOUNT = "/rest/releases";
 
+	/** This resource's page/view id, shared by {@link #releasesView()}'s {@link ViewDef} id and {@link #page(RestRequest)}'s template/slot name. */
+	static final String NAME = "releases";
+
 	/** The rich-view toolkit's cell renderer id for a clickable/href-bearing column (see {@link Column#render(String)}). */
 	static final String RENDER_LINKED = "linked";
 
+	/** Cell renderer / format id for a Zulu timestamp column (see {@link Column#render(String)}). */
+	static final String RENDER_TS_ZULU = "ts-zulu";
+
 	private final ReleaseListService service;
 
 	public ReleaseRest(ReleaseListService service) {
@@ -95,7 +101,7 @@ public class ReleaseRest extends BasicRestResource {
 	 * can reuse this same declarative definition when mounting the Admin Releases pair.
 	 */
 	static ViewDef releasesView() {
-		return ViewDef.create("releases")
+		return ViewDef.create(NAME)
 			.rowType(Release.class)
 			.dataMode(DataMode.SERVER)
 			.dataUrl(MOUNT + "/data")
@@ -105,8 +111,8 @@ public class ReleaseRest extends BasicRestResource {
 				Column.of("rc").title("RC"),
 				Column.of("status").title("Status").render("tag:status"),
 				Column.of("stage").title("Stage").render("tag:stage"),
-				Column.of("voteCloses").title("Vote closes").render("ts-zulu").formats("ts-zulu", "datetime", "date"),
-				Column.of("released").title("Released").render("date").formats("date", "datetime", "ts-zulu"),
+				Column.of("voteCloses").title("Vote closes").render(RENDER_TS_ZULU).formats(RENDER_TS_ZULU, "datetime", "date"),
+				Column.of("released").title("Released").render("date").formats("date", "datetime", RENDER_TS_ZULU),
 				Column.of("githubReleaseUrl").title("GitHub").render(RENDER_LINKED).href("{githubReleaseUrl}").orderable(false)
 					.defaultVisible(false),
 				Column.of("milestoneUrl").title("Milestone").render(RENDER_LINKED).href("{milestoneUrl}").orderable(false)
@@ -128,7 +134,7 @@ public class ReleaseRest extends BasicRestResource {
 	/** Human page — empty {@code #releases} slot; the table is mounted from {@link #releasesViewEnvelope}. */
 	@RestGet("/")
 	public View page(RestRequest req) {
-		return TableSlotPage.of("releases", req, "releases", MOUNT + "/view");
+		return TableSlotPage.of(NAME, req, NAME, MOUNT + "/view");
 	}
 
 	/**