diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5b2d418aa..e825c4fb8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,4 +33,14 @@ jobs: env: JAVA_VERSION: ${{ matrix.java_version }} run: | - mvn clean package install -Ptest + mvn clean package install -Ptest21 + - name: Configure minimum Java version + uses: actions/setup-java@v5 + with: + java-version: 11 + distribution: "zulu" + - name: Test on minimum version + env: + JAVA_VERSION: 11 + run: | + mvn test -Ptest diff --git a/aws-cognito/http-client-authtoken/pom.xml b/aws-cognito/http-client-authtoken/pom.xml index 8219e8ea8..1ad68a26c 100644 --- a/aws-cognito/http-client-authtoken/pom.xml +++ b/aws-cognito/http-client-authtoken/pom.xml @@ -18,7 +18,7 @@ io.avaje avaje-http-client - 3.8 + 4.0-B.1 diff --git a/htmx-api/pom.xml b/htmx-api/pom.xml index c00410838..692187fbd 100644 --- a/htmx-api/pom.xml +++ b/htmx-api/pom.xml @@ -6,7 +6,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-htmx-api diff --git a/htmx-nima-jstache/pom.xml b/htmx-nima-jstache/pom.xml index 26c1f00ad..a100ff7b7 100644 --- a/htmx-nima-jstache/pom.xml +++ b/htmx-nima-jstache/pom.xml @@ -6,7 +6,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-htmx-nima-jstache diff --git a/htmx-nima-jstache/src/main/java/module-info.java b/htmx-nima-jstache/src/main/java/module-info.java index 88d587079..458ec9933 100644 --- a/htmx-nima-jstache/src/main/java/module-info.java +++ b/htmx-nima-jstache/src/main/java/module-info.java @@ -5,7 +5,7 @@ requires transitive io.avaje.htmx.nima; requires transitive io.helidon.webserver; requires transitive io.jstach.jstachio; - requires transitive io.avaje.inject; + requires static transitive io.avaje.inject; requires static io.avaje.spi; provides io.avaje.inject.spi.InjectExtension with io.avaje.htmx.nima.jstache.DefaultTemplateProvider; diff --git a/htmx-nima/pom.xml b/htmx-nima/pom.xml index 42b1cbcd4..db7935e19 100644 --- a/htmx-nima/pom.xml +++ b/htmx-nima/pom.xml @@ -6,7 +6,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-htmx-nima @@ -22,7 +22,7 @@ io.avaje avaje-htmx-api - 3.8 + ${project.version} io.helidon.webserver diff --git a/http-api-javalin/pom.xml b/http-api-javalin/pom.xml index dfa92d00d..700c384cd 100644 --- a/http-api-javalin/pom.xml +++ b/http-api-javalin/pom.xml @@ -4,15 +4,26 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 .. avaje-http-api-javalin avaje-http-api-javalin + Library that generates adapter code for Javalin APIs via Annotation Processing. - - scm:git:git@github.com:avaje/avaje-http.git - avaje-http-parent-1.19 - + + + io.avaje + avaje-http-api + ${project.version} + + + io.javalin + javalin + 7.1.0 + provided + true + + diff --git a/http-api/src/main/java/io/avaje/http/api/AvajeJavalinPlugin.java b/http-api-javalin/src/main/java/io/avaje/http/api/javalin/AvajeJavalinPlugin.java similarity index 59% rename from http-api/src/main/java/io/avaje/http/api/AvajeJavalinPlugin.java rename to http-api-javalin/src/main/java/io/avaje/http/api/javalin/AvajeJavalinPlugin.java index 503aba080..5a2d8001e 100644 --- a/http-api/src/main/java/io/avaje/http/api/AvajeJavalinPlugin.java +++ b/http-api-javalin/src/main/java/io/avaje/http/api/javalin/AvajeJavalinPlugin.java @@ -1,9 +1,9 @@ -package io.avaje.http.api; +package io.avaje.http.api.javalin; import io.javalin.plugin.Plugin; /** - * A Javalin 6 route generated by avaje http javalin generator. + * A Javalin 7 route generated by avaje http javalin generator. */ public abstract class AvajeJavalinPlugin extends Plugin { diff --git a/http-api-javalin/src/main/java/module-info.java b/http-api-javalin/src/main/java/module-info.java index 18f709473..8606127c3 100644 --- a/http-api-javalin/src/main/java/module-info.java +++ b/http-api-javalin/src/main/java/module-info.java @@ -1,3 +1,5 @@ module io.avaje.http.api.javalin { exports io.avaje.http.api.javalin; + requires transitive io.avaje.http.api; + requires static io.javalin; } diff --git a/http-api-vertx/pom.xml b/http-api-vertx/pom.xml index 5508dbd14..11f0dfd48 100644 --- a/http-api-vertx/pom.xml +++ b/http-api-vertx/pom.xml @@ -5,7 +5,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 .. @@ -22,5 +22,10 @@ vertx-web ${vertx.version} + + io.avaje + avaje-http-api + ${project.version} + diff --git a/http-api-vertx/src/main/java/module-info.java b/http-api-vertx/src/main/java/module-info.java index 227018f42..f6f06445c 100644 --- a/http-api-vertx/src/main/java/module-info.java +++ b/http-api-vertx/src/main/java/module-info.java @@ -1,7 +1,7 @@ module io.avaje.http.api.vertx { exports io.avaje.http.api.vertx; - + requires transitive io.avaje.http.api; requires transitive io.vertx.web; requires transitive io.vertx.core; } diff --git a/http-api/pom.xml b/http-api/pom.xml index 533641a99..4ef80b715 100644 --- a/http-api/pom.xml +++ b/http-api/pom.xml @@ -4,32 +4,19 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 .. avaje-http-api avaje-http-api - - scm:git:git@github.com:avaje/avaje-http.git - avaje-http-parent-1.19 - - io.avaje avaje-http-inject-plugin ${project.version} - - io.javalin - javalin - 7.1.0 - provided - true - - diff --git a/http-api/src/main/java/module-info.java b/http-api/src/main/java/module-info.java index 2e95d7bf9..5fe2e429f 100644 --- a/http-api/src/main/java/module-info.java +++ b/http-api/src/main/java/module-info.java @@ -3,6 +3,4 @@ exports io.avaje.http.api; exports io.avaje.http.api.context; exports io.avaje.http.api.spi; - - requires static io.javalin; } diff --git a/http-client-gson-adapter/pom.xml b/http-client-gson-adapter/pom.xml index 0b2d2239e..82e74df31 100644 --- a/http-client-gson-adapter/pom.xml +++ b/http-client-gson-adapter/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-client-gson @@ -21,7 +21,7 @@ io.avaje avaje-http-client - 3.8 + 4.0-B.1 provided diff --git a/http-client-moshi-adapter/pom.xml b/http-client-moshi-adapter/pom.xml index c976e943e..d9a3e2c11 100644 --- a/http-client-moshi-adapter/pom.xml +++ b/http-client-moshi-adapter/pom.xml @@ -3,7 +3,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-client-moshi avaje-http-client-moshi @@ -20,7 +20,7 @@ io.avaje avaje-http-client - 3.8 + 4.0-B.1 provided diff --git a/http-client/pom.xml b/http-client/pom.xml index b13255189..13803fc33 100644 --- a/http-client/pom.xml +++ b/http-client/pom.xml @@ -6,17 +6,12 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-client avaje-http-client - - scm:git:git@github.com:avaje/avaje-http-client.git - HEAD - - false @@ -35,14 +30,14 @@ 3.1.0 true - + com.fasterxml.jackson.core jackson-databind 2.21.2 true - + com.fasterxml.jackson.core jackson-annotations @@ -89,7 +84,7 @@ io.avaje - avaje-http-api + avaje-http-api-javalin ${project.version} test diff --git a/http-client/src/test/java/org/example/webserver/HelloController$Route.java b/http-client/src/test/java/org/example/webserver/HelloController$Route.java index fdd435bd2..b033dbf7a 100644 --- a/http-client/src/test/java/org/example/webserver/HelloController$Route.java +++ b/http-client/src/test/java/org/example/webserver/HelloController$Route.java @@ -6,10 +6,9 @@ import java.time.LocalDate; -import io.avaje.http.api.AvajeJavalinPlugin; import io.avaje.http.api.PathSegment; import io.avaje.http.api.Validator; -import io.javalin.config.JavalinConfig; +import io.avaje.http.api.javalin.AvajeJavalinPlugin; import io.javalin.config.JavalinState; import io.javalin.config.RoutesConfig; diff --git a/http-generator-client/pom.xml b/http-generator-client/pom.xml index 61d7e92e9..9f0fa6f07 100644 --- a/http-generator-client/pom.xml +++ b/http-generator-client/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-client-generator @@ -27,12 +27,12 @@ test ${project.version} + io.avaje avaje-http-api ${project.version} - true - provided + test @@ -56,18 +56,15 @@ org.apache.maven.plugins - maven-shade-plugin + maven-compiler-plugin - - - io.avaje.http.generator.core - io.avaje.http.client.generator.core - - - io.swagger.v3 - io.avaje.http.client.generator.swagger.v3 - - + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + + diff --git a/http-generator-client/src/etc/activate-shade-module b/http-generator-client/src/etc/activate-shade-module deleted file mode 100644 index 949f3d244..000000000 --- a/http-generator-client/src/etc/activate-shade-module +++ /dev/null @@ -1 +0,0 @@ -Remove from module-info all content after: // SHADED: diff --git a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientMethodWriter.java b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientMethodWriter.java index 1e9cb7295..d0805d154 100644 --- a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientMethodWriter.java +++ b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientMethodWriter.java @@ -18,7 +18,6 @@ import javax.lang.model.type.TypeKind; import javax.lang.model.util.ElementFilter; -import io.avaje.http.api.SuppressLogging; import io.avaje.http.generator.core.APContext; import io.avaje.http.generator.core.Append; import io.avaje.http.generator.core.BeanParamReader; @@ -29,15 +28,15 @@ import io.avaje.http.generator.core.PathSegments; import io.avaje.http.generator.core.PathSegments.Segment; import io.avaje.http.generator.core.ProcessingContext; -import io.avaje.http.generator.core.RequestTimeoutPrism; +import io.avaje.http.generator.prisms.HeadersPrism; +import io.avaje.http.generator.prisms.RequestTimeoutPrism; import io.avaje.http.generator.core.Util; import io.avaje.http.generator.core.WebMethod; -import io.avaje.prism.GeneratePrism; +import io.avaje.http.generator.prisms.SuppressLoggingPrism; import io.avaje.prism.GenerateUtils; /** Write code to register Web route for a given controller method. */ @GenerateUtils -@GeneratePrism(SuppressLogging.class) final class ClientMethodWriter { private static final KnownResponse KNOWN_RESPONSE = new KnownResponse(); private static final String BODY_HANDLER = "java.net.http.HttpResponse.BodyHandler"; diff --git a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java index 81e68e055..2ccc223f2 100644 --- a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java +++ b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientProcessor.java @@ -27,14 +27,12 @@ import javax.tools.FileObject; import io.avaje.http.generator.core.APContext; -import io.avaje.http.generator.core.ClientPrism; +import io.avaje.http.generator.prisms.ClientPrism; import io.avaje.http.generator.core.Constants; import io.avaje.http.generator.core.ControllerReader; -import io.avaje.http.generator.core.ImportPrism; +import io.avaje.http.generator.prisms.ImportPrism; import io.avaje.http.generator.core.ProcessingContext; -import io.avaje.prism.GeneratePrism; -@GeneratePrism(io.avaje.http.api.Headers.class) @SupportedAnnotationTypes({ClientPrism.PRISM_TYPE, ImportPrism.PRISM_TYPE}) public class ClientProcessor extends AbstractProcessor { diff --git a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientWriter.java b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientWriter.java index 9c649b03f..9328b7a3a 100644 --- a/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientWriter.java +++ b/http-generator-client/src/main/java/io/avaje/http/generator/client/ClientWriter.java @@ -1,7 +1,7 @@ package io.avaje.http.generator.client; import io.avaje.http.generator.core.BaseControllerWriter; -import io.avaje.http.generator.core.ClientPrism; +import io.avaje.http.generator.prisms.ClientPrism; import io.avaje.http.generator.core.ControllerReader; import io.avaje.http.generator.core.MethodReader; diff --git a/http-generator-client/src/main/java/io/avaje/http/generator/client/ComponentReader.java b/http-generator-client/src/main/java/io/avaje/http/generator/client/ComponentReader.java index 93f101bf0..121ca4bd0 100644 --- a/http-generator-client/src/main/java/io/avaje/http/generator/client/ComponentReader.java +++ b/http-generator-client/src/main/java/io/avaje/http/generator/client/ComponentReader.java @@ -23,9 +23,8 @@ import io.avaje.http.generator.core.APContext; import io.avaje.http.generator.core.Constants; -import io.avaje.prism.GeneratePrism; +import io.avaje.http.generator.prisms.MetaDataPrism; -@GeneratePrism(io.avaje.http.api.spi.MetaData.class) final class ComponentReader { private final ComponentMetaData componentMetaData; diff --git a/http-generator-client/src/main/java/module-info.java b/http-generator-client/src/main/java/module-info.java index ea6d43cc0..b0af1d439 100644 --- a/http-generator-client/src/main/java/module-info.java +++ b/http-generator-client/src/main/java/module-info.java @@ -5,9 +5,7 @@ requires java.compiler; requires java.sql; - // SHADED: All content after this line will be removed at package time requires io.avaje.http.generator.core; - requires static io.avaje.http.api; requires static io.avaje.prism; } diff --git a/http-generator-core/pom.xml b/http-generator-core/pom.xml index a73b94081..11d641047 100644 --- a/http-generator-core/pom.xml +++ b/http-generator-core/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-generator-core @@ -13,85 +13,20 @@ io.avaje - avaje-prisms - ${avaje.prisms.version} - provided - true - - - - io.avaje - avaje-http-api + avaje-http-generator-prisms ${project.version} - true - provided - io.avaje - avaje-htmx-api - ${project.version} - true - provided - - - - io.swagger.core.v3 - swagger-models - ${swagger.version} - - - com.fasterxml.jackson.core - jackson-annotations - - - - - - io.avaje - validator-constraints - 1.2 - true - provided - - - - jakarta.validation - jakarta.validation-api - 3.1.1 - true - provided - - - - javax.validation - validation-api - 2.0.1.Final - true - provided - - - - io.swagger.core.v3 - swagger-annotations - ${swagger.version} - true + avaje-prisms + ${avaje.prisms.version} provided - - - org.jspecify - jspecify - 1.0.0 true - provided - - - org.apache.maven.plugins maven-compiler-plugin @@ -107,5 +42,4 @@ - diff --git a/http-generator-core/src/etc/activate-shade-module b/http-generator-core/src/etc/activate-shade-module deleted file mode 100644 index 949f3d244..000000000 --- a/http-generator-core/src/etc/activate-shade-module +++ /dev/null @@ -1 +0,0 @@ -Remove from module-info all content after: // SHADED: diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/BaseProcessor.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/BaseProcessor.java index 2542e3d91..094e76711 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/BaseProcessor.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/BaseProcessor.java @@ -25,6 +25,16 @@ import javax.lang.model.util.ElementFilter; import io.avaje.http.generator.core.TypeMap.CustomHandler; +import io.avaje.http.generator.prisms.ControllerPrism; +import io.avaje.http.generator.prisms.HttpValidPrism; +import io.avaje.http.generator.prisms.MapImportPrism; +import io.avaje.http.generator.prisms.MappedParamPrism; +import io.avaje.http.generator.prisms.OpenAPIDefinitionPrism; +import io.avaje.http.generator.prisms.PathPrism; +import io.avaje.http.generator.prisms.SecuritySchemePrism; +import io.avaje.http.generator.prisms.SecuritySchemesPrism; +import io.avaje.http.generator.prisms.TagPrism; +import io.avaje.http.generator.prisms.TagsPrism; import io.avaje.prism.GenerateAPContext; @GenerateAPContext diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/BeanParamReader.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/BeanParamReader.java index 8218d289e..92d3121a6 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/BeanParamReader.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/BeanParamReader.java @@ -1,5 +1,7 @@ package io.avaje.http.generator.core; +import io.avaje.http.generator.prisms.IgnorePrism; + import static io.avaje.http.generator.core.ProcessingContext.*; import javax.lang.model.element.*; import java.util.*; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/ControllerReader.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/ControllerReader.java index 1191660b2..0f129d471 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/ControllerReader.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/ControllerReader.java @@ -1,5 +1,17 @@ package io.avaje.http.generator.core; +import io.avaje.http.generator.prisms.ClientPrism; +import io.avaje.http.generator.prisms.ControllerPrism; +import io.avaje.http.generator.prisms.HiddenPrism; +import io.avaje.http.generator.prisms.HtmlPrism; +import io.avaje.http.generator.prisms.InstrumentServerContextPrism; +import io.avaje.http.generator.prisms.OpenAPIResponsePrism; +import io.avaje.http.generator.prisms.OpenAPIResponsesPrism; +import io.avaje.http.generator.prisms.PathPrism; +import io.avaje.http.generator.prisms.ProducesPrism; +import io.avaje.http.generator.prisms.ValidPrism; +import io.avaje.http.generator.prisms.WebAPIPrism; + import static io.avaje.http.generator.core.ProcessingContext.asElement; import static io.avaje.http.generator.core.ProcessingContext.asMemberOf; import static io.avaje.http.generator.core.ProcessingContext.instrumentAllWebMethods; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/ElementReader.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/ElementReader.java index 1c322b074..de15c755c 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/ElementReader.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/ElementReader.java @@ -17,6 +17,20 @@ import io.avaje.http.generator.core.TypeMap.CustomHandler; import io.avaje.http.generator.core.openapi.MethodDocBuilder; import io.avaje.http.generator.core.openapi.MethodParamDocBuilder; +import io.avaje.http.generator.prisms.BeanParamPrism; +import io.avaje.http.generator.prisms.BodyStringPrism; +import io.avaje.http.generator.prisms.CookiePrism; +import io.avaje.http.generator.prisms.DefaultPrism; +import io.avaje.http.generator.prisms.FormParamPrism; +import io.avaje.http.generator.prisms.FormPrism; +import io.avaje.http.generator.prisms.HeaderPrism; +import io.avaje.http.generator.prisms.HttpValidPrism; +import io.avaje.http.generator.prisms.IgnorePrism; +import io.avaje.http.generator.prisms.MappedParamPrism; +import io.avaje.http.generator.prisms.MatrixParamPrism; +import io.avaje.http.generator.prisms.ParamPrism; +import io.avaje.http.generator.prisms.QueryParamPrism; +import io.avaje.http.generator.prisms.ValidPrism; public class ElementReader { diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/JsonBUtil.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/JsonBUtil.java index cc63b538b..a48ce14fc 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/JsonBUtil.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/JsonBUtil.java @@ -68,7 +68,7 @@ public static Map jsonTypes(ControllerReader reader) { } final var asTypeElement = APContext.asTypeElement(methodReader.returnType()); if (!methodReader.isVoid() - && (asTypeElement == null || !JStachePrism.isPresent(asTypeElement))) { + && (asTypeElement == null || !io.avaje.http.generator.prisms.JStachePrism.isPresent(asTypeElement))) { var uType = UType.parse(methodReader.returnType()); if ("java.util.concurrent.CompletableFuture".equals(uType.mainType()) || "java.util.concurrent.CompletionStage".equals(uType.mainType())) { diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/MethodReader.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/MethodReader.java index c7ab7acf8..afffd7dfd 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/MethodReader.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/MethodReader.java @@ -23,6 +23,28 @@ import io.avaje.http.generator.core.javadoc.Javadoc; import io.avaje.http.generator.core.openapi.MethodDocBuilder; +import io.avaje.http.generator.prisms.ConsumesPrism; +import io.avaje.http.generator.prisms.ContentCachePrism; +import io.avaje.http.generator.prisms.DeletePrism; +import io.avaje.http.generator.prisms.ExceptionHandlerPrism; +import io.avaje.http.generator.prisms.FilterPrism; +import io.avaje.http.generator.prisms.TagPrism; +import io.avaje.http.generator.prisms.FormPrism; +import io.avaje.http.generator.prisms.GetPrism; +import io.avaje.http.generator.prisms.HxRequestPrism; +import io.avaje.http.generator.prisms.InstrumentServerContextPrism; +import io.avaje.http.generator.prisms.OpenAPIResponsePrism; +import io.avaje.http.generator.prisms.OpenAPIResponsesPrism; +import io.avaje.http.generator.prisms.OperationPrism; +import io.avaje.http.generator.prisms.PatchPrism; +import io.avaje.http.generator.prisms.PostPrism; +import io.avaje.http.generator.prisms.ProducesPrism; +import io.avaje.http.generator.prisms.PutPrism; +import io.avaje.http.generator.prisms.RequestTimeoutPrism; +import io.avaje.http.generator.prisms.SecurityRequirementPrism; +import io.avaje.http.generator.prisms.SecurityRequirementsPrism; +import io.avaje.http.generator.prisms.TagsPrism; +import io.avaje.http.generator.prisms.ValidPrism; import io.swagger.v3.oas.models.Operation; public class MethodReader { diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/ProcessingContext.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/ProcessingContext.java index 944270436..5fd4ffa02 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/ProcessingContext.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/ProcessingContext.java @@ -30,6 +30,9 @@ import javax.tools.JavaFileObject; import javax.tools.StandardLocation; +import io.avaje.http.generator.prisms.JStacheConfigPrism; +import io.avaje.http.generator.prisms.JStachePrism; + import io.avaje.http.generator.core.openapi.DocContext; public final class ProcessingContext { diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/Util.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/Util.java index 1770466eb..de294e37e 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/Util.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/Util.java @@ -1,5 +1,8 @@ package io.avaje.http.generator.core; +import io.avaje.http.generator.prisms.NullMarkedPrism; +import io.avaje.http.generator.prisms.NullUnmarkedPrism; + import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/DocContext.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/DocContext.java index c82b411dd..dda84315e 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/DocContext.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/DocContext.java @@ -19,12 +19,12 @@ import javax.tools.StandardLocation; import io.avaje.http.generator.core.APContext; -import io.avaje.http.generator.core.OpenAPIDefinitionPrism; -import io.avaje.http.generator.core.SchemaPrism; -import io.avaje.http.generator.core.SecuritySchemePrism; -import io.avaje.http.generator.core.SecuritySchemesPrism; -import io.avaje.http.generator.core.TagPrism; -import io.avaje.http.generator.core.TagsPrism; +import io.avaje.http.generator.prisms.OpenAPIDefinitionPrism; +import io.avaje.http.generator.prisms.SchemaPrism; +import io.avaje.http.generator.prisms.SecuritySchemePrism; +import io.avaje.http.generator.prisms.SecuritySchemesPrism; +import io.avaje.http.generator.prisms.TagPrism; +import io.avaje.http.generator.prisms.TagsPrism; import io.avaje.http.generator.core.Util; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodDocBuilder.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodDocBuilder.java index 55b6a913f..47d8def02 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodDocBuilder.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodDocBuilder.java @@ -2,14 +2,14 @@ import java.util.Optional; -import io.avaje.http.generator.core.ConsumesPrism; +import io.avaje.http.generator.prisms.ConsumesPrism; import io.avaje.http.generator.core.CoreWebMethod; -import io.avaje.http.generator.core.HiddenPrism; +import io.avaje.http.generator.prisms.DeprecatedPrism; +import io.avaje.http.generator.prisms.HiddenPrism; import io.avaje.http.generator.core.MethodParam; import io.avaje.http.generator.core.MethodReader; -import io.avaje.http.generator.core.SecurityRequirementPrism; +import io.avaje.http.generator.prisms.SecurityRequirementPrism; import io.avaje.http.generator.core.javadoc.Javadoc; -import io.avaje.prism.GeneratePrism; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.PathItem; import io.swagger.v3.oas.models.responses.ApiResponse; @@ -17,7 +17,6 @@ import io.swagger.v3.oas.models.security.SecurityRequirement; /** Build the OpenAPI documentation for a method. */ -@GeneratePrism(Deprecated.class) public class MethodDocBuilder { private final Javadoc javadoc; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodParamDocBuilder.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodParamDocBuilder.java index 286b19dab..9f8703cef 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodParamDocBuilder.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/MethodParamDocBuilder.java @@ -4,7 +4,7 @@ import javax.lang.model.element.Element; -import io.avaje.http.generator.core.ConsumesPrism; +import io.avaje.http.generator.prisms.ConsumesPrism; import io.avaje.http.generator.core.ElementReader; import io.avaje.http.generator.core.ParamType; import io.avaje.http.generator.core.javadoc.Javadoc; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaDocBuilder.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaDocBuilder.java index 942e50b69..c4b442f48 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaDocBuilder.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaDocBuilder.java @@ -2,8 +2,12 @@ import static io.avaje.http.generator.core.Util.typeDef; -import io.avaje.http.generator.core.SchemaPrism; +import io.avaje.http.generator.prisms.EmailPrism; +import io.avaje.http.generator.prisms.JavaxEmailPrism; +import io.avaje.http.generator.prisms.JavaxSizePrism; +import io.avaje.http.generator.prisms.SchemaPrism; import io.avaje.http.generator.core.javadoc.Javadoc; +import io.avaje.http.generator.prisms.SizePrism; import io.swagger.v3.oas.models.media.StringSchema; import java.util.ArrayList; import java.util.List; @@ -28,9 +32,8 @@ import javax.lang.model.util.Types; import io.avaje.http.generator.core.APContext; -import io.avaje.http.generator.core.HiddenPrism; +import io.avaje.http.generator.prisms.HiddenPrism; import io.avaje.http.generator.core.Util; -import io.avaje.prism.GeneratePrism; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Content; @@ -41,10 +44,6 @@ import io.swagger.v3.oas.models.parameters.RequestBody; /** Help build OpenAPI Schema objects. */ -@GeneratePrism(jakarta.validation.constraints.Size.class) -@GeneratePrism(jakarta.validation.constraints.Email.class) -@GeneratePrism(value = javax.validation.constraints.Size.class, name = "JavaxSizePrism") -@GeneratePrism(value = javax.validation.constraints.Email.class, name = "JavaxEmailPrism") class SchemaDocBuilder { private static final String APP_FORM = "application/x-www-form-urlencoded"; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaPrismHelper.java b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaPrismHelper.java index f713b1867..3a7d5a065 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaPrismHelper.java +++ b/http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/SchemaPrismHelper.java @@ -1,6 +1,6 @@ package io.avaje.http.generator.core.openapi; -import io.avaje.http.generator.core.SchemaPrism; +import io.avaje.http.generator.prisms.SchemaPrism; import io.swagger.v3.oas.models.media.Schema; import javax.lang.model.type.TypeMirror; diff --git a/http-generator-core/src/main/java/module-info.java b/http-generator-core/src/main/java/module-info.java index ba600ade0..f2fbf2734 100644 --- a/http-generator-core/src/main/java/module-info.java +++ b/http-generator-core/src/main/java/module-info.java @@ -6,15 +6,7 @@ requires java.sql; requires java.compiler; - - // SHADED: All content after this line will be removed at package time + requires io.swagger.v3.oas.models; + requires transitive io.avaje.http.generator.prisms; requires static io.avaje.prism; - requires static io.avaje.http.api; - requires static io.avaje.htmx.api; - requires static io.swagger.v3.oas.models; - requires static io.swagger.v3.oas.annotations; - requires static java.validation; - requires static jakarta.validation; - requires static io.avaje.validation.contraints; - requires static org.jspecify; } diff --git a/http-generator-helidon/pom.xml b/http-generator-helidon/pom.xml index 5d6e0f0c4..567c4afcc 100644 --- a/http-generator-helidon/pom.xml +++ b/http-generator-helidon/pom.xml @@ -4,7 +4,7 @@ avaje-http-parent io.avaje - 3.8 + 4.0-B.1 avaje-http-helidon-generator @@ -31,4 +31,21 @@ + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + + + + + + diff --git a/http-generator-helidon/src/etc/activate-shade-module b/http-generator-helidon/src/etc/activate-shade-module deleted file mode 100644 index 949f3d244..000000000 --- a/http-generator-helidon/src/etc/activate-shade-module +++ /dev/null @@ -1 +0,0 @@ -Remove from module-info all content after: // SHADED: diff --git a/http-generator-helidon/src/main/java/module-info.java b/http-generator-helidon/src/main/java/module-info.java index 2d5ba9c18..4263013af 100644 --- a/http-generator-helidon/src/main/java/module-info.java +++ b/http-generator-helidon/src/main/java/module-info.java @@ -5,7 +5,6 @@ provides javax.annotation.processing.Processor with io.avaje.http.generator.helidon.nima.HelidonProcessor; - // SHADED: All content after this line will be removed at package time - requires transitive io.avaje.http.generator.core; - requires io.avaje.prism; + requires io.avaje.http.generator.core; + requires static io.avaje.prism; } diff --git a/http-generator-javalin/pom.xml b/http-generator-javalin/pom.xml index cc6ba8534..8a71bc062 100644 --- a/http-generator-javalin/pom.xml +++ b/http-generator-javalin/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-javalin-generator @@ -31,4 +31,22 @@ ${project.version} + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + + + + + + diff --git a/http-generator-javalin/src/etc/activate-shade-module b/http-generator-javalin/src/etc/activate-shade-module deleted file mode 100644 index 949f3d244..000000000 --- a/http-generator-javalin/src/etc/activate-shade-module +++ /dev/null @@ -1 +0,0 @@ -Remove from module-info all content after: // SHADED: diff --git a/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/AbstractCustomMethodPrism.java b/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/AbstractCustomMethodPrism.java index 704a14b8a..912075f96 100644 --- a/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/AbstractCustomMethodPrism.java +++ b/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/AbstractCustomMethodPrism.java @@ -3,7 +3,13 @@ import static io.avaje.http.generator.javalin.JavalinWebMethod.*; import io.avaje.http.generator.core.CustomWebMethod; import io.avaje.http.generator.core.WebMethod; +import io.avaje.prism.GeneratePrism; +// TODO: Untangle this? Or leave it? +@GeneratePrism(value = io.avaje.http.api.javalin.After.class, superClass = AbstractCustomMethodPrism.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.javalin.Before.class, superClass = AbstractCustomMethodPrism.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.javalin.AfterMatched.class, superClass = AbstractCustomMethodPrism.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.javalin.BeforeMatched.class, superClass = AbstractCustomMethodPrism.class, publicAccess = true) public abstract class AbstractCustomMethodPrism implements CustomWebMethod { @Override diff --git a/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/JavalinProcessor.java b/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/JavalinProcessor.java index 65c0d6f9c..686845b9a 100644 --- a/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/JavalinProcessor.java +++ b/http-generator-javalin/src/main/java/io/avaje/http/generator/javalin/JavalinProcessor.java @@ -2,20 +2,11 @@ import java.io.IOException; -import io.avaje.http.api.javalin.After; -import io.avaje.http.api.javalin.AfterMatched; -import io.avaje.http.api.javalin.Before; -import io.avaje.http.api.javalin.BeforeMatched; import io.avaje.http.generator.core.BaseProcessor; import io.avaje.http.generator.core.ControllerReader; import io.avaje.http.generator.core.PlatformAdapter; import io.avaje.http.generator.core.ProcessingContext; -import io.avaje.prism.GeneratePrism; -@GeneratePrism(value = After.class, superClass = AbstractCustomMethodPrism.class) -@GeneratePrism(value = Before.class, superClass = AbstractCustomMethodPrism.class) -@GeneratePrism(value = AfterMatched.class, superClass = AbstractCustomMethodPrism.class) -@GeneratePrism(value = BeforeMatched.class, superClass = AbstractCustomMethodPrism.class) public class JavalinProcessor extends BaseProcessor { @Override diff --git a/http-generator-javalin/src/main/java/module-info.java b/http-generator-javalin/src/main/java/module-info.java index a993efde0..0c9f55a6f 100644 --- a/http-generator-javalin/src/main/java/module-info.java +++ b/http-generator-javalin/src/main/java/module-info.java @@ -5,7 +5,6 @@ requires java.compiler; requires java.sql; - // SHADED: All content after this line will be removed at package time requires io.avaje.http.generator.core; requires static io.avaje.http.api.javalin; requires static io.avaje.prism; diff --git a/http-generator-jex/pom.xml b/http-generator-jex/pom.xml index 38a2c01cb..8633dc5b0 100644 --- a/http-generator-jex/pom.xml +++ b/http-generator-jex/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-jex-generator @@ -30,4 +30,22 @@ + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + + + + + + diff --git a/http-generator-jex/src/etc/activate-shade-module b/http-generator-jex/src/etc/activate-shade-module deleted file mode 100644 index 949f3d244..000000000 --- a/http-generator-jex/src/etc/activate-shade-module +++ /dev/null @@ -1 +0,0 @@ -Remove from module-info all content after: // SHADED: diff --git a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java index 3d2c02389..c226a9a32 100644 --- a/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java +++ b/http-generator-jex/src/main/java/io/avaje/http/generator/jex/ControllerMethodWriter.java @@ -4,6 +4,7 @@ import io.avaje.http.generator.core.*; import io.avaje.http.generator.core.openapi.MediaType; +import io.avaje.http.generator.prisms.HxRequestPrism; import javax.lang.model.type.TypeMirror; diff --git a/http-generator-jex/src/main/java/module-info.java b/http-generator-jex/src/main/java/module-info.java index e833e3579..ff34ec574 100644 --- a/http-generator-jex/src/main/java/module-info.java +++ b/http-generator-jex/src/main/java/module-info.java @@ -5,7 +5,6 @@ requires java.compiler; requires java.sql; - // SHADED: All content after this line will be removed at package time requires transitive io.avaje.http.generator.core; requires static io.avaje.prism; } diff --git a/http-generator-prisms/pom.xml b/http-generator-prisms/pom.xml new file mode 100644 index 000000000..98306aff4 --- /dev/null +++ b/http-generator-prisms/pom.xml @@ -0,0 +1,110 @@ + + + 4.0.0 + + io.avaje + avaje-http-parent + 4.0-B.1 + + + avaje-http-generator-prisms + avaje-http-generator-prisms + + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + provided + true + + + io.avaje + avaje-http-api-javalin + ${project.version} + true + provided + + + io.avaje + avaje-http-api-vertx + ${project.version} + true + provided + + + io.avaje + avaje-htmx-api + ${project.version} + true + provided + + + io.swagger.core.v3 + swagger-models + ${swagger.version} + + + com.fasterxml.jackson.core + jackson-annotations + + + + + io.avaje + validator-constraints + 1.2 + true + provided + + + jakarta.validation + jakarta.validation-api + 3.1.1 + true + provided + + + javax.validation + validation-api + 2.0.1.Final + true + provided + + + io.swagger.core.v3 + swagger-annotations + ${swagger.version} + true + provided + + + org.jspecify + jspecify + 1.0.0 + true + provided + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + + + + + + + + diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/JStacheConfigPrism.java b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/JStacheConfigPrism.java similarity index 92% rename from http-generator-core/src/main/java/io/avaje/http/generator/core/JStacheConfigPrism.java rename to http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/JStacheConfigPrism.java index 372b15980..19faa9e38 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/JStacheConfigPrism.java +++ b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/JStacheConfigPrism.java @@ -1,4 +1,4 @@ -package io.avaje.http.generator.core; +package io.avaje.http.generator.prisms; import java.util.HashMap; import java.util.Map; @@ -15,7 +15,7 @@ /** A Prism representing a {@link io.jstach.jstache.JStacheConfig @JStacheConfig} annotation. */ @Generated("avaje-prism-generator") -final class JStacheConfigPrism { +public final class JStacheConfigPrism { /** store prism value of type */ private final String _type; @@ -35,7 +35,7 @@ final class JStacheConfigPrism { * @param mirror mirror. * @return true if prism is present. */ - static boolean isInstance(AnnotationMirror mirror) { + public static boolean isInstance(AnnotationMirror mirror) { return getInstance(mirror) != null; } @@ -46,7 +46,7 @@ static boolean isInstance(AnnotationMirror mirror) { * @param element element. * @return true if annotation is present on the element. */ - static boolean isPresent(Element element) { + public static boolean isPresent(Element element) { return getInstanceOn(element) != null; } @@ -59,7 +59,7 @@ static boolean isPresent(Element element) { * @param element element. * @return prism on element or null if no annotation is found. */ - static JStacheConfigPrism getInstanceOn(Element element) { + public static JStacheConfigPrism getInstanceOn(Element element) { final var mirror = getMirror(element); if (mirror == null) return null; return getInstance(mirror); @@ -74,7 +74,7 @@ static JStacheConfigPrism getInstanceOn(Element element) { * @param element element. * @return prism optional for element. */ - static Optional getOptionalOn(Element element) { + public static Optional getOptionalOn(Element element) { final var mirror = getMirror(element); if (mirror == null) return Optional.empty(); return getOptional(mirror); @@ -87,7 +87,7 @@ static Optional getOptionalOn(Element element) { * @param mirror mirror. * @return prism for mirror or null if mirror is an incorrect type. */ - static JStacheConfigPrism getInstance(AnnotationMirror mirror) { + public static JStacheConfigPrism getInstance(AnnotationMirror mirror) { if (mirror == null || !PRISM_TYPE.equals(mirror.getAnnotationType().toString())) return null; return new JStacheConfigPrism(mirror); @@ -102,7 +102,7 @@ static JStacheConfigPrism getInstance(AnnotationMirror mirror) { * @param mirror mirror. * @return prism optional for mirror. */ - static Optional getOptional(AnnotationMirror mirror) { + public static Optional getOptional(AnnotationMirror mirror) { if (mirror == null || !PRISM_TYPE.equals(mirror.getAnnotationType().toString())) return Optional.empty(); @@ -155,7 +155,7 @@ public String type() { * corresponding to that member in the model of the annotations. Returns null for defaulted * members. Used for Messager, so default values are not useful. */ - static final class Values { + public static final class Values { private final Map values; private Values(Map values) { diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/JStachePrism.java b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/JStachePrism.java similarity index 98% rename from http-generator-core/src/main/java/io/avaje/http/generator/core/JStachePrism.java rename to http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/JStachePrism.java index d5d5a40cf..24fe5fa52 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/JStachePrism.java +++ b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/JStachePrism.java @@ -1,4 +1,4 @@ -package io.avaje.http.generator.core; +package io.avaje.http.generator.prisms; import javax.annotation.processing.Generated; import javax.lang.model.element.AnnotationMirror; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/ParamPrism.java b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/ParamPrism.java similarity index 96% rename from http-generator-core/src/main/java/io/avaje/http/generator/core/ParamPrism.java rename to http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/ParamPrism.java index 29a433f86..ae394c3ae 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/ParamPrism.java +++ b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/ParamPrism.java @@ -1,9 +1,8 @@ -package io.avaje.http.generator.core; +package io.avaje.http.generator.prisms; import java.util.Optional; import javax.lang.model.element.Element; - import io.avaje.prism.GeneratePrism; @GeneratePrism( diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/ValidPrism.java b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/ValidPrism.java similarity index 86% rename from http-generator-core/src/main/java/io/avaje/http/generator/core/ValidPrism.java rename to http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/ValidPrism.java index 61291dcb8..bf4deff6b 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/ValidPrism.java +++ b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/ValidPrism.java @@ -1,4 +1,4 @@ -package io.avaje.http.generator.core; +package io.avaje.http.generator.prisms; import java.util.Optional; import java.util.function.Function; @@ -12,19 +12,23 @@ @GeneratePrism( value = io.avaje.validation.constraints.Valid.class, name = "AvajeValidPrism", - superInterfaces = ValidPrism.class) + superInterfaces = ValidPrism.class, + publicAccess = true) @GeneratePrism( value = javax.validation.Valid.class, name = "JavaxValidPrism", - superInterfaces = ValidPrism.class) + superInterfaces = ValidPrism.class, + publicAccess = true) @GeneratePrism( value = jakarta.validation.Valid.class, name = "JakartaValidPrism", - superInterfaces = ValidPrism.class) + superInterfaces = ValidPrism.class, + publicAccess = true) @GeneratePrism( value = io.avaje.http.api.Valid.class, name = "HttpValidPrism", - superInterfaces = ValidPrism.class) + superInterfaces = ValidPrism.class, + publicAccess = true) public interface ValidPrism { static Optional getOptionalOn(Element e) { diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/WebAPIPrism.java b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/WebAPIPrism.java similarity index 89% rename from http-generator-core/src/main/java/io/avaje/http/generator/core/WebAPIPrism.java rename to http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/WebAPIPrism.java index b68302c49..cb843b5ba 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/WebAPIPrism.java +++ b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/WebAPIPrism.java @@ -1,4 +1,4 @@ -package io.avaje.http.generator.core; +package io.avaje.http.generator.prisms; import java.util.Optional; diff --git a/http-generator-core/src/main/java/io/avaje/http/generator/core/package-info.java b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/package-info.java similarity index 69% rename from http-generator-core/src/main/java/io/avaje/http/generator/core/package-info.java rename to http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/package-info.java index 01d2f9233..aa527d746 100644 --- a/http-generator-core/src/main/java/io/avaje/http/generator/core/package-info.java +++ b/http-generator-prisms/src/main/java/io/avaje/http/generator/prisms/package-info.java @@ -1,45 +1,54 @@ /** * Generate the prisms to access annotation info */ -@GeneratePrism(value = io.avaje.http.api.Controller.class, publicAccess = true, superInterfaces = WebAPIPrism.class) -@GeneratePrism(value = io.avaje.http.api.Client.class, publicAccess = true, superInterfaces = WebAPIPrism.class) +@GeneratePrism(value = Deprecated.class, publicAccess = true) +@GeneratePrism(value = io.avaje.htmx.api.ContentCache.class, publicAccess = true) +@GeneratePrism(value = io.avaje.htmx.api.Html.class, publicAccess = true) +@GeneratePrism(value = io.avaje.htmx.api.HxRequest.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.BeanParam.class, publicAccess = true) -@GeneratePrism(value = io.avaje.http.api.Ignore.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.BodyString.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.Client.Import.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.Client.class, publicAccess = true, superInterfaces = WebAPIPrism.class) +@GeneratePrism(value = io.avaje.http.api.Consumes.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.Controller.class, publicAccess = true, superInterfaces = WebAPIPrism.class) @GeneratePrism(value = io.avaje.http.api.Default.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Delete.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.ExceptionHandler.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.Filter.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Form.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Get.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.Headers.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.Ignore.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.InstrumentServerContext.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.MappedParam.Import.class, name = "MapImportPrism", publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.MappedParam.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.OpenAPIResponse.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.OpenAPIResponses.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Patch.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Path.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Post.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Produces.class, publicAccess = true) -@GeneratePrism(value = io.avaje.http.api.Consumes.class, publicAccess = true) @GeneratePrism(value = io.avaje.http.api.Put.class, publicAccess = true) -@GeneratePrism(value = io.avaje.http.api.Filter.class) -@GeneratePrism(value = io.avaje.http.api.InstrumentServerContext.class) -@GeneratePrism(value = io.avaje.http.api.ExceptionHandler.class) -@GeneratePrism(value = io.avaje.http.api.MappedParam.class) -@GeneratePrism(value = io.avaje.http.api.MappedParam.Import.class, name = "MapImportPrism") +@GeneratePrism(value = io.avaje.http.api.RequestTimeout.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.SuppressLogging.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.spi.MetaData.class, publicAccess = true) +@GeneratePrism(value = io.avaje.http.api.vertx.Blocking.class, publicAccess = true) +@GeneratePrism(value = io.swagger.v3.oas.annotations.Hidden.class, publicAccess = true) @GeneratePrism(value = io.swagger.v3.oas.annotations.OpenAPIDefinition.class, publicAccess = true) @GeneratePrism(value = io.swagger.v3.oas.annotations.Operation.class, publicAccess = true) -@GeneratePrism(value = io.swagger.v3.oas.annotations.tags.Tag.class, publicAccess = true) -@GeneratePrism(value = io.swagger.v3.oas.annotations.tags.Tags.class, publicAccess = true) -@GeneratePrism(value = io.swagger.v3.oas.annotations.security.SecurityScheme.class, publicAccess = true) -@GeneratePrism(value = io.swagger.v3.oas.annotations.security.SecuritySchemes.class, publicAccess = true) +@GeneratePrism(value = io.swagger.v3.oas.annotations.media.Schema.class, publicAccess = true) @GeneratePrism(value = io.swagger.v3.oas.annotations.security.SecurityRequirement.class, publicAccess = true) @GeneratePrism(value = io.swagger.v3.oas.annotations.security.SecurityRequirements.class, publicAccess = true) -@GeneratePrism(value = io.swagger.v3.oas.annotations.media.Schema.class, publicAccess = true) -@GeneratePrism(value = io.avaje.http.api.OpenAPIResponse.class, publicAccess = true) -@GeneratePrism(value = io.avaje.http.api.OpenAPIResponses.class, publicAccess = true) -@GeneratePrism(value = io.swagger.v3.oas.annotations.Hidden.class, publicAccess = true) -@GeneratePrism(value = io.avaje.http.api.Client.Import.class, publicAccess = true) -@GeneratePrism(value = io.avaje.http.api.RequestTimeout.class, publicAccess = true) -@GeneratePrism(value = io.avaje.htmx.api.HxRequest.class, publicAccess = true) -@GeneratePrism(value = io.avaje.htmx.api.Html.class, publicAccess = true) -@GeneratePrism(value = io.avaje.htmx.api.ContentCache.class, publicAccess = true) -@GeneratePrism(org.jspecify.annotations.NullMarked.class) -@GeneratePrism(org.jspecify.annotations.NullUnmarked.class) -package io.avaje.http.generator.core; +@GeneratePrism(value = io.swagger.v3.oas.annotations.security.SecurityScheme.class, publicAccess = true) +@GeneratePrism(value = io.swagger.v3.oas.annotations.security.SecuritySchemes.class, publicAccess = true) +@GeneratePrism(value = io.swagger.v3.oas.annotations.tags.Tag.class, publicAccess = true) +@GeneratePrism(value = io.swagger.v3.oas.annotations.tags.Tags.class, publicAccess = true) +@GeneratePrism(value = jakarta.validation.constraints.Email.class, publicAccess = true) +@GeneratePrism(value = jakarta.validation.constraints.Size.class, publicAccess = true) +@GeneratePrism(value = javax.validation.constraints.Email.class, name = "JavaxEmailPrism", publicAccess = true) +@GeneratePrism(value = javax.validation.constraints.Size.class, name = "JavaxSizePrism", publicAccess = true) +@GeneratePrism(value = org.jspecify.annotations.NullMarked.class, publicAccess = true) +@GeneratePrism(value = org.jspecify.annotations.NullUnmarked.class, publicAccess = true) +package io.avaje.http.generator.prisms; import io.avaje.prism.GeneratePrism; diff --git a/http-generator-prisms/src/main/java/module-info.java b/http-generator-prisms/src/main/java/module-info.java new file mode 100644 index 000000000..21839b770 --- /dev/null +++ b/http-generator-prisms/src/main/java/module-info.java @@ -0,0 +1,16 @@ +module io.avaje.http.generator.prisms { + exports io.avaje.http.generator.prisms; + + requires java.compiler; + requires static io.avaje.htmx.api; + requires static io.avaje.http.api.javalin; + requires static io.avaje.http.api.vertx; + requires static io.avaje.http.api; + requires static io.avaje.prism; + requires static io.avaje.validation.contraints; + requires static io.swagger.v3.oas.annotations; + requires static io.swagger.v3.oas.models; + requires static jakarta.validation; + requires static java.validation; + requires static org.jspecify; +} diff --git a/http-generator-sigma/pom.xml b/http-generator-sigma/pom.xml index 4bdfdb393..6607c1bdf 100644 --- a/http-generator-sigma/pom.xml +++ b/http-generator-sigma/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 avaje-http-sigma-generator @@ -29,4 +29,22 @@ provided + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + + + + + + diff --git a/http-generator-sigma/src/etc/activate-shade-module b/http-generator-sigma/src/etc/activate-shade-module deleted file mode 100644 index 949f3d244..000000000 --- a/http-generator-sigma/src/etc/activate-shade-module +++ /dev/null @@ -1 +0,0 @@ -Remove from module-info all content after: // SHADED: diff --git a/http-generator-sigma/src/main/java/module-info.java b/http-generator-sigma/src/main/java/module-info.java index 37c1b3fbb..cf49c91ab 100644 --- a/http-generator-sigma/src/main/java/module-info.java +++ b/http-generator-sigma/src/main/java/module-info.java @@ -5,7 +5,6 @@ requires java.compiler; requires java.sql; - // SHADED: All content after this line will be removed at package time requires io.avaje.http.generator.core; requires static io.avaje.prism; requires static io.avaje.spi; diff --git a/http-generator-vertx/pom.xml b/http-generator-vertx/pom.xml index 650896060..6330579a8 100644 --- a/http-generator-vertx/pom.xml +++ b/http-generator-vertx/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 .. @@ -21,14 +21,6 @@ avaje-http-generator-core ${project.version} - - - io.avaje - avaje-http-api-vertx - ${project.version} - provided - - io.avaje avaje-prisms @@ -36,4 +28,22 @@ provided + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.avaje + avaje-prisms + ${avaje.prisms.version} + + + + + + diff --git a/http-generator-vertx/src/etc/activate-shade-module b/http-generator-vertx/src/etc/activate-shade-module deleted file mode 100644 index 949f3d244..000000000 --- a/http-generator-vertx/src/etc/activate-shade-module +++ /dev/null @@ -1 +0,0 @@ -Remove from module-info all content after: // SHADED: diff --git a/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxControllerMethodWriter.java b/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxControllerMethodWriter.java index 0b89c0de4..ae2c92419 100644 --- a/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxControllerMethodWriter.java +++ b/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxControllerMethodWriter.java @@ -11,6 +11,7 @@ import io.avaje.http.generator.core.ProcessingContext; import io.avaje.http.generator.core.UType; import io.avaje.http.generator.core.openapi.MediaType; +import io.avaje.http.generator.prisms.BlockingPrism; import static io.avaje.http.generator.core.ProcessingContext.disabledDirectWrites; diff --git a/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxProcessor.java b/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxProcessor.java index 0266e0d55..5fc4a395a 100644 --- a/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxProcessor.java +++ b/http-generator-vertx/src/main/java/io/avaje/http/generator/vertx/VertxProcessor.java @@ -2,13 +2,10 @@ import java.io.IOException; -import io.avaje.http.api.vertx.Blocking; import io.avaje.http.generator.core.BaseProcessor; import io.avaje.http.generator.core.ControllerReader; import io.avaje.http.generator.core.PlatformAdapter; -import io.avaje.prism.GeneratePrism; -@GeneratePrism(Blocking.class) public final class VertxProcessor extends BaseProcessor { @Override diff --git a/http-generator-vertx/src/main/java/module-info.java b/http-generator-vertx/src/main/java/module-info.java index 50322415c..6fd846b36 100644 --- a/http-generator-vertx/src/main/java/module-info.java +++ b/http-generator-vertx/src/main/java/module-info.java @@ -4,9 +4,6 @@ requires java.compiler; requires java.sql; - requires static io.avaje.http.api.vertx; requires static io.avaje.prism; - - // SHADED: All content after this line will be removed at package time requires transitive io.avaje.http.generator.core; } diff --git a/http-hibernate-validator/pom.xml b/http-hibernate-validator/pom.xml index 6c25adc0a..093f46ac1 100644 --- a/http-hibernate-validator/pom.xml +++ b/http-hibernate-validator/pom.xml @@ -5,9 +5,9 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 - + avaje-http-hibernate-validator avaje-http-hibernate-validator @@ -33,7 +33,7 @@ io.avaje avaje-http-api - 3.8 + ${project.version} provided diff --git a/http-inject-plugin/pom.xml b/http-inject-plugin/pom.xml index 12fa09ea0..66f98b8b1 100644 --- a/http-inject-plugin/pom.xml +++ b/http-inject-plugin/pom.xml @@ -4,7 +4,7 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 .. @@ -16,32 +16,40 @@ avaje-http-parent-1.19 + + 12.4 + 2.16 + + io.avaje - avaje-inject-generator - 12.4 - provided + avaje-inject + ${avaje.inject.version} true + provided io.avaje avaje-http-api - 2.7 + + 3.8 true provided io.avaje avaje-http-api-vertx - ${project.version} + + 3.8 true provided + io.avaje avaje-spi-service - 2.16 + ${avaje.spi.version} provided true @@ -85,6 +93,39 @@ 0 + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.avaje + avaje-inject-generator + ${avaje.inject.version} + + + io.avaje + avaje-spi-service + 2.16 + + + + + + + io.avaje + avaje-inject-maven-plugin + 12.4 + + + + process-sources + + provides + + + + diff --git a/openapi-maven-plugin/pom.xml b/openapi-maven-plugin/pom.xml index 5788fc16a..0a81d23f9 100644 --- a/openapi-maven-plugin/pom.xml +++ b/openapi-maven-plugin/pom.xml @@ -4,17 +4,17 @@ io.avaje avaje-http-parent - 3.8 + 4.0-B.1 .. openapi-maven-plugin maven-plugin openapi-maven-plugin - https://avaje.io/http + + The Avaje OpenAPI Maven Plugin is used when you want to copy generated OpenAPI definitions into your source directory, optionally merging it with other definitions - 2026-04-01T04:55:18Z 3.11 3.9.14 @@ -25,11 +25,6 @@ 2.20.1 - - scm:git:git@github.com:avaje/avaje-http.git - HEAD - - org.apache.maven diff --git a/pom.xml b/pom.xml index 96f256f0d..8965fac92 100644 --- a/pom.xml +++ b/pom.xml @@ -10,22 +10,25 @@ io.avaje avaje-http-parent avaje-http-parent - 3.8 + 4.0-B.1 pom + https://avaje.io/http + + Library that generates adapter code for Jex, Javalin and Helidon SE APIs via Annotation Processing. scm:git:git@github.com:avaje/avaje-http.git - avaje-http-parent-1.19 + HEAD true + 2026-04-01T04:55:18Z + + 2.1-RC2 2.2.45 2.14.2 3.0-RC10 - 2.1-RC2 - 2026-04-01T04:55:18Z - ${project.build.directory}${file.separator}module-info.shade @@ -45,11 +48,13 @@ http-client http-client-gson-adapter http-client-moshi-adapter + http-generator-prisms http-generator-core http-generator-javalin http-generator-sigma http-generator-client http-hibernate-validator + shaded-generators @@ -68,6 +73,12 @@ [21,) + http-inject-plugin htmx-nima htmx-nima-jstache @@ -88,87 +99,5 @@ tests - - - module-info.shade - - - src/etc/activate-shade-module - - - - - - maven-antrun-plugin - 3.2.0 - - - process-resources - - - - - - - - - run - - - - - - org.apache.maven.plugins - maven-shade-plugin - - - - module-info.java - - - - - io.swagger.core.v3:swagger-models - - io/swagger/v3/oas/models/callbacks/** - io/swagger/v3/oas/models/examples/** - - - - - - - package - - shade - - - - - - - org.moditect - moditect-maven-plugin - - - add-module-infos - package - - add-module-info - - - true - - ${module-info.shade} - - - - - - - - - - diff --git a/shaded-generators/client/module-info.java b/shaded-generators/client/module-info.java new file mode 100644 index 000000000..3954a6513 --- /dev/null +++ b/shaded-generators/client/module-info.java @@ -0,0 +1,7 @@ +module io.avaje.http.client.generator { + + provides javax.annotation.processing.Processor with io.avaje.http.generator.client.ClientProcessor; + + requires java.compiler; + requires java.sql; +} diff --git a/shaded-generators/client/pom.xml b/shaded-generators/client/pom.xml new file mode 100644 index 000000000..ce5b9caa2 --- /dev/null +++ b/shaded-generators/client/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + io.avaje + avaje-http-generator-shaded-parent + 4.0-B.1 + + jar + avaje-http-client-generator-shaded + avaje-http-client-generator-shaded + + + + io.avaje + avaje-http-client-generator + ${project.version} + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + false + + + + org.apache.maven.plugins + maven-shade-plugin + + + + io.avaje.http.generator.prisms + io.avaje.http.client.generator.prisms + + + io.avaje.http.generator.core + io.avaje.http.client.generator.core + + + io.swagger.v3 + io.avaje.http.client.generator.swagger.v3 + + + + + + + + diff --git a/shaded-generators/client/src/main/java/io/avaje/http/generator/client/package-info.java b/shaded-generators/client/src/main/java/io/avaje/http/generator/client/package-info.java new file mode 100644 index 000000000..466b5ce2b --- /dev/null +++ b/shaded-generators/client/src/main/java/io/avaje/http/generator/client/package-info.java @@ -0,0 +1,4 @@ +/** + * This is a stub to allow for generation of a shaded processor JAR + */ +package io.avaje.http.generator.client; diff --git a/shaded-generators/helidon/module-info.java b/shaded-generators/helidon/module-info.java new file mode 100644 index 000000000..de7f5db7f --- /dev/null +++ b/shaded-generators/helidon/module-info.java @@ -0,0 +1,7 @@ +module io.avaje.http.client.helidon { + + provides javax.annotation.processing.Processor with io.avaje.http.generator.helidon.nima.HelidonProcessor; + + requires java.compiler; + requires java.sql; +} diff --git a/shaded-generators/helidon/pom.xml b/shaded-generators/helidon/pom.xml new file mode 100644 index 000000000..c5116960f --- /dev/null +++ b/shaded-generators/helidon/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + io.avaje + avaje-http-generator-shaded-parent + 4.0-B.1 + + jar + avaje-http-helidon-generator-shaded + avaje-http-helidon-generator-shaded + + + + io.avaje + avaje-http-helidon-generator + ${project.version} + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + false + + + + org.apache.maven.plugins + maven-shade-plugin + + + + io.avaje.http.generator.prisms + io.avaje.http.helidon.generator.prisms + + + io.avaje.http.generator.core + io.avaje.http.helidon.generator.core + + + io.swagger.v3 + io.avaje.http.helidon.generator.swagger.v3 + + + + + + + + diff --git a/shaded-generators/helidon/src/main/java/io/avaje/http/generator/helidon/package-info.java b/shaded-generators/helidon/src/main/java/io/avaje/http/generator/helidon/package-info.java new file mode 100644 index 000000000..7d0fcb94a --- /dev/null +++ b/shaded-generators/helidon/src/main/java/io/avaje/http/generator/helidon/package-info.java @@ -0,0 +1,4 @@ +/** + * This is a stub to allow for generation of a shaded processor JAR + */ +package io.avaje.http.generator.helidon; diff --git a/shaded-generators/pom.xml b/shaded-generators/pom.xml new file mode 100644 index 000000000..cca8d99c1 --- /dev/null +++ b/shaded-generators/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + + io.avaje + avaje-http-parent + 4.0-B.1 + + pom + avaje-http-generator-shaded-parent + avaje-http-generator-shaded-parent + + + none + + + + client + helidon + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + + module-info.java + + + + + io.swagger.core.v3:swagger-models + + io/swagger/v3/oas/models/callbacks/** + io/swagger/v3/oas/models/examples/** + + + + + + + package + + shade + + + + + + + org.moditect + moditect-maven-plugin + + + add-module-infos + package + + add-module-info + + + true + + module-info.java + + + + + + + + + diff --git a/tests/pom.xml b/tests/pom.xml index 484e8eb4c..2174a35ae 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -4,7 +4,7 @@ avaje-http-parent io.avaje - 3.8 + 4.0-B.1 tests diff --git a/tests/test-client-generation/pom.xml b/tests/test-client-generation/pom.xml index f162d819c..e3878768d 100644 --- a/tests/test-client-generation/pom.xml +++ b/tests/test-client-generation/pom.xml @@ -4,7 +4,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-client-generation diff --git a/tests/test-client/pom.xml b/tests/test-client/pom.xml index 4b1fa851a..2b91b4ef2 100644 --- a/tests/test-client/pom.xml +++ b/tests/test-client/pom.xml @@ -6,7 +6,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-client diff --git a/tests/test-javalin-jsonb/pom.xml b/tests/test-javalin-jsonb/pom.xml index 32ec5a651..6da02cf09 100644 --- a/tests/test-javalin-jsonb/pom.xml +++ b/tests/test-javalin-jsonb/pom.xml @@ -5,7 +5,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-javalin-jsonb diff --git a/tests/test-javalin-jsonb/src/main/java/org/example/myapp/Main.java b/tests/test-javalin-jsonb/src/main/java/org/example/myapp/Main.java index 4152cfb67..a55fc6062 100644 --- a/tests/test-javalin-jsonb/src/main/java/org/example/myapp/Main.java +++ b/tests/test-javalin-jsonb/src/main/java/org/example/myapp/Main.java @@ -6,7 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import io.avaje.http.api.AvajeJavalinPlugin; +import io.avaje.http.api.javalin.AvajeJavalinPlugin; import io.avaje.http.api.InvalidPathArgumentException; import io.avaje.http.api.InvalidTypeArgumentException; import io.avaje.http.api.ValidationException; diff --git a/tests/test-javalin/pom.xml b/tests/test-javalin/pom.xml index 6896db1c1..e21466892 100644 --- a/tests/test-javalin/pom.xml +++ b/tests/test-javalin/pom.xml @@ -4,7 +4,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-javalin diff --git a/tests/test-javalin/src/main/java/org/example/myapp/Main.java b/tests/test-javalin/src/main/java/org/example/myapp/Main.java index 71555e7be..f4d111ee6 100644 --- a/tests/test-javalin/src/main/java/org/example/myapp/Main.java +++ b/tests/test-javalin/src/main/java/org/example/myapp/Main.java @@ -6,7 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import io.avaje.http.api.AvajeJavalinPlugin; +import io.avaje.http.api.javalin.AvajeJavalinPlugin; import io.avaje.http.api.InvalidPathArgumentException; import io.avaje.http.api.InvalidTypeArgumentException; import io.avaje.http.api.ValidationException; diff --git a/tests/test-jex/pom.xml b/tests/test-jex/pom.xml index a25a89924..17591ebff 100644 --- a/tests/test-jex/pom.xml +++ b/tests/test-jex/pom.xml @@ -4,7 +4,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-jex diff --git a/tests/test-nima-htmx/pom.xml b/tests/test-nima-htmx/pom.xml index de395f27e..a1efc4ad8 100644 --- a/tests/test-nima-htmx/pom.xml +++ b/tests/test-nima-htmx/pom.xml @@ -6,7 +6,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-nima-htmx diff --git a/tests/test-nima-jsonb/pom.xml b/tests/test-nima-jsonb/pom.xml index a101eec57..3c2b0698d 100644 --- a/tests/test-nima-jsonb/pom.xml +++ b/tests/test-nima-jsonb/pom.xml @@ -6,7 +6,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-nima-jsonb diff --git a/tests/test-nima/pom.xml b/tests/test-nima/pom.xml index 36ce06dcf..45be96e88 100644 --- a/tests/test-nima/pom.xml +++ b/tests/test-nima/pom.xml @@ -6,7 +6,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-nima diff --git a/tests/test-sigma/pom.xml b/tests/test-sigma/pom.xml index c19300a75..ee237c79b 100644 --- a/tests/test-sigma/pom.xml +++ b/tests/test-sigma/pom.xml @@ -5,7 +5,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-sigma diff --git a/tests/test-vertx-jsonb/pom.xml b/tests/test-vertx-jsonb/pom.xml index b57bbe60c..0f4419d9b 100644 --- a/tests/test-vertx-jsonb/pom.xml +++ b/tests/test-vertx-jsonb/pom.xml @@ -5,7 +5,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-vertx-jsonb diff --git a/tests/test-vertx/pom.xml b/tests/test-vertx/pom.xml index 9eef96d6d..068bd333c 100644 --- a/tests/test-vertx/pom.xml +++ b/tests/test-vertx/pom.xml @@ -5,7 +5,7 @@ io.avaje tests - 3.8 + 4.0-B.1 test-vertx