Skip to content

Upgrade qulice to 0.27.6 and grizzly to 5.0.1#97

Open
bibonix wants to merge 2 commits intosttc:masterfrom
bibonix:deps-upgrade-2026-05
Open

Upgrade qulice to 0.27.6 and grizzly to 5.0.1#97
bibonix wants to merge 2 commits intosttc:masterfrom
bibonix:deps-upgrade-2026-05

Conversation

@bibonix
Copy link
Copy Markdown

@bibonix bibonix commented May 6, 2026

@yegor256 — this is ready for merge. All CI checks are green.

Upgrades the build to the current stable plugin/dependency versions and adapts the source to the new linter rules introduced by the upgraded qulice.

Changes

  • Bump qulice-maven-plugin from 0.25.1 to 0.27.6 (latest stable; supersedes the renovate PR Update dependency com.qulice:qulice-maven-plugin to v0.27.6 #89, which can't pass CI without the source-code adjustments below).
  • Bump org.glassfish.grizzly:grizzly-http-servlet-server (test scope) from 4.0.2 to 5.0.1 (latest stable).
  • Drop Java 17 from the mvn CI matrix. Both qulice 0.27.6 and grizzly 5.0.1 are compiled for Java 21 (class file version 65), so the Java 17 jobs hit UnsupportedClassVersionError. This matches the matrix used by other recently-upgraded jcabi projects (e.g. jcabi/jcabi-velocity).

Code adjustments for the new linter rules

Qulice 0.27.6 surfaces several Checkstyle/PMD rules that flagged 60 violations on the existing tree. All of them are fixed in this PR:

  • JavadocEmptyLineBeforeTagCheck — drop empty * lines before @-clauses in single-paragraph Javadoc blocks across the codebase.
  • RegexpMultilineCheck (empty line before closing brace) — remove blank lines that preceded closing braces.
  • ConstructorsCodeFreeCheck
    • RtSttc: refactor to delegate the public ctor to a private RtSttc(Request) ctor, with a private static entry() helper that builds the request; suppress the rule on the single this(RtSttc.entry(...)) delegation line.
    • Atomic: replace TimeUnit.MINUTES.toMillis(5L) in the ctor delegation with a DEFAULT_MAX constant.
    • SttcRule (test): replace the no-arg ctor with a SttcRule.fromProperties() factory and update call sites.
  • BracketsStructureCheck / RegexpSinglelineCheck (fluent-call rules) — extract long XPath templates in RtCounter and RtCounters into private static final String constants and inline String.format into the fluent chain. Inline the XML literals in RtLocksTest.
  • ProhibitFieldsInTestClassesCheck / PMD PublicMemberInNonPublicType — drop the public srule field from RtCountersITCase / RtLocksITCase and use SttcRule.fromProperties() directly inside each test method.
  • PMD UnnecessaryLocalRule — inline the temporary local in AtomicTest#callsUnlockAfterException.

Verification

  • mvn --errors --batch-mode clean install -Pqulice passes locally on JDK 21 with no errors and no qulice violations.
  • All 10 CI checks (mvn on ubuntu/macos/windows + actionlint, copyrights, markdown-lint, pdd, reuse, typos, xcop, yamllint) are green on commit dd937a9.

bibonix added 2 commits May 6, 2026 06:19
Bumps qulice-maven-plugin from 0.25.1 to 0.27.6 and org.glassfish.grizzly:grizzly-http-servlet-server from 4.0.2 to 5.0.1. The new qulice version surfaces additional checkstyle/PMD rules; the source is adjusted to satisfy them (drop blank Javadoc lines before @-clauses and blank lines before closing braces, extract long XPath templates into static constants, restructure fluent chains, refactor RtSttc constructor to delegate to a static factory, replace SttcRule no-arg ctor with fromProperties() and drop public 'srule' field). Build passes 'mvn install -Pqulice' cleanly.
Qulice 0.27.6 and grizzly-http-servlet-server 5.0.1 are both built for Java 21 (class file version 65). With Java 17 in the matrix, those plugins/libraries fail with UnsupportedClassVersionError. Match the upstream jcabi pattern (e.g. jcabi-velocity) and run the mvn job on Java 21 only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant