From 40f463bab072952db01d4ca8c9f2027fac2f4212 Mon Sep 17 00:00:00 2001 From: Nick Morgan Date: Tue, 23 Jun 2026 11:44:05 -0700 Subject: [PATCH 1/2] fix(javadoc): disable doclint and keep readable generated comments Javadoc generation failed during Maven Central publish because doclint rejects comparison operators in OpenAPI-sourced model comments. Disable doclint in maven-javadoc-plugin (matching AWS SDK pattern) and add CI javadoc step plus decodeHtmlEntities regression tests. Co-authored-by: Cursor --- .github/workflows/test.yml | 3 + pom.xml | 3 + tools/model-generator/pom.xml | 12 ++++ .../PostProcessorJavadocTest.java | 71 +++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 tools/model-generator/src/test/java/com/coinbase/tools/modelgenerator/PostProcessorJavadocTest.java diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1dbdc52..bda42a0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,3 +26,6 @@ jobs: - name: Test run: mvn -B test + + - name: Javadoc + run: mvn -B javadoc:javadoc diff --git a/pom.xml b/pom.xml index 7c73f85..3cf23a8 100644 --- a/pom.xml +++ b/pom.xml @@ -96,6 +96,9 @@ org.apache.maven.plugins maven-javadoc-plugin 3.7.0 + + none + attach-javadocs diff --git a/tools/model-generator/pom.xml b/tools/model-generator/pom.xml index d0630c3..ad96db7 100644 --- a/tools/model-generator/pom.xml +++ b/tools/model-generator/pom.xml @@ -75,6 +75,13 @@ slf4j-simple 2.0.9 + + + org.junit.jupiter + junit-jupiter + 5.10.0 + test + @@ -88,6 +95,11 @@ 11 + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M5 + org.apache.maven.plugins maven-shade-plugin diff --git a/tools/model-generator/src/test/java/com/coinbase/tools/modelgenerator/PostProcessorJavadocTest.java b/tools/model-generator/src/test/java/com/coinbase/tools/modelgenerator/PostProcessorJavadocTest.java new file mode 100644 index 0000000..f49d4b2 --- /dev/null +++ b/tools/model-generator/src/test/java/com/coinbase/tools/modelgenerator/PostProcessorJavadocTest.java @@ -0,0 +1,71 @@ +/* + * Copyright 2026-present Coinbase Global, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.coinbase.tools.modelgenerator; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class PostProcessorJavadocTest { + + @Test + void decodeHtmlEntities_decodesCommonEntities() { + assertEquals( + "aged > urgent > standard > debit", + PostProcessor.decodeHtmlEntities("aged > urgent > standard > debit")); + assertEquals( + "EQ / MR >= threshold_value", + PostProcessor.decodeHtmlEntities("EQ / MR >= threshold_value")); + assertEquals( + "(tier_a, tier_b) -> rate", + PostProcessor.decodeHtmlEntities("(tier_a, tier_b) -> rate")); + assertEquals( + "margin excess is > 0", + PostProcessor.decodeHtmlEntities("margin excess is > 0")); + } + + @Test + void decodeHtmlEntities_leavesPlainTextUnchanged() { + assertEquals( + "aged > urgent > standard > debit", + PostProcessor.decodeHtmlEntities("aged > urgent > standard > debit")); + assertEquals( + "EQ / MR >= threshold_value", + PostProcessor.decodeHtmlEntities("EQ / MR >= threshold_value")); + } + + @Test + void decodeHtmlEntities_decodesAcrossFullFileContent() { + String input = + "public class Foo {\n" + + " /**\n" + + " * aged > urgent > standard > debit.\n" + + " */\n" + + " private String bar;\n" + + "}\n"; + + String expected = + "public class Foo {\n" + + " /**\n" + + " * aged > urgent > standard > debit.\n" + + " */\n" + + " private String bar;\n" + + "}\n"; + + assertEquals(expected, PostProcessor.decodeHtmlEntities(input)); + } +} From 6a2a1ed45e9e5479451ae209aaa1ca8d2a9a7753 Mon Sep 17 00:00:00 2001 From: Nick Morgan Date: Tue, 23 Jun 2026 11:44:10 -0700 Subject: [PATCH 2/2] chore: bump version to 1.10.1 and update changelog Co-authored-by: Cursor --- CHANGELOG.md | 7 +++++++ pom.xml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c7cc80..f9d9d21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.10.1] - 2026-JUN-23 + +### Fixed + +- **Maven Central publish**: Javadoc generation failed on model comments containing `>`, `>=`, or `->` from OpenAPI descriptions (e.g. margin threshold comparisons, call priority ordering). Disabled doclint HTML checks in `maven-javadoc-plugin` so generated comments stay human-readable while Javadoc still builds for release. +- **CI**: PR workflow runs `mvn javadoc:javadoc` so Javadoc failures are caught before release. + ## [1.10.0] - 2026-JUN-17 ### Added diff --git a/pom.xml b/pom.xml index 3cf23a8..4692aee 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ Sample Java SDK for the Coinbase Prime REST APIs com.coinbase.prime https://github.com/coinbase/prime-sdk-java - 1.10.0 + 1.10.1 Apache License, Version 2.0