From dd1ed6596d34c1ade2584da1d673b399d0106436 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Mon, 20 Oct 2025 18:14:24 -0300 Subject: [PATCH 01/21] prepare for next development cycle --- jooby/pom.xml | 2 +- modules/jooby-apt/pom.xml | 2 +- modules/jooby-avaje-inject/pom.xml | 2 +- modules/jooby-avaje-jsonb/pom.xml | 2 +- modules/jooby-avaje-validator/pom.xml | 2 +- modules/jooby-awssdk-v1/pom.xml | 2 +- modules/jooby-awssdk-v2/pom.xml | 2 +- modules/jooby-bom/pom.xml | 4 ++-- modules/jooby-caffeine/pom.xml | 2 +- modules/jooby-camel/pom.xml | 2 +- modules/jooby-cli/pom.xml | 2 +- modules/jooby-commons-email/pom.xml | 2 +- modules/jooby-conscrypt/pom.xml | 2 +- modules/jooby-db-scheduler/pom.xml | 2 +- modules/jooby-distribution/pom.xml | 2 +- modules/jooby-ebean/pom.xml | 2 +- modules/jooby-flyway/pom.xml | 2 +- modules/jooby-freemarker/pom.xml | 2 +- modules/jooby-gradle-setup/pom.xml | 2 +- modules/jooby-graphiql/pom.xml | 2 +- modules/jooby-graphql/pom.xml | 2 +- modules/jooby-gson/pom.xml | 2 +- modules/jooby-guice/pom.xml | 2 +- modules/jooby-handlebars/pom.xml | 2 +- modules/jooby-hibernate-validator/pom.xml | 2 +- modules/jooby-hibernate/pom.xml | 2 +- modules/jooby-hikari/pom.xml | 2 +- modules/jooby-jackson/pom.xml | 2 +- modules/jooby-jasypt/pom.xml | 2 +- modules/jooby-jdbi/pom.xml | 2 +- modules/jooby-jetty/pom.xml | 2 +- modules/jooby-jstachio/pom.xml | 2 +- modules/jooby-jte/pom.xml | 2 +- modules/jooby-jwt/pom.xml | 2 +- modules/jooby-kafka/pom.xml | 2 +- modules/jooby-kotlin/pom.xml | 2 +- modules/jooby-log4j/pom.xml | 2 +- modules/jooby-logback/pom.xml | 2 +- modules/jooby-maven-plugin/pom.xml | 2 +- modules/jooby-metrics/pom.xml | 2 +- modules/jooby-mutiny/pom.xml | 2 +- modules/jooby-netty/pom.xml | 2 +- modules/jooby-openapi/pom.xml | 2 +- modules/jooby-pac4j/pom.xml | 2 +- modules/jooby-pebble/pom.xml | 2 +- modules/jooby-quartz/pom.xml | 2 +- modules/jooby-reactor/pom.xml | 2 +- modules/jooby-redis/pom.xml | 2 +- modules/jooby-redoc/pom.xml | 2 +- modules/jooby-rocker/pom.xml | 2 +- modules/jooby-run/pom.xml | 2 +- modules/jooby-rxjava3/pom.xml | 2 +- modules/jooby-stork/pom.xml | 2 +- modules/jooby-swagger-ui/pom.xml | 2 +- modules/jooby-test/pom.xml | 2 +- modules/jooby-thymeleaf/pom.xml | 2 +- modules/jooby-undertow/pom.xml | 2 +- modules/jooby-vertx-mysql-client/pom.xml | 2 +- modules/jooby-vertx-pg-client/pom.xml | 2 +- modules/jooby-vertx-sql-client/pom.xml | 2 +- modules/jooby-vertx/pom.xml | 2 +- modules/jooby-whoops/pom.xml | 2 +- modules/jooby-yasson/pom.xml | 2 +- modules/pom.xml | 2 +- pom.xml | 4 ++-- tests/pom.xml | 2 +- 66 files changed, 68 insertions(+), 68 deletions(-) diff --git a/jooby/pom.xml b/jooby/pom.xml index bc1eed27ea..791bfd9b2a 100644 --- a/jooby/pom.xml +++ b/jooby/pom.xml @@ -6,7 +6,7 @@ io.jooby jooby-project - 4.0.9 + 4.0.10-SNAPSHOT jooby jooby diff --git a/modules/jooby-apt/pom.xml b/modules/jooby-apt/pom.xml index 648778c596..11f6a28917 100644 --- a/modules/jooby-apt/pom.xml +++ b/modules/jooby-apt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-apt jooby-apt diff --git a/modules/jooby-avaje-inject/pom.xml b/modules/jooby-avaje-inject/pom.xml index da3dbe9365..780138afc1 100644 --- a/modules/jooby-avaje-inject/pom.xml +++ b/modules/jooby-avaje-inject/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-avaje-inject jooby-avaje-inject diff --git a/modules/jooby-avaje-jsonb/pom.xml b/modules/jooby-avaje-jsonb/pom.xml index d602cdec8a..44454cb9ac 100644 --- a/modules/jooby-avaje-jsonb/pom.xml +++ b/modules/jooby-avaje-jsonb/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-avaje-jsonb jooby-avaje-jsonb diff --git a/modules/jooby-avaje-validator/pom.xml b/modules/jooby-avaje-validator/pom.xml index 67142f5743..4b6462ae8a 100644 --- a/modules/jooby-avaje-validator/pom.xml +++ b/modules/jooby-avaje-validator/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-avaje-validator jooby-avaje-validator diff --git a/modules/jooby-awssdk-v1/pom.xml b/modules/jooby-awssdk-v1/pom.xml index ac1674bb08..6dccb6cc7d 100644 --- a/modules/jooby-awssdk-v1/pom.xml +++ b/modules/jooby-awssdk-v1/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-awssdk-v1 jooby-awssdk-v1 diff --git a/modules/jooby-awssdk-v2/pom.xml b/modules/jooby-awssdk-v2/pom.xml index 786b564048..56ea20b263 100644 --- a/modules/jooby-awssdk-v2/pom.xml +++ b/modules/jooby-awssdk-v2/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-awssdk-v2 jooby-awssdk-v2 diff --git a/modules/jooby-bom/pom.xml b/modules/jooby-bom/pom.xml index 4744f7c464..82e2454db9 100644 --- a/modules/jooby-bom/pom.xml +++ b/modules/jooby-bom/pom.xml @@ -7,14 +7,14 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT io.jooby jooby-bom jooby-bom pom - 4.0.9 + 4.0.10-SNAPSHOT Jooby (Bill of Materials) https://jooby.io diff --git a/modules/jooby-caffeine/pom.xml b/modules/jooby-caffeine/pom.xml index af88f0516d..1a684aa765 100644 --- a/modules/jooby-caffeine/pom.xml +++ b/modules/jooby-caffeine/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-caffeine jooby-caffeine diff --git a/modules/jooby-camel/pom.xml b/modules/jooby-camel/pom.xml index fb5e62416a..b20e054370 100644 --- a/modules/jooby-camel/pom.xml +++ b/modules/jooby-camel/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-camel jooby-camel diff --git a/modules/jooby-cli/pom.xml b/modules/jooby-cli/pom.xml index 07644162d2..c18dc52955 100644 --- a/modules/jooby-cli/pom.xml +++ b/modules/jooby-cli/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-cli jooby-cli diff --git a/modules/jooby-commons-email/pom.xml b/modules/jooby-commons-email/pom.xml index 61d022f06c..888b3c1466 100644 --- a/modules/jooby-commons-email/pom.xml +++ b/modules/jooby-commons-email/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-commons-email jooby-commons-email diff --git a/modules/jooby-conscrypt/pom.xml b/modules/jooby-conscrypt/pom.xml index 87be5a1755..0dd260e889 100644 --- a/modules/jooby-conscrypt/pom.xml +++ b/modules/jooby-conscrypt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-conscrypt jooby-conscrypt diff --git a/modules/jooby-db-scheduler/pom.xml b/modules/jooby-db-scheduler/pom.xml index 3791cc1eb7..56a5b6a835 100644 --- a/modules/jooby-db-scheduler/pom.xml +++ b/modules/jooby-db-scheduler/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-db-scheduler jooby-db-scheduler diff --git a/modules/jooby-distribution/pom.xml b/modules/jooby-distribution/pom.xml index 96c8384e3c..d5a675b4f8 100644 --- a/modules/jooby-distribution/pom.xml +++ b/modules/jooby-distribution/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-distribution jooby-distribution diff --git a/modules/jooby-ebean/pom.xml b/modules/jooby-ebean/pom.xml index e69b2ab1ff..46d97bd5ec 100644 --- a/modules/jooby-ebean/pom.xml +++ b/modules/jooby-ebean/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-ebean jooby-ebean diff --git a/modules/jooby-flyway/pom.xml b/modules/jooby-flyway/pom.xml index ccab2518ef..66175d8acd 100644 --- a/modules/jooby-flyway/pom.xml +++ b/modules/jooby-flyway/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-flyway jooby-flyway diff --git a/modules/jooby-freemarker/pom.xml b/modules/jooby-freemarker/pom.xml index 01150cb1b0..feeadf2983 100644 --- a/modules/jooby-freemarker/pom.xml +++ b/modules/jooby-freemarker/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-freemarker jooby-freemarker diff --git a/modules/jooby-gradle-setup/pom.xml b/modules/jooby-gradle-setup/pom.xml index 6c5c39c65f..14c767666a 100644 --- a/modules/jooby-gradle-setup/pom.xml +++ b/modules/jooby-gradle-setup/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-gradle-setup jooby-gradle-setup diff --git a/modules/jooby-graphiql/pom.xml b/modules/jooby-graphiql/pom.xml index e5f22a6305..452755971d 100644 --- a/modules/jooby-graphiql/pom.xml +++ b/modules/jooby-graphiql/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-graphiql jooby-graphiql diff --git a/modules/jooby-graphql/pom.xml b/modules/jooby-graphql/pom.xml index 0f8c183b0c..6d170eca5e 100644 --- a/modules/jooby-graphql/pom.xml +++ b/modules/jooby-graphql/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-graphql jooby-graphql diff --git a/modules/jooby-gson/pom.xml b/modules/jooby-gson/pom.xml index 4a93c3f543..d8da189436 100644 --- a/modules/jooby-gson/pom.xml +++ b/modules/jooby-gson/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-gson jooby-gson diff --git a/modules/jooby-guice/pom.xml b/modules/jooby-guice/pom.xml index 964ef388f7..3ffd0d94e9 100644 --- a/modules/jooby-guice/pom.xml +++ b/modules/jooby-guice/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-guice jooby-guice diff --git a/modules/jooby-handlebars/pom.xml b/modules/jooby-handlebars/pom.xml index 28bf598b19..45d69ddd79 100644 --- a/modules/jooby-handlebars/pom.xml +++ b/modules/jooby-handlebars/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-handlebars jooby-handlebars diff --git a/modules/jooby-hibernate-validator/pom.xml b/modules/jooby-hibernate-validator/pom.xml index cb214118be..4fa2fe1a7f 100644 --- a/modules/jooby-hibernate-validator/pom.xml +++ b/modules/jooby-hibernate-validator/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-hibernate-validator jooby-hibernate-validator diff --git a/modules/jooby-hibernate/pom.xml b/modules/jooby-hibernate/pom.xml index 748b58183b..558b8049d6 100644 --- a/modules/jooby-hibernate/pom.xml +++ b/modules/jooby-hibernate/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-hibernate jooby-hibernate diff --git a/modules/jooby-hikari/pom.xml b/modules/jooby-hikari/pom.xml index 9bb744232f..2a7773a47a 100644 --- a/modules/jooby-hikari/pom.xml +++ b/modules/jooby-hikari/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-hikari jooby-hikari diff --git a/modules/jooby-jackson/pom.xml b/modules/jooby-jackson/pom.xml index 48843ce6f5..1e16214a8a 100644 --- a/modules/jooby-jackson/pom.xml +++ b/modules/jooby-jackson/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-jackson jooby-jackson diff --git a/modules/jooby-jasypt/pom.xml b/modules/jooby-jasypt/pom.xml index 5f38e95d27..ab91a2f374 100644 --- a/modules/jooby-jasypt/pom.xml +++ b/modules/jooby-jasypt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-jasypt jooby-jasypt diff --git a/modules/jooby-jdbi/pom.xml b/modules/jooby-jdbi/pom.xml index 5387bc97ff..5b69ca250a 100644 --- a/modules/jooby-jdbi/pom.xml +++ b/modules/jooby-jdbi/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-jdbi jooby-jdbi diff --git a/modules/jooby-jetty/pom.xml b/modules/jooby-jetty/pom.xml index e8dbfdb7c6..e0c9a0f2f5 100644 --- a/modules/jooby-jetty/pom.xml +++ b/modules/jooby-jetty/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-jetty jooby-jetty diff --git a/modules/jooby-jstachio/pom.xml b/modules/jooby-jstachio/pom.xml index 448d720215..cb62bf6a49 100644 --- a/modules/jooby-jstachio/pom.xml +++ b/modules/jooby-jstachio/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-jstachio jooby-jstachio diff --git a/modules/jooby-jte/pom.xml b/modules/jooby-jte/pom.xml index 3a026ff4a3..00022f4346 100644 --- a/modules/jooby-jte/pom.xml +++ b/modules/jooby-jte/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-jte jooby-jte diff --git a/modules/jooby-jwt/pom.xml b/modules/jooby-jwt/pom.xml index bc0416e27c..9f4da7f468 100644 --- a/modules/jooby-jwt/pom.xml +++ b/modules/jooby-jwt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-jwt jooby-jwt diff --git a/modules/jooby-kafka/pom.xml b/modules/jooby-kafka/pom.xml index 5805c7833b..7b1b945981 100644 --- a/modules/jooby-kafka/pom.xml +++ b/modules/jooby-kafka/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-kafka jooby-kafka diff --git a/modules/jooby-kotlin/pom.xml b/modules/jooby-kotlin/pom.xml index bac927e122..c5c49d3953 100644 --- a/modules/jooby-kotlin/pom.xml +++ b/modules/jooby-kotlin/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-kotlin jooby-kotlin diff --git a/modules/jooby-log4j/pom.xml b/modules/jooby-log4j/pom.xml index 3013df89c5..2de654bbeb 100644 --- a/modules/jooby-log4j/pom.xml +++ b/modules/jooby-log4j/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-log4j jooby-log4j diff --git a/modules/jooby-logback/pom.xml b/modules/jooby-logback/pom.xml index c958c86cdf..6658e60ee6 100644 --- a/modules/jooby-logback/pom.xml +++ b/modules/jooby-logback/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-logback jooby-logback diff --git a/modules/jooby-maven-plugin/pom.xml b/modules/jooby-maven-plugin/pom.xml index 09f45f6876..10d3096fd6 100644 --- a/modules/jooby-maven-plugin/pom.xml +++ b/modules/jooby-maven-plugin/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-maven-plugin jooby-maven-plugin diff --git a/modules/jooby-metrics/pom.xml b/modules/jooby-metrics/pom.xml index 7900ab8dca..47d32326fa 100644 --- a/modules/jooby-metrics/pom.xml +++ b/modules/jooby-metrics/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-metrics jooby-metrics diff --git a/modules/jooby-mutiny/pom.xml b/modules/jooby-mutiny/pom.xml index 24a4fbbd2f..b6ffa7a787 100644 --- a/modules/jooby-mutiny/pom.xml +++ b/modules/jooby-mutiny/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-mutiny jooby-mutiny diff --git a/modules/jooby-netty/pom.xml b/modules/jooby-netty/pom.xml index 859f6c9597..afa091f63c 100644 --- a/modules/jooby-netty/pom.xml +++ b/modules/jooby-netty/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-netty jooby-netty diff --git a/modules/jooby-openapi/pom.xml b/modules/jooby-openapi/pom.xml index 6c58446a9a..5043b1fd1f 100644 --- a/modules/jooby-openapi/pom.xml +++ b/modules/jooby-openapi/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-openapi jooby-openapi diff --git a/modules/jooby-pac4j/pom.xml b/modules/jooby-pac4j/pom.xml index 0e656b1adf..fef191c4b9 100644 --- a/modules/jooby-pac4j/pom.xml +++ b/modules/jooby-pac4j/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-pac4j jooby-pac4j diff --git a/modules/jooby-pebble/pom.xml b/modules/jooby-pebble/pom.xml index 99ccc9bbc3..bb51a79eeb 100644 --- a/modules/jooby-pebble/pom.xml +++ b/modules/jooby-pebble/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-pebble jooby-pebble diff --git a/modules/jooby-quartz/pom.xml b/modules/jooby-quartz/pom.xml index ed834845fe..945f2e576e 100644 --- a/modules/jooby-quartz/pom.xml +++ b/modules/jooby-quartz/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-quartz jooby-quartz diff --git a/modules/jooby-reactor/pom.xml b/modules/jooby-reactor/pom.xml index 87a2b5de8a..4172d084eb 100644 --- a/modules/jooby-reactor/pom.xml +++ b/modules/jooby-reactor/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-reactor jooby-reactor diff --git a/modules/jooby-redis/pom.xml b/modules/jooby-redis/pom.xml index 12d86e657d..647d178452 100644 --- a/modules/jooby-redis/pom.xml +++ b/modules/jooby-redis/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-redis jooby-redis diff --git a/modules/jooby-redoc/pom.xml b/modules/jooby-redoc/pom.xml index cd8e80a185..9a699c00dd 100644 --- a/modules/jooby-redoc/pom.xml +++ b/modules/jooby-redoc/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-redoc jooby-redoc diff --git a/modules/jooby-rocker/pom.xml b/modules/jooby-rocker/pom.xml index cc16dc51cd..86a79ff8d1 100644 --- a/modules/jooby-rocker/pom.xml +++ b/modules/jooby-rocker/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-rocker jooby-rocker diff --git a/modules/jooby-run/pom.xml b/modules/jooby-run/pom.xml index b8f12376a6..d863d97e7c 100644 --- a/modules/jooby-run/pom.xml +++ b/modules/jooby-run/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-run jooby-run diff --git a/modules/jooby-rxjava3/pom.xml b/modules/jooby-rxjava3/pom.xml index 4a4576678e..197cda7f03 100644 --- a/modules/jooby-rxjava3/pom.xml +++ b/modules/jooby-rxjava3/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-rxjava3 jooby-rxjava3 diff --git a/modules/jooby-stork/pom.xml b/modules/jooby-stork/pom.xml index ff262d768d..f66a05f5ec 100644 --- a/modules/jooby-stork/pom.xml +++ b/modules/jooby-stork/pom.xml @@ -4,7 +4,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-stork diff --git a/modules/jooby-swagger-ui/pom.xml b/modules/jooby-swagger-ui/pom.xml index 392d31bb0e..2bb20b71a5 100644 --- a/modules/jooby-swagger-ui/pom.xml +++ b/modules/jooby-swagger-ui/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-swagger-ui jooby-swagger-ui diff --git a/modules/jooby-test/pom.xml b/modules/jooby-test/pom.xml index 0cebc22e6f..2defc463b4 100644 --- a/modules/jooby-test/pom.xml +++ b/modules/jooby-test/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-test jooby-test diff --git a/modules/jooby-thymeleaf/pom.xml b/modules/jooby-thymeleaf/pom.xml index 0ddb151e9b..fcbf5d90e8 100644 --- a/modules/jooby-thymeleaf/pom.xml +++ b/modules/jooby-thymeleaf/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-thymeleaf jooby-thymeleaf diff --git a/modules/jooby-undertow/pom.xml b/modules/jooby-undertow/pom.xml index a47ebf8136..c6942a49b3 100644 --- a/modules/jooby-undertow/pom.xml +++ b/modules/jooby-undertow/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-undertow jooby-undertow diff --git a/modules/jooby-vertx-mysql-client/pom.xml b/modules/jooby-vertx-mysql-client/pom.xml index e174357e3b..ccb4c60dc7 100644 --- a/modules/jooby-vertx-mysql-client/pom.xml +++ b/modules/jooby-vertx-mysql-client/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-vertx-mysql-client jooby-vertx-mysql-client diff --git a/modules/jooby-vertx-pg-client/pom.xml b/modules/jooby-vertx-pg-client/pom.xml index 532f0dc873..1a4952e996 100644 --- a/modules/jooby-vertx-pg-client/pom.xml +++ b/modules/jooby-vertx-pg-client/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-vertx-pg-client jooby-vertx-pg-client diff --git a/modules/jooby-vertx-sql-client/pom.xml b/modules/jooby-vertx-sql-client/pom.xml index 3f89094b4f..105837e8d3 100644 --- a/modules/jooby-vertx-sql-client/pom.xml +++ b/modules/jooby-vertx-sql-client/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-vertx-sql-client jooby-vertx-sql-client diff --git a/modules/jooby-vertx/pom.xml b/modules/jooby-vertx/pom.xml index 0fd13d567d..19d2729123 100644 --- a/modules/jooby-vertx/pom.xml +++ b/modules/jooby-vertx/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-vertx jooby-vertx diff --git a/modules/jooby-whoops/pom.xml b/modules/jooby-whoops/pom.xml index b1094459e1..d9f42459e8 100644 --- a/modules/jooby-whoops/pom.xml +++ b/modules/jooby-whoops/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-whoops jooby-whoops diff --git a/modules/jooby-yasson/pom.xml b/modules/jooby-yasson/pom.xml index 549054ec63..caf8376621 100644 --- a/modules/jooby-yasson/pom.xml +++ b/modules/jooby-yasson/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.9 + 4.0.10-SNAPSHOT jooby-yasson jooby-yasson diff --git a/modules/pom.xml b/modules/pom.xml index c901c4faa5..3679ddbd44 100644 --- a/modules/pom.xml +++ b/modules/pom.xml @@ -4,7 +4,7 @@ io.jooby jooby-project - 4.0.9 + 4.0.10-SNAPSHOT modules diff --git a/pom.xml b/pom.xml index 5f512d2a48..01f5f9022d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 io.jooby jooby-project - 4.0.9 + 4.0.10-SNAPSHOT pom jooby-project @@ -210,7 +210,7 @@ false yyyy-MM-dd HH:mm:ssa - 2025-10-20T20:41:52Z + 2025-10-20T21:13:47Z UTF-8 etc${file.separator}source${file.separator}formatter.sh diff --git a/tests/pom.xml b/tests/pom.xml index c03e02c0ef..7412e8dd7a 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -6,7 +6,7 @@ io.jooby jooby-project - 4.0.9 + 4.0.10-SNAPSHOT tests tests From 8cf0102f754548528b71debcdd3f8f015853f22d Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Thu, 23 Oct 2025 07:29:36 -0300 Subject: [PATCH 02/21] =?UTF-8?q?websocket.idleTimeout=20ignored=20when=20?= =?UTF-8?q?using=20JettyServer=20=E2=80=94=20always=20disconnects=20after?= =?UTF-8?q?=2030s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #3795 --- .../src/main/java/io/jooby/jetty/JettyServer.java | 12 ++++-------- .../jooby/internal/undertow/UndertowWebSocket.java | 4 +--- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/modules/jooby-jetty/src/main/java/io/jooby/jetty/JettyServer.java b/modules/jooby-jetty/src/main/java/io/jooby/jetty/JettyServer.java index 812de532eb..0aacf4e164 100644 --- a/modules/jooby-jetty/src/main/java/io/jooby/jetty/JettyServer.java +++ b/modules/jooby-jetty/src/main/java/io/jooby/jetty/JettyServer.java @@ -26,7 +26,7 @@ import org.eclipse.jetty.util.thread.Invocable; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.ThreadPool; -import org.eclipse.jetty.websocket.server.WebSocketUpgradeHandler; +import org.eclipse.jetty.websocket.server.ServerWebSocketContainer; import com.typesafe.config.Config; import edu.umd.cs.findbugs.annotations.NonNull; @@ -248,13 +248,9 @@ public io.jooby.Server start(@NonNull Jooby... application) { ? conf.getDuration("websocket.idleTimeout", TimeUnit.MILLISECONDS) : TimeUnit.MINUTES.toMillis(5); - WebSocketUpgradeHandler.from( - server, - context, - container -> { - container.setMaxTextMessageSize(maxSize); - container.setIdleTimeout(Duration.ofMillis(timeout)); - }); + var container = ServerWebSocketContainer.ensure(server, context); + container.setMaxTextMessageSize(maxSize); + container.setIdleTimeout(Duration.ofMillis(timeout)); } server.setHandler(context); server.start(); diff --git a/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowWebSocket.java b/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowWebSocket.java index 5400c68a72..bff1ed01db 100644 --- a/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowWebSocket.java +++ b/modules/jooby-undertow/src/main/java/io/jooby/internal/undertow/UndertowWebSocket.java @@ -326,9 +326,7 @@ void fireConnect() { conf.hasPath("websocket.idleTimeout") ? conf.getDuration("websocket.idleTimeout", TimeUnit.MILLISECONDS) : TimeUnit.MINUTES.toMillis(5); - if (timeout > 0) { - channel.setIdleTimeout(timeout); - } + channel.setIdleTimeout(timeout); if (onConnectCallback != null) { dispatch(webSocketTask(() -> onConnectCallback.onConnect(this), true)); } else { From 01dfdb513ac76f778694adade6bad9dbeb7a57a6 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Fri, 24 Oct 2025 11:23:54 -0300 Subject: [PATCH 03/21] flyway: manually add migration The manually added Java-based migrations. These are not Java-based migrations discovered through classpath scanning and instantiated by Flyway. Instead, these are manually added instances of JavaMigration. This is particularly useful when working with a dependencies, where you may want to instantiate the class and wire up its dependencies. ```java { install(new FlywaydbModule() .javaMigrations(new MyMigration(new MyService()) ); } ``` fix #3796 --- .../java/io/jooby/flyway/FlywayModule.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/modules/jooby-flyway/src/main/java/io/jooby/flyway/FlywayModule.java b/modules/jooby-flyway/src/main/java/io/jooby/flyway/FlywayModule.java index 63ca8df3ec..8642f2f0c5 100644 --- a/modules/jooby-flyway/src/main/java/io/jooby/flyway/FlywayModule.java +++ b/modules/jooby-flyway/src/main/java/io/jooby/flyway/FlywayModule.java @@ -5,14 +5,13 @@ */ package io.jooby.flyway; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; +import java.util.*; import javax.sql.DataSource; import org.flywaydb.core.Flyway; import org.flywaydb.core.api.configuration.FluentConfiguration; +import org.flywaydb.core.api.migration.JavaMigration; import edu.umd.cs.findbugs.annotations.NonNull; import io.jooby.Extension; @@ -48,6 +47,7 @@ public class FlywayModule implements Extension { private final String name; + private List javaMigrations = List.of(); /** * Creates a new Flyway module. @@ -66,16 +66,30 @@ public FlywayModule() { this("db"); } + /** + * The manually added Java-based migrations. These are not Java-based migrations discovered + * through classpath scanning and instantiated by Flyway. Instead, these are manually added + * instances of JavaMigration. This is particularly useful when working with a dependencies, where + * you may want to instantiate the class and wire up its dependencies. + * + * @param migrations The manually added Java-based migrations. An empty array if none. + * @return This module. + */ + public FlywayModule javaMigrations(@NonNull JavaMigration... migrations) { + this.javaMigrations = List.of(migrations); + return this; + } + @Override public void install(@NonNull Jooby application) throws Exception { var environment = application.getEnvironment(); var registry = application.getServices(); var dataSource = registry.getOrNull(ServiceKey.key(DataSource.class, name)); if (dataSource == null) { - // TODO: replace with usage exception dataSource = registry.require(DataSource.class); } var configuration = new FluentConfiguration(environment.getClassLoader()); + configuration.javaMigrations(javaMigrations.toArray(new JavaMigration[0])); var defaults = environment.getProperties("flyway"); var overrides = environment.getProperties(name + ".flyway", "flyway"); From a99f4d405bb4121225b216f75b94d1d7a39c4e45 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 10:28:50 -0300 Subject: [PATCH 04/21] logback.xml not being detected in v4 - netty was eagerly initializating logback. Netty server now just set the system property, so logback doesn't initialize so early - fix #3797 --- .../jooby-netty/src/main/java/io/jooby/netty/NettyServer.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/jooby-netty/src/main/java/io/jooby/netty/NettyServer.java b/modules/jooby-netty/src/main/java/io/jooby/netty/NettyServer.java index 81ea90bcba..64587c1496 100644 --- a/modules/jooby-netty/src/main/java/io/jooby/netty/NettyServer.java +++ b/modules/jooby-netty/src/main/java/io/jooby/netty/NettyServer.java @@ -52,8 +52,6 @@ public class NettyServer extends Server.Base { System.setProperty( LEAK_DETECTION, System.getProperty(LEAK_DETECTION, ResourceLeakDetector.Level.DISABLED.name())); - ResourceLeakDetector.setLevel( - ResourceLeakDetector.Level.valueOf(System.getProperty(LEAK_DETECTION))); } private NettyEventLoopGroup eventLoop; From 4def3025e07c04c2176228c2dc4027512bf611ad Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 19:14:33 -0300 Subject: [PATCH 05/21] Jooby v4.0.9 ignores server.port - setting server options manually overrides everything: `new NettyServer(new ServerOptions())` - otherwise, read from env, args, conf files - fix #3798 --- jooby/src/main/java/io/jooby/Jooby.java | 38 ++++--------------- jooby/src/main/java/io/jooby/Server.java | 2 +- .../src/main/java/io/jooby/ServerOptions.java | 11 ++++++ 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/jooby/src/main/java/io/jooby/Jooby.java b/jooby/src/main/java/io/jooby/Jooby.java index 53af94cafa..2ed46c4370 100644 --- a/jooby/src/main/java/io/jooby/Jooby.java +++ b/jooby/src/main/java/io/jooby/Jooby.java @@ -27,7 +27,6 @@ import org.slf4j.LoggerFactory; import com.typesafe.config.Config; -import com.typesafe.config.ConfigFactory; import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; import io.jooby.exception.RegistryException; @@ -1200,12 +1199,7 @@ public static void runApp( @NonNull String[] args, @NonNull ExecutionMode executionMode, @NonNull List> provider) { - var configMap = new HashMap<>(parseArguments(args)); - // TODO: Add new way to override server options mainly from system properties/environment - // variables. Probably by adding a new config file: server.conf - // configMap.putAll(System.getenv()); - var options = ServerOptions.from(ConfigFactory.parseMap(configMap)).orElse(new ServerOptions()); - runApp(args, Server.loadServer(options), options, executionMode, provider); + runApp(args, Server.loadServer(), executionMode, provider); } /** @@ -1233,26 +1227,9 @@ public static void runApp( @NonNull Server server, @NonNull ExecutionMode executionMode, @NonNull List> provider) { - runApp(args, server, null, executionMode, provider); - } - - /** - * Setup default environment, logging (logback or log4j2) and run application. - * - * @param args Application arguments. - * @param server Server. - * @param executionMode Default application execution mode. Can be overridden by application. - * @param provider Application provider. - */ - private static void runApp( - @NonNull String[] args, - @NonNull Server server, - @Nullable ServerOptions options, - @NonNull ExecutionMode executionMode, - @NonNull List> provider) { - /* Dump command line as system properties. */ parseArguments(args).forEach(System::setProperty); + ServerOptions appServerOptions = null; var apps = new ArrayList(); var targetServer = server.getLoggerOff().isEmpty() ? server : MutedServer.mute(server); try { @@ -1260,15 +1237,16 @@ private static void runApp( var app = createApp(server, executionMode, factory); /* When running a single app instance, there is no issue with server options. - When multiple apps pick first on the provided order. + When multiple apps pick first in the provided order. */ - if (options == null) { - options = ServerOptions.from(app.getConfig()).orElse(null); + if (appServerOptions == null) { + appServerOptions = ServerOptions.from(app.getConfig()).orElse(null); } apps.add(app); } - if (options != null) { - server.setOptions(options); + // Override when there is something and server options were not set + if (server.getOptions().defaults && appServerOptions != null) { + server.setOptions(appServerOptions); } targetServer.start(apps.toArray(new Jooby[0])); } catch (Throwable startupError) { diff --git a/jooby/src/main/java/io/jooby/Server.java b/jooby/src/main/java/io/jooby/Server.java index f31389293a..f61d41d8d0 100644 --- a/jooby/src/main/java/io/jooby/Server.java +++ b/jooby/src/main/java/io/jooby/Server.java @@ -125,7 +125,7 @@ protected void addShutdownHook() { } } - private ServerOptions options = new ServerOptions(); + private ServerOptions options = new ServerOptions(true); @Override public final ServerOptions getOptions() { diff --git a/jooby/src/main/java/io/jooby/ServerOptions.java b/jooby/src/main/java/io/jooby/ServerOptions.java index d8dda6a684..8aa58183e4 100644 --- a/jooby/src/main/java/io/jooby/ServerOptions.java +++ b/jooby/src/main/java/io/jooby/ServerOptions.java @@ -139,6 +139,17 @@ public class ServerOptions { private Boolean expectContinue; + /** Internal usage only. */ + /*pakcage*/ boolean defaults; + + /*package*/ ServerOptions(boolean defaults) { + this.defaults = defaults; + } + + public ServerOptions() { + this(false); + } + /** * Creates server options from config object. The configuration options must provided entries * like: server.port, server.ioThreads, etc... From b61170155237bc3c80fa001605582c3a1029ee00 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 19:27:38 -0300 Subject: [PATCH 06/21] build: upgrade bucket4j dependency --- jooby/pom.xml | 4 ++-- pom.xml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jooby/pom.xml b/jooby/pom.xml index 791bfd9b2a..fafc06ccfd 100644 --- a/jooby/pom.xml +++ b/jooby/pom.xml @@ -38,8 +38,8 @@ - com.github.vladimir-bukhtoyarov - bucket4j-core + com.bucket4j + bucket4j_jdk17-core true diff --git a/pom.xml b/pom.xml index 01f5f9022d..d16e95eb2d 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ 6.2.2 2.5.0 9.2.1 - 8.0.1 + 8.15.0 1.12.792 4.15.0 1.9.3 @@ -937,8 +937,8 @@ - com.github.vladimir-bukhtoyarov - bucket4j-core + com.bucket4j + bucket4j_jdk17-core ${bucket4j-core.version} From 8eb836f37b790549b4d6a1f320b90797efde822b Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 20:21:52 -0300 Subject: [PATCH 07/21] notes: update github notes --- README.md | 10 +++++----- SECURITY.md | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3a129ca3c9..75f7963694 100644 --- a/README.md +++ b/README.md @@ -54,17 +54,17 @@ support my work ===== - [Sponsor](https://github.com/sponsors/jknack) - [Paypal](https://www.paypal.com/paypalme2/edgarespina) -- [Patreon](https://www.patreon.com/edgarespina) - [support@jooby.io](mailto:support@jooby.io?Subject=Jooby%20Support) sponsors ====== -| Logo | Sponsor | -|------|---------| +| Logo | Sponsor | +|----------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------| +| Mercedes Benz | [@mercedes-benz](https://github.com/mercedes-benz) | | Premium Minds | [@premium-minds](https://github.com/premium-minds) | -| David | [@tipsy](https://github.com/tipsy)| -| Mercedes Benz | [@mercedes-benz](https://github.com/mercedes-benz)| +| Adam Gent | [@agentgt](https://github.com/agentgt) | +| David | [@tipsy](https://github.com/tipsy) | Previous version ===== diff --git a/SECURITY.md b/SECURITY.md index c64e974bb6..1db5b5fcda 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -5,8 +5,9 @@ | Version | Supported | |---------|--------------------| +| 4.x | :white_check_mark: | | 3.x | :white_check_mark: | -| 2.x | :white_check_mark: | +| 2.x | :x: | | 1.x | :x: | ## Reporting a Vulnerability From 036834a65e36610f5d88254d81004627874c6aa0 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 20:40:28 -0300 Subject: [PATCH 08/21] build: fix reproducible builds error - remove `argLine` from jooby-cli --- modules/jooby-cli/pom.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/jooby-cli/pom.xml b/modules/jooby-cli/pom.xml index c18dc52955..4be309671e 100644 --- a/modules/jooby-cli/pom.xml +++ b/modules/jooby-cli/pom.xml @@ -15,6 +15,8 @@ io.jooby.cli 3.30.6 4.7.7 + + @@ -124,9 +126,9 @@ -Aproject=${project.groupId}/${project.artifactId} - 17 - 17 - 17 + 21 + 21 + 21 From 66aa3854611155089256b2dbf25308c86c86c77d Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 20:47:53 -0300 Subject: [PATCH 09/21] jetty: websocket: remove deprecated methods --- .../main/java/io/jooby/internal/jetty/JettyWebSocket.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/jooby-jetty/src/main/java/io/jooby/internal/jetty/JettyWebSocket.java b/modules/jooby-jetty/src/main/java/io/jooby/internal/jetty/JettyWebSocket.java index d38cee1e0e..a00869471b 100644 --- a/modules/jooby-jetty/src/main/java/io/jooby/internal/jetty/JettyWebSocket.java +++ b/modules/jooby-jetty/src/main/java/io/jooby/internal/jetty/JettyWebSocket.java @@ -21,7 +21,7 @@ import java.util.function.BiConsumer; import org.eclipse.jetty.util.BufferUtil; -import org.eclipse.jetty.util.StaticException; +import org.eclipse.jetty.util.ConstantThrowable; import org.eclipse.jetty.websocket.api.Callback; import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.api.exceptions.CloseException; @@ -126,7 +126,7 @@ public void onWebSocketText(String message) { } @Override - public void onWebSocketClose(int statusCode, String reason) { + public void onWebSocketClose(int statusCode, String reason, Callback callback) { handleClose( WebSocketCloseStatus.valueOf(statusCode) .orElseGet(() -> new WebSocketCloseStatus(statusCode, reason))); @@ -177,7 +177,7 @@ public void onWebSocketError(Throwable x) { private boolean connectionLost(Throwable x) { return Server.connectionLost(x) - || (x instanceof StaticException && x.getMessage().equals("Closed")); + || (x instanceof ConstantThrowable && x.getMessage().equals("Closed")); } private boolean isTimeout(Throwable x) { From 094acf5429d45efd86915cde3e964ecc5d7f3f06 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 21:12:46 -0300 Subject: [PATCH 10/21] build: joobyRun: remove depreaction warnings --- .../src/main/java/io/jooby/maven/BaseMojo.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/jooby-maven-plugin/src/main/java/io/jooby/maven/BaseMojo.java b/modules/jooby-maven-plugin/src/main/java/io/jooby/maven/BaseMojo.java index 37aa07449b..6cf1c853d3 100644 --- a/modules/jooby-maven-plugin/src/main/java/io/jooby/maven/BaseMojo.java +++ b/modules/jooby-maven-plugin/src/main/java/io/jooby/maven/BaseMojo.java @@ -21,13 +21,14 @@ import java.util.Set; import java.util.stream.Collectors; +import javax.inject.Inject; + import org.apache.maven.Maven; import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Resource; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.DefaultDependencyResolutionRequest; import org.apache.maven.project.DependencyResolutionException; @@ -63,9 +64,9 @@ public abstract class BaseMojo extends AbstractMojo { @Parameter(defaultValue = "${project}", required = true, readonly = true) protected MavenProject project; - @Component private Maven maven; + @Inject private Maven maven; - @Component private ProjectDependenciesResolver dependenciesResolver; + @Inject private ProjectDependenciesResolver dependenciesResolver; @Override public void execute() throws MojoExecutionException, MojoFailureException { From 3e7841893ddba97f6d47a86239e8571dbdce398f Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sat, 25 Oct 2025 21:13:07 -0300 Subject: [PATCH 11/21] build: get back mockito setup on jooby-cli --- modules/jooby-cli/pom.xml | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/modules/jooby-cli/pom.xml b/modules/jooby-cli/pom.xml index 4be309671e..d1c9642f7b 100644 --- a/modules/jooby-cli/pom.xml +++ b/modules/jooby-cli/pom.xml @@ -123,12 +123,26 @@ ${picocli.version} - - -Aproject=${project.groupId}/${project.artifactId} - - 21 - 21 - 21 + 17 + 17 + 17 + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + false + + + **/*Test.java + **/*Tests.java + **/*Feature.java + **/*Issue*.java + + false + -javaagent:${maven.m2.repo}${file.separator}${mockito.agent} From b7a9c2b25d3fc73dc3cf9cc77389e2742595cd64 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sun, 26 Oct 2025 12:46:31 -0300 Subject: [PATCH 12/21] build: once for all fix for reproducible builds - more stable solution around `argLine` without duplicating `sure-fire` configruration --- modules/jooby-cli/pom.xml | 51 ++++++++++++++++++++++----------------- pom.xml | 5 ---- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/modules/jooby-cli/pom.xml b/modules/jooby-cli/pom.xml index d1c9642f7b..9314076e00 100644 --- a/modules/jooby-cli/pom.xml +++ b/modules/jooby-cli/pom.xml @@ -15,8 +15,7 @@ io.jooby.cli 3.30.6 4.7.7 - - + ${project.build.outputDirectory}${file.separator}dependencies.properties @@ -27,13 +26,11 @@ provided - com.github.jknack handlebars - info.picocli picocli @@ -105,7 +102,34 @@ generate-resources - ${project.build.outputDirectory}${file.separator}dependencies.properties + ${cli.dependencies} + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + ${maven-antrun-plugin.version} + + + generate-resources + + run + + + + + + + + + + + + + @@ -128,23 +152,6 @@ 17 - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - false - - - **/*Test.java - **/*Tests.java - **/*Feature.java - **/*Issue*.java - - false - -javaagent:${maven.m2.repo}${file.separator}${mockito.agent} - - com.fizzed stork-maven-plugin diff --git a/pom.xml b/pom.xml index d16e95eb2d..8bbb33ba2f 100644 --- a/pom.xml +++ b/pom.xml @@ -214,11 +214,6 @@ UTF-8 etc${file.separator}source${file.separator}formatter.sh - - jooby-project_jooby - ${project.groupId}:${project.artifactId} - jooby-project - https://sonarcloud.io From f9cf984e634ba2f00953b82ead9ed82aca1e514c Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sun, 26 Oct 2025 20:41:58 -0300 Subject: [PATCH 13/21] build: remove annotation processor warning - add them manually to javac --- modules/jooby-avaje-jsonb/pom.xml | 25 +++++++++++++----- modules/jooby-jackson/pom.xml | 26 +++++++++++++------ modules/jooby-jstachio/pom.xml | 25 +++++++++++++----- modules/jooby-netty/pom.xml | 26 +++++++++++++------ .../src/test/kotlin/kt/i3705/C3705.kt | 2 +- 5 files changed, 73 insertions(+), 31 deletions(-) diff --git a/modules/jooby-avaje-jsonb/pom.xml b/modules/jooby-avaje-jsonb/pom.xml index 44454cb9ac..4e90d43dee 100644 --- a/modules/jooby-avaje-jsonb/pom.xml +++ b/modules/jooby-avaje-jsonb/pom.xml @@ -68,12 +68,23 @@ 1.37 test - - - org.openjdk.jmh - jmh-generator-annprocess - 1.37 - test - + + + + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + org.openjdk.jmh + jmh-generator-annprocess + 1.37 + + + + + + diff --git a/modules/jooby-jackson/pom.xml b/modules/jooby-jackson/pom.xml index 1e16214a8a..622ca4dfb2 100644 --- a/modules/jooby-jackson/pom.xml +++ b/modules/jooby-jackson/pom.xml @@ -71,13 +71,23 @@ 1.37 test - - - org.openjdk.jmh - jmh-generator-annprocess - 1.37 - test - - + + + + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + io.jstach + jstachio-apt + ${jstachio.version} + + + + + + diff --git a/modules/jooby-jstachio/pom.xml b/modules/jooby-jstachio/pom.xml index cb62bf6a49..68e830f1f3 100644 --- a/modules/jooby-jstachio/pom.xml +++ b/modules/jooby-jstachio/pom.xml @@ -24,13 +24,6 @@ jstachio - - io.jstach - jstachio-apt - provided - true - - org.junit.jupiter @@ -46,4 +39,22 @@ + + + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + io.jstach + jstachio-apt + ${jstachio.version} + + + + + + + diff --git a/modules/jooby-netty/pom.xml b/modules/jooby-netty/pom.xml index afa091f63c..196e8384e6 100644 --- a/modules/jooby-netty/pom.xml +++ b/modules/jooby-netty/pom.xml @@ -75,6 +75,7 @@ mockito-core test + org.slf4j slf4j-simple @@ -88,16 +89,25 @@ 1.37 test - - - org.openjdk.jmh - jmh-generator-annprocess - 1.37 - test - - + + + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + org.openjdk.jmh + jmh-generator-annprocess + 1.37 + + + + + + diff --git a/modules/jooby-openapi/src/test/kotlin/kt/i3705/C3705.kt b/modules/jooby-openapi/src/test/kotlin/kt/i3705/C3705.kt index 76f8a98ac8..50ca500357 100644 --- a/modules/jooby-openapi/src/test/kotlin/kt/i3705/C3705.kt +++ b/modules/jooby-openapi/src/test/kotlin/kt/i3705/C3705.kt @@ -22,7 +22,7 @@ class C3705 { class BeanScope { fun get(type: Class): T { - return type.newInstance() + return type.getDeclaredConstructor().newInstance() } } From aa5624f66e8ad09e8fbe435d89861192acc77d3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:18:36 +0000 Subject: [PATCH 14/21] build(deps): bump the dependencies group with 30 updates Bumps the dependencies group with 30 updates: | Package | From | To | | --- | --- | --- | | [io.avaje:avaje-inject](https://github.com/avaje/avaje-inject) | `11.6` | `12.0` | | io.avaje:avaje-inject-generator | `11.6` | `12.0` | | [io.avaje:avaje-jsonb](https://github.com/avaje/avaje-jsonb) | `3.7` | `3.8` | | io.avaje:avaje-jsonb-generator | `3.7` | `3.8` | | [org.quartz-scheduler:quartz](https://github.com/quartz-scheduler/quartz) | `2.5.0` | `2.5.1` | | [io.ebean:ebean](https://github.com/ebean-orm/ebean) | `17.1.0` | `17.1.1` | | [io.ebean:ebean-querybean](https://github.com/ebean-orm/ebean) | `17.1.0` | `17.1.1` | | [io.ebean:querybean-generator](https://github.com/ebean-orm/ebean) | `17.1.0` | `17.1.1` | | [io.ebean:ebean-test](https://github.com/ebean-orm/ebean) | `17.1.0` | `17.1.1` | | org.eclipse.jetty:jetty-server | `12.1.2` | `12.1.3` | | org.eclipse.jetty.websocket:jetty-websocket-core-server | `12.1.2` | `12.1.3` | | org.eclipse.jetty.websocket:jetty-websocket-jetty-api | `12.1.2` | `12.1.3` | | org.eclipse.jetty.websocket:jetty-websocket-jetty-server | `12.1.2` | `12.1.3` | | org.eclipse.jetty.http2:jetty-http2-server | `12.1.2` | `12.1.3` | | org.eclipse.jetty:jetty-alpn-java-server | `12.1.2` | `12.1.3` | | org.eclipse.jetty.http2:jetty-http2-client | `12.1.2` | `12.1.3` | | [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.2.21` | | [org.jetbrains.kotlin:kotlin-reflect](https://github.com/JetBrains/kotlin) | `2.2.20` | `2.2.21` | | org.jetbrains.kotlin:kotlin-maven-plugin | `2.2.20` | `2.2.21` | | [io.lettuce:lettuce-core](https://github.com/redis/lettuce) | `6.8.1.RELEASE` | `7.0.0.RELEASE` | | [org.apache.maven.plugin-tools:maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) | `3.15.1` | `3.15.2` | | [org.apache.maven.plugins:maven-antrun-plugin](https://github.com/apache/maven-antrun-plugin) | `3.1.0` | `3.2.0` | | [io.vertx:vertx-core](https://github.com/eclipse/vert.x) | `5.0.4` | `5.0.5` | | [io.vertx:vertx-sql-client](https://github.com/eclipse-vertx/vertx-sql-client) | `5.0.4` | `5.0.5` | | [io.vertx:vertx-pg-client](https://github.com/eclipse-vertx/vertx-sql-client) | `5.0.4` | `5.0.5` | | [com.puppycrawl.tools:checkstyle](https://github.com/checkstyle/checkstyle) | `12.1.0` | `12.1.1` | | [io.vertx:vertx-mysql-client](https://github.com/eclipse-vertx/vertx-sql-client) | `5.0.4` | `5.0.5` | | [com.github.kagkarlsson:db-scheduler](https://github.com/kagkarlsson/db-scheduler) | `16.2.0` | `16.4.1` | | software.amazon.awssdk:bom | `2.35.10` | `2.36.2` | | [org.apache.maven.plugins:maven-plugin-plugin](https://github.com/apache/maven-plugin-tools) | `3.15.1` | `3.15.2` | Updates `io.avaje:avaje-inject` from 11.6 to 12.0 - [Release notes](https://github.com/avaje/avaje-inject/releases) - [Commits](https://github.com/avaje/avaje-inject/compare/11.6...12.0) Updates `io.avaje:avaje-inject-generator` from 11.6 to 12.0 Updates `io.avaje:avaje-inject-generator` from 11.6 to 12.0 Updates `io.avaje:avaje-jsonb` from 3.7 to 3.8 - [Release notes](https://github.com/avaje/avaje-jsonb/releases) - [Commits](https://github.com/avaje/avaje-jsonb/compare/3.7...3.8) Updates `io.avaje:avaje-jsonb-generator` from 3.7 to 3.8 Updates `io.avaje:avaje-jsonb-generator` from 3.7 to 3.8 Updates `org.quartz-scheduler:quartz` from 2.5.0 to 2.5.1 - [Release notes](https://github.com/quartz-scheduler/quartz/releases) - [Commits](https://github.com/quartz-scheduler/quartz/compare/v2.5.0...v2.5.1) Updates `io.ebean:ebean` from 17.1.0 to 17.1.1 - [Release notes](https://github.com/ebean-orm/ebean/releases) - [Commits](https://github.com/ebean-orm/ebean/commits) Updates `io.ebean:ebean-querybean` from 17.1.0 to 17.1.1 - [Release notes](https://github.com/ebean-orm/ebean/releases) - [Commits](https://github.com/ebean-orm/ebean/commits) Updates `io.ebean:querybean-generator` from 17.1.0 to 17.1.1 - [Release notes](https://github.com/ebean-orm/ebean/releases) - [Commits](https://github.com/ebean-orm/ebean/commits) Updates `io.ebean:ebean-test` from 17.1.0 to 17.1.1 - [Release notes](https://github.com/ebean-orm/ebean/releases) - [Commits](https://github.com/ebean-orm/ebean/commits) Updates `io.ebean:ebean-querybean` from 17.1.0 to 17.1.1 - [Release notes](https://github.com/ebean-orm/ebean/releases) - [Commits](https://github.com/ebean-orm/ebean/commits) Updates `io.ebean:querybean-generator` from 17.1.0 to 17.1.1 - [Release notes](https://github.com/ebean-orm/ebean/releases) - [Commits](https://github.com/ebean-orm/ebean/commits) Updates `io.ebean:ebean-test` from 17.1.0 to 17.1.1 - [Release notes](https://github.com/ebean-orm/ebean/releases) - [Commits](https://github.com/ebean-orm/ebean/commits) Updates `org.eclipse.jetty:jetty-server` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.websocket:jetty-websocket-core-server` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.websocket:jetty-websocket-jetty-api` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.websocket:jetty-websocket-jetty-server` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.http2:jetty-http2-server` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty:jetty-alpn-java-server` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.http2:jetty-http2-client` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.websocket:jetty-websocket-core-server` from 12.1.2 to 12.1.3 Updates `org.jetbrains.kotlin:kotlin-stdlib` from 2.2.20 to 2.2.21 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.20...v2.2.21) Updates `org.jetbrains.kotlin:kotlin-reflect` from 2.2.20 to 2.2.21 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.20...v2.2.21) Updates `org.jetbrains.kotlin:kotlin-maven-plugin` from 2.2.20 to 2.2.21 Updates `org.jetbrains.kotlin:kotlin-reflect` from 2.2.20 to 2.2.21 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.20...v2.2.21) Updates `io.lettuce:lettuce-core` from 6.8.1.RELEASE to 7.0.0.RELEASE - [Release notes](https://github.com/redis/lettuce/releases) - [Changelog](https://github.com/redis/lettuce/blob/7.0.0.RELEASE/RELEASE-NOTES.md) - [Commits](https://github.com/redis/lettuce/compare/6.8.1.RELEASE...7.0.0.RELEASE) Updates `org.apache.maven.plugin-tools:maven-plugin-annotations` from 3.15.1 to 3.15.2 - [Release notes](https://github.com/apache/maven-plugin-tools/releases) - [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.15.1...maven-plugin-tools-3.15.2) Updates `org.jetbrains.kotlin:kotlin-maven-plugin` from 2.2.20 to 2.2.21 Updates `org.apache.maven.plugins:maven-antrun-plugin` from 3.1.0 to 3.2.0 - [Release notes](https://github.com/apache/maven-antrun-plugin/releases) - [Commits](https://github.com/apache/maven-antrun-plugin/compare/maven-antrun-plugin-3.1.0...maven-antrun-plugin-3.2.0) Updates `org.eclipse.jetty.websocket:jetty-websocket-jetty-api` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.websocket:jetty-websocket-jetty-server` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty.http2:jetty-http2-server` from 12.1.2 to 12.1.3 Updates `org.eclipse.jetty:jetty-alpn-java-server` from 12.1.2 to 12.1.3 Updates `io.vertx:vertx-core` from 5.0.4 to 5.0.5 - [Commits](https://github.com/eclipse/vert.x/compare/5.0.4...5.0.5) Updates `io.vertx:vertx-sql-client` from 5.0.4 to 5.0.5 - [Commits](https://github.com/eclipse-vertx/vertx-sql-client/compare/5.0.4...5.0.5) Updates `io.vertx:vertx-pg-client` from 5.0.4 to 5.0.5 - [Commits](https://github.com/eclipse-vertx/vertx-sql-client/compare/5.0.4...5.0.5) Updates `io.vertx:vertx-pg-client` from 5.0.4 to 5.0.5 - [Commits](https://github.com/eclipse-vertx/vertx-sql-client/compare/5.0.4...5.0.5) Updates `com.puppycrawl.tools:checkstyle` from 12.1.0 to 12.1.1 - [Release notes](https://github.com/checkstyle/checkstyle/releases) - [Commits](https://github.com/checkstyle/checkstyle/compare/checkstyle-12.1.0...checkstyle-12.1.1) Updates `io.vertx:vertx-mysql-client` from 5.0.4 to 5.0.5 - [Commits](https://github.com/eclipse-vertx/vertx-sql-client/compare/5.0.4...5.0.5) Updates `com.github.kagkarlsson:db-scheduler` from 16.2.0 to 16.4.1 - [Release notes](https://github.com/kagkarlsson/db-scheduler/releases) - [Changelog](https://github.com/kagkarlsson/db-scheduler/blob/master/jreleaser.yml) - [Commits](https://github.com/kagkarlsson/db-scheduler/compare/v16.2.0...v16.4.1) Updates `software.amazon.awssdk:bom` from 2.35.10 to 2.36.2 Updates `org.apache.maven.plugins:maven-plugin-plugin` from 3.15.1 to 3.15.2 - [Release notes](https://github.com/apache/maven-plugin-tools/releases) - [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.15.1...maven-plugin-tools-3.15.2) Updates `org.eclipse.jetty.http2:jetty-http2-client` from 12.1.2 to 12.1.3 --- updated-dependencies: - dependency-name: io.avaje:avaje-inject dependency-version: '12.0' dependency-type: direct:development update-type: version-update:semver-major dependency-group: dependencies - dependency-name: io.avaje:avaje-inject-generator dependency-version: '12.0' dependency-type: direct:development update-type: version-update:semver-major dependency-group: dependencies - dependency-name: io.avaje:avaje-inject-generator dependency-version: '12.0' dependency-type: direct:development update-type: version-update:semver-major dependency-group: dependencies - dependency-name: io.avaje:avaje-jsonb dependency-version: '3.8' dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: io.avaje:avaje-jsonb-generator dependency-version: '3.8' dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: io.avaje:avaje-jsonb-generator dependency-version: '3.8' dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: org.quartz-scheduler:quartz dependency-version: 2.5.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.ebean:ebean dependency-version: 17.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.ebean:ebean-querybean dependency-version: 17.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.ebean:querybean-generator dependency-version: 17.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.ebean:ebean-test dependency-version: 17.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.ebean:ebean-querybean dependency-version: 17.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.ebean:querybean-generator dependency-version: 17.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.ebean:ebean-test dependency-version: 17.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty:jetty-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.websocket:jetty-websocket-core-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.websocket:jetty-websocket-jetty-api dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.websocket:jetty-websocket-jetty-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.http2:jetty-http2-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty:jetty-alpn-java-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.http2:jetty-http2-client dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.websocket:jetty-websocket-core-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.jetbrains.kotlin:kotlin-stdlib dependency-version: 2.2.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.jetbrains.kotlin:kotlin-reflect dependency-version: 2.2.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.jetbrains.kotlin:kotlin-maven-plugin dependency-version: 2.2.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.jetbrains.kotlin:kotlin-reflect dependency-version: 2.2.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.lettuce:lettuce-core dependency-version: 7.0.0.RELEASE dependency-type: direct:production update-type: version-update:semver-major dependency-group: dependencies - dependency-name: org.apache.maven.plugin-tools:maven-plugin-annotations dependency-version: 3.15.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.jetbrains.kotlin:kotlin-maven-plugin dependency-version: 2.2.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.apache.maven.plugins:maven-antrun-plugin dependency-version: 3.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: org.eclipse.jetty.websocket:jetty-websocket-jetty-api dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.websocket:jetty-websocket-jetty-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.http2:jetty-http2-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty:jetty-alpn-java-server dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.vertx:vertx-core dependency-version: 5.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.vertx:vertx-sql-client dependency-version: 5.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.vertx:vertx-pg-client dependency-version: 5.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.vertx:vertx-pg-client dependency-version: 5.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: com.puppycrawl.tools:checkstyle dependency-version: 12.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.vertx:vertx-mysql-client dependency-version: 5.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: com.github.kagkarlsson:db-scheduler dependency-version: 16.4.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: software.amazon.awssdk:bom dependency-version: 2.36.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: org.apache.maven.plugins:maven-plugin-plugin dependency-version: 3.15.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.eclipse.jetty.http2:jetty-http2-client dependency-version: 12.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies ... Signed-off-by: dependabot[bot] --- modules/jooby-awssdk-v2/pom.xml | 2 +- modules/jooby-db-scheduler/pom.xml | 2 +- modules/jooby-openapi/pom.xml | 4 ++-- modules/jooby-vertx-mysql-client/pom.xml | 2 +- modules/jooby-vertx-pg-client/pom.xml | 2 +- modules/jooby-vertx-sql-client/pom.xml | 4 ++-- modules/jooby-vertx/pom.xml | 2 +- pom.xml | 22 +++++++++++----------- tests/pom.xml | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/modules/jooby-awssdk-v2/pom.xml b/modules/jooby-awssdk-v2/pom.xml index 56ea20b263..07fb184ff3 100644 --- a/modules/jooby-awssdk-v2/pom.xml +++ b/modules/jooby-awssdk-v2/pom.xml @@ -12,7 +12,7 @@ jooby-awssdk-v2 - 2.35.10 + 2.36.2 diff --git a/modules/jooby-db-scheduler/pom.xml b/modules/jooby-db-scheduler/pom.xml index 56a5b6a835..faed941569 100644 --- a/modules/jooby-db-scheduler/pom.xml +++ b/modules/jooby-db-scheduler/pom.xml @@ -22,7 +22,7 @@ com.github.kagkarlsson db-scheduler - 16.2.0 + 16.4.1 diff --git a/modules/jooby-openapi/pom.xml b/modules/jooby-openapi/pom.xml index 5043b1fd1f..e54be49a0e 100644 --- a/modules/jooby-openapi/pom.xml +++ b/modules/jooby-openapi/pom.xml @@ -61,7 +61,7 @@ com.puppycrawl.tools checkstyle - 12.1.0 + 12.1.1 @@ -92,7 +92,7 @@ io.avaje avaje-inject - 11.6 + 12.0 test diff --git a/modules/jooby-vertx-mysql-client/pom.xml b/modules/jooby-vertx-mysql-client/pom.xml index ccb4c60dc7..4fef745b18 100644 --- a/modules/jooby-vertx-mysql-client/pom.xml +++ b/modules/jooby-vertx-mysql-client/pom.xml @@ -25,7 +25,7 @@ io.vertx vertx-mysql-client - 5.0.4 + 5.0.5 diff --git a/modules/jooby-vertx-pg-client/pom.xml b/modules/jooby-vertx-pg-client/pom.xml index 1a4952e996..499ddf3c36 100644 --- a/modules/jooby-vertx-pg-client/pom.xml +++ b/modules/jooby-vertx-pg-client/pom.xml @@ -25,7 +25,7 @@ io.vertx vertx-pg-client - 5.0.4 + 5.0.5 diff --git a/modules/jooby-vertx-sql-client/pom.xml b/modules/jooby-vertx-sql-client/pom.xml index 105837e8d3..ad98c07e45 100644 --- a/modules/jooby-vertx-sql-client/pom.xml +++ b/modules/jooby-vertx-sql-client/pom.xml @@ -25,13 +25,13 @@ io.vertx vertx-sql-client - 5.0.4 + 5.0.5 io.vertx vertx-pg-client - 5.0.4 + 5.0.5 true diff --git a/modules/jooby-vertx/pom.xml b/modules/jooby-vertx/pom.xml index 19d2729123..ece018b99e 100644 --- a/modules/jooby-vertx/pom.xml +++ b/modules/jooby-vertx/pom.xml @@ -22,7 +22,7 @@ io.vertx vertx-core - 5.0.4 + 5.0.5 diff --git a/pom.xml b/pom.xml index 8bbb33ba2f..a7aa7f73e1 100644 --- a/pom.xml +++ b/pom.xml @@ -73,11 +73,11 @@ 7.0.2 1.2 7.0.4.Final - 17.1.0 + 17.1.1 3.49.6 11.8.2 24.3 - 6.8.1.RELEASE + 7.0.0.RELEASE 2.12.1 4.1.0 3.2.2 @@ -106,9 +106,9 @@ 2.3.20.Final - 12.1.2 + 12.1.3 4.2.7.Final - 5.0.4 + 5.0.5 2.2.39 @@ -119,8 +119,8 @@ 2.5.2 - 11.6 - 3.7 + 12.0 + 3.8 2.14 @@ -133,7 +133,7 @@ 5.2.1 0.13.0 6.2.2 - 2.5.0 + 2.5.1 9.2.1 8.15.0 1.12.792 @@ -143,7 +143,7 @@ 2.20.0 - 2.2.20 + 2.2.21 1.10.2 true @@ -168,7 +168,7 @@ ${jacoco.version} - 3.1.0 + 3.2.0 3.2.0 3.7.1 2.41 @@ -179,9 +179,9 @@ 3.4.2 3.12.0 3.2.1 - 3.15.1 + 3.15.2 3.9.11 - 3.15.1 + 3.15.2 2.2.1 3.3.1 3.6.1 diff --git a/tests/pom.xml b/tests/pom.xml index 7412e8dd7a..7a2f7d213c 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -201,7 +201,7 @@ io.vertx vertx-pg-client - 5.0.4 + 5.0.5 From 625a6a480ad37be0e7a63b29a1e51903b141e2e8 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sun, 26 Oct 2025 21:28:55 -0300 Subject: [PATCH 15/21] build: fix javadoc error and warnings - WIP --- .../main/java/io/jooby/AvailableSettings.java | 6 +- .../java/io/jooby/CompletionListeners.java | 3 + jooby/src/main/java/io/jooby/Context.java | 17 ++++ .../java/io/jooby/DefaultErrorHandler.java | 7 +- .../main/java/io/jooby/ForwardingContext.java | 4 + jooby/src/main/java/io/jooby/Jooby.java | 3 + .../src/main/java/io/jooby/ModelAndView.java | 1 + .../java/io/jooby/annotation/Generated.java | 6 ++ .../io/jooby/annotation/OpenApiRegister.java | 2 +- .../io/jooby/handler/AccessLogHandler.java | 3 +- .../src/main/java/io/jooby/handler/Asset.java | 14 ++- .../java/io/jooby/handler/CacheControl.java | 3 + .../src/main/java/io/jooby/handler/Cors.java | 24 ++++- .../java/io/jooby/handler/HeadHandler.java | 6 +- .../java/io/jooby/handler/SSLHandler.java | 11 +-- .../io/jooby/output/ByteBufferedOutput.java | 10 +- .../output/ByteBufferedOutputFactory.java | 5 + .../java/io/jooby/output/OutputFactory.java | 1 + .../java/io/jooby/output/package-info.java | 1 + .../java/io/jooby/problem/HttpProblem.java | 95 +++++++++++-------- .../io/jooby/validation/BeanValidator.java | 11 +++ .../java/io.jooby.logback/package-info.java | 2 - .../jooby/logback}/LogbackService.java | 1 + .../java/io/jooby/logback/package-info.java | 5 + .../src/main/java/module-info.java | 1 + pom.xml | 6 +- 26 files changed, 179 insertions(+), 69 deletions(-) delete mode 100644 modules/jooby-logback/src/main/java/io.jooby.logback/package-info.java rename modules/jooby-logback/src/main/java/{io.jooby.logback => io/jooby/logback}/LogbackService.java (97%) create mode 100644 modules/jooby-logback/src/main/java/io/jooby/logback/package-info.java diff --git a/jooby/src/main/java/io/jooby/AvailableSettings.java b/jooby/src/main/java/io/jooby/AvailableSettings.java index 93a649bd49..c72ecc68da 100644 --- a/jooby/src/main/java/io/jooby/AvailableSettings.java +++ b/jooby/src/main/java/io/jooby/AvailableSettings.java @@ -20,8 +20,6 @@ *
  • via ENV variable, for example: myprop=value java -jar myapp.jar * * - *

    - * * @since 3.0.0 */ public interface AvailableSettings { @@ -45,8 +43,8 @@ public interface AvailableSettings { String LANG = "application.lang"; /** - * Location of log configuration file. Used by {@link LogConfigurer} and setting up at application - * bootstrap time. You don't need to set this property. + * Location of log configuration file. Used by {@link LoggingService} and setting up at + * application bootstrap time. You don't need to set this property. */ String LOG_FILE = "application.logfile"; diff --git a/jooby/src/main/java/io/jooby/CompletionListeners.java b/jooby/src/main/java/io/jooby/CompletionListeners.java index 4925eeb868..50338449b8 100644 --- a/jooby/src/main/java/io/jooby/CompletionListeners.java +++ b/jooby/src/main/java/io/jooby/CompletionListeners.java @@ -20,6 +20,9 @@ public class CompletionListeners { private List listeners; + /** Creates a new completion listener. */ + public CompletionListeners() {} + /** * Add a listener. * diff --git a/jooby/src/main/java/io/jooby/Context.java b/jooby/src/main/java/io/jooby/Context.java index 5da9c661f4..1f5be9f676 100644 --- a/jooby/src/main/java/io/jooby/Context.java +++ b/jooby/src/main/java/io/jooby/Context.java @@ -55,6 +55,12 @@ interface Selector { */ Jooby select(String path); + /** + * Creates an application selector. Selection is done based on context path. + * + * @param applications List of applications. + * @return Selector. + */ static Selector create(List applications) { return applications.size() == 1 ? single(applications.getFirst()) : multiple(applications); } @@ -142,6 +148,11 @@ private static Selector single(Jooby defaultApp) { */ Router getRouter(); + /** + * Context output factory. + * + * @return Context output factory. + */ OutputFactory getOutputFactory(); /** @@ -174,6 +185,11 @@ private static Selector single(Jooby defaultApp) { */ @Nullable FlashMap flashOrNull(); + /** + * Value factory. + * + * @return Value factory. + */ ValueFactory getValueFactory(); /** @@ -1461,6 +1477,7 @@ static Context readOnly(@NonNull Context ctx) { * @param ctx Originating context. * @param ws WebSocket. * @param binary True for sending binary message. + * @param callback Write callback. * @return Read only context. */ static Context websocket( diff --git a/jooby/src/main/java/io/jooby/DefaultErrorHandler.java b/jooby/src/main/java/io/jooby/DefaultErrorHandler.java index c4ea678a0d..a807f116ef 100644 --- a/jooby/src/main/java/io/jooby/DefaultErrorHandler.java +++ b/jooby/src/main/java/io/jooby/DefaultErrorHandler.java @@ -28,13 +28,16 @@ public class DefaultErrorHandler implements ErrorHandler { private final Set muteTypes = new HashSet<>(); + /** Default error handler. */ + public DefaultErrorHandler() {} + /** * Generate a log.debug call if any of the status code error occurs as exception. * * @param statusCodes Status codes to mute. * @return This error handler. */ - public @NonNull DefaultErrorHandler mute(@NonNull StatusCode... statusCodes) { + public DefaultErrorHandler mute(@NonNull StatusCode... statusCodes) { muteCodes.addAll(List.of(statusCodes)); return this; } @@ -45,7 +48,7 @@ public class DefaultErrorHandler implements ErrorHandler { * @param exceptionTypes Exception types to mute. * @return This error handler. */ - public @NonNull DefaultErrorHandler mute(@NonNull Class... exceptionTypes) { + public DefaultErrorHandler mute(@NonNull Class... exceptionTypes) { muteTypes.addAll(List.of(exceptionTypes)); return this; } diff --git a/jooby/src/main/java/io/jooby/ForwardingContext.java b/jooby/src/main/java/io/jooby/ForwardingContext.java index f59fd584e8..9ae86ea881 100644 --- a/jooby/src/main/java/io/jooby/ForwardingContext.java +++ b/jooby/src/main/java/io/jooby/ForwardingContext.java @@ -37,6 +37,7 @@ */ public class ForwardingContext implements Context { + /** Delegate/forwarding body. */ public static class ForwardingBody implements Body { protected final Body delegate; @@ -317,6 +318,7 @@ public Map toMap() { } } + /** Forwarding/Delegate pattern over {@link Value}. */ public static class ForwardingValue implements Value { protected final Value delegate; @@ -557,6 +559,7 @@ public Map toMap() { } } + /** Forwarding/Delegate pattern over {@link QueryString}. */ public static class ForwardingQueryString extends ForwardingValue implements QueryString { public ForwardingQueryString(QueryString queryString) { super(queryString); @@ -573,6 +576,7 @@ public String queryString() { } } + /** Forwarding/Delegate pattern over {@link Formdata}. */ public static class ForwardingFormdata extends ForwardingValue implements Formdata { public ForwardingFormdata(Formdata delegate) { super(delegate); diff --git a/jooby/src/main/java/io/jooby/Jooby.java b/jooby/src/main/java/io/jooby/Jooby.java index 2ed46c4370..e177b60ba9 100644 --- a/jooby/src/main/java/io/jooby/Jooby.java +++ b/jooby/src/main/java/io/jooby/Jooby.java @@ -1085,6 +1085,7 @@ public static void runApp(@NonNull String[] args, @NonNull Supplier provi * Setup default environment, logging (logback or log4j2) and run application. * * @param args Application arguments. + * @param server Web server. * @param provider Application provider. */ public static void runApp( @@ -1166,6 +1167,7 @@ public static void runApp( * Setup default environment, logging (logback or log4j2) and run application. * * @param args Application arguments. + * @param server Web server. * @param executionMode Default application execution mode. Can be overridden by application. * @param provider Application provider. */ @@ -1265,6 +1267,7 @@ public static void runApp( /** * Setup default environment, logging (logback or log4j2) and run application. * + * @param server Web server. * @param executionMode Application execution mode. * @param provider Application provider. * @return Application. diff --git a/jooby/src/main/java/io/jooby/ModelAndView.java b/jooby/src/main/java/io/jooby/ModelAndView.java index ad04b211d1..c1fb72a0f2 100644 --- a/jooby/src/main/java/io/jooby/ModelAndView.java +++ b/jooby/src/main/java/io/jooby/ModelAndView.java @@ -18,6 +18,7 @@ * * @since 2.0.0 * @author edgar + * @param Model type. */ public class ModelAndView { diff --git a/jooby/src/main/java/io/jooby/annotation/Generated.java b/jooby/src/main/java/io/jooby/annotation/Generated.java index afde3d77c7..5e3a22d900 100644 --- a/jooby/src/main/java/io/jooby/annotation/Generated.java +++ b/jooby/src/main/java/io/jooby/annotation/Generated.java @@ -10,8 +10,14 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** Used internally to annotation generated MVC controllers. */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Generated { + /** + * Target controller class. + * + * @return Target controller class. + */ Class value(); } diff --git a/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java b/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java index 24139528b1..0312a1b0ca 100644 --- a/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java +++ b/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java @@ -17,8 +17,8 @@ * @OpenApiRegister({Controller1.class, Controller2.class}) * public class App extends Jooby { * ... + * } * } - * */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/jooby/src/main/java/io/jooby/handler/AccessLogHandler.java b/jooby/src/main/java/io/jooby/handler/AccessLogHandler.java index 50e3ded50e..a9d71a48d4 100644 --- a/jooby/src/main/java/io/jooby/handler/AccessLogHandler.java +++ b/jooby/src/main/java/io/jooby/handler/AccessLogHandler.java @@ -23,7 +23,6 @@ import edu.umd.cs.findbugs.annotations.NonNull; import io.jooby.Context; import io.jooby.Route; -import io.jooby.Router; /** * Access Log Handler. @@ -31,7 +30,7 @@ *

    Log incoming requested using the NCSA format (a.k.a common log format). * If you run behind a reverse proxy that has been configured to send the X-Forwarded-* header, - * please consider to set {@link Router#setTrustProxy(boolean)} option. + * please consider to set {@link io.jooby.RouterOptions#setTrustProxy(boolean)} option. * *

    usage

    * diff --git a/jooby/src/main/java/io/jooby/handler/Asset.java b/jooby/src/main/java/io/jooby/handler/Asset.java index ca7436f9c1..e662e93f1f 100644 --- a/jooby/src/main/java/io/jooby/handler/Asset.java +++ b/jooby/src/main/java/io/jooby/handler/Asset.java @@ -62,16 +62,22 @@ static Asset create(@NonNull String path, @NonNull URL resource) { } /** + * Asset size (in bytes) or -1 if undefined. + * * @return Asset size (in bytes) or -1 if undefined. */ long getSize(); /** + * The last modified date if possible or -1 when isn't. + * * @return The last modified date if possible or -1 when isn't. */ long getLastModified(); /** + * True if the asset is a directory (when possible). + * * @return True if the asset is a directory (when possible). */ boolean isDirectory(); @@ -81,7 +87,7 @@ static Asset create(@NonNull String path, @NonNull URL resource) { * * @return A weak e-tag. */ - default @NonNull String getEtag() { + default String getEtag() { StringBuilder b = new StringBuilder(32); b.append("W/\""); @@ -103,11 +109,15 @@ static Asset create(@NonNull String path, @NonNull URL resource) { } /** + * Asset media type. + * * @return Asset media type. */ - @NonNull MediaType getContentType(); + MediaType getContentType(); /** + * Asset content. + * * @return Asset content. */ InputStream stream(); diff --git a/jooby/src/main/java/io/jooby/handler/CacheControl.java b/jooby/src/main/java/io/jooby/handler/CacheControl.java index 1ac0ad9291..ab05132aaa 100644 --- a/jooby/src/main/java/io/jooby/handler/CacheControl.java +++ b/jooby/src/main/java/io/jooby/handler/CacheControl.java @@ -35,6 +35,9 @@ public class CacheControl { private boolean lastModified = true; private long maxAge = -1; + /** Creates a new cache control. */ + public CacheControl() {} + /** * Returns whether e-tag support is enabled. * diff --git a/jooby/src/main/java/io/jooby/handler/Cors.java b/jooby/src/main/java/io/jooby/handler/Cors.java index 3198307d4f..83c7ad829c 100644 --- a/jooby/src/main/java/io/jooby/handler/Cors.java +++ b/jooby/src/main/java/io/jooby/handler/Cors.java @@ -114,6 +114,8 @@ public Cors setUseCredentials(boolean credentials) { } /** + * True if any origin is accepted. + * * @return True if any origin is accepted. */ public boolean anyOrigin() { @@ -174,6 +176,8 @@ public boolean allowMethod(final String method) { } /** + * List of allowed methods. + * * @return List of allowed methods. */ public List getMethods() { @@ -202,6 +206,8 @@ public Cors setMethods(final List methods) { } /** + * True if any header is allowed: *. + * * @return True if any header is allowed: *. */ public boolean anyHeader() { @@ -229,8 +235,16 @@ public boolean allowHeaders(final List headers) { } /** - * @return List of allowed headers. Default are: X-Requested-With, Content-Type - * , Accept and Origin. + * List of allowed headers. Default are: + * + *
      + *
    • X-Requested-With + *
    • Content-Type + *
    • Accept + *
    • Origin + *
    + * + * @return List of allowed headers. */ public List getHeaders() { return headers.values; @@ -260,6 +274,8 @@ public Cors setHeaders(final List headers) { } /** + * List of exposed headers. + * * @return List of exposed headers. */ public List getExposedHeaders() { @@ -288,6 +304,8 @@ public Cors setExposedHeaders(final List exposedHeaders) { } /** + * Preflight max age. How many seconds a client can cache a preflight request. + * * @return Preflight max age. How many seconds a client can cache a preflight request. */ public Duration getMaxAge() { @@ -322,7 +340,7 @@ public Cors setMaxAge(final Duration preflightMaxAge) { * @param conf Configuration. * @return Cors options. */ - public static @NonNull Cors from(@NonNull Config conf) { + public static Cors from(@NonNull Config conf) { Config cors = conf.hasPath("cors") ? conf.getConfig("cors") : conf; Cors options = new Cors(); if (cors.hasPath("origin")) { diff --git a/jooby/src/main/java/io/jooby/handler/HeadHandler.java b/jooby/src/main/java/io/jooby/handler/HeadHandler.java index e63f9e9f70..f87d684dfb 100644 --- a/jooby/src/main/java/io/jooby/handler/HeadHandler.java +++ b/jooby/src/main/java/io/jooby/handler/HeadHandler.java @@ -27,7 +27,11 @@ * @since 2.0.4 */ public class HeadHandler implements Route.Filter { - @NonNull @Override + + /** Default constructor. */ + public HeadHandler() {} + + @Override public Route.Handler apply(@NonNull Route.Handler next) { return ctx -> { if (ctx.getMethod().equals(Router.HEAD)) { diff --git a/jooby/src/main/java/io/jooby/handler/SSLHandler.java b/jooby/src/main/java/io/jooby/handler/SSLHandler.java index e41e29dc3a..e57b64b9b4 100644 --- a/jooby/src/main/java/io/jooby/handler/SSLHandler.java +++ b/jooby/src/main/java/io/jooby/handler/SSLHandler.java @@ -8,7 +8,6 @@ import edu.umd.cs.findbugs.annotations.NonNull; import io.jooby.Context; import io.jooby.Route; -import io.jooby.Router; import io.jooby.ServerOptions; /** @@ -16,7 +15,7 @@ * call to the HTTPs version. * *

    If you run behind a reverse proxy that has been configured to send the X-Forwarded-* header, - * please consider to set {@link Router#setTrustProxy(boolean)} option. + * please consider to set {@link io.jooby.RouterOptions#setTrustProxy(boolean)} option. * * @author edgar */ @@ -29,7 +28,7 @@ public class SSLHandler implements Route.Before { * Creates a SSLHandler and redirect non-HTTPS request to the given host and port. * *

    If you run behind a reverse proxy that has been configured to send the X-Forwarded-* header, - * please consider to set {@link Router#setTrustProxy(boolean)} option. + * please consider to set {@link io.jooby.RouterOptions#setTrustProxy(boolean)} option. * * @param host Host to redirect. * @param port HTTP port. @@ -43,7 +42,7 @@ public SSLHandler(@NonNull String host, int port) { * Creates a SSLHandler and redirect non-HTTPS request to the given host. * *

    If you run behind a reverse proxy that has been configured to send the X-Forwarded-* header, - * please consider to set {@link Router#setTrustProxy(boolean)} option. + * please consider to set {@link io.jooby.RouterOptions#setTrustProxy(boolean)} option. * * @param host Host to redirect. */ @@ -56,7 +55,7 @@ public SSLHandler(@NonNull String host) { * recreated from Host header or X-Forwarded-Host. * *

    If you run behind a reverse proxy that has been configured to send the X-Forwarded-* header, - * please consider to set {@link Router#setTrustProxy(boolean)} option. + * please consider to set {@link io.jooby.RouterOptions#setTrustProxy(boolean)} option. * * @param port HTTPS port. */ @@ -70,7 +69,7 @@ public SSLHandler(int port) { * recreated from Host header. * *

    If you run behind a reverse proxy that has been configured to send the X-Forwarded-* header, - * please consider to set {@link Router#setTrustProxy(boolean)} option. + * please consider to set {@link io.jooby.RouterOptions#setTrustProxy(boolean)} option. */ public SSLHandler() { this(SECURE_PORT); diff --git a/jooby/src/main/java/io/jooby/output/ByteBufferedOutput.java b/jooby/src/main/java/io/jooby/output/ByteBufferedOutput.java index e3448a8b4a..4ae8092ffd 100644 --- a/jooby/src/main/java/io/jooby/output/ByteBufferedOutput.java +++ b/jooby/src/main/java/io/jooby/output/ByteBufferedOutput.java @@ -30,6 +30,12 @@ public class ByteBufferedOutput implements BufferedOutput { private int writePosition; + /** + * Creates a new byte buffered output. + * + * @param direct True for direct buffer. + * @param capacity Buffer capacity. + */ public ByteBufferedOutput(boolean direct, int capacity) { this.buffer = allocate(capacity, direct); } @@ -45,12 +51,12 @@ public void transferTo(@NonNull SneakyThrows.Consumer consumer) { } @Override - public @NonNull Iterator iterator() { + public Iterator iterator() { return List.of(asByteBuffer()).iterator(); } @Override - public @NonNull ByteBuffer asByteBuffer() { + public ByteBuffer asByteBuffer() { return this.buffer.slice(this.readPosition, size()).asReadOnlyBuffer(); } diff --git a/jooby/src/main/java/io/jooby/output/ByteBufferedOutputFactory.java b/jooby/src/main/java/io/jooby/output/ByteBufferedOutputFactory.java index a9c719b1be..bc9e4fe35f 100644 --- a/jooby/src/main/java/io/jooby/output/ByteBufferedOutputFactory.java +++ b/jooby/src/main/java/io/jooby/output/ByteBufferedOutputFactory.java @@ -49,6 +49,11 @@ public Output wrap(@NonNull byte[] bytes, int offset, int length) { private final OutputOptions options; + /** + * Creates new byte buffered output. + * + * @param options Options. + */ public ByteBufferedOutputFactory(OutputOptions options) { this.options = options; } diff --git a/jooby/src/main/java/io/jooby/output/OutputFactory.java b/jooby/src/main/java/io/jooby/output/OutputFactory.java index 15cc659b03..167e4c259d 100644 --- a/jooby/src/main/java/io/jooby/output/OutputFactory.java +++ b/jooby/src/main/java/io/jooby/output/OutputFactory.java @@ -22,6 +22,7 @@ public interface OutputFactory { /** * Default output factory, backed by {@link ByteBuffer}. * + * @param options Output options. * @return Default output factory. */ static OutputFactory create(@NonNull OutputOptions options) { diff --git a/jooby/src/main/java/io/jooby/output/package-info.java b/jooby/src/main/java/io/jooby/output/package-info.java index 6dbbe0ce94..8ad7c10d47 100644 --- a/jooby/src/main/java/io/jooby/output/package-info.java +++ b/jooby/src/main/java/io/jooby/output/package-info.java @@ -1,2 +1,3 @@ +/** Output used to support multiple implementations like byte array, byte buffer, netty buffers. */ @edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault package io.jooby.output; diff --git a/jooby/src/main/java/io/jooby/problem/HttpProblem.java b/jooby/src/main/java/io/jooby/problem/HttpProblem.java index 156f695a6f..b3c3f764b5 100644 --- a/jooby/src/main/java/io/jooby/problem/HttpProblem.java +++ b/jooby/src/main/java/io/jooby/problem/HttpProblem.java @@ -59,7 +59,7 @@ private static String createMessage(String title, String detail) { * Creates an HttpProblem with the specified status code and custom title. * * @param status the HTTP status code for this problem - * @param title the title describing the type of problem + * @param title the title describing the type of problem * @return an HttpProblem instance with the specified status and title */ public static HttpProblem valueOf(StatusCode status, String title) { @@ -70,7 +70,7 @@ public static HttpProblem valueOf(StatusCode status, String title) { * Creates an HttpProblem with the specified status code, custom title, and detail. * * @param status the HTTP status code for this problem - * @param title the title describing the type of problem + * @param title the title describing the type of problem * @param detail a human-readable explanation specific to this occurrence of the problem * @return an HttpProblem instance with the specified status, title, and detail */ @@ -79,8 +79,8 @@ public static HttpProblem valueOf(StatusCode status, String title, String detail } /** - * Creates an HttpProblem with the specified status code using the default title. - * The title is automatically set to the status code's reason phrase. + * Creates an HttpProblem with the specified status code using the default title. The title is + * automatically set to the status code's reason phrase. * * @param status the HTTP status code for this problem * @return an HttpProblem instance with the specified status and default title @@ -92,21 +92,17 @@ public static HttpProblem valueOf(StatusCode status) { /** * Creates an HttpProblem with BAD_REQUEST status (400) and custom title and detail. * - * @param title the title describing the type of problem + * @param title the title describing the type of problem * @param detail a human-readable explanation specific to this occurrence of the problem * @return an HttpProblem instance with BAD_REQUEST status */ public static HttpProblem badRequest(String title, String detail) { - return builder() - .title(title) - .status(StatusCode.BAD_REQUEST) - .detail(detail) - .build(); + return builder().title(title).status(StatusCode.BAD_REQUEST).detail(detail).build(); } /** - * Creates an HttpProblem with BAD_REQUEST status (400) using the default title. - * The title is automatically set to the status code's reason phrase. + * Creates an HttpProblem with BAD_REQUEST status (400) using the default title. The title is + * automatically set to the status code's reason phrase. * * @param detail a human-readable explanation specific to this occurrence of the problem * @return an HttpProblem instance with BAD_REQUEST status @@ -122,21 +118,17 @@ public static HttpProblem badRequest(String detail) { /** * Creates an HttpProblem with NOT_FOUND status (404) and custom title and detail. * - * @param title the title describing the type of problem + * @param title the title describing the type of problem * @param detail a human-readable explanation specific to this occurrence of the problem * @return an HttpProblem instance with NOT_FOUND status */ public static HttpProblem notFound(String title, String detail) { - return builder() - .title(title) - .status(StatusCode.NOT_FOUND) - .detail(detail) - .build(); + return builder().title(title).status(StatusCode.NOT_FOUND).detail(detail).build(); } /** - * Creates an HttpProblem with NOT_FOUND status (404) using the default title. - * The title is automatically set to the status code's reason phrase. + * Creates an HttpProblem with NOT_FOUND status (404) using the default title. The title is + * automatically set to the status code's reason phrase. * * @param detail a human-readable explanation specific to this occurrence of the problem * @return an HttpProblem instance with NOT_FOUND status @@ -152,21 +144,17 @@ public static HttpProblem notFound(String detail) { /** * Creates an HttpProblem with UNPROCESSABLE_ENTITY status (422) and custom title and detail. * - * @param title the title describing the type of problem + * @param title the title describing the type of problem * @param detail a human-readable explanation specific to this occurrence of the problem * @return an HttpProblem instance with UNPROCESSABLE_ENTITY status */ public static HttpProblem unprocessableEntity(String title, String detail) { - return builder() - .title(title) - .status(StatusCode.UNPROCESSABLE_ENTITY) - .detail(detail) - .build(); + return builder().title(title).status(StatusCode.UNPROCESSABLE_ENTITY).detail(detail).build(); } /** - * Creates an HttpProblem with UNPROCESSABLE_ENTITY status (422) using the default title. - * The title is automatically set to the status code's reason phrase. + * Creates an HttpProblem with UNPROCESSABLE_ENTITY status (422) using the default title. The + * title is automatically set to the status code's reason phrase. * * @param detail a human-readable explanation specific to this occurrence of the problem * @return an HttpProblem instance with UNPROCESSABLE_ENTITY status @@ -180,8 +168,8 @@ public static HttpProblem unprocessableEntity(String detail) { } /** - * Creates an HttpProblem with SERVER_ERROR status (500) using predefined title and detail. - * This is typically used for unexpected server errors or misconfigurations. + * Creates an HttpProblem with SERVER_ERROR status (500) using predefined title and detail. This + * is typically used for unexpected server errors or misconfigurations. * * @return an HttpProblem instance with SERVER_ERROR status and predefined error message */ @@ -193,6 +181,11 @@ public static HttpProblem internalServerError() { .build(); } + /** + * New problem builder. + * + * @return New problem builder. + */ public static Builder builder() { return new Builder(); } @@ -268,18 +261,38 @@ public Map getParameters() { return parameters; } + /** + * Optional headers. + * + * @return Optional headers. + */ public Map getHeaders() { return this.headers; } + /** + * List of errors. + * + * @return List of errors. + */ public List getErrors() { return this.errors; } + /** + * True if there is at least one parameter. + * + * @return True if there is at least one parameter. + */ public boolean hasParameters() { return !parameters.isEmpty(); } + /** + * True if there is at least one error. + * + * @return True if there is at least one error. + */ public boolean hasErrors() { return !errors.isEmpty(); } @@ -307,6 +320,7 @@ public String toString() { + '}'; } + /** Problem builder. */ public static class Builder { private URI type; private String title; @@ -317,8 +331,7 @@ public static class Builder { private final Map headers = new LinkedHashMap<>(); private final List errors = new LinkedList<>(); - Builder() { - } + Builder() {} public Builder type(@Nullable final URI type) { this.type = type; @@ -361,7 +374,7 @@ public Builder errors(final List errors) { } /** - * @param key additional info parameter name + * @param key additional info parameter name * @param value additional info parameter value * @return this for chaining */ @@ -389,9 +402,9 @@ public HttpProblem build() { } /** - * Represents an individual error within an HTTP Problem response. - * This class encapsulates error details following RFC 7807/RFC 9457 standards - * for providing structured error information in API responses. + * Represents an individual error within an HTTP Problem response. This class encapsulates error + * details following RFC 7807/RFC 9457 standards for providing structured error information in API + * responses. */ public static class Error { private final String detail; @@ -400,9 +413,9 @@ public static class Error { /** * Creates a new Error instance with the specified detail and pointer. * - * @param detail a human-readable explanation of the specific error - * @param pointer a JSON Pointer (RFC 6901) that identifies the location - * in the request document where the error occurred + * @param detail a human-readable explanation of the specific error + * @param pointer a JSON Pointer (RFC 6901) that identifies the location in the request document + * where the error occurred */ public Error(String detail, String pointer) { this.detail = detail; @@ -419,8 +432,8 @@ public String getDetail() { } /** - * Returns a reference that identifies the location where this error occurred. - * This is typically a JSON Pointer (RFC 6901). + * Returns a reference that identifies the location where this error occurred. This is typically + * a JSON Pointer (RFC 6901). * * @return the pointer to the location of the error */ diff --git a/jooby/src/main/java/io/jooby/validation/BeanValidator.java b/jooby/src/main/java/io/jooby/validation/BeanValidator.java index 7757d8d1ec..81faa1f003 100644 --- a/jooby/src/main/java/io/jooby/validation/BeanValidator.java +++ b/jooby/src/main/java/io/jooby/validation/BeanValidator.java @@ -71,10 +71,21 @@ static T apply(Context ctx, T bean) { return bean; } + /** + * Validator as filter. + * + * @return Validator as filter. + */ static Route.Filter validate() { return BeanValidator::validate; } + /** + * Validator as handler. + * + * @param next Next handler. + * @return A new handler. + */ static Route.Handler validate(Route.Handler next) { return ctx -> { try { diff --git a/modules/jooby-logback/src/main/java/io.jooby.logback/package-info.java b/modules/jooby-logback/src/main/java/io.jooby.logback/package-info.java deleted file mode 100644 index 0811710599..0000000000 --- a/modules/jooby-logback/src/main/java/io.jooby.logback/package-info.java +++ /dev/null @@ -1,2 +0,0 @@ -@edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault -package io.jooby.logback; diff --git a/modules/jooby-logback/src/main/java/io.jooby.logback/LogbackService.java b/modules/jooby-logback/src/main/java/io/jooby/logback/LogbackService.java similarity index 97% rename from modules/jooby-logback/src/main/java/io.jooby.logback/LogbackService.java rename to modules/jooby-logback/src/main/java/io/jooby/logback/LogbackService.java index af210b2dbe..f0183d3d7c 100644 --- a/modules/jooby-logback/src/main/java/io.jooby.logback/LogbackService.java +++ b/modules/jooby-logback/src/main/java/io/jooby/logback/LogbackService.java @@ -15,6 +15,7 @@ import io.jooby.LoggingService; import io.jooby.SneakyThrows; +/** Logback logging system. */ public class LogbackService implements LoggingService { @Override public String getPropertyName() { diff --git a/modules/jooby-logback/src/main/java/io/jooby/logback/package-info.java b/modules/jooby-logback/src/main/java/io/jooby/logback/package-info.java new file mode 100644 index 0000000000..d8f4992619 --- /dev/null +++ b/modules/jooby-logback/src/main/java/io/jooby/logback/package-info.java @@ -0,0 +1,5 @@ +/** Logback as logging service. */ +@ReturnValuesAreNonnullByDefault +package io.jooby.logback; + +import edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault; diff --git a/modules/jooby-logback/src/main/java/module-info.java b/modules/jooby-logback/src/main/java/module-info.java index 6e4d5d690f..f469b3e0ee 100644 --- a/modules/jooby-logback/src/main/java/module-info.java +++ b/modules/jooby-logback/src/main/java/module-info.java @@ -1,6 +1,7 @@ import io.jooby.LoggingService; import io.jooby.logback.LogbackService; +/** Logback logging system. */ module io.jooby.logback { exports io.jooby.logback; diff --git a/pom.xml b/pom.xml index 8bbb33ba2f..d0e33a148a 100644 --- a/pom.xml +++ b/pom.xml @@ -207,8 +207,6 @@ 21 21 21 - - false yyyy-MM-dd HH:mm:ssa 2025-10-20T21:13:47Z UTF-8 @@ -1686,8 +1684,10 @@ ${javadoc.excludes} public - false + true ${maven.compiler.release} + true + true From b3f2f50eec198c1d98085eb14912f93961914a0b Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Sun, 26 Oct 2025 21:31:50 -0300 Subject: [PATCH 16/21] build: javadoc turn off error/warning --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d0e33a148a..ed323d4f77 100644 --- a/pom.xml +++ b/pom.xml @@ -1686,8 +1686,8 @@ public true ${maven.compiler.release} - true - true + false + false From eeeaba033ce7d7ab66365ad26f1a5900241dc86e Mon Sep 17 00:00:00 2001 From: Filipe Roque Date: Mon, 27 Oct 2025 09:36:09 +0000 Subject: [PATCH 17/21] Fix comment typo in ServerOptions.java --- jooby/src/main/java/io/jooby/ServerOptions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jooby/src/main/java/io/jooby/ServerOptions.java b/jooby/src/main/java/io/jooby/ServerOptions.java index 8aa58183e4..dd4506c519 100644 --- a/jooby/src/main/java/io/jooby/ServerOptions.java +++ b/jooby/src/main/java/io/jooby/ServerOptions.java @@ -140,7 +140,7 @@ public class ServerOptions { private Boolean expectContinue; /** Internal usage only. */ - /*pakcage*/ boolean defaults; + /*package*/ boolean defaults; /*package*/ ServerOptions(boolean defaults) { this.defaults = defaults; From 2f20c3ca5d5c5038aedbae0df69145847ecebc13 Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Mon, 27 Oct 2025 11:06:13 -0300 Subject: [PATCH 18/21] build: fix some javadoc warnings and errors --- etc/javadoc.sh | 2 +- .../main/java/io/jooby/ForwardingContext.java | 25 ++++ jooby/src/main/java/io/jooby/Jooby.java | 7 + .../main/java/io/jooby/LoggingService.java | 7 + .../main/java/io/jooby/MapModelAndView.java | 1 + .../src/main/java/io/jooby/OpenAPIModule.java | 14 +- .../main/java/io/jooby/ReactiveSupport.java | 8 ++ jooby/src/main/java/io/jooby/Reified.java | 2 + jooby/src/main/java/io/jooby/Route.java | 19 +-- jooby/src/main/java/io/jooby/Router.java | 55 ++++++-- .../src/main/java/io/jooby/RouterOptions.java | 3 + jooby/src/main/java/io/jooby/Sender.java | 11 +- jooby/src/main/java/io/jooby/Server.java | 9 ++ .../src/main/java/io/jooby/ServerOptions.java | 18 ++- jooby/src/main/java/io/jooby/ServiceKey.java | 32 ++++- .../main/java/io/jooby/ServiceRegistry.java | 128 ++++++++++++++---- .../src/main/java/io/jooby/SessionStore.java | 3 +- jooby/src/main/java/io/jooby/SslOptions.java | 3 + .../main/java/io/jooby/StartupSummary.java | 6 + jooby/src/main/java/io/jooby/StatusCode.java | 10 +- jooby/src/main/java/io/jooby/Usage.java | 23 +--- jooby/src/main/java/io/jooby/WebSocket.java | 105 ++++++++++---- .../io/jooby/annotation/OpenApiRegister.java | 6 +- .../main/java/io/jooby/annotation/Path.java | 2 + .../exception/MethodNotAllowedException.java | 3 +- .../exception/MissingValueException.java | 1 + .../jooby/exception/StatusCodeException.java | 2 +- .../exception/TypeMismatchException.java | 1 + .../java/io/jooby/handler/AssetHandler.java | 3 + .../java/io/jooby/handler/TraceHandler.java | 5 +- .../java/io/jooby/output/OutputFactory.java | 5 + .../java/io/jooby/output/OutputOptions.java | 5 + .../java/io/jooby/problem/HttpProblem.java | 66 ++++++++- .../io/jooby/problem/HttpProblemMappable.java | 5 + .../jooby/problem/ProblemDetailsHandler.java | 11 ++ .../jooby/validation/ValidationContext.java | 8 +- .../io/jooby/validation/ValidationResult.java | 38 +++++- .../jooby/value/ReflectiveBeanConverter.java | 3 +- .../io/jooby/value/StandardConverter.java | 27 ++++ pom.xml | 25 +--- 40 files changed, 567 insertions(+), 140 deletions(-) diff --git a/etc/javadoc.sh b/etc/javadoc.sh index 739dffd12a..d59b57bb73 100755 --- a/etc/javadoc.sh +++ b/etc/javadoc.sh @@ -2,4 +2,4 @@ DIR=$(cd "$(dirname "$0")"; pwd) -mvn javadoc:javadoc -P source -Dmaven.plugin.validation=VERBOSE +mvn javadoc:javadoc -P source -Dmaven.plugin.validation=VERBOSE -Dmaven.javadoc.failOnError=true -Dmaven.javadoc.failOnWarnings=true diff --git a/jooby/src/main/java/io/jooby/ForwardingContext.java b/jooby/src/main/java/io/jooby/ForwardingContext.java index 9ae86ea881..5d2a8fcfe6 100644 --- a/jooby/src/main/java/io/jooby/ForwardingContext.java +++ b/jooby/src/main/java/io/jooby/ForwardingContext.java @@ -41,6 +41,11 @@ public class ForwardingContext implements Context { public static class ForwardingBody implements Body { protected final Body delegate; + /** + * Creates a new instance. + * + * @param body Underlying body. + */ public ForwardingBody(Body body) { this.delegate = body; } @@ -322,6 +327,11 @@ public Map toMap() { public static class ForwardingValue implements Value { protected final Value delegate; + /** + * Creates a new instance. + * + * @param delegate Underlying value. + */ public ForwardingValue(Value delegate) { this.delegate = delegate; } @@ -561,6 +571,11 @@ public Map toMap() { /** Forwarding/Delegate pattern over {@link QueryString}. */ public static class ForwardingQueryString extends ForwardingValue implements QueryString { + /** + * Creates a new instance. + * + * @param queryString Underlying query string. + */ public ForwardingQueryString(QueryString queryString) { super(queryString); } @@ -578,6 +593,11 @@ public String queryString() { /** Forwarding/Delegate pattern over {@link Formdata}. */ public static class ForwardingFormdata extends ForwardingValue implements Formdata { + /** + * Creates a new instance. + * + * @param delegate Underlying formdata. + */ public ForwardingFormdata(Formdata delegate) { super(delegate); } @@ -640,6 +660,11 @@ public Context setUser(@Nullable Object user) { return this; } + /** + * Get the underlying context. + * + * @return Get the underlying context. + */ public Context getDelegate() { return ctx; } diff --git a/jooby/src/main/java/io/jooby/Jooby.java b/jooby/src/main/java/io/jooby/Jooby.java index e177b60ba9..44e833d3d0 100644 --- a/jooby/src/main/java/io/jooby/Jooby.java +++ b/jooby/src/main/java/io/jooby/Jooby.java @@ -783,6 +783,13 @@ public ServiceRegistry getServices() { return basePackage; } + /** + * Set the base package, it has no direct effect on how jooby works but some modules might use it + * for package scanning. Defaults is main application package. + * + * @param basePackage Application base package. + * @return This instance. + */ public Jooby setBasePackage(@Nullable String basePackage) { this.basePackage = basePackage; return this; diff --git a/jooby/src/main/java/io/jooby/LoggingService.java b/jooby/src/main/java/io/jooby/LoggingService.java index 4da3a100f5..6dfd611158 100644 --- a/jooby/src/main/java/io/jooby/LoggingService.java +++ b/jooby/src/main/java/io/jooby/LoggingService.java @@ -62,6 +62,7 @@ public interface LoggingService { * @param classLoader Class loader to use. * @param names Actives environment names. Useful for choosing an environment specific logging * configuration file. + * @return Location of logging configuration file or null. */ static @Nullable String configure(@NonNull ClassLoader classLoader, @NonNull List names) { // Supported well-know implementation @@ -133,6 +134,12 @@ public interface LoggingService { return null; } + /** + * True when path contains one of: target, build, bin directories. + * + * @param path Path to test. + * @return True when path contains one of: target, build, bin directories. + */ static boolean isBinary(Path path) { var bin = Set.of("target", "build", "bin"); return StreamSupport.stream(path.spliterator(), false) diff --git a/jooby/src/main/java/io/jooby/MapModelAndView.java b/jooby/src/main/java/io/jooby/MapModelAndView.java index ed46df631c..9c496ed4b2 100644 --- a/jooby/src/main/java/io/jooby/MapModelAndView.java +++ b/jooby/src/main/java/io/jooby/MapModelAndView.java @@ -12,6 +12,7 @@ import edu.umd.cs.findbugs.annotations.NonNull; import edu.umd.cs.findbugs.annotations.Nullable; +/** A {@link ModelAndView} which uses a map as model. */ public class MapModelAndView extends ModelAndView> { /** * Creates a new model and view. diff --git a/jooby/src/main/java/io/jooby/OpenAPIModule.java b/jooby/src/main/java/io/jooby/OpenAPIModule.java index a33e1964ed..7d99d853cf 100644 --- a/jooby/src/main/java/io/jooby/OpenAPIModule.java +++ b/jooby/src/main/java/io/jooby/OpenAPIModule.java @@ -41,11 +41,11 @@ public class OpenAPIModule implements Extension { private static class OpenAPIAsset implements Asset { - private long lastModified; + private final long lastModified; - private byte[] content; + private final byte[] content; - private MediaType type; + private final MediaType type; OpenAPIAsset(MediaType type, byte[] content, long lastModified) { this.content = content; @@ -68,7 +68,7 @@ public boolean isDirectory() { return false; } - @NonNull @Override + @Override public MediaType getContentType() { return type; } @@ -107,6 +107,12 @@ public enum Format { /** YAML. */ YAML; + /** + * Find format based on files extension. + * + * @param filePath File name. + * @return File format. + */ public static Format from(@NonNull String filePath) { for (Format value : values()) { if (filePath.endsWith("." + value.name().toLowerCase())) { diff --git a/jooby/src/main/java/io/jooby/ReactiveSupport.java b/jooby/src/main/java/io/jooby/ReactiveSupport.java index 2b2e1127e5..b1a88adb4e 100644 --- a/jooby/src/main/java/io/jooby/ReactiveSupport.java +++ b/jooby/src/main/java/io/jooby/ReactiveSupport.java @@ -21,6 +21,8 @@ public class ReactiveSupport { private static final Route.Filter CONCURRENT = new ConcurrentHandler(); + private ReactiveSupport() {} + /** * Creates a subscriber from web context. * @@ -41,6 +43,12 @@ public static Route.Filter concurrent() { return CONCURRENT; } + /** + * Handler for {@link CompletionStage} and {@link Flow.Publisher} result types. + * + * @param next Next handler in pipeline. + * @return A new wrapped route handler. + */ public static Route.Handler concurrent(Route.Handler next) { return CONCURRENT.then(next); } diff --git a/jooby/src/main/java/io/jooby/Reified.java b/jooby/src/main/java/io/jooby/Reified.java index d192c4390b..2f3e3d6189 100644 --- a/jooby/src/main/java/io/jooby/Reified.java +++ b/jooby/src/main/java/io/jooby/Reified.java @@ -269,6 +269,7 @@ public static Reified> completableFuture(@NonNull Type * * @param rawType Raw type. * @param typeArguments Parameter types. + * @param Target type. * @return Gets type literal for the parameterized type represented by applying {@code * typeArguments} to {@code rawType}. */ @@ -283,6 +284,7 @@ public static Reified getParameterized( * * @param rawType Raw type. * @param argument Parameter types. + * @param Target type. * @return Gets type literal for the parameterized type represented by applying {@code * typeArguments} to {@code rawType}. */ diff --git a/jooby/src/main/java/io/jooby/Route.java b/jooby/src/main/java/io/jooby/Route.java index 315a2e4a14..7424ba2dc5 100644 --- a/jooby/src/main/java/io/jooby/Route.java +++ b/jooby/src/main/java/io/jooby/Route.java @@ -13,8 +13,6 @@ import java.lang.reflect.Method; import java.util.*; import java.util.concurrent.Executor; -import java.util.function.Consumer; -import java.util.function.Predicate; import java.util.stream.Stream; import edu.umd.cs.findbugs.annotations.NonNull; @@ -253,6 +251,10 @@ public interface Complete { void apply(@NonNull Context ctx) throws Exception; } + /** + * Callback that allow to customize a route while the route pipeline is being created. The {@link + * #setRoute(Route)} is called once at application startup time. + */ public interface Aware { /** * Allows a handler to listen for route metadata. @@ -277,7 +279,7 @@ public interface Handler extends Serializable, Aware { * @return Route response. * @throws Exception If something goes wrong. */ - @NonNull Object apply(@NonNull Context ctx) throws Exception; + Object apply(@NonNull Context ctx) throws Exception; /** * Chain this after decorator with next and produces a new decorator. @@ -722,7 +724,7 @@ public boolean isNonBlockingSet() { * your application using {@link ExecutionMode#EVENT_LOOP}. * * @param nonBlocking True for non-blocking routes. - * @return + * @return This route. */ public Route setNonBlocking(boolean nonBlocking) { this.nonBlocking = nonBlocking; @@ -1176,6 +1178,11 @@ public static class Set implements Iterable { private String description; + /** + * Set of routes. + * + * @param routes Routes. + */ public Set(List routes) { this.routes = routes; } @@ -1384,10 +1391,6 @@ public Set description(@Nullable String description) { return setDescription(description); } - public void forEach(Predicate predicate, Consumer action) { - routes.stream().filter(predicate).forEach(action); - } - @Override public Iterator iterator() { return routes.iterator(); diff --git a/jooby/src/main/java/io/jooby/Router.java b/jooby/src/main/java/io/jooby/Router.java index fc2f749733..802b9618d5 100644 --- a/jooby/src/main/java/io/jooby/Router.java +++ b/jooby/src/main/java/io/jooby/Router.java @@ -65,11 +65,18 @@ interface Match { /** * Executes matched route. * - * @param context not null. - * @param pipeline Handler. + * @param context Web Context. + * @param pipeline Route pipeline. + * @return route response. */ Object execute(@NonNull Context context, @NonNull Route.Handler pipeline); + /** + * Executes matched route. + * + * @param context Web Context. + * @return route response. + */ default Object execute(@NonNull Context context) { return execute(context, route().getPipeline()); } @@ -202,10 +209,20 @@ default Object execute(@NonNull Context context) { * * @return Application context path (a.k.a as base path). */ - @NonNull String getContextPath(); + String getContextPath(); + /** + * True when router started. + * + * @return True when router started. + */ boolean isStarted(); + /** + * True when router stopped. + * + * @return True when router stopped. + */ boolean isStopped(); /** @@ -450,9 +467,14 @@ default Object execute(@NonNull Context context) { * @param worker Default worker thread pool. * @return This router. */ - @NonNull Router setDefaultWorker(@NonNull Executor worker); + Router setDefaultWorker(@NonNull Executor worker); - @NonNull OutputFactory getOutputFactory(); + /** + * Output factory. + * + * @return Output factory. + */ + OutputFactory getOutputFactory(); /** * Attach a filter to the route pipeline. @@ -460,7 +482,7 @@ default Object execute(@NonNull Context context) { * @param filter Filter. * @return This router. */ - @NonNull Router use(@NonNull Route.Filter filter); + Router use(@NonNull Route.Filter filter); /** * Add a before route decorator to the route pipeline. @@ -841,7 +863,7 @@ default Object execute(@NonNull Context context) { * * @return Template for the flash cookie. */ - @NonNull Cookie getFlashCookie(); + Cookie getFlashCookie(); /** * Sets a cookie used as a template to generate the flash cookie, allowing to customize the cookie @@ -850,11 +872,22 @@ default Object execute(@NonNull Context context) { * @param flashCookie The cookie template. * @return This router. */ - @NonNull Router setFlashCookie(@NonNull Cookie flashCookie); + Router setFlashCookie(@NonNull Cookie flashCookie); - @NonNull ValueFactory getValueFactory(); + /** + * Value factory. + * + * @return Value factory. + */ + ValueFactory getValueFactory(); - @NonNull Router setValueFactory(@NonNull ValueFactory valueFactory); + /** + * Set value factory, useful for custom value factory. + * + * @param valueFactory Value factory. + * @return This router. + */ + Router setValueFactory(@NonNull ValueFactory valueFactory); /** * Ensure path start with a /(leading slash). @@ -862,7 +895,7 @@ default Object execute(@NonNull Context context) { * @param path Path to process. * @return Path with leading slash. */ - static @NonNull String leadingSlash(@Nullable String path) { + static String leadingSlash(@Nullable String path) { if (path == null || path.length() == 0 || path.equals("/")) { return "/"; } diff --git a/jooby/src/main/java/io/jooby/RouterOptions.java b/jooby/src/main/java/io/jooby/RouterOptions.java index 57f9f131cc..8e60d44121 100644 --- a/jooby/src/main/java/io/jooby/RouterOptions.java +++ b/jooby/src/main/java/io/jooby/RouterOptions.java @@ -71,6 +71,9 @@ public class RouterOptions { */ private boolean contextAsService; + /** Default constructor. */ + public RouterOptions() {} + /** * If enabled, allows to retrieve the {@link Context} object associated with the current request * via the service registry while the request is being processed. diff --git a/jooby/src/main/java/io/jooby/Sender.java b/jooby/src/main/java/io/jooby/Sender.java index a5dae5fb97..7db97c811d 100644 --- a/jooby/src/main/java/io/jooby/Sender.java +++ b/jooby/src/main/java/io/jooby/Sender.java @@ -69,7 +69,7 @@ interface Callback { * @param callback Callback. * @return This sender. */ - @NonNull default Sender write(@NonNull String data, @NonNull Callback callback) { + default Sender write(@NonNull String data, @NonNull Callback callback) { return write(data, StandardCharsets.UTF_8, callback); } @@ -81,7 +81,7 @@ interface Callback { * @param callback Callback. * @return This sender. */ - @NonNull default Sender write(@NonNull String data, @NonNull Charset charset, @NonNull Callback callback) { + default Sender write(@NonNull String data, @NonNull Charset charset, @NonNull Callback callback) { return write(data.getBytes(charset), callback); } @@ -94,6 +94,13 @@ interface Callback { */ Sender write(@NonNull byte[] data, @NonNull Callback callback); + /** + * Write an output. + * + * @param output Data. + * @param callback Callback. + * @return This sender. + */ Sender write(@NonNull Output output, @NonNull Callback callback); /** Close the sender. */ diff --git a/jooby/src/main/java/io/jooby/Server.java b/jooby/src/main/java/io/jooby/Server.java index f61d41d8d0..ce417e143d 100644 --- a/jooby/src/main/java/io/jooby/Server.java +++ b/jooby/src/main/java/io/jooby/Server.java @@ -127,6 +127,9 @@ protected void addShutdownHook() { private ServerOptions options = new ServerOptions(true); + /** Default constructor. */ + public Base() {} + @Override public final ServerOptions getOptions() { return options; @@ -139,6 +142,12 @@ public Server setOptions(@NonNull ServerOptions options) { } } + /** + * Called once during application startup time. + * + * @param application Application being deployed. + * @return This instance. + */ default Server init(@NonNull Jooby application) { var registry = application.getServices(); var options = getOptions(); diff --git a/jooby/src/main/java/io/jooby/ServerOptions.java b/jooby/src/main/java/io/jooby/ServerOptions.java index dd4506c519..5ea3ab2a31 100644 --- a/jooby/src/main/java/io/jooby/ServerOptions.java +++ b/jooby/src/main/java/io/jooby/ServerOptions.java @@ -146,6 +146,7 @@ public class ServerOptions { this.defaults = defaults; } + /** Default constructor. */ public ServerOptions() { this(false); } @@ -240,7 +241,7 @@ public String toString() { * @param server Name of the underlying server. * @return This options. */ - public @NonNull ServerOptions setServer(@NonNull String server) { + public ServerOptions setServer(@NonNull String server) { this.server = server; return this; } @@ -250,7 +251,7 @@ public String toString() { * * @return Server name. */ - public @NonNull String getServer() { + public String getServer() { return server; } @@ -410,15 +411,26 @@ public boolean getDefaultHeaders() { * @param defaultHeaders True for enabled. * @return This options. */ - public @NonNull ServerOptions setDefaultHeaders(boolean defaultHeaders) { + public ServerOptions setDefaultHeaders(boolean defaultHeaders) { this.defaultHeaders = defaultHeaders; return this; } + /** + * Output options. Control what type of buffer is used and default size. + * + * @return Output options. Control what type of buffer is used and default size. + */ public OutputOptions getOutput() { return output; } + /** + * Set output options. + * + * @param output Options. + * @return This instance. + */ public ServerOptions setOutput(@NonNull OutputOptions output) { this.output = output; return this; diff --git a/jooby/src/main/java/io/jooby/ServiceKey.java b/jooby/src/main/java/io/jooby/ServiceKey.java index 44f88165dc..c24a825db3 100644 --- a/jooby/src/main/java/io/jooby/ServiceKey.java +++ b/jooby/src/main/java/io/jooby/ServiceKey.java @@ -37,11 +37,16 @@ private ServiceKey(Type type, Class rawType, String name) { * * @return Resource type. */ - public @NonNull Type getType() { + public Type getType() { return type; } - public @NonNull Class getRawType() { + /** + * Raw type in case of parameterized type. + * + * @return Raw type in case of parameterized type. + */ + public Class getRawType() { return rawType; } @@ -83,7 +88,7 @@ public String toString() { * @param Type. * @return A new resource key. */ - public static @NonNull ServiceKey key(@NonNull Class type) { + public static ServiceKey key(@NonNull Class type) { return new ServiceKey<>(type, type, null); } @@ -95,17 +100,32 @@ public String toString() { * @param Type. * @return A new resource key. */ - public static @NonNull ServiceKey key(@NonNull Class type, @NonNull String name) { + public static ServiceKey key(@NonNull Class type, @NonNull String name) { return new ServiceKey<>(type, type, name); } + /** + * Creates a named resource key. + * + * @param type Resource type. + * @param name Resource name. + * @param Type. + * @return A new resource key. + */ @SuppressWarnings("unchecked") - public static @NonNull ServiceKey key(@NonNull Reified type, @NonNull String name) { + public static ServiceKey key(@NonNull Reified type, @NonNull String name) { return new ServiceKey<>(type.getType(), (Class) type.getRawType(), name); } + /** + * Creates a resource key. + * + * @param type Resource type. + * @param Type. + * @return A new resource key. + */ @SuppressWarnings("unchecked") - public static @NonNull ServiceKey key(@NonNull Reified type) { + public static ServiceKey key(@NonNull Reified type) { return new ServiceKey<>(type.getType(), (Class) type.getRawType(), null); } } diff --git a/jooby/src/main/java/io/jooby/ServiceRegistry.java b/jooby/src/main/java/io/jooby/ServiceRegistry.java index 795a1b9362..fe0cd78ba2 100644 --- a/jooby/src/main/java/io/jooby/ServiceRegistry.java +++ b/jooby/src/main/java/io/jooby/ServiceRegistry.java @@ -22,6 +22,12 @@ */ public interface ServiceRegistry extends Registry { + /** + * Map binder, allow to partially register map entries. + * + * @param Map key. + * @param Map value. + */ class MapBinder implements Provider> { private final Map> services; @@ -29,10 +35,24 @@ private MapBinder() { this.services = new HashMap<>(); } + /** + * Put a service into a map. + * + * @param key Key. + * @param service Service value. + * @return This binder. + */ public MapBinder put(K key, V service) { return put(key, () -> service); } + /** + * Put a service into a map. + * + * @param key Key. + * @param service Service value. + * @return This binder. + */ public MapBinder put(K key, Provider service) { services.put(key, service); return this; @@ -45,6 +65,11 @@ public Map get() { } } + /** + * List/Set binder, allow to partially register service and fetch them all as list/set. + * + * @param Item type. + */ abstract class MultiBinder implements Provider> { protected final Collection> services; @@ -52,10 +77,22 @@ private MultiBinder(Collection> services) { this.services = services; } + /** + * Add a service to final list. + * + * @param service Service to add. + * @return This binder. + */ public MultiBinder add(T service) { return add(() -> service); } + /** + * Add a service to final list. + * + * @param service Service to add. + * @return This binder. + */ public MultiBinder add(Provider service) { services.add(service); return this; @@ -87,14 +124,14 @@ public Set get() { * * @return Service keys. */ - @NonNull Set> keySet(); + Set> keySet(); /** * Registered service entries. * * @return Service entries. */ - @NonNull Set, Provider>> entrySet(); + Set, Provider>> entrySet(); /** * Retrieve a service/resource by key. @@ -104,7 +141,7 @@ public Set get() { * @return Service. * @throws RegistryException If there was a runtime failure while providing an instance. */ - default @NonNull T get(@NonNull ServiceKey key) { + default T get(@NonNull ServiceKey key) { T service = getOrNull(key); if (service == null) { throw new RegistryException("Service not found: " + key); @@ -120,7 +157,7 @@ public Set get() { * @return Service. * @throws RegistryException If there was a runtime failure while providing an instance. */ - default @NonNull T get(@NonNull Class type) { + default T get(@NonNull Class type) { return get(ServiceKey.key(type)); } @@ -132,7 +169,7 @@ public Set get() { * @return Service. * @throws RegistryException If there was a runtime failure while providing an instance. */ - default @NonNull T get(@NonNull Reified type) { + default T get(@NonNull Reified type) { return get(ServiceKey.key(type)); } @@ -167,35 +204,78 @@ public Set get() { */ @Nullable T getOrNull(@NonNull ServiceKey key); - default @NonNull MultiBinder listOf(@NonNull Class type) { - return multibinder(Reified.list(type), MultiBinder.list()); + /** + * List binder. You can gradually add service of the same type and retrieve them all as list. + * + * @param type Type. + * @return A new list binder. + * @param Service type. + */ + default MultiBinder listOf(@NonNull Class type) { + return multiBinder(Reified.list(type), MultiBinder.list()); } - default @NonNull MultiBinder listOf(@NonNull Reified type) { - return multibinder(Reified.list(type.getType()), MultiBinder.list()); + /** + * List binder. You can gradually add service of the same type and retrieve them all as list. + * + * @param type Type. + * @return A new list binder. + * @param Service type. + */ + default MultiBinder listOf(@NonNull Reified type) { + return multiBinder(Reified.list(type.getType()), MultiBinder.list()); } - default @NonNull MultiBinder setOf(@NonNull Class type) { - return multibinder(Reified.set(type), MultiBinder.set()); + /** + * Set binder. You can gradually add service of the same type and retrieve them all as set. + * + * @param type Type. + * @return A new set binder. + * @param Service type. + */ + default MultiBinder setOf(@NonNull Class type) { + return multiBinder(Reified.set(type), MultiBinder.set()); } - default @NonNull MultiBinder setOf(@NonNull Reified type) { - return multibinder(Reified.set(type.getType()), MultiBinder.set()); + /** + * Set binder. You can gradually add service of the same type and retrieve them all as set. + * + * @param type Type. + * @return A new set binder. + * @param Service type. + */ + default MultiBinder setOf(@NonNull Reified type) { + return multiBinder(Reified.set(type.getType()), MultiBinder.set()); } - default @NonNull MapBinder mapOf( - @NonNull Class keyType, @NonNull Class valueType) { - return multibinder(Reified.map(keyType, valueType), new MapBinder<>()); + /** + * Map binder. You can gradually put service of the same type and retrieve them all as map. + * + * @param keyType Key Type. + * @param valueType Service Type. + * @return A new map binder. + * @param Key type. + * @param Service type. + */ + default MapBinder mapOf(@NonNull Class keyType, @NonNull Class valueType) { + return multiBinder(Reified.map(keyType, valueType), new MapBinder<>()); } - default @NonNull MapBinder mapOf( - @NonNull Class keyType, @NonNull Reified valueType) { - return multibinder(Reified.map(keyType, valueType.getType()), new MapBinder<>()); + /** + * Map binder. You can gradually put service of the same type and retrieve them all as map. + * + * @param keyType Key Type. + * @param valueType Service Type. + * @return A new map binder. + * @param Key type. + * @param Service type. + */ + default MapBinder mapOf(@NonNull Class keyType, @NonNull Reified valueType) { + return multiBinder(Reified.map(keyType, valueType.getType()), new MapBinder<>()); } @SuppressWarnings({"rawtypes", "unchecked"}) - private @NonNull

    P multibinder( - @NonNull Reified reified, @NonNull P multibinder) { + private

    P multiBinder(@NonNull Reified reified, @NonNull P multibinder) { ServiceKey key = ServiceKey.key(reified); var existing = putIfAbsent(key, multibinder); if (existing != null) { @@ -326,15 +406,15 @@ public Set get() { */ @Nullable T putIfAbsent(@NonNull ServiceKey key, Provider service); - default @NonNull @Override T require(@NonNull Class type) { + default @Override T require(@NonNull Class type) { return get(ServiceKey.key(type)); } - default @NonNull @Override T require(@NonNull Class type, @NonNull String name) { + default @Override T require(@NonNull Class type, @NonNull String name) { return get(ServiceKey.key(type, name)); } - default @NonNull @Override T require(@NonNull ServiceKey key) throws RegistryException { + default @Override T require(@NonNull ServiceKey key) throws RegistryException { return get(key); } diff --git a/jooby/src/main/java/io/jooby/SessionStore.java b/jooby/src/main/java/io/jooby/SessionStore.java index 8c19350f46..c4dcda1229 100644 --- a/jooby/src/main/java/io/jooby/SessionStore.java +++ b/jooby/src/main/java/io/jooby/SessionStore.java @@ -27,10 +27,11 @@ public interface SessionStore { /** Default session timeout in minutes. */ int DEFAULT_TIMEOUT = 30; + /** Default session, which is the same as no session installed. */ SessionStore UNSUPPORTED = new SessionStore() { - @NonNull @Override + @Override public Session newSession(@NonNull Context ctx) { throw Usage.noSession(); } diff --git a/jooby/src/main/java/io/jooby/SslOptions.java b/jooby/src/main/java/io/jooby/SslOptions.java index 615bc4f944..aa1a8ea859 100644 --- a/jooby/src/main/java/io/jooby/SslOptions.java +++ b/jooby/src/main/java/io/jooby/SslOptions.java @@ -83,6 +83,9 @@ public enum ClientAuth { private SSLContext sslContext; + /** Default constructor. */ + public SslOptions() {} + /** * Certificate type. Default is {@link #PKCS12}. * diff --git a/jooby/src/main/java/io/jooby/StartupSummary.java b/jooby/src/main/java/io/jooby/StartupSummary.java index 64cadfa628..cffcc33ba0 100644 --- a/jooby/src/main/java/io/jooby/StartupSummary.java +++ b/jooby/src/main/java/io/jooby/StartupSummary.java @@ -98,5 +98,11 @@ static StartupSummary create(String value) { }; } + /** + * Log application summary. + * + * @param application Application. + * @param server Server. + */ void log(Jooby application, Server server); } diff --git a/jooby/src/main/java/io/jooby/StatusCode.java b/jooby/src/main/java/io/jooby/StatusCode.java index 0fa38d792c..1dd1e9b1c5 100644 --- a/jooby/src/main/java/io/jooby/StatusCode.java +++ b/jooby/src/main/java/io/jooby/StatusCode.java @@ -923,6 +923,8 @@ private StatusCode(final int value, final String reason) { } /** + * Return the integer value of this status code. + * * @return Return the integer value of this status code. */ public int value() { @@ -930,13 +932,19 @@ public int value() { } /** + * Return the reason phrase of this status code. + * * @return the reason phrase of this status code. */ public String reason() { return reason; } - /** Return a string representation of this status code. */ + /** + * Return a string representation of this status code. + * + * @return Return a string representation of this status code. + */ @Override public String toString() { return reason() + " (" + value + ")"; diff --git a/jooby/src/main/java/io/jooby/Usage.java b/jooby/src/main/java/io/jooby/Usage.java index 171fe1874c..17d355a8a9 100644 --- a/jooby/src/main/java/io/jooby/Usage.java +++ b/jooby/src/main/java/io/jooby/Usage.java @@ -38,22 +38,13 @@ protected Usage(@NonNull String message) { super(message); } - public static @NonNull Usage noSession() { - return new Usage("No session available. See https://jooby.io/#session-in-memory-session"); - } - /** - * Creates a mvc route missing exception. + * Occurs when trying to access a session which was not configured. * - * @param mvcRoute Mvc route. - * @return Usage exception. + * @return No session present error mesage. */ - public static @NonNull Usage mvcRouterNotFound(@NonNull Class mvcRoute) { - return apt( - "Router not found: `" - + mvcRoute.getName() - + "`. Make sure Jooby annotation processor is configured properly.", - "router-not-found"); + public static Usage noSession() { + return new Usage("No session available. See https://jooby.io/#session-in-memory-session"); } /** @@ -63,7 +54,7 @@ protected Usage(@NonNull String message) { * @param parameter Parameter. * @return Usage exception. */ - public static @NonNull Usage parameterNameNotPresent(@NonNull Parameter parameter) { + public static Usage parameterNameNotPresent(@NonNull Parameter parameter) { Executable executable = parameter.getDeclaringExecutable(); int p = Stream.of(executable.getParameters()).toList().indexOf(parameter); String message = @@ -74,8 +65,4 @@ protected Usage(@NonNull String message) { + ". Parameter's name is missing"; return new Usage(message, "bean-converter-parameter-name-missing"); } - - private static Usage apt(String message, String id) { - return new Usage(message, "annotation-processing-tool-" + id); - } } diff --git a/jooby/src/main/java/io/jooby/WebSocket.java b/jooby/src/main/java/io/jooby/WebSocket.java index 6ca0f0f5a6..21e70f4c56 100644 --- a/jooby/src/main/java/io/jooby/WebSocket.java +++ b/jooby/src/main/java/io/jooby/WebSocket.java @@ -55,7 +55,13 @@ interface Initializer { void init(@NonNull Context ctx, @NonNull WebSocketConfigurer configurer); } + /** Web socket route handler. */ interface Handler extends Route.Handler { + /** + * Web socket initializer. + * + * @return Web socket initializer. + */ Initializer getInitializer(); } @@ -112,6 +118,7 @@ interface OnError { /** Callback for sending messages. */ interface WriteCallback { + /** NOOP callback. */ WriteCallback NOOP = (ws, cause) -> {}; /** @@ -141,7 +148,7 @@ interface WriteCallback { * * @return Context attributes. */ - default @NonNull Map getAttributes() { + default Map getAttributes() { return getContext().getAttributes(); } @@ -153,7 +160,7 @@ interface WriteCallback { * @param Attribute type. * @return Attribute value. */ - default @NonNull T attribute(@NonNull String key) { + default T attribute(@NonNull String key) { return getContext().getAttribute(key); } @@ -164,7 +171,7 @@ interface WriteCallback { * @param value Attribute value. * @return This router. */ - default @NonNull WebSocket attribute(@NonNull String key, Object value) { + default WebSocket attribute(@NonNull String key, Object value) { getContext().setAttribute(key, value); return this; } @@ -205,7 +212,7 @@ interface WriteCallback { * @param message Text Message. * @return This websocket. */ - default @NonNull WebSocket send(@NonNull String message) { + default WebSocket send(@NonNull String message) { return send(message, WriteCallback.NOOP); } @@ -224,7 +231,7 @@ interface WriteCallback { * @param message Text Message. * @return This websocket. */ - default @NonNull WebSocket send(@NonNull byte[] message) { + default WebSocket send(@NonNull byte[] message) { return send(message, WriteCallback.NOOP); } @@ -235,21 +242,47 @@ interface WriteCallback { * @param callback Write callback. * @return This websocket. */ - default @NonNull WebSocket send(@NonNull byte[] message, @NonNull WriteCallback callback) { + default WebSocket send(byte[] message, @NonNull WriteCallback callback) { return send(ByteBuffer.wrap(message), callback); } - default @NonNull WebSocket send(@NonNull ByteBuffer message) { + /** + * Send a text message to client. + * + * @param message Text message. + * @return This instance. + */ + default WebSocket send(@NonNull ByteBuffer message) { return send(message, WriteCallback.NOOP); } - @NonNull WebSocket send(@NonNull ByteBuffer message, @NonNull WriteCallback callback); + /** + * Send a text message to client. + * + * @param message Text message. + * @param callback Write callback. + * @return This instance. + */ + WebSocket send(@NonNull ByteBuffer message, @NonNull WriteCallback callback); - default @NonNull WebSocket send(@NonNull Output message) { + /** + * Send a text message to client. + * + * @param message Text message. + * @return This instance. + */ + default WebSocket send(@NonNull Output message) { return send(message, WriteCallback.NOOP); } - @NonNull WebSocket send(@NonNull Output message, @NonNull WriteCallback callback); + /** + * Send a text message to client. + * + * @param message Text message. + * @param callback Write callback. + * @return This instance. + */ + WebSocket send(@NonNull Output message, @NonNull WriteCallback callback); /** * Send a binary message to client. @@ -257,7 +290,7 @@ interface WriteCallback { * @param message Binary Message. * @return This websocket. */ - default @NonNull WebSocket sendBinary(@NonNull String message) { + default WebSocket sendBinary(@NonNull String message) { return sendBinary(message, WriteCallback.NOOP); } @@ -276,7 +309,7 @@ interface WriteCallback { * @param message Binary Message. * @return This websocket. */ - default @NonNull WebSocket sendBinary(@NonNull byte[] message) { + default WebSocket sendBinary(@NonNull byte[] message) { return sendBinary(message, WriteCallback.NOOP); } @@ -287,21 +320,47 @@ interface WriteCallback { * @param callback Write callback. * @return This websocket. */ - default @NonNull WebSocket sendBinary(@NonNull byte[] message, @NonNull WriteCallback callback) { + default WebSocket sendBinary(@NonNull byte[] message, @NonNull WriteCallback callback) { return sendBinary(ByteBuffer.wrap(message), callback); } - default @NonNull WebSocket sendBinary(@NonNull ByteBuffer message) { + /** + * Send a binary message to client. + * + * @param message Binary message. + * @return This instance. + */ + default WebSocket sendBinary(@NonNull ByteBuffer message) { return sendBinary(message, WriteCallback.NOOP); } - @NonNull WebSocket sendBinary(@NonNull ByteBuffer message, @NonNull WriteCallback callback); + /** + * Send a binary message to client. + * + * @param message Binary message. + * @param callback Write callback. + * @return This instance. + */ + WebSocket sendBinary(@NonNull ByteBuffer message, @NonNull WriteCallback callback); - default @NonNull WebSocket sendBinary(@NonNull Output message) { + /** + * Send a binary message to client. + * + * @param message Binary message. + * @return This instance. + */ + default WebSocket sendBinary(@NonNull Output message) { return sendBinary(message, WriteCallback.NOOP); } - @NonNull WebSocket sendBinary(@NonNull Output message, @NonNull WriteCallback callback); + /** + * Send a binary message to client. + * + * @param message Binary message. + * @param callback Write callback. + * @return This instance. + */ + WebSocket sendBinary(@NonNull Output message, @NonNull WriteCallback callback); /** * Encode a value and send a text message to client. @@ -309,7 +368,7 @@ interface WriteCallback { * @param value Value to send. * @return This websocket. */ - default @NonNull WebSocket render(@NonNull Object value) { + default WebSocket render(@NonNull Object value) { return render(value, WriteCallback.NOOP); } @@ -320,7 +379,7 @@ interface WriteCallback { * @param callback Write callback. * @return This websocket. */ - @NonNull WebSocket render(@NonNull Object value, @NonNull WriteCallback callback); + WebSocket render(@NonNull Object value, @NonNull WriteCallback callback); /** * Encode a value and send a binary message to client. @@ -328,7 +387,7 @@ interface WriteCallback { * @param value Value to send. * @return This websocket. */ - default @NonNull WebSocket renderBinary(@NonNull Object value) { + default WebSocket renderBinary(@NonNull Object value) { return renderBinary(value, WriteCallback.NOOP); } @@ -339,7 +398,7 @@ interface WriteCallback { * @param callback Write callback. * @return This websocket. */ - @NonNull WebSocket renderBinary(@NonNull Object value, @NonNull WriteCallback callback); + WebSocket renderBinary(@NonNull Object value, @NonNull WriteCallback callback); /** * Close the web socket and send a {@link WebSocketCloseStatus#NORMAL} code to client. @@ -348,7 +407,7 @@ interface WriteCallback { * * @return This websocket. */ - default @NonNull WebSocket close() { + default WebSocket close() { return close(WebSocketCloseStatus.NORMAL); } @@ -360,5 +419,5 @@ interface WriteCallback { * @param closeStatus Close status. * @return This websocket. */ - @NonNull WebSocket close(@NonNull WebSocketCloseStatus closeStatus); + WebSocket close(@NonNull WebSocketCloseStatus closeStatus); } diff --git a/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java b/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java index 0312a1b0ca..c4cca60c8f 100644 --- a/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java +++ b/jooby/src/main/java/io/jooby/annotation/OpenApiRegister.java @@ -24,6 +24,10 @@ @Retention(RetentionPolicy.RUNTIME) public @interface OpenApiRegister { - /** List of MVC controller class names to register for openapi generation */ + /** + * List of MVC controller class names to register for openapi generation + * + * @return MVC controller classes. + */ Class[] value(); } diff --git a/jooby/src/main/java/io/jooby/annotation/Path.java b/jooby/src/main/java/io/jooby/annotation/Path.java index 6c1648c87d..d0a3269f4f 100644 --- a/jooby/src/main/java/io/jooby/annotation/Path.java +++ b/jooby/src/main/java/io/jooby/annotation/Path.java @@ -58,6 +58,8 @@ @Target({ElementType.TYPE, ElementType.METHOD}) public @interface Path { /** + * Route path pattern. + * * @return Route path pattern. */ String[] value(); diff --git a/jooby/src/main/java/io/jooby/exception/MethodNotAllowedException.java b/jooby/src/main/java/io/jooby/exception/MethodNotAllowedException.java index d73859c1d5..c75efbec18 100644 --- a/jooby/src/main/java/io/jooby/exception/MethodNotAllowedException.java +++ b/jooby/src/main/java/io/jooby/exception/MethodNotAllowedException.java @@ -19,6 +19,7 @@ * @author edgar */ public class MethodNotAllowedException extends StatusCodeException { + /** List of allowed methods. */ private final List allow; /** @@ -51,7 +52,7 @@ public List getAllow() { } @Override - public @NonNull HttpProblem toHttpProblem() { + public HttpProblem toHttpProblem() { return HttpProblem.valueOf( statusCode, statusCode.reason(), diff --git a/jooby/src/main/java/io/jooby/exception/MissingValueException.java b/jooby/src/main/java/io/jooby/exception/MissingValueException.java index 4c363cf144..62d3bd9f03 100644 --- a/jooby/src/main/java/io/jooby/exception/MissingValueException.java +++ b/jooby/src/main/java/io/jooby/exception/MissingValueException.java @@ -15,6 +15,7 @@ * @author edgar */ public class MissingValueException extends BadRequestException { + /** Parameter/field name. */ private final String name; /** diff --git a/jooby/src/main/java/io/jooby/exception/StatusCodeException.java b/jooby/src/main/java/io/jooby/exception/StatusCodeException.java index ed6b8e5128..7c33caffb9 100644 --- a/jooby/src/main/java/io/jooby/exception/StatusCodeException.java +++ b/jooby/src/main/java/io/jooby/exception/StatusCodeException.java @@ -18,7 +18,7 @@ * @since 2.0.0 */ public class StatusCodeException extends RuntimeException implements HttpProblemMappable { - + /** The HTTP status code. */ protected final StatusCode statusCode; /** diff --git a/jooby/src/main/java/io/jooby/exception/TypeMismatchException.java b/jooby/src/main/java/io/jooby/exception/TypeMismatchException.java index 440350761a..b170055601 100644 --- a/jooby/src/main/java/io/jooby/exception/TypeMismatchException.java +++ b/jooby/src/main/java/io/jooby/exception/TypeMismatchException.java @@ -17,6 +17,7 @@ * @author edgar */ public class TypeMismatchException extends BadRequestException { + /** Parameter/field name. */ private final String name; /** diff --git a/jooby/src/main/java/io/jooby/handler/AssetHandler.java b/jooby/src/main/java/io/jooby/handler/AssetHandler.java index 3c5029508a..115c92216f 100644 --- a/jooby/src/main/java/io/jooby/handler/AssetHandler.java +++ b/jooby/src/main/java/io/jooby/handler/AssetHandler.java @@ -32,12 +32,15 @@ public class AssetHandler implements Route.Handler { private final AssetSource[] sources; + /** Cache control defaults value. */ private final CacheControl defaults = CacheControl.defaults(); private String filekey; + /** File to fallback in case of not found matching path. */ private String fallback; + /** Cache control function. */ private Function cacheControl = path -> defaults; private Function mediaTypeResolver = Asset::getContentType; diff --git a/jooby/src/main/java/io/jooby/handler/TraceHandler.java b/jooby/src/main/java/io/jooby/handler/TraceHandler.java index 2c2b0834ca..06e972187b 100644 --- a/jooby/src/main/java/io/jooby/handler/TraceHandler.java +++ b/jooby/src/main/java/io/jooby/handler/TraceHandler.java @@ -22,7 +22,10 @@ public class TraceHandler implements Route.Filter { private static final String CRLF = "\r\n"; - @NonNull @Override + /** Default constructor. */ + public TraceHandler() {} + + @Override public Route.Handler apply(@NonNull Route.Handler next) { return ctx -> { if (ctx.getMethod().equals(Router.TRACE)) { diff --git a/jooby/src/main/java/io/jooby/output/OutputFactory.java b/jooby/src/main/java/io/jooby/output/OutputFactory.java index 167e4c259d..bbc6b5da3f 100644 --- a/jooby/src/main/java/io/jooby/output/OutputFactory.java +++ b/jooby/src/main/java/io/jooby/output/OutputFactory.java @@ -64,6 +64,11 @@ default BufferedOutput allocate(int size) { return allocate(getOptions().isDirectBuffers(), size); } + /** + * Allocate a buffered output, using the default {@link #getOptions()}. + * + * @return A new buffered. + */ default BufferedOutput allocate() { return allocate(getOptions().isDirectBuffers(), getOptions().getSize()); } diff --git a/jooby/src/main/java/io/jooby/output/OutputOptions.java b/jooby/src/main/java/io/jooby/output/OutputOptions.java index a3b67784fe..3ca19ecdd1 100644 --- a/jooby/src/main/java/io/jooby/output/OutputOptions.java +++ b/jooby/src/main/java/io/jooby/output/OutputOptions.java @@ -51,6 +51,11 @@ public static OutputOptions small() { return new OutputOptions().setDirectBuffers(false).setSize(512); } + /** + * Default options. + * + * @return Default options. + */ public static OutputOptions defaults() { return new OutputOptions(); } diff --git a/jooby/src/main/java/io/jooby/problem/HttpProblem.java b/jooby/src/main/java/io/jooby/problem/HttpProblem.java index b3c3f764b5..75ec28320d 100644 --- a/jooby/src/main/java/io/jooby/problem/HttpProblem.java +++ b/jooby/src/main/java/io/jooby/problem/HttpProblem.java @@ -333,56 +333,112 @@ public static class Builder { Builder() {} + /** + * URI type. + * + * @param type URI type. + * @return This builder. + */ public Builder type(@Nullable final URI type) { this.type = type; return this; } + /** + * Error's title. + * + * @param title Error's title. + * @return This builder. + */ public Builder title(final String title) { this.title = title; return this; } + /** + * Status Code. + * + * @param status Status Code. + * @return This builder. + */ public Builder status(final StatusCode status) { this.status = status.value(); return this; } + /** + * Error detail. + * + * @param detail Error detail. + * @return This builder. + */ public Builder detail(@Nullable final String detail) { this.detail = detail; return this; } + /** + * Set instance URI. + * + * @param instance Instance URI. + * @return This builder. + */ public Builder instance(@Nullable final URI instance) { this.instance = instance; return this; } - public Builder header(String headerName, Object value) { - headers.put(headerName, value); + /** + * Set a header value. + * + * @param name Header's name. + * @param value Headers' value. + * @return This builder. + */ + public Builder header(String name, Object value) { + headers.put(name, value); return this; } + /** + * Add one the error. + * + * @param error Error to add. + * @return This builder. + */ public Builder error(final Error error) { errors.add(error); return this; } + /** + * Add all the errors. + * + * @param errors Errors to add. + * @return This builder. + */ public Builder errors(final List errors) { this.errors.addAll(errors); return this; } /** - * @param key additional info parameter name + * Set a custom parameter. + * + * @param name additional info parameter name * @param value additional info parameter value * @return this for chaining */ - public Builder param(final String key, @Nullable final Object value) { - parameters.put(key, value); + public Builder param(final String name, @Nullable final Object value) { + parameters.put(name, value); return this; } + /** + * Build a problem. + * + * @return A new problem. + */ public HttpProblem build() { if (this.title == null || this.title.isEmpty() || this.title.isBlank()) { throw new RuntimeException("The problem 'title' should be specified"); diff --git a/jooby/src/main/java/io/jooby/problem/HttpProblemMappable.java b/jooby/src/main/java/io/jooby/problem/HttpProblemMappable.java index c845205dec..8fc069c300 100644 --- a/jooby/src/main/java/io/jooby/problem/HttpProblemMappable.java +++ b/jooby/src/main/java/io/jooby/problem/HttpProblemMappable.java @@ -16,5 +16,10 @@ * @since 3.4.2 */ public interface HttpProblemMappable { + /** + * Get a {@link HttpProblem} instance. + * + * @return A {@link HttpProblem} instance. + */ @NonNull HttpProblem toHttpProblem(); } diff --git a/jooby/src/main/java/io/jooby/problem/ProblemDetailsHandler.java b/jooby/src/main/java/io/jooby/problem/ProblemDetailsHandler.java index 82cdecbd85..674ca78ac9 100644 --- a/jooby/src/main/java/io/jooby/problem/ProblemDetailsHandler.java +++ b/jooby/src/main/java/io/jooby/problem/ProblemDetailsHandler.java @@ -35,11 +35,22 @@ public class ProblemDetailsHandler extends DefaultErrorHandler { private static final String MUTE_TYPES_KEY = "muteTypes"; private static final String LOG_4XX_ERRORS_KEY = "log4xxErrors"; + /** Root config path constant. */ public static final String ROOT_CONFIG_PATH = "problem.details"; + + /** Root config path constant for enabling/disabling. */ public static final String ENABLED_KEY = ROOT_CONFIG_PATH + ".enabled"; private boolean log4xxErrors; + /** Default constructor. */ + public ProblemDetailsHandler() {} + + /** + * Enabled logging of 4xx errors. + * + * @return This handler. + */ public ProblemDetailsHandler log4xxErrors() { this.log4xxErrors = true; return this; diff --git a/jooby/src/main/java/io/jooby/validation/ValidationContext.java b/jooby/src/main/java/io/jooby/validation/ValidationContext.java index 28c93794c4..8293974527 100644 --- a/jooby/src/main/java/io/jooby/validation/ValidationContext.java +++ b/jooby/src/main/java/io/jooby/validation/ValidationContext.java @@ -26,7 +26,7 @@ */ public class ValidationContext extends ForwardingContext { - public static class ValidatedValue extends ForwardingValue { + private static class ValidatedValue extends ForwardingValue { protected final Context ctx; public ValidatedValue(Context ctx, Value delegate) { @@ -61,7 +61,7 @@ public Set toSet(@NonNull Class type) { } } - public static class ValidatedBody extends ValidatedValue implements Body { + private static class ValidatedBody extends ValidatedValue implements Body { public ValidatedBody(Context ctx, Body body) { super(ctx, body); } @@ -109,7 +109,7 @@ public T toNullable(@NonNull Type type) { } } - public static class ValidatedQueryString extends ValidatedValue implements QueryString { + private static class ValidatedQueryString extends ValidatedValue implements QueryString { public ValidatedQueryString(Context ctx, QueryString delegate) { super(ctx, delegate); } @@ -125,7 +125,7 @@ public String queryString() { } } - public static class ValidatedFormdata extends ValidatedValue implements Formdata { + private static class ValidatedFormdata extends ValidatedValue implements Formdata { public ValidatedFormdata(Context ctx, Formdata delegate) { super(ctx, delegate); } diff --git a/jooby/src/main/java/io/jooby/validation/ValidationResult.java b/jooby/src/main/java/io/jooby/validation/ValidationResult.java index 90696982a8..a7e001aa34 100644 --- a/jooby/src/main/java/io/jooby/validation/ValidationResult.java +++ b/jooby/src/main/java/io/jooby/validation/ValidationResult.java @@ -9,18 +9,28 @@ import java.util.List; import edu.umd.cs.findbugs.annotations.NonNull; +import edu.umd.cs.findbugs.annotations.Nullable; import io.jooby.StatusCode; import io.jooby.problem.HttpProblem; import io.jooby.problem.HttpProblemMappable; +/** Result of bean validator. Works a wrapper between validation results of external frameworks. */ public class ValidationResult implements HttpProblemMappable { private String title; private int status; private List errors; + /** Default constructor. */ public ValidationResult() {} + /** + * Creates a validation result. + * + * @param title Error title. + * @param status Error status code. + * @param errors Collection of offending checks. + */ public ValidationResult(String title, int status, List errors) { this.title = title; this.status = status; @@ -47,21 +57,47 @@ private List convertErrors() { return problemErrors; } - public record Error(String field, List messages, ErrorType type) {} + /** + * Error message, common contract to render/serialize. + * + * @param field Field might be null. + * @param messages Messages. + * @param type Error type. + */ + public record Error( + @Nullable String field, @NonNull List messages, @NonNull ErrorType type) {} + /** Error type, describe when it is a generic/global error or specific/field error. */ public enum ErrorType { + /** Error is on field. */ FIELD, + /** Error isn't on specific field. */ GLOBAL } + /** + * Result title. + * + * @return Result title. + */ public String getTitle() { return title; } + /** + * Result status code. + * + * @return Result status code. + */ public int getStatus() { return status; } + /** + * Offending errors. + * + * @return Offending errors. + */ public List getErrors() { return errors; } diff --git a/jooby/src/main/java/io/jooby/value/ReflectiveBeanConverter.java b/jooby/src/main/java/io/jooby/value/ReflectiveBeanConverter.java index bfbf2338ac..be187abb13 100644 --- a/jooby/src/main/java/io/jooby/value/ReflectiveBeanConverter.java +++ b/jooby/src/main/java/io/jooby/value/ReflectiveBeanConverter.java @@ -51,6 +51,7 @@ public void invoke(MethodHandles.Lookup lookup, Object instance) throws Throwabl /** * Creates a new instance using a lookup. * + * @param factory Value factory. * @param lookup Method handle lookup. */ public ReflectiveBeanConverter(ValueFactory factory, MethodHandles.Lookup lookup) { @@ -156,7 +157,7 @@ private static Constructor selectConstructor(Constructor[] constructors) { } } - public static List inject( + private static List inject( ValueFactory factory, Value scope, Executable method, Consumer state) { var parameters = method.getParameters(); if (parameters.length == 0) { diff --git a/jooby/src/main/java/io/jooby/value/StandardConverter.java b/jooby/src/main/java/io/jooby/value/StandardConverter.java index 595853257b..4d50bafd70 100644 --- a/jooby/src/main/java/io/jooby/value/StandardConverter.java +++ b/jooby/src/main/java/io/jooby/value/StandardConverter.java @@ -31,7 +31,9 @@ import io.jooby.SneakyThrows; import io.jooby.StatusCode; +/** Collection of built-in/standard value converters. */ public enum StandardConverter implements Converter { + /** Convert a value to string. */ String { @Override protected void add(ValueFactory factory) { @@ -43,6 +45,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return value.valueOrNull(); } }, + /** Convert a value to int/Integer. */ Int { @Override protected void add(ValueFactory factory) { @@ -58,6 +61,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return value.isMissing() ? null : value.intValue(); } }, + /** Convert a value to long/Long. */ Long { @Override protected void add(ValueFactory factory) { @@ -73,6 +77,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return value.isMissing() ? null : value.longValue(); } }, + /** Convert a value to float/Float. */ Float { @Override protected void add(ValueFactory factory) { @@ -88,6 +93,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return value.isMissing() ? null : value.floatValue(); } }, + /** Convert a value to double/Double. */ Double { @Override protected void add(ValueFactory factory) { @@ -103,6 +109,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return value.isMissing() ? null : value.doubleValue(); } }, + /** Convert a value to boolean/Boolean. */ Boolean { @Override protected void add(ValueFactory factory) { @@ -118,6 +125,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return value.isMissing() ? null : value.booleanValue(); } }, + /** Convert a value to byte/Byte. */ Byte { @Override protected void add(ValueFactory factory) { @@ -133,6 +141,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return value.isMissing() ? null : value.byteValue(); } }, + /** Convert a value to BigDecimal. */ BigDecimal { @Override protected void add(ValueFactory factory) { @@ -144,6 +153,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return new BigDecimal(value.value()); } }, + /** Convert a value to BigInteger. */ BigInteger { @Override protected void add(ValueFactory factory) { @@ -155,6 +165,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return new BigInteger(value.value()); } }, + /** Convert a value to Charset. */ Charset { @Override protected void add(ValueFactory factory) { @@ -175,6 +186,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers }; } }, + /** Convert a value to Date. */ Date { @Override protected void add(ValueFactory factory) { @@ -193,6 +205,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers } } }, + /** Convert a value to Duration. */ Duration { @Override protected void add(ValueFactory factory) { @@ -259,6 +272,7 @@ private static long parseDuration(String value) { } } }, + /** Convert a value to Period. */ Period { @Override protected void add(ValueFactory factory) { @@ -326,6 +340,7 @@ private static Period periodOf(int n, ChronoUnit unit) { }; } }, + /** Convert a value to Instant. */ Instant { @Override protected void add(ValueFactory factory) { @@ -341,6 +356,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers } } }, + /** Convert a value to LocalDate. */ LocalDate { @Override protected void add(ValueFactory factory) { @@ -359,6 +375,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers } } }, + /** Convert a value to LocalDateTime. */ LocalDateTime { @Override protected void add(ValueFactory factory) { @@ -377,6 +394,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers } } }, + /** Convert a value to StatusCode. */ StatusCode { @Override protected void add(ValueFactory factory) { @@ -388,6 +406,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return io.jooby.StatusCode.valueOf(value.intValue()); } }, + /** Convert a value to TimeZone. */ TimeZone { @Override protected void add(ValueFactory factory) { @@ -399,6 +418,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return java.util.TimeZone.getTimeZone(value.value()); } }, + /** Convert a value to URI. */ URI { @Override protected void add(ValueFactory factory) { @@ -418,6 +438,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers } } }, + /** Convert a value to UUID. */ UUID { @Override protected void add(ValueFactory factory) { @@ -429,6 +450,7 @@ public Object convert(@NonNull Type type, @NonNull Value value, @NonNull Convers return java.util.UUID.fromString(value.value()); } }, + /** Convert a value to ZoneId. */ ZoneId { @Override protected void add(ValueFactory factory) { @@ -454,6 +476,11 @@ private static String getUnits(String s) { protected abstract void add(ValueFactory factory); + /** + * Add all the standard converter to a ValueFactory. + * + * @param factory Source value factory. + */ public static void register(ValueFactory factory) { for (var converter : values()) { converter.add(factory); diff --git a/pom.xml b/pom.xml index ea75b3e75d..a61ef83868 100644 --- a/pom.xml +++ b/pom.xml @@ -203,6 +203,8 @@ ${project.version} ${jooby.version} io.jooby.internal.* + false + false 21 21 @@ -1686,8 +1688,6 @@ public true ${maven.compiler.release} - false - false @@ -1722,27 +1722,6 @@ - - - org.apache.maven.plugins - maven-javadoc-plugin - ${maven-javadoc-plugin.version} - - ${javadoc.excludes} - public - false - ${maven.compiler.release} - - - - attach-javadocs - - jar - - - - - org.apache.maven.plugins From 18088ff00aa5fa89a6f64039c748cf4c042cd34c Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Mon, 27 Oct 2025 11:19:46 -0300 Subject: [PATCH 19/21] build: upgrade flyway to latest --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a61ef83868..df58a6c535 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,7 @@ 7.0.4.Final 17.1.1 3.49.6 - 11.8.2 + 11.15.0 24.3 7.0.0.RELEASE 2.12.1 From e42f9c185620ee70bf3a9439d2db2d295d7a590b Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Mon, 27 Oct 2025 12:01:24 -0300 Subject: [PATCH 20/21] v4.0.10 --- jooby/pom.xml | 2 +- modules/jooby-apt/pom.xml | 2 +- modules/jooby-avaje-inject/pom.xml | 2 +- modules/jooby-avaje-jsonb/pom.xml | 2 +- modules/jooby-avaje-validator/pom.xml | 2 +- modules/jooby-awssdk-v1/pom.xml | 2 +- modules/jooby-awssdk-v2/pom.xml | 2 +- modules/jooby-bom/pom.xml | 4 ++-- modules/jooby-caffeine/pom.xml | 2 +- modules/jooby-camel/pom.xml | 2 +- modules/jooby-cli/pom.xml | 2 +- modules/jooby-commons-email/pom.xml | 2 +- modules/jooby-conscrypt/pom.xml | 2 +- modules/jooby-db-scheduler/pom.xml | 2 +- modules/jooby-distribution/pom.xml | 2 +- modules/jooby-ebean/pom.xml | 2 +- modules/jooby-flyway/pom.xml | 2 +- modules/jooby-freemarker/pom.xml | 2 +- modules/jooby-gradle-setup/pom.xml | 2 +- modules/jooby-graphiql/pom.xml | 2 +- modules/jooby-graphql/pom.xml | 2 +- modules/jooby-gson/pom.xml | 2 +- modules/jooby-guice/pom.xml | 2 +- modules/jooby-handlebars/pom.xml | 2 +- modules/jooby-hibernate-validator/pom.xml | 2 +- modules/jooby-hibernate/pom.xml | 2 +- modules/jooby-hikari/pom.xml | 2 +- modules/jooby-jackson/pom.xml | 2 +- modules/jooby-jasypt/pom.xml | 2 +- modules/jooby-jdbi/pom.xml | 2 +- modules/jooby-jetty/pom.xml | 2 +- modules/jooby-jstachio/pom.xml | 2 +- modules/jooby-jte/pom.xml | 2 +- modules/jooby-jwt/pom.xml | 2 +- modules/jooby-kafka/pom.xml | 2 +- modules/jooby-kotlin/pom.xml | 2 +- modules/jooby-log4j/pom.xml | 2 +- modules/jooby-logback/pom.xml | 2 +- modules/jooby-maven-plugin/pom.xml | 2 +- modules/jooby-metrics/pom.xml | 2 +- modules/jooby-mutiny/pom.xml | 2 +- modules/jooby-netty/pom.xml | 2 +- modules/jooby-openapi/pom.xml | 2 +- modules/jooby-pac4j/pom.xml | 2 +- modules/jooby-pebble/pom.xml | 2 +- modules/jooby-quartz/pom.xml | 2 +- modules/jooby-reactor/pom.xml | 2 +- modules/jooby-redis/pom.xml | 2 +- modules/jooby-redoc/pom.xml | 2 +- modules/jooby-rocker/pom.xml | 2 +- modules/jooby-run/pom.xml | 2 +- modules/jooby-rxjava3/pom.xml | 2 +- modules/jooby-stork/pom.xml | 2 +- modules/jooby-swagger-ui/pom.xml | 2 +- modules/jooby-test/pom.xml | 2 +- modules/jooby-thymeleaf/pom.xml | 2 +- modules/jooby-undertow/pom.xml | 2 +- modules/jooby-vertx-mysql-client/pom.xml | 2 +- modules/jooby-vertx-pg-client/pom.xml | 2 +- modules/jooby-vertx-sql-client/pom.xml | 2 +- modules/jooby-vertx/pom.xml | 2 +- modules/jooby-whoops/pom.xml | 2 +- modules/jooby-yasson/pom.xml | 2 +- modules/pom.xml | 2 +- pom.xml | 4 ++-- tests/pom.xml | 2 +- 66 files changed, 68 insertions(+), 68 deletions(-) diff --git a/jooby/pom.xml b/jooby/pom.xml index fafc06ccfd..eb27724d42 100644 --- a/jooby/pom.xml +++ b/jooby/pom.xml @@ -6,7 +6,7 @@ io.jooby jooby-project - 4.0.10-SNAPSHOT + 4.0.10 jooby jooby diff --git a/modules/jooby-apt/pom.xml b/modules/jooby-apt/pom.xml index 11f6a28917..161f50cf0d 100644 --- a/modules/jooby-apt/pom.xml +++ b/modules/jooby-apt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-apt jooby-apt diff --git a/modules/jooby-avaje-inject/pom.xml b/modules/jooby-avaje-inject/pom.xml index 780138afc1..3f081db0f8 100644 --- a/modules/jooby-avaje-inject/pom.xml +++ b/modules/jooby-avaje-inject/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-avaje-inject jooby-avaje-inject diff --git a/modules/jooby-avaje-jsonb/pom.xml b/modules/jooby-avaje-jsonb/pom.xml index 4e90d43dee..c39fa7cd19 100644 --- a/modules/jooby-avaje-jsonb/pom.xml +++ b/modules/jooby-avaje-jsonb/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-avaje-jsonb jooby-avaje-jsonb diff --git a/modules/jooby-avaje-validator/pom.xml b/modules/jooby-avaje-validator/pom.xml index 4b6462ae8a..8c3fec4715 100644 --- a/modules/jooby-avaje-validator/pom.xml +++ b/modules/jooby-avaje-validator/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-avaje-validator jooby-avaje-validator diff --git a/modules/jooby-awssdk-v1/pom.xml b/modules/jooby-awssdk-v1/pom.xml index 6dccb6cc7d..1cf7124372 100644 --- a/modules/jooby-awssdk-v1/pom.xml +++ b/modules/jooby-awssdk-v1/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-awssdk-v1 jooby-awssdk-v1 diff --git a/modules/jooby-awssdk-v2/pom.xml b/modules/jooby-awssdk-v2/pom.xml index 07fb184ff3..d689a7be05 100644 --- a/modules/jooby-awssdk-v2/pom.xml +++ b/modules/jooby-awssdk-v2/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-awssdk-v2 jooby-awssdk-v2 diff --git a/modules/jooby-bom/pom.xml b/modules/jooby-bom/pom.xml index 82e2454db9..a0c88acd33 100644 --- a/modules/jooby-bom/pom.xml +++ b/modules/jooby-bom/pom.xml @@ -7,14 +7,14 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 io.jooby jooby-bom jooby-bom pom - 4.0.10-SNAPSHOT + 4.0.10 Jooby (Bill of Materials) https://jooby.io diff --git a/modules/jooby-caffeine/pom.xml b/modules/jooby-caffeine/pom.xml index 1a684aa765..6e5bbfd282 100644 --- a/modules/jooby-caffeine/pom.xml +++ b/modules/jooby-caffeine/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-caffeine jooby-caffeine diff --git a/modules/jooby-camel/pom.xml b/modules/jooby-camel/pom.xml index b20e054370..2d0dfd732e 100644 --- a/modules/jooby-camel/pom.xml +++ b/modules/jooby-camel/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-camel jooby-camel diff --git a/modules/jooby-cli/pom.xml b/modules/jooby-cli/pom.xml index 9314076e00..3056cd0ce2 100644 --- a/modules/jooby-cli/pom.xml +++ b/modules/jooby-cli/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-cli jooby-cli diff --git a/modules/jooby-commons-email/pom.xml b/modules/jooby-commons-email/pom.xml index 888b3c1466..750e6891bc 100644 --- a/modules/jooby-commons-email/pom.xml +++ b/modules/jooby-commons-email/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-commons-email jooby-commons-email diff --git a/modules/jooby-conscrypt/pom.xml b/modules/jooby-conscrypt/pom.xml index 0dd260e889..79daa1a24a 100644 --- a/modules/jooby-conscrypt/pom.xml +++ b/modules/jooby-conscrypt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-conscrypt jooby-conscrypt diff --git a/modules/jooby-db-scheduler/pom.xml b/modules/jooby-db-scheduler/pom.xml index faed941569..a0a135f977 100644 --- a/modules/jooby-db-scheduler/pom.xml +++ b/modules/jooby-db-scheduler/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-db-scheduler jooby-db-scheduler diff --git a/modules/jooby-distribution/pom.xml b/modules/jooby-distribution/pom.xml index d5a675b4f8..c54deeaac8 100644 --- a/modules/jooby-distribution/pom.xml +++ b/modules/jooby-distribution/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-distribution jooby-distribution diff --git a/modules/jooby-ebean/pom.xml b/modules/jooby-ebean/pom.xml index 46d97bd5ec..383ce19ff1 100644 --- a/modules/jooby-ebean/pom.xml +++ b/modules/jooby-ebean/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-ebean jooby-ebean diff --git a/modules/jooby-flyway/pom.xml b/modules/jooby-flyway/pom.xml index 66175d8acd..ef997a6380 100644 --- a/modules/jooby-flyway/pom.xml +++ b/modules/jooby-flyway/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-flyway jooby-flyway diff --git a/modules/jooby-freemarker/pom.xml b/modules/jooby-freemarker/pom.xml index feeadf2983..8ada97063c 100644 --- a/modules/jooby-freemarker/pom.xml +++ b/modules/jooby-freemarker/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-freemarker jooby-freemarker diff --git a/modules/jooby-gradle-setup/pom.xml b/modules/jooby-gradle-setup/pom.xml index 14c767666a..9eb28ea5e8 100644 --- a/modules/jooby-gradle-setup/pom.xml +++ b/modules/jooby-gradle-setup/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-gradle-setup jooby-gradle-setup diff --git a/modules/jooby-graphiql/pom.xml b/modules/jooby-graphiql/pom.xml index 452755971d..d6fda0610c 100644 --- a/modules/jooby-graphiql/pom.xml +++ b/modules/jooby-graphiql/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-graphiql jooby-graphiql diff --git a/modules/jooby-graphql/pom.xml b/modules/jooby-graphql/pom.xml index 6d170eca5e..b2f4fe88d0 100644 --- a/modules/jooby-graphql/pom.xml +++ b/modules/jooby-graphql/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-graphql jooby-graphql diff --git a/modules/jooby-gson/pom.xml b/modules/jooby-gson/pom.xml index d8da189436..ee3d823dae 100644 --- a/modules/jooby-gson/pom.xml +++ b/modules/jooby-gson/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-gson jooby-gson diff --git a/modules/jooby-guice/pom.xml b/modules/jooby-guice/pom.xml index 3ffd0d94e9..a7203f149e 100644 --- a/modules/jooby-guice/pom.xml +++ b/modules/jooby-guice/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-guice jooby-guice diff --git a/modules/jooby-handlebars/pom.xml b/modules/jooby-handlebars/pom.xml index 45d69ddd79..02af68aa23 100644 --- a/modules/jooby-handlebars/pom.xml +++ b/modules/jooby-handlebars/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-handlebars jooby-handlebars diff --git a/modules/jooby-hibernate-validator/pom.xml b/modules/jooby-hibernate-validator/pom.xml index 4fa2fe1a7f..e8bd1ae0f2 100644 --- a/modules/jooby-hibernate-validator/pom.xml +++ b/modules/jooby-hibernate-validator/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-hibernate-validator jooby-hibernate-validator diff --git a/modules/jooby-hibernate/pom.xml b/modules/jooby-hibernate/pom.xml index 558b8049d6..c135d8ae21 100644 --- a/modules/jooby-hibernate/pom.xml +++ b/modules/jooby-hibernate/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-hibernate jooby-hibernate diff --git a/modules/jooby-hikari/pom.xml b/modules/jooby-hikari/pom.xml index 2a7773a47a..c3e1f1b062 100644 --- a/modules/jooby-hikari/pom.xml +++ b/modules/jooby-hikari/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-hikari jooby-hikari diff --git a/modules/jooby-jackson/pom.xml b/modules/jooby-jackson/pom.xml index 622ca4dfb2..f3cec5c781 100644 --- a/modules/jooby-jackson/pom.xml +++ b/modules/jooby-jackson/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-jackson jooby-jackson diff --git a/modules/jooby-jasypt/pom.xml b/modules/jooby-jasypt/pom.xml index ab91a2f374..c8005c2a38 100644 --- a/modules/jooby-jasypt/pom.xml +++ b/modules/jooby-jasypt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-jasypt jooby-jasypt diff --git a/modules/jooby-jdbi/pom.xml b/modules/jooby-jdbi/pom.xml index 5b69ca250a..02ef70fc8b 100644 --- a/modules/jooby-jdbi/pom.xml +++ b/modules/jooby-jdbi/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-jdbi jooby-jdbi diff --git a/modules/jooby-jetty/pom.xml b/modules/jooby-jetty/pom.xml index e0c9a0f2f5..3374f7b09c 100644 --- a/modules/jooby-jetty/pom.xml +++ b/modules/jooby-jetty/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-jetty jooby-jetty diff --git a/modules/jooby-jstachio/pom.xml b/modules/jooby-jstachio/pom.xml index 68e830f1f3..967909d06e 100644 --- a/modules/jooby-jstachio/pom.xml +++ b/modules/jooby-jstachio/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-jstachio jooby-jstachio diff --git a/modules/jooby-jte/pom.xml b/modules/jooby-jte/pom.xml index 00022f4346..56f63fe204 100644 --- a/modules/jooby-jte/pom.xml +++ b/modules/jooby-jte/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-jte jooby-jte diff --git a/modules/jooby-jwt/pom.xml b/modules/jooby-jwt/pom.xml index 9f4da7f468..83e1538825 100644 --- a/modules/jooby-jwt/pom.xml +++ b/modules/jooby-jwt/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-jwt jooby-jwt diff --git a/modules/jooby-kafka/pom.xml b/modules/jooby-kafka/pom.xml index 7b1b945981..8454023b59 100644 --- a/modules/jooby-kafka/pom.xml +++ b/modules/jooby-kafka/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-kafka jooby-kafka diff --git a/modules/jooby-kotlin/pom.xml b/modules/jooby-kotlin/pom.xml index c5c49d3953..d3ae57296b 100644 --- a/modules/jooby-kotlin/pom.xml +++ b/modules/jooby-kotlin/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-kotlin jooby-kotlin diff --git a/modules/jooby-log4j/pom.xml b/modules/jooby-log4j/pom.xml index 2de654bbeb..53c876d58d 100644 --- a/modules/jooby-log4j/pom.xml +++ b/modules/jooby-log4j/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-log4j jooby-log4j diff --git a/modules/jooby-logback/pom.xml b/modules/jooby-logback/pom.xml index 6658e60ee6..a959c3fc01 100644 --- a/modules/jooby-logback/pom.xml +++ b/modules/jooby-logback/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-logback jooby-logback diff --git a/modules/jooby-maven-plugin/pom.xml b/modules/jooby-maven-plugin/pom.xml index 10d3096fd6..db700bcbbc 100644 --- a/modules/jooby-maven-plugin/pom.xml +++ b/modules/jooby-maven-plugin/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-maven-plugin jooby-maven-plugin diff --git a/modules/jooby-metrics/pom.xml b/modules/jooby-metrics/pom.xml index 47d32326fa..2af5078c1f 100644 --- a/modules/jooby-metrics/pom.xml +++ b/modules/jooby-metrics/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-metrics jooby-metrics diff --git a/modules/jooby-mutiny/pom.xml b/modules/jooby-mutiny/pom.xml index b6ffa7a787..34f2076973 100644 --- a/modules/jooby-mutiny/pom.xml +++ b/modules/jooby-mutiny/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-mutiny jooby-mutiny diff --git a/modules/jooby-netty/pom.xml b/modules/jooby-netty/pom.xml index 196e8384e6..a0539915cd 100644 --- a/modules/jooby-netty/pom.xml +++ b/modules/jooby-netty/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-netty jooby-netty diff --git a/modules/jooby-openapi/pom.xml b/modules/jooby-openapi/pom.xml index e54be49a0e..dbaee236e9 100644 --- a/modules/jooby-openapi/pom.xml +++ b/modules/jooby-openapi/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-openapi jooby-openapi diff --git a/modules/jooby-pac4j/pom.xml b/modules/jooby-pac4j/pom.xml index fef191c4b9..9da71a7c35 100644 --- a/modules/jooby-pac4j/pom.xml +++ b/modules/jooby-pac4j/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-pac4j jooby-pac4j diff --git a/modules/jooby-pebble/pom.xml b/modules/jooby-pebble/pom.xml index bb51a79eeb..abda4a273a 100644 --- a/modules/jooby-pebble/pom.xml +++ b/modules/jooby-pebble/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-pebble jooby-pebble diff --git a/modules/jooby-quartz/pom.xml b/modules/jooby-quartz/pom.xml index 945f2e576e..e2830143a1 100644 --- a/modules/jooby-quartz/pom.xml +++ b/modules/jooby-quartz/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-quartz jooby-quartz diff --git a/modules/jooby-reactor/pom.xml b/modules/jooby-reactor/pom.xml index 4172d084eb..bf9c8cfbb8 100644 --- a/modules/jooby-reactor/pom.xml +++ b/modules/jooby-reactor/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-reactor jooby-reactor diff --git a/modules/jooby-redis/pom.xml b/modules/jooby-redis/pom.xml index 647d178452..cdf8940e38 100644 --- a/modules/jooby-redis/pom.xml +++ b/modules/jooby-redis/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-redis jooby-redis diff --git a/modules/jooby-redoc/pom.xml b/modules/jooby-redoc/pom.xml index 9a699c00dd..7aa5bf975a 100644 --- a/modules/jooby-redoc/pom.xml +++ b/modules/jooby-redoc/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-redoc jooby-redoc diff --git a/modules/jooby-rocker/pom.xml b/modules/jooby-rocker/pom.xml index 86a79ff8d1..e4dcc83865 100644 --- a/modules/jooby-rocker/pom.xml +++ b/modules/jooby-rocker/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-rocker jooby-rocker diff --git a/modules/jooby-run/pom.xml b/modules/jooby-run/pom.xml index d863d97e7c..3a000c788a 100644 --- a/modules/jooby-run/pom.xml +++ b/modules/jooby-run/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-run jooby-run diff --git a/modules/jooby-rxjava3/pom.xml b/modules/jooby-rxjava3/pom.xml index 197cda7f03..83d4d136de 100644 --- a/modules/jooby-rxjava3/pom.xml +++ b/modules/jooby-rxjava3/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-rxjava3 jooby-rxjava3 diff --git a/modules/jooby-stork/pom.xml b/modules/jooby-stork/pom.xml index f66a05f5ec..9b0bc04512 100644 --- a/modules/jooby-stork/pom.xml +++ b/modules/jooby-stork/pom.xml @@ -4,7 +4,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-stork diff --git a/modules/jooby-swagger-ui/pom.xml b/modules/jooby-swagger-ui/pom.xml index 2bb20b71a5..e688fc41ca 100644 --- a/modules/jooby-swagger-ui/pom.xml +++ b/modules/jooby-swagger-ui/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-swagger-ui jooby-swagger-ui diff --git a/modules/jooby-test/pom.xml b/modules/jooby-test/pom.xml index 2defc463b4..8f8a6b76b6 100644 --- a/modules/jooby-test/pom.xml +++ b/modules/jooby-test/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-test jooby-test diff --git a/modules/jooby-thymeleaf/pom.xml b/modules/jooby-thymeleaf/pom.xml index fcbf5d90e8..9d5092b5a8 100644 --- a/modules/jooby-thymeleaf/pom.xml +++ b/modules/jooby-thymeleaf/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-thymeleaf jooby-thymeleaf diff --git a/modules/jooby-undertow/pom.xml b/modules/jooby-undertow/pom.xml index c6942a49b3..9a67e89e2a 100644 --- a/modules/jooby-undertow/pom.xml +++ b/modules/jooby-undertow/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-undertow jooby-undertow diff --git a/modules/jooby-vertx-mysql-client/pom.xml b/modules/jooby-vertx-mysql-client/pom.xml index 4fef745b18..84531e9f76 100644 --- a/modules/jooby-vertx-mysql-client/pom.xml +++ b/modules/jooby-vertx-mysql-client/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-vertx-mysql-client jooby-vertx-mysql-client diff --git a/modules/jooby-vertx-pg-client/pom.xml b/modules/jooby-vertx-pg-client/pom.xml index 499ddf3c36..a0d6253495 100644 --- a/modules/jooby-vertx-pg-client/pom.xml +++ b/modules/jooby-vertx-pg-client/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-vertx-pg-client jooby-vertx-pg-client diff --git a/modules/jooby-vertx-sql-client/pom.xml b/modules/jooby-vertx-sql-client/pom.xml index ad98c07e45..8dea81f386 100644 --- a/modules/jooby-vertx-sql-client/pom.xml +++ b/modules/jooby-vertx-sql-client/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-vertx-sql-client jooby-vertx-sql-client diff --git a/modules/jooby-vertx/pom.xml b/modules/jooby-vertx/pom.xml index ece018b99e..386cdadfd7 100644 --- a/modules/jooby-vertx/pom.xml +++ b/modules/jooby-vertx/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-vertx jooby-vertx diff --git a/modules/jooby-whoops/pom.xml b/modules/jooby-whoops/pom.xml index d9f42459e8..02764a8107 100644 --- a/modules/jooby-whoops/pom.xml +++ b/modules/jooby-whoops/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-whoops jooby-whoops diff --git a/modules/jooby-yasson/pom.xml b/modules/jooby-yasson/pom.xml index caf8376621..84c23781f0 100644 --- a/modules/jooby-yasson/pom.xml +++ b/modules/jooby-yasson/pom.xml @@ -6,7 +6,7 @@ io.jooby modules - 4.0.10-SNAPSHOT + 4.0.10 jooby-yasson jooby-yasson diff --git a/modules/pom.xml b/modules/pom.xml index 3679ddbd44..d66e2c53aa 100644 --- a/modules/pom.xml +++ b/modules/pom.xml @@ -4,7 +4,7 @@ io.jooby jooby-project - 4.0.10-SNAPSHOT + 4.0.10 modules diff --git a/pom.xml b/pom.xml index df58a6c535..34e042a9cc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 io.jooby jooby-project - 4.0.10-SNAPSHOT + 4.0.10 pom jooby-project @@ -210,7 +210,7 @@ 21 21 yyyy-MM-dd HH:mm:ssa - 2025-10-20T21:13:47Z + 2025-10-27T15:01:16Z UTF-8 etc${file.separator}source${file.separator}formatter.sh diff --git a/tests/pom.xml b/tests/pom.xml index 7a2f7d213c..b2350ad65f 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -6,7 +6,7 @@ io.jooby jooby-project - 4.0.10-SNAPSHOT + 4.0.10 tests tests From 9c937513303d660d693d991f86284b8cdbeac0cf Mon Sep 17 00:00:00 2001 From: Edgar Espina Date: Mon, 27 Oct 2025 12:30:34 -0300 Subject: [PATCH 21/21] build: added back javadoc configuration to central profile --- pom.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pom.xml b/pom.xml index 34e042a9cc..216dd2b6fa 100644 --- a/pom.xml +++ b/pom.xml @@ -1722,6 +1722,27 @@ + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + ${javadoc.excludes} + public + true + ${maven.compiler.release} + + + + attach-javadocs + + jar + + + + + org.apache.maven.plugins