diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 4153e1455a..ebddb7a25d 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -253,6 +253,13 @@ jobs: if: matrix.java-version == 8 run: ant -noinput -buildfile CodenameOne/build.xml weeklyLibUpdate + - name: Set up Java 25 for JavaDocs + if: matrix.java-version == 8 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '25' + - name: Build JavaDocs if: matrix.java-version == 8 run: | @@ -263,7 +270,23 @@ jobs: mkdir -p dist/javadoc # Skip JavaDocSourceEmbed due to gist access issues in CI cp -r src/* build/tempJavaSources/ - find build/tempJavaSources ../Ports/CLDC11/src -name "*.java" | /usr/bin/grep -v /impl/ | /usr/bin/xargs javadoc --allow-script-in-comments -protected -d dist/javadoc -windowtitle "Codename One API" || true + # Provide a minimal ImplementationFactory stub for Javadoc type resolution on JDK 25. + cat > build/tempJavaSources/com/codename1/impl/ImplementationFactory.java <<'EOF' + package com.codename1.impl; + + public class ImplementationFactory { + public static ImplementationFactory getInstance() { + return null; + } + + public Object createImplementation() { + return null; + } + } + EOF + # Suppress doclint noise on modern JDKs (e.g., Java 25) while keeping output consistent. + # Patch java.base with CLDC11 stubs to avoid module conflicts for java.* packages. + find build/tempJavaSources ../Ports/CLDC11/src -name "*.java" | /usr/bin/xargs javadoc --allow-script-in-comments --patch-module java.base=../Ports/CLDC11/src/java -exclude com.codename1.impl -Xdoclint:none -quiet -protected -d dist/javadoc -windowtitle "Codename One API" || true cd dist/javadoc zip -r ../../javadocs.zip * cd .. @@ -339,4 +362,3 @@ jobs: name: JavaSE.jar path: Ports/JavaSE/dist/JavaSE.jar -