From 9fb9a35e367bf0d438999d6b91b80f7c953fb341 Mon Sep 17 00:00:00 2001 From: Mischa Date: Tue, 7 Jul 2026 09:57:03 +0200 Subject: [PATCH 1/5] MXTS-74974: modernize microdocs-crawler-gradle publishing via com.maxxton.convention --- microdocs-crawler-gradle/build.gradle | 58 ++++------------------ microdocs-crawler-gradle/gradle.properties | 2 + microdocs-crawler-gradle/settings.gradle | 24 +++++++++ 3 files changed, 35 insertions(+), 49 deletions(-) create mode 100644 microdocs-crawler-gradle/gradle.properties diff --git a/microdocs-crawler-gradle/build.gradle b/microdocs-crawler-gradle/build.gradle index 530b2cd..25295db 100644 --- a/microdocs-crawler-gradle/build.gradle +++ b/microdocs-crawler-gradle/build.gradle @@ -3,47 +3,13 @@ plugins { id "groovy" id "java" id "java-library" - id "signing" id "maven-publish" - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0" + id "com.maxxton.convention" version "3.3.2" } -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'MicroDocs Gradle Crawler' - description = 'MicroDocs crawler for gradle projects' - url = 'https://github.com/MaxxtonGroup/microdocs' - licenses { - license { - name = 'The Apache Software License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution = 'repo' - } - } - developers { - developer { - id = 's.hermans' - name = 'Steven Hermans' - } - } - scm { - url = 'scm:git@github.com:MaxxtonGroup/microdocs.git' - connection = 'scm:git@github.com:MaxxtonGroup/microdocs.git' - developerConnection = 'scm:git@github.com:MaxxtonGroup/microdocs.git' - } - } - } - } - repositories { - // mavenLocal() - maven { - url "artifactregistry://europe-maven.pkg.dev/dynamic-concept-192711/maxxton-maven-registry" - } - } -} +// Publishing (mavenJava publication + maxxton-maven-registry repository) is +// auto-configured by the com.maxxton.convention plugin once maven-publish +// and java are detected - see PublishingConfiguration in maxxton-conventions. repositories { mavenCentral() @@ -60,8 +26,8 @@ dependencies { api("com.maxxton:microdocs-core-java:3.0.0") } -group = 'com.maxxton' -version = '4.0.1' +// group and version now come from gradle.properties, set before +// the com.maxxton.convention plugin's PublishingConfiguration reads them. task fatJar(type: Jar, dependsOn: 'jar') { @@ -88,10 +54,9 @@ task javadocJar(type: Jar, dependsOn: javadoc) { from 'build/docs/javadoc' } -task sourcesJar(type: Jar) { - from sourceSets.main.allSource - archiveClassifier = 'sources' -} +// sourcesJar is created automatically by withSourcesJar() below (via the +// com.maxxton.convention plugin's PublishingConfiguration, which calls it +// as soon as maven-publish is applied). artifacts { archives fatJar @@ -104,8 +69,3 @@ java { withJavadocJar() withSourcesJar() } - -signing { - sign configurations.archives - sign publishing.publications -} diff --git a/microdocs-crawler-gradle/gradle.properties b/microdocs-crawler-gradle/gradle.properties new file mode 100644 index 0000000..7068d2e --- /dev/null +++ b/microdocs-crawler-gradle/gradle.properties @@ -0,0 +1,2 @@ +group=com.maxxton +version=4.0.1 diff --git a/microdocs-crawler-gradle/settings.gradle b/microdocs-crawler-gradle/settings.gradle index 94f03c2..6b90855 100644 --- a/microdocs-crawler-gradle/settings.gradle +++ b/microdocs-crawler-gradle/settings.gradle @@ -1 +1,25 @@ +pluginManagement { + repositories { + mavenLocal() + maven { + url = uri("artifactregistry://europe-maven.pkg.dev/dynamic-concept-192711/maxxton-maven-virtual") + } + gradlePluginPortal() + } + plugins { + id("com.google.cloud.artifactregistry.gradle.plugin") version "2.2.0" + } +} + +buildscript { + repositories { + gradlePluginPortal() + } + dependencies { + classpath("com.google.cloud.artifactregistry.gradle-plugin:com.google.cloud.artifactregistry.gradle-plugin.gradle.plugin:2.2.0") + } +} + +apply plugin: com.google.cloud.artifactregistry.gradle.plugin.ArtifactRegistryGradlePlugin + rootProject.name = 'microdocs-crawler-gradle' From b9cc01fabde991f5d9d7812cd8d9e56ca884ab9c Mon Sep 17 00:00:00 2001 From: Mischa Date: Tue, 7 Jul 2026 10:17:00 +0200 Subject: [PATCH 2/5] MXTS-74974: address PR review feedback (artifact-registry plugin 2.2.5, commit lockfile, explicit sourcesJar/javadocJar ordering) --- microdocs-crawler-gradle/build.gradle | 17 +++++++++-------- microdocs-crawler-gradle/gradle.lockfile | 17 +++++++++++++++++ microdocs-crawler-gradle/settings.gradle | 4 ++-- 3 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 microdocs-crawler-gradle/gradle.lockfile diff --git a/microdocs-crawler-gradle/build.gradle b/microdocs-crawler-gradle/build.gradle index 25295db..a625182 100644 --- a/microdocs-crawler-gradle/build.gradle +++ b/microdocs-crawler-gradle/build.gradle @@ -54,9 +54,15 @@ task javadocJar(type: Jar, dependsOn: javadoc) { from 'build/docs/javadoc' } -// sourcesJar is created automatically by withSourcesJar() below (via the -// com.maxxton.convention plugin's PublishingConfiguration, which calls it -// as soon as maven-publish is applied). +// Registers the sourcesJar task (withJavadocJar() just attaches the +// existing javadocJar task above). Declared before the artifacts{} block +// below so both tasks are guaranteed to exist by the time it references +// them, rather than relying on the com.maxxton.convention plugin having +// already created sourcesJar earlier via PublishingConfiguration. +java { + withJavadocJar() + withSourcesJar() +} artifacts { archives fatJar @@ -64,8 +70,3 @@ artifacts { archives javadocJar archives sourcesJar } - -java { - withJavadocJar() - withSourcesJar() -} diff --git a/microdocs-crawler-gradle/gradle.lockfile b/microdocs-crawler-gradle/gradle.lockfile new file mode 100644 index 0000000..78f5dce --- /dev/null +++ b/microdocs-crawler-gradle/gradle.lockfile @@ -0,0 +1,17 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.fasterxml.jackson.core:jackson-annotations:2.10.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-core:2.10.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.10.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.mashape.unirest:unirest-java:1.4.9=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.maxxton:microdocs-core-java:3.0.0=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +commons-codec:commons-codec:1.9=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +commons-logging:commons-logging:1.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpasyncclient:4.1.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpclient:4.5.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpcore-nio:4.4.4=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpcore:4.4.4=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpmime:4.5.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.json:json:20160212=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +empty=annotationProcessor,integrationTestAnnotationProcessor,testAnnotationProcessor diff --git a/microdocs-crawler-gradle/settings.gradle b/microdocs-crawler-gradle/settings.gradle index 6b90855..f7ff2ac 100644 --- a/microdocs-crawler-gradle/settings.gradle +++ b/microdocs-crawler-gradle/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { gradlePluginPortal() } plugins { - id("com.google.cloud.artifactregistry.gradle.plugin") version "2.2.0" + id("com.google.cloud.artifactregistry.gradle.plugin") version "2.2.5" } } @@ -16,7 +16,7 @@ buildscript { gradlePluginPortal() } dependencies { - classpath("com.google.cloud.artifactregistry.gradle-plugin:com.google.cloud.artifactregistry.gradle-plugin.gradle.plugin:2.2.0") + classpath("com.google.cloud.artifactregistry.gradle-plugin:com.google.cloud.artifactregistry.gradle-plugin.gradle.plugin:2.2.5") } } From becec5becd347b9871272c4df0f54900aa22261b Mon Sep 17 00:00:00 2001 From: Mischa Date: Tue, 7 Jul 2026 10:38:05 +0200 Subject: [PATCH 3/5] MXTS-74974: modernize microdocs-core-java publishing, fix pre-existing -Werror warnings, update README --- README.md | 53 +++----------- microdocs-core-java/build.gradle | 70 +++++-------------- microdocs-core-java/gradle.lockfile | 24 +++++++ microdocs-core-java/gradle.properties | 2 + microdocs-core-java/settings.gradle | 25 ++++++- .../core/domain/schema/SchemaPrimitive.java | 2 +- .../core/reflect/ReflectDescriptionTag.java | 2 +- .../spring/parser/SpecificationsParser.java | 2 +- 8 files changed, 78 insertions(+), 102 deletions(-) create mode 100644 microdocs-core-java/gradle.lockfile create mode 100644 microdocs-core-java/gradle.properties diff --git a/README.md b/README.md index 8afd888..ada0cf8 100644 --- a/README.md +++ b/README.md @@ -2,56 +2,19 @@ This is the Java plugin to publish data to your [microdocs server](https://github.com/MaxxtonGroup/microdocs). For more info, see the three READMEs's in the subfolders. -## Publishing to Maven Central +## Publishing -Before you can publish, you'll have to do some setup. +Artifacts publish to Maxxton's internal Maven registry, not Maven Central - no GPG signing or Sonatype account needed. -1. Create a [sonatype account](https://issues.sonatype.org/secure/Signup!default.jspa) and create an issue to request access to com.maxxton -2. Install [GnuPG](https://www.gnupg.org/download/) NOTE: at least version 2.1! -3. Generate key pair by running: -``` -$ gpg --full-generate-key -``` -Choose RSA 2048bit with no expiration. Fill in your name, email, and passphrase. Your key is saved in `~/.gnupg`. - - -4. Run this to update your secring.gpg: -``` -$ gpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/secring.gpg -``` +`microdocs-crawler-gradle` and `microdocs-core-java` use the `com.maxxton.convention` plugin, which configures the publication and registry automatically. `microdocs-crawler-doclet` never publishes its own artifact - only its fat jar is bundled into `microdocs-crawler-gradle`'s published jar. -5. Create `~/.gradle/gradle.properties` (or `C:\\Users\\username\\.gradle\\gradle.properties`) with the following properties: +To publish a new version: +1. Bump `version` in `gradle.properties` for whichever module(s) changed. +2. Run: ``` -signing.keyId=keyid -signing.password=yourpassword -signing.secretKeyRingFile=C:\\Users\\username\\.gnupg\\secring.gpg - -sonatypeUsername=username -sonatypePassword=password +$ ./publish.sh ``` -Use `gpg --list-secret-keys --keyid-format 0xshort` to get your keyId -``` -% gpg --list-secret-keys --keyid-format 0xshort -[keyboxd] ---------- -sec rsa2048/0x1337CAFE 1970-01-01 [SC] - ^^^^^^^^^^ - ## this bit is what you're looking for. - 1337133713371337133713371337133713371337 -uid [ultimate] Your Name -ssb rsa2048/0xCAFE1337 1970-01-01 [E] -``` - -6. Publish -``` -$ ./publish -``` - -And follow the [release and deployment manual](https://central.sonatype.org/pages/releasing-the-deployment.html) -Check this link for more info on [the signing plugin](https://docs.gradle.org/current/userguide/signing_plugin.html) - - ### Java 8 -Checkout the java8 branch for a Java 8 compatible version. The master branch will be based on Java 11, the difference is substantial due to the revised Javadoc API in since Java 9. +Checkout the java8 branch for a Java 8 compatible version. The master branch is based on Java 21. diff --git a/microdocs-core-java/build.gradle b/microdocs-core-java/build.gradle index 807874b..a6bc725 100644 --- a/microdocs-core-java/build.gradle +++ b/microdocs-core-java/build.gradle @@ -2,50 +2,16 @@ plugins { id "java" id "java-library" - id "signing" id "maven-publish" - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0" + id "com.maxxton.convention" version "3.3.2" } -group = 'com.maxxton' -version = '4.0.0' +// group and version come from gradle.properties, set before the +// com.maxxton.convention plugin's PublishingConfiguration reads them. -publishing { - publications { - mavenJava(MavenPublication) { - from components.java - pom { - name = 'MicroDocs Core Java' - description = 'MicroDocs core functionalities to share accross various projects' - url = 'https://github.com/MaxxtonGroup/microdocs' - licenses { - license { - name = 'The Apache Software License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution = 'repo' - } - } - developers { - developer { - id = 's.hermans' - name = 'Steven Hermans' - } - } - scm { - url = 'scm:git@github.com:MaxxtonGroup/microdocs.git' - connection = 'scm:git@github.com:MaxxtonGroup/microdocs.git' - developerConnection = 'scm:git@github.com:MaxxtonGroup/microdocs.git' - } - } - } - } - repositories { - // mavenLocal() - maven { - url "artifactregistry://europe-maven.pkg.dev/dynamic-concept-192711/maxxton-maven-registry" - } - } -} +// Publishing (mavenJava publication + maxxton-maven-registry repository) is +// auto-configured by the com.maxxton.convention plugin once maven-publish +// and java are detected - see PublishingConfiguration in maxxton-conventions. repositories { mavenCentral() @@ -58,6 +24,9 @@ dependencies { api("com.fasterxml.jackson.core:jackson-databind:2.10.1") api("com.mashape.unirest:unirest-java:1.4.9") testImplementation("junit:junit:4.12") + // com.maxxton.convention forces useJUnitPlatform() on all Test tasks; + // the vintage engine lets these existing JUnit 4 tests run on it. + testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.10.2") } task javadocJar(type: Jar, dependsOn: javadoc) { @@ -65,9 +34,14 @@ task javadocJar(type: Jar, dependsOn: javadoc) { from 'build/docs/javadoc' } -task sourcesJar(type: Jar) { - from sourceSets.main.allSource - archiveClassifier = "sources" +// Registers the sourcesJar task (withJavadocJar() just attaches the +// existing javadocJar task above). Declared before the artifacts{} block +// below so both tasks are guaranteed to exist by the time it references +// them, rather than relying on the com.maxxton.convention plugin having +// already created sourcesJar earlier via PublishingConfiguration. +java { + withJavadocJar() + withSourcesJar() } artifacts { @@ -77,16 +51,6 @@ artifacts { archives sourcesJar } -signing { - sign configurations.archives - sign publishing.publications -} - -java { - withJavadocJar() - withSourcesJar() -} - javadoc { if(JavaVersion.current().isJava9Compatible()) { options.addBooleanOption('html5', true) diff --git a/microdocs-core-java/gradle.lockfile b/microdocs-core-java/gradle.lockfile new file mode 100644 index 0000000..52a8076 --- /dev/null +++ b/microdocs-core-java/gradle.lockfile @@ -0,0 +1,24 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.fasterxml.jackson.core:jackson-annotations:2.10.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-core:2.10.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.10.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.mashape.unirest:unirest-java:1.4.9=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +commons-codec:commons-codec:1.9=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +commons-logging:commons-logging:1.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +junit:junit:4.12=integrationTestCompileClasspath,testCompileClasspath +junit:junit:4.13.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpasyncclient:4.1.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpclient:4.5.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpcore-nio:4.4.4=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpcore:4.4.4=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apache.httpcomponents:httpmime:4.5.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.hamcrest:hamcrest-core:1.3=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.json:json:20160212=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-commons:1.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-engine:1.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.junit.vintage:junit-vintage-engine:5.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.junit:junit-bom:5.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=integrationTestRuntimeClasspath,testRuntimeClasspath +empty=annotationProcessor,integrationTestAnnotationProcessor,testAnnotationProcessor diff --git a/microdocs-core-java/gradle.properties b/microdocs-core-java/gradle.properties new file mode 100644 index 0000000..7068d2e --- /dev/null +++ b/microdocs-core-java/gradle.properties @@ -0,0 +1,2 @@ +group=com.maxxton +version=4.0.1 diff --git a/microdocs-core-java/settings.gradle b/microdocs-core-java/settings.gradle index c9c1fae..130a9ec 100644 --- a/microdocs-core-java/settings.gradle +++ b/microdocs-core-java/settings.gradle @@ -1,2 +1,25 @@ -rootProject.name = 'microdocs-core-java' +pluginManagement { + repositories { + mavenLocal() + maven { + url = uri("artifactregistry://europe-maven.pkg.dev/dynamic-concept-192711/maxxton-maven-virtual") + } + gradlePluginPortal() + } + plugins { + id("com.google.cloud.artifactregistry.gradle.plugin") version "2.2.5" + } +} + +buildscript { + repositories { + gradlePluginPortal() + } + dependencies { + classpath("com.google.cloud.artifactregistry.gradle-plugin:com.google.cloud.artifactregistry.gradle-plugin.gradle.plugin:2.2.5") + } +} +apply plugin: com.google.cloud.artifactregistry.gradle.plugin.ArtifactRegistryGradlePlugin + +rootProject.name = 'microdocs-core-java' diff --git a/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/domain/schema/SchemaPrimitive.java b/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/domain/schema/SchemaPrimitive.java index b0e011e..4b94723 100644 --- a/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/domain/schema/SchemaPrimitive.java +++ b/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/domain/schema/SchemaPrimitive.java @@ -3,7 +3,7 @@ /** * @author Steven Hermans */ -public class SchemaPrimitive extends Schema { +public final class SchemaPrimitive extends Schema { public SchemaPrimitive() { } diff --git a/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/reflect/ReflectDescriptionTag.java b/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/reflect/ReflectDescriptionTag.java index 8f59e34..aa613f5 100644 --- a/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/reflect/ReflectDescriptionTag.java +++ b/microdocs-core-java/src/main/java/com/maxxton/microdocs/core/reflect/ReflectDescriptionTag.java @@ -3,7 +3,7 @@ /** * @author Steven Hermans */ -public class ReflectDescriptionTag { +public final class ReflectDescriptionTag { private String tagName; private String keyword; diff --git a/microdocs-core-java/src/main/java/com/maxxton/microdocs/crawler/spring/parser/SpecificationsParser.java b/microdocs-core-java/src/main/java/com/maxxton/microdocs/crawler/spring/parser/SpecificationsParser.java index 0e5e4e3..1005c58 100644 --- a/microdocs-core-java/src/main/java/com/maxxton/microdocs/crawler/spring/parser/SpecificationsParser.java +++ b/microdocs-core-java/src/main/java/com/maxxton/microdocs/crawler/spring/parser/SpecificationsParser.java @@ -24,7 +24,7 @@ public String getClassName() { } @Override - public List parse(ReflectParameter reflectParameter, ReflectClass controller, ReflectMethod method, SchemaCollector schemaCollector) { + public List parse(ReflectParameter reflectParameter, ReflectClass controller, ReflectMethod method, SchemaCollector schemaCollector) { List parameters = new ArrayList<>(); ParameterVariable filterParameter = new ParameterVariable(); From 55bd931099383523c4666499bd3405eb2b9f15d0 Mon Sep 17 00:00:00 2001 From: Mischa Date: Tue, 7 Jul 2026 11:35:34 +0200 Subject: [PATCH 4/5] fix(build): MXTS-74974: remove dead pluginManagement.plugins block from settings.gradle --- microdocs-core-java/settings.gradle | 3 --- microdocs-crawler-gradle/settings.gradle | 3 --- 2 files changed, 6 deletions(-) diff --git a/microdocs-core-java/settings.gradle b/microdocs-core-java/settings.gradle index 130a9ec..974993e 100644 --- a/microdocs-core-java/settings.gradle +++ b/microdocs-core-java/settings.gradle @@ -6,9 +6,6 @@ pluginManagement { } gradlePluginPortal() } - plugins { - id("com.google.cloud.artifactregistry.gradle.plugin") version "2.2.5" - } } buildscript { diff --git a/microdocs-crawler-gradle/settings.gradle b/microdocs-crawler-gradle/settings.gradle index f7ff2ac..249b4c2 100644 --- a/microdocs-crawler-gradle/settings.gradle +++ b/microdocs-crawler-gradle/settings.gradle @@ -6,9 +6,6 @@ pluginManagement { } gradlePluginPortal() } - plugins { - id("com.google.cloud.artifactregistry.gradle.plugin") version "2.2.5" - } } buildscript { From 524785bf886e9d29fd5b46471f5589c3a2552df7 Mon Sep 17 00:00:00 2001 From: Mischa Date: Tue, 7 Jul 2026 11:52:23 +0200 Subject: [PATCH 5/5] test(build): MXTS-74974: migrate microdocs-core-java to JUnit 5, drop vintage engine --- microdocs-core-java/build.gradle | 6 ++---- microdocs-core-java/gradle.lockfile | 16 +++++++++------- .../microdocs/core/reflect/ReflectClassTest.java | 8 +++++--- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/microdocs-core-java/build.gradle b/microdocs-core-java/build.gradle index a6bc725..47fada1 100644 --- a/microdocs-core-java/build.gradle +++ b/microdocs-core-java/build.gradle @@ -23,10 +23,8 @@ repositories { dependencies { api("com.fasterxml.jackson.core:jackson-databind:2.10.1") api("com.mashape.unirest:unirest-java:1.4.9") - testImplementation("junit:junit:4.12") - // com.maxxton.convention forces useJUnitPlatform() on all Test tasks; - // the vintage engine lets these existing JUnit 4 tests run on it. - testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.10.2") + testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") + testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.10.2") } task javadocJar(type: Jar, dependsOn: javadoc) { diff --git a/microdocs-core-java/gradle.lockfile b/microdocs-core-java/gradle.lockfile index 52a8076..113ee51 100644 --- a/microdocs-core-java/gradle.lockfile +++ b/microdocs-core-java/gradle.lockfile @@ -7,18 +7,20 @@ com.fasterxml.jackson.core:jackson-databind:2.10.1=compileClasspath,integrationT com.mashape.unirest:unirest-java:1.4.9=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath commons-codec:commons-codec:1.9=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath commons-logging:commons-logging:1.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -junit:junit:4.12=integrationTestCompileClasspath,testCompileClasspath -junit:junit:4.13.2=integrationTestRuntimeClasspath,testRuntimeClasspath org.apache.httpcomponents:httpasyncclient:4.1.1=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents:httpclient:4.5.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents:httpcore-nio:4.4.4=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents:httpcore:4.4.4=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents:httpmime:4.5.2=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.hamcrest:hamcrest-core:1.3=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=integrationTestCompileClasspath,testCompileClasspath org.json:json:20160212=compileClasspath,integrationTestCompileClasspath,integrationTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-commons:1.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-api:5.10.2=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-engine:5.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-params:5.10.2=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter:5.10.2=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-commons:1.10.2=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath -org.junit.vintage:junit-vintage-engine:5.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath -org.junit:junit-bom:5.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath -org.opentest4j:opentest4j:1.3.0=integrationTestRuntimeClasspath,testRuntimeClasspath +org.junit.platform:junit-platform-launcher:1.10.2=integrationTestRuntimeClasspath,testRuntimeClasspath +org.junit:junit-bom:5.10.2=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath +org.opentest4j:opentest4j:1.3.0=integrationTestCompileClasspath,integrationTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath empty=annotationProcessor,integrationTestAnnotationProcessor,testAnnotationProcessor diff --git a/microdocs-core-java/src/test/java/com/maxxton/microdocs/core/reflect/ReflectClassTest.java b/microdocs-core-java/src/test/java/com/maxxton/microdocs/core/reflect/ReflectClassTest.java index f935dec..6971d10 100644 --- a/microdocs-core-java/src/test/java/com/maxxton/microdocs/core/reflect/ReflectClassTest.java +++ b/microdocs-core-java/src/test/java/com/maxxton/microdocs/core/reflect/ReflectClassTest.java @@ -3,14 +3,16 @@ import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.assertTrue; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Steven Hermans */ public class ReflectClassTest { - @org.junit.Test + @Test public void testHasParent() { ReflectClass> arrayListClass = new ReflectClass<>(); arrayListClass.setSimpleName(ArrayList.class.getSimpleName()); @@ -31,7 +33,7 @@ public void testHasParent() { } - @org.junit.Test + @Test public void testHasParentNotLoaded() { ReflectClass> arrayListClass = new ReflectClass<>(); arrayListClass.setSimpleName(ArrayList.class.getSimpleName());