diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 84bae2002..0f9f8c49c 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -50,7 +50,7 @@ jobs:
cache: 'maven'
- name: Build with Maven
- run: mvn '-Dorg.slf4j.simpleLogger.log.org.openapitools=off' -B formatter:validate impsort:check verify --file pom.xml
+ run: mvn '-Dorg.slf4j.simpleLogger.log.org.openapitools=off' -B formatter:validate impsort:check install --file pom.xml
build_reactive:
name: Build - RESTEasy Reactive
@@ -79,4 +79,4 @@ jobs:
cache: 'maven'
- name: Build with Maven
- run: mvn -Presteasy-reactive '-Dorg.slf4j.simpleLogger.log.org.openapitools=off' -B formatter:validate impsort:check verify --file pom.xml
+ run: mvn -Presteasy-reactive '-Dorg.slf4j.simpleLogger.log.org.openapitools=off' -B formatter:validate impsort:check install --file pom.xml
diff --git a/server/integration-tests/codestarts/pom.xml b/server/integration-tests/codestarts/pom.xml
new file mode 100644
index 000000000..c4d0df180
--- /dev/null
+++ b/server/integration-tests/codestarts/pom.xml
@@ -0,0 +1,109 @@
+
+
+
+ quarkus-openapi-generator-server-integration-tests-parent
+ io.quarkiverse.openapi.generator
+ 3.0.0-lts-SNAPSHOT
+ ../pom.xml
+
+ 4.0.0
+
+ quarkus-openapi-generator-server-integration-tests-codestarts
+ Quarkus - Openapi Generator - Server - Integration Tests - Codestarts
+
+
+
+ io.quarkiverse.openapi.generator
+ quarkus-openapi-generator-server
+ ${project.version}
+
+
+ io.quarkus
+ quarkus-devtools-testing
+ test
+
+
+
+
+
+
+
+ io.quarkus
+ quarkus-maven-plugin
+ ${quarkus.version}
+
+
+ maven-surefire-plugin
+ ${version.surefire.plugin}
+
+
+ org.jboss.logmanager.LogManager
+ ${maven.home}
+ ${settings.localRepository}
+
+
+
+
+ maven-failsafe-plugin
+ ${failsafe-plugin.version}
+
+
+ org.jboss.logmanager.LogManager
+ ${maven.home}
+ ${settings.localRepository}
+
+
+
+
+ maven-compiler-plugin
+ ${compiler-plugin.version}
+
+
+ -parameters
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 3.3.1
+
+
+ copy-resources
+ generate-resources
+
+ copy-resources
+
+
+ ${project.build.outputDirectory}
+
+
+
+ ${project.basedir}/../runtime/src/main/codestarts/quarkus/openapi-generator-codestart/java
+
+ false
+
+
+
+
+
+
+
+ io.quarkus
+ quarkus-maven-plugin
+
+
+
+ build
+ generate-code
+
+
+
+
+
+
+
diff --git a/server/integration-tests/codestarts/src/main/resources/application.properties b/server/integration-tests/codestarts/src/main/resources/application.properties
new file mode 100755
index 000000000..e69de29bb
diff --git a/server/integration-tests/codestarts/src/test/java/io/quarkiverse/openapi/server/generator/it/QuarkusOpenAPIGeneratorServerCodestartsTest.java b/server/integration-tests/codestarts/src/test/java/io/quarkiverse/openapi/server/generator/it/QuarkusOpenAPIGeneratorServerCodestartsTest.java
new file mode 100644
index 000000000..d9a480c1b
--- /dev/null
+++ b/server/integration-tests/codestarts/src/test/java/io/quarkiverse/openapi/server/generator/it/QuarkusOpenAPIGeneratorServerCodestartsTest.java
@@ -0,0 +1,27 @@
+package io.quarkiverse.openapi.server.generator.it;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import io.quarkus.devtools.codestarts.quarkus.QuarkusCodestartCatalog;
+import io.quarkus.devtools.testing.codestarts.QuarkusCodestartTest;
+
+public class QuarkusOpenAPIGeneratorServerCodestartsTest {
+
+ @RegisterExtension
+ public static QuarkusCodestartTest codestartTest = QuarkusCodestartTest.builder()
+ .languages(QuarkusCodestartCatalog.Language.JAVA)
+ .setupStandaloneExtensionTest("io.quarkiverse.openapi.generator:quarkus-openapi-generator-server").build();
+
+ @Test
+ void testContent() throws Throwable {
+ codestartTest
+ .assertThatGeneratedFile(QuarkusCodestartCatalog.Language.JAVA, "src/main/resources/application.properties")
+ .content()
+ .contains("quarkus.openapi.generator.spec=openapi.yml");
+ codestartTest
+ .assertThatGeneratedFile(QuarkusCodestartCatalog.Language.JAVA, "src/main/resources/openapi/openapi.yml")
+ .content()
+ .contains("title: Generated API");
+ }
+}
diff --git a/server/integration-tests/pom.xml b/server/integration-tests/pom.xml
index f6762173a..02004766a 100755
--- a/server/integration-tests/pom.xml
+++ b/server/integration-tests/pom.xml
@@ -16,6 +16,7 @@
reactive
resteasy
+ codestarts
-
\ No newline at end of file
+
diff --git a/server/runtime/pom.xml b/server/runtime/pom.xml
index cdd310530..29905bd9c 100755
--- a/server/runtime/pom.xml
+++ b/server/runtime/pom.xml
@@ -60,6 +60,26 @@
+
+ maven-jar-plugin
+
+
+ generate-codestart-jar
+ generate-resources
+
+ jar
+
+
+ ${project.basedir}/src/main
+
+ codestarts/**
+
+ codestarts
+ true
+
+
+
+
diff --git a/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/codestart.yml b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/codestart.yml
new file mode 100644
index 000000000..edb0f3322
--- /dev/null
+++ b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/codestart.yml
@@ -0,0 +1,13 @@
+name: openapi-generator-server-codestart
+ref: openapi-generator-server
+type: code
+tags: extension-codestart
+metadata:
+ title: OpenAPI Generator Server
+ description: This codestart generates a simple API with OpenAPI documentation.
+ related-guide-section: https://docs.quarkiverse.io/quarkus-openapi-generator/dev/server.html
+language:
+ base:
+ dependencies:
+ - io.quarkus:quarkus-resteasy
+ - io.quarkus:quarkus-smallrye-openapi
\ No newline at end of file
diff --git a/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/README.tpl.qute.md b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/README.tpl.qute.md
new file mode 100644
index 000000000..0d8dc1409
--- /dev/null
+++ b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/README.tpl.qute.md
@@ -0,0 +1,24 @@
+{#include readme-header /}
+
+## Requirements
+
+If you do not have added the `io.quarkus:quarkus-smallrye-openapi` extension in your project, add it first:
+
+### SmallRye OpenAPI:
+
+Quarkus CLI:
+
+```bash
+quarkus ext add io.quarkus:quarkus-smallrye-openapi
+```
+
+Maven:
+```bash
+./mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-smallrye-openapi"
+```
+
+Gradle:
+
+```bash
+./gradlew addExtension --extensions="io.quarkus:quarkus-smallrye-openapi"
+```
\ No newline at end of file
diff --git a/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/src/main/resources/application.yml b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/src/main/resources/application.yml
new file mode 100644
index 000000000..ea7674128
--- /dev/null
+++ b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/src/main/resources/application.yml
@@ -0,0 +1,5 @@
+quarkus:
+ openapi:
+ generator:
+ spec:
+ openapi.yml
\ No newline at end of file
diff --git a/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/src/main/resources/openapi/openapi.yml b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/src/main/resources/openapi/openapi.yml
new file mode 100644
index 000000000..707eca341
--- /dev/null
+++ b/server/runtime/src/main/codestarts/quarkus/openapi-generator-server-codestart/java/src/main/resources/openapi/openapi.yml
@@ -0,0 +1,42 @@
+openapi: 3.0.3
+info:
+ title: Generated API
+ version: "1.0"
+paths:
+ /pets:
+ get:
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json: { }
+ post:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json: { }
+ delete:
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json: { }
+components:
+ schemas:
+ Pet:
+ properties:
+ description:
+ type: string
+ name:
+ type: string
\ No newline at end of file
diff --git a/server/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/server/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 000000000..fce904e16
--- /dev/null
+++ b/server/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,19 @@
+name: "OpenAPI Generator - REST Server Generator"
+description: "Provides personalized code generation to get started in a Server project "
+artifact: ${project.groupId}:${project.artifactId}:${project.version}
+metadata:
+ keywords:
+ - "openapi"
+ - "openapi-generator-server"
+ - "rest"
+ - "server"
+ categories:
+ - "web"
+ guide: "https://docs.quarkiverse.io/quarkus-openapi-generator/dev/index.html"
+ icon-url: "https://raw.githubusercontent.com/quarkiverse/quarkus-openapi-generator/main/docs/modules/ROOT/assets/images/openapi.svg"
+ status: "preview"
+ codestart:
+ name: "openapi-generator-server"
+ languages:
+ - "java"
+ artifact: "io.quarkiverse.openapi.generator:quarkus-openapi-generator-server:codestarts:jar:${project.version}"
\ No newline at end of file