From bf84259d5eae43fbc768602779ac317bcdcb9844 Mon Sep 17 00:00:00 2001 From: Hiram Chirino Date: Sat, 29 Mar 2025 15:34:33 -0400 Subject: [PATCH] Use the standard Quarkus extension project structure. This should allow us to push the quarkus extension to quarkiverse eventually. Signed-off-by: Hiram Chirino --- pom.xml | 15 +- proxy-wasm-jaxrs-quarkus/pom.xml | 123 ----------- .../src/test/resources/application.properties | 2 - .../.gitignore | 0 .../pom.xml | 18 +- .../proxywasm/jaxrs/example/App.java | 0 .../proxywasm/jaxrs/example/Resources.java | 0 .../src/main/resources/application.properties | 0 .../proxywasm/jaxrs/example/FFITest.java | 0 quarkus-proxy-wasm/.github/CODEOWNERS | 14 ++ quarkus-proxy-wasm/.github/dependabot.yml | 15 ++ quarkus-proxy-wasm/.github/project.yml | 4 + .../.github/workflows/build.yml | 60 ++++++ .../.github/workflows/pre-release.yml | 16 ++ .../.github/workflows/quarkus-snapshot.yaml | 55 +++++ .../.github/workflows/release-perform.yml | 28 +++ .../.github/workflows/release-prepare.yml | 19 ++ quarkus-proxy-wasm/.gitignore | 64 ++++++ quarkus-proxy-wasm/LICENSE | 201 ++++++++++++++++++ quarkus-proxy-wasm/README.md | 27 +++ quarkus-proxy-wasm/deployment/pom.xml | 65 ++++++ .../deployment/ProxyWasmProcessor.java | 8 +- .../proxywasm/test/ProxyWasmDevModeTest.java | 23 ++ .../proxywasm/test/ProxyWasmTest.java | 23 ++ quarkus-proxy-wasm/docs/antora.yml | 5 + .../docs/modules/ROOT/assets/images/.keepme | 0 .../docs/modules/ROOT/examples/.keepme | 0 quarkus-proxy-wasm/docs/modules/ROOT/nav.adoc | 1 + .../ROOT/pages/includes/attributes.adoc | 3 + .../docs/modules/ROOT/pages/index.adoc | 27 +++ quarkus-proxy-wasm/docs/pom.xml | 107 ++++++++++ .../docs/templates/includes/attributes.adoc | 3 + quarkus-proxy-wasm/integration-tests/pom.xml | 104 +++++++++ .../io/quarkiverse/proxywasm/it}/App.java | 4 +- .../quarkiverse/proxywasm/it}/MockLogger.java | 2 +- .../quarkiverse/proxywasm/it}/Resources.java | 2 +- .../src/main/resources/application.properties | 0 .../io/quarkiverse/proxywasm/it/FFIIT.java | 6 + .../io/quarkiverse/proxywasm/it}/FFITest.java | 2 +- .../quarkiverse/proxywasm/it/HeadersIT.java | 6 + .../proxywasm/it}/HeadersTest.java | 2 +- .../io/quarkiverse/proxywasm/it}/Helpers.java | 2 +- .../quarkiverse/proxywasm/it/HttpCallIT.java | 6 + .../proxywasm/it}/HttpCallTest.java | 2 +- .../io/quarkiverse/proxywasm/it/TickIT.java | 6 + .../quarkiverse/proxywasm/it}/TickTest.java | 4 +- quarkus-proxy-wasm/pom.xml | 105 +++++++++ quarkus-proxy-wasm/runtime/pom.xml | 73 +++++++ .../resources/META-INF/quarkus-extension.yaml | 14 ++ 49 files changed, 1115 insertions(+), 151 deletions(-) delete mode 100644 proxy-wasm-jaxrs-quarkus/pom.xml delete mode 100644 proxy-wasm-jaxrs-quarkus/src/test/resources/application.properties rename {proxy-wasm-jaxrs-quarkus-example => proxy-wasm-quarkus-example}/.gitignore (100%) rename {proxy-wasm-jaxrs-quarkus-example => proxy-wasm-quarkus-example}/pom.xml (91%) rename {proxy-wasm-jaxrs-quarkus-example => proxy-wasm-quarkus-example}/src/main/java/io/roastedroot/proxywasm/jaxrs/example/App.java (100%) rename {proxy-wasm-jaxrs-quarkus-example => proxy-wasm-quarkus-example}/src/main/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java (100%) rename {proxy-wasm-jaxrs-quarkus-example => proxy-wasm-quarkus-example}/src/main/resources/application.properties (100%) rename {proxy-wasm-jaxrs-quarkus-example => proxy-wasm-quarkus-example}/src/test/java/io/roastedroot/proxywasm/jaxrs/example/FFITest.java (100%) create mode 100644 quarkus-proxy-wasm/.github/CODEOWNERS create mode 100644 quarkus-proxy-wasm/.github/dependabot.yml create mode 100644 quarkus-proxy-wasm/.github/project.yml create mode 100644 quarkus-proxy-wasm/.github/workflows/build.yml create mode 100644 quarkus-proxy-wasm/.github/workflows/pre-release.yml create mode 100644 quarkus-proxy-wasm/.github/workflows/quarkus-snapshot.yaml create mode 100644 quarkus-proxy-wasm/.github/workflows/release-perform.yml create mode 100644 quarkus-proxy-wasm/.github/workflows/release-prepare.yml create mode 100644 quarkus-proxy-wasm/.gitignore create mode 100644 quarkus-proxy-wasm/LICENSE create mode 100644 quarkus-proxy-wasm/README.md create mode 100644 quarkus-proxy-wasm/deployment/pom.xml rename proxy-wasm-jaxrs-quarkus/src/main/java/io/roastedroot/proxywasm/jaxrs/quarkus/deployment/ProxyWasmJaxrsQuarkusProcessor.java => quarkus-proxy-wasm/deployment/src/main/java/io/quarkiverse/proxywasm/deployment/ProxyWasmProcessor.java (83%) create mode 100644 quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmDevModeTest.java create mode 100644 quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmTest.java create mode 100644 quarkus-proxy-wasm/docs/antora.yml create mode 100644 quarkus-proxy-wasm/docs/modules/ROOT/assets/images/.keepme create mode 100644 quarkus-proxy-wasm/docs/modules/ROOT/examples/.keepme create mode 100644 quarkus-proxy-wasm/docs/modules/ROOT/nav.adoc create mode 100644 quarkus-proxy-wasm/docs/modules/ROOT/pages/includes/attributes.adoc create mode 100644 quarkus-proxy-wasm/docs/modules/ROOT/pages/index.adoc create mode 100644 quarkus-proxy-wasm/docs/pom.xml create mode 100644 quarkus-proxy-wasm/docs/templates/includes/attributes.adoc create mode 100644 quarkus-proxy-wasm/integration-tests/pom.xml rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example => quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it}/App.java (96%) rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example => quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it}/MockLogger.java (94%) rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example => quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it}/Resources.java (97%) create mode 100644 quarkus-proxy-wasm/integration-tests/src/main/resources/application.properties create mode 100644 quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/FFIIT.java rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests => quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it}/FFITest.java (89%) create mode 100644 quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HeadersIT.java rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests => quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it}/HeadersTest.java (96%) rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example => quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it}/Helpers.java (96%) create mode 100644 quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HttpCallIT.java rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests => quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it}/HttpCallTest.java (92%) create mode 100644 quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/TickIT.java rename {proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests => quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it}/TickTest.java (92%) create mode 100644 quarkus-proxy-wasm/pom.xml create mode 100644 quarkus-proxy-wasm/runtime/pom.xml create mode 100644 quarkus-proxy-wasm/runtime/src/main/resources/META-INF/quarkus-extension.yaml diff --git a/pom.xml b/pom.xml index 103a5b5..89b0a7a 100644 --- a/pom.xml +++ b/pom.xml @@ -207,6 +207,17 @@ true + + + maven-surefire-plugin + ${surefire-plugin.version} + + + org.jboss.logmanager.LogManager + + + + @@ -220,8 +231,8 @@ [17,) - proxy-wasm-jaxrs-quarkus - proxy-wasm-jaxrs-quarkus-example + quarkus-proxy-wasm + proxy-wasm-quarkus-example diff --git a/proxy-wasm-jaxrs-quarkus/pom.xml b/proxy-wasm-jaxrs-quarkus/pom.xml deleted file mode 100644 index 74275f6..0000000 --- a/proxy-wasm-jaxrs-quarkus/pom.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - 4.0.0 - - - io.roastedroot - proxy-wasm-java-host-parent - 1.0-SNAPSHOT - ../pom.xml - - - proxy-wasm-jaxrs-quarkus - jar - proxy-wasm-jaxrs-quarkus - - - 17 - - - - - - io.quarkus - quarkus-bom - ${quarkus.version} - pom - import - - - - - - - io.quarkus - quarkus-arc-deployment - - - io.quarkus - quarkus-jaxrs-spi-deployment - - - io.roastedroot - proxy-wasm-jaxrs - ${project.version} - - - com.google.code.gson - gson - 2.12.1 - test - - - - - io.quarkus - quarkus-junit5 - test - - - io.quarkus - quarkus-rest-jackson - test - - - io.rest-assured - rest-assured - test - - - - - - - - - - io.quarkus - quarkus-maven-plugin - ${quarkus.version} - - - maven-compiler-plugin - - - default-compile - - - - io.quarkus - quarkus-extension-processor - ${quarkus.version} - - - - - - - - maven-failsafe-plugin - ${failsafe-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - ${settings.localRepository} - - - - - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - ${settings.localRepository} - - - - - - - diff --git a/proxy-wasm-jaxrs-quarkus/src/test/resources/application.properties b/proxy-wasm-jaxrs-quarkus/src/test/resources/application.properties deleted file mode 100644 index 6e516f2..0000000 --- a/proxy-wasm-jaxrs-quarkus/src/test/resources/application.properties +++ /dev/null @@ -1,2 +0,0 @@ -quarkus.log.level=INFO -quarkus.log.category."org.hibernate".level=DEBUG diff --git a/proxy-wasm-jaxrs-quarkus-example/.gitignore b/proxy-wasm-quarkus-example/.gitignore similarity index 100% rename from proxy-wasm-jaxrs-quarkus-example/.gitignore rename to proxy-wasm-quarkus-example/.gitignore diff --git a/proxy-wasm-jaxrs-quarkus-example/pom.xml b/proxy-wasm-quarkus-example/pom.xml similarity index 91% rename from proxy-wasm-jaxrs-quarkus-example/pom.xml rename to proxy-wasm-quarkus-example/pom.xml index c1c957e..fd05ecc 100644 --- a/proxy-wasm-jaxrs-quarkus-example/pom.xml +++ b/proxy-wasm-quarkus-example/pom.xml @@ -9,9 +9,9 @@ ../pom.xml - proxy-wasm-jaxrs-quarkus-example + proxy-wasm-quarkus-example jar - proxy-wasm-jaxrs-quarkus-example + proxy-wasm-quarkus-example @@ -32,18 +32,14 @@ 2.12.1 - io.quarkus - quarkus-arc - true + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm + ${project.version} io.quarkus - quarkus-rest-jackson - - - io.roastedroot - proxy-wasm-jaxrs-quarkus - ${project.version} + quarkus-arc + true diff --git a/proxy-wasm-jaxrs-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/App.java b/proxy-wasm-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/App.java similarity index 100% rename from proxy-wasm-jaxrs-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/App.java rename to proxy-wasm-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/App.java diff --git a/proxy-wasm-jaxrs-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java b/proxy-wasm-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java similarity index 100% rename from proxy-wasm-jaxrs-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java rename to proxy-wasm-quarkus-example/src/main/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java diff --git a/proxy-wasm-jaxrs-quarkus-example/src/main/resources/application.properties b/proxy-wasm-quarkus-example/src/main/resources/application.properties similarity index 100% rename from proxy-wasm-jaxrs-quarkus-example/src/main/resources/application.properties rename to proxy-wasm-quarkus-example/src/main/resources/application.properties diff --git a/proxy-wasm-jaxrs-quarkus-example/src/test/java/io/roastedroot/proxywasm/jaxrs/example/FFITest.java b/proxy-wasm-quarkus-example/src/test/java/io/roastedroot/proxywasm/jaxrs/example/FFITest.java similarity index 100% rename from proxy-wasm-jaxrs-quarkus-example/src/test/java/io/roastedroot/proxywasm/jaxrs/example/FFITest.java rename to proxy-wasm-quarkus-example/src/test/java/io/roastedroot/proxywasm/jaxrs/example/FFITest.java diff --git a/quarkus-proxy-wasm/.github/CODEOWNERS b/quarkus-proxy-wasm/.github/CODEOWNERS new file mode 100644 index 0000000..57459f7 --- /dev/null +++ b/quarkus-proxy-wasm/.github/CODEOWNERS @@ -0,0 +1,14 @@ +# Lines starting with '#' are comments. +# Each line is a file pattern followed by one or more owners. + +# More details are here: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + +# The '*' pattern is global owners. + +# Order is important. The last matching pattern has the most precedence. +# The folders are ordered as follows: + +# In each subsection folders are ordered first by depth, then alphabetically. +# This should make it easy to add new rules without breaking existing ones. + +* @quarkiverse/quarkiverse-proxy-wasm diff --git a/quarkus-proxy-wasm/.github/dependabot.yml b/quarkus-proxy-wasm/.github/dependabot.yml new file mode 100644 index 0000000..05fc58a --- /dev/null +++ b/quarkus-proxy-wasm/.github/dependabot.yml @@ -0,0 +1,15 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "maven" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: daily \ No newline at end of file diff --git a/quarkus-proxy-wasm/.github/project.yml b/quarkus-proxy-wasm/.github/project.yml new file mode 100644 index 0000000..a2e9809 --- /dev/null +++ b/quarkus-proxy-wasm/.github/project.yml @@ -0,0 +1,4 @@ +release: + current-version: "0" + next-version: "1.0-SNAPSHOT" + diff --git a/quarkus-proxy-wasm/.github/workflows/build.yml b/quarkus-proxy-wasm/.github/workflows/build.yml new file mode 100644 index 0000000..f28dc03 --- /dev/null +++ b/quarkus-proxy-wasm/.github/workflows/build.yml @@ -0,0 +1,60 @@ +name: Build + +on: + push: + branches: + - "main" + paths-ignore: + - '.gitignore' + - 'CODEOWNERS' + - 'LICENSE' + - '*.md' + - '*.adoc' + - '*.txt' + - '.all-contributorsrc' + - '.github/project.yml' + pull_request: + paths-ignore: + - '.gitignore' + - 'CODEOWNERS' + - 'LICENSE' + - '*.md' + - '*.adoc' + - '*.txt' + - '.all-contributorsrc' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +defaults: + run: + shell: bash + +jobs: + build: + name: Build on ${{ matrix.os }} + strategy: + fail-fast: false + matrix: +# os: [windows-latest, macos-latest, ubuntu-latest] + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - name: Prepare git + run: git config --global core.autocrlf false + if: startsWith(matrix.os, 'windows') + + - uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + cache: 'maven' + + - name: Build with Maven + run: mvn -B clean install -Dno-format + + - name: Build with Maven (Native) + run: mvn -B install -Dnative -Dquarkus.native.container-build -Dnative.surefire.skip diff --git a/quarkus-proxy-wasm/.github/workflows/pre-release.yml b/quarkus-proxy-wasm/.github/workflows/pre-release.yml new file mode 100644 index 0000000..afe17b3 --- /dev/null +++ b/quarkus-proxy-wasm/.github/workflows/pre-release.yml @@ -0,0 +1,16 @@ +name: Quarkiverse Pre Release + +on: + pull_request: + paths: + - '.github/project.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + pre-release: + name: Pre-Release + uses: quarkiverse/.github/.github/workflows/pre-release.yml@main + secrets: inherit diff --git a/quarkus-proxy-wasm/.github/workflows/quarkus-snapshot.yaml b/quarkus-proxy-wasm/.github/workflows/quarkus-snapshot.yaml new file mode 100644 index 0000000..dd6098a --- /dev/null +++ b/quarkus-proxy-wasm/.github/workflows/quarkus-snapshot.yaml @@ -0,0 +1,55 @@ +name: "Quarkus ecosystem CI" +on: + workflow_dispatch: + watch: + types: [started] + + # For this CI to work, ECOSYSTEM_CI_TOKEN needs to contain a GitHub with rights to close the Quarkus issue that the user/bot has opened, + # while 'ECOSYSTEM_CI_REPO_PATH' needs to be set to the corresponding path in the 'quarkusio/quarkus-ecosystem-ci' repository + +env: + ECOSYSTEM_CI_REPO: quarkusio/quarkus-ecosystem-ci + ECOSYSTEM_CI_REPO_FILE: context.yaml + JAVA_VERSION: 17 + + ######################### + # Repo specific setting # + ######################### + + ECOSYSTEM_CI_REPO_PATH: quarkiverse-proxy-wasm + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +defaults: + run: + shell: bash + +jobs: + build: + name: "Build against latest Quarkus snapshot" + runs-on: ubuntu-latest + + steps: + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ env.JAVA_VERSION }} + + - name: Checkout repo + uses: actions/checkout@v4 + with: + path: current-repo + + - name: Checkout Ecosystem + uses: actions/checkout@v4 + with: + repository: ${{ env.ECOSYSTEM_CI_REPO }} + path: ecosystem-ci + + - name: Setup and Run Tests + run: ./ecosystem-ci/setup-and-test + env: + ECOSYSTEM_CI_TOKEN: ${{ secrets.ECOSYSTEM_CI_TOKEN }} diff --git a/quarkus-proxy-wasm/.github/workflows/release-perform.yml b/quarkus-proxy-wasm/.github/workflows/release-perform.yml new file mode 100644 index 0000000..88f9437 --- /dev/null +++ b/quarkus-proxy-wasm/.github/workflows/release-perform.yml @@ -0,0 +1,28 @@ +name: Quarkiverse Perform Release +run-name: Perform ${{github.event.inputs.tag || github.ref_name}} Release +on: + push: + tags: + - '*' + workflow_dispatch: + inputs: + tag: + description: 'Tag to release' + required: true + +permissions: + attestations: write + id-token: write + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + perform-release: + name: Perform Release + uses: quarkiverse/.github/.github/workflows/perform-release.yml@main + secrets: inherit + with: + version: ${{github.event.inputs.tag || github.ref_name}} diff --git a/quarkus-proxy-wasm/.github/workflows/release-prepare.yml b/quarkus-proxy-wasm/.github/workflows/release-prepare.yml new file mode 100644 index 0000000..e2da708 --- /dev/null +++ b/quarkus-proxy-wasm/.github/workflows/release-prepare.yml @@ -0,0 +1,19 @@ +name: Quarkiverse Prepare Release + +on: + workflow_dispatch: + pull_request: + types: [ closed ] + paths: + - '.github/project.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + prepare-release: + name: Prepare Release + if: ${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true}} + uses: quarkiverse/.github/.github/workflows/prepare-release.yml@main + secrets: inherit diff --git a/quarkus-proxy-wasm/.gitignore b/quarkus-proxy-wasm/.gitignore new file mode 100644 index 0000000..a19c3c0 --- /dev/null +++ b/quarkus-proxy-wasm/.gitignore @@ -0,0 +1,64 @@ +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see https://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +# Eclipse +.project +.classpath +.settings/ +bin/ + +# IntelliJ +.idea +*.ipr +*.iml +*.iws + +# NetBeans +nb-configuration.xml + +# Visual Studio Code +.vscode +.factorypath + +# OSX +.DS_Store + +# Vim +*.swp +*.swo + +# patch +*.orig +*.rej + +# Gradle +.gradle/ +build/ + +# Maven +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +release.properties diff --git a/quarkus-proxy-wasm/LICENSE b/quarkus-proxy-wasm/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/quarkus-proxy-wasm/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/quarkus-proxy-wasm/README.md b/quarkus-proxy-wasm/README.md new file mode 100644 index 0000000..94bdb13 --- /dev/null +++ b/quarkus-proxy-wasm/README.md @@ -0,0 +1,27 @@ +# Quarkus Proxy Wasm + +[![Version](https://img.shields.io/maven-central/v/io.quarkiverse.proxy-wasm/quarkus-proxy-wasm?logo=apache-maven&style=flat-square)](https://central.sonatype.com/artifact/io.quarkiverse.proxy-wasm/quarkus-proxy-wasm-parent) + +## Welcome to Quarkiverse! + +Congratulations and thank you for creating a new Quarkus extension project in Quarkiverse! + +Feel free to replace this content with the proper description of your new project and necessary instructions how to use and contribute to it. + +You can find the basic info, Quarkiverse policies and conventions in [the Quarkiverse wiki](https://github.com/quarkiverse/quarkiverse/wiki). + +In case you are creating a Quarkus extension project for the first time, please follow [Building My First Extension](https://quarkus.io/guides/building-my-first-extension) guide. + +Other useful articles related to Quarkus extension development can be found under the [Writing Extensions](https://quarkus.io/guides/#writing-extensions) guide category on the [Quarkus.io](https://quarkus.io) website. + +Thanks again, good luck and have fun! + +## Documentation + +The documentation for this extension should be maintained as part of this repository and it is stored in the `docs/` directory. + +The layout should follow the [Antora's Standard File and Directory Set](https://docs.antora.org/antora/2.3/standard-directories/). + +Once the docs are ready to be published, please open a PR including this repository in the [Quarkiverse Docs Antora playbook](https://github.com/quarkiverse/quarkiverse-docs/blob/main/antora-playbook.yml#L7). See an example [here](https://github.com/quarkiverse/quarkiverse-docs/pull/1) + +Your documentation will then be published to the website. diff --git a/quarkus-proxy-wasm/deployment/pom.xml b/quarkus-proxy-wasm/deployment/pom.xml new file mode 100644 index 0000000..5a82137 --- /dev/null +++ b/quarkus-proxy-wasm/deployment/pom.xml @@ -0,0 +1,65 @@ + + + 4.0.0 + + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm-parent + 1.0-SNAPSHOT + ../pom.xml + + quarkus-proxy-wasm-deployment + Quarkus Proxy Wasm - Deployment + + + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm + ${project.version} + + + io.quarkus + quarkus-arc-deployment + + + io.quarkus + quarkus-jaxrs-spi-deployment + + + io.quarkus + quarkus-rest-deployment + + + io.quarkus + quarkus-vertx-http-deployment + + + + io.quarkus + quarkus-junit5-internal + test + + + + + + + maven-compiler-plugin + + + default-compile + + + + io.quarkus + quarkus-extension-processor + ${quarkus.version} + + + + + + + + + diff --git a/proxy-wasm-jaxrs-quarkus/src/main/java/io/roastedroot/proxywasm/jaxrs/quarkus/deployment/ProxyWasmJaxrsQuarkusProcessor.java b/quarkus-proxy-wasm/deployment/src/main/java/io/quarkiverse/proxywasm/deployment/ProxyWasmProcessor.java similarity index 83% rename from proxy-wasm-jaxrs-quarkus/src/main/java/io/roastedroot/proxywasm/jaxrs/quarkus/deployment/ProxyWasmJaxrsQuarkusProcessor.java rename to quarkus-proxy-wasm/deployment/src/main/java/io/quarkiverse/proxywasm/deployment/ProxyWasmProcessor.java index 6c7cbcf..bf0725d 100644 --- a/proxy-wasm-jaxrs-quarkus/src/main/java/io/roastedroot/proxywasm/jaxrs/quarkus/deployment/ProxyWasmJaxrsQuarkusProcessor.java +++ b/quarkus-proxy-wasm/deployment/src/main/java/io/quarkiverse/proxywasm/deployment/ProxyWasmProcessor.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.quarkus.deployment; +package io.quarkiverse.proxywasm.deployment; import io.quarkus.arc.deployment.AdditionalBeanBuildItem; import io.quarkus.deployment.annotations.BuildStep; @@ -9,11 +9,13 @@ import java.util.List; import org.jboss.jandex.DotName; -class ProxyWasmJaxrsQuarkusProcessor { +class ProxyWasmProcessor { + + private static final String FEATURE = "proxy-wasm"; @BuildStep FeatureBuildItem feature() { - return new FeatureBuildItem("proxy-wasm-jaxrs-quarkus"); + return new FeatureBuildItem(FEATURE); } @BuildStep diff --git a/quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmDevModeTest.java b/quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmDevModeTest.java new file mode 100644 index 0000000..d61c307 --- /dev/null +++ b/quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmDevModeTest.java @@ -0,0 +1,23 @@ +package io.quarkiverse.proxywasm.test; + +import io.quarkus.test.QuarkusDevModeTest; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +public class ProxyWasmDevModeTest { + + // Start hot reload (DevMode) test with your extension loaded + @RegisterExtension + static final QuarkusDevModeTest devModeTest = + new QuarkusDevModeTest().setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)); + + @Test + public void writeYourOwnDevModeTest() { + // Write your dev mode tests here - see the testing extension guide + // https://quarkus.io/guides/writing-extensions#testing-hot-reload for more information + Assertions.assertTrue(true, "Add dev mode assertions to " + getClass().getName()); + } +} diff --git a/quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmTest.java b/quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmTest.java new file mode 100644 index 0000000..43006d4 --- /dev/null +++ b/quarkus-proxy-wasm/deployment/src/test/java/io/quarkiverse/proxywasm/test/ProxyWasmTest.java @@ -0,0 +1,23 @@ +package io.quarkiverse.proxywasm.test; + +import io.quarkus.test.QuarkusUnitTest; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +public class ProxyWasmTest { + + // Start unit test with your extension loaded + @RegisterExtension + static final QuarkusUnitTest unitTest = + new QuarkusUnitTest().setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)); + + @Test + public void writeYourOwnUnitTest() { + // Write your unit tests here - see the testing extension guide + // https://quarkus.io/guides/writing-extensions#testing-extensions for more information + Assertions.assertTrue(true, "Add some assertions to " + getClass().getName()); + } +} diff --git a/quarkus-proxy-wasm/docs/antora.yml b/quarkus-proxy-wasm/docs/antora.yml new file mode 100644 index 0000000..103efcb --- /dev/null +++ b/quarkus-proxy-wasm/docs/antora.yml @@ -0,0 +1,5 @@ +name: quarkus-proxy-wasm +title: Proxy Wasm +version: dev +nav: + - modules/ROOT/nav.adoc diff --git a/quarkus-proxy-wasm/docs/modules/ROOT/assets/images/.keepme b/quarkus-proxy-wasm/docs/modules/ROOT/assets/images/.keepme new file mode 100644 index 0000000..e69de29 diff --git a/quarkus-proxy-wasm/docs/modules/ROOT/examples/.keepme b/quarkus-proxy-wasm/docs/modules/ROOT/examples/.keepme new file mode 100644 index 0000000..e69de29 diff --git a/quarkus-proxy-wasm/docs/modules/ROOT/nav.adoc b/quarkus-proxy-wasm/docs/modules/ROOT/nav.adoc new file mode 100644 index 0000000..d2454cd --- /dev/null +++ b/quarkus-proxy-wasm/docs/modules/ROOT/nav.adoc @@ -0,0 +1 @@ +* xref:index.adoc[Getting started] diff --git a/quarkus-proxy-wasm/docs/modules/ROOT/pages/includes/attributes.adoc b/quarkus-proxy-wasm/docs/modules/ROOT/pages/includes/attributes.adoc new file mode 100644 index 0000000..19a687e --- /dev/null +++ b/quarkus-proxy-wasm/docs/modules/ROOT/pages/includes/attributes.adoc @@ -0,0 +1,3 @@ +:project-version: 0 + +:examples-dir: ./../examples/ \ No newline at end of file diff --git a/quarkus-proxy-wasm/docs/modules/ROOT/pages/index.adoc b/quarkus-proxy-wasm/docs/modules/ROOT/pages/index.adoc new file mode 100644 index 0000000..996f4b7 --- /dev/null +++ b/quarkus-proxy-wasm/docs/modules/ROOT/pages/index.adoc @@ -0,0 +1,27 @@ += Quarkus Proxy Wasm + +include::./includes/attributes.adoc[] + +TIP: Describe what the extension does here. + +== Installation + +If you want to use this extension, you need to add the `io.quarkiverse.proxy-wasm:quarkus-proxy-wasm` extension first to your build file. + +For instance, with Maven, add the following dependency to your POM file: + +[source,xml,subs=attributes+] +---- + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm + {project-version} + +---- + +[[extension-configuration-reference]] +== Extension Configuration Reference + +TIP: Remove this section if you don't have Quarkus configuration properties in your extension. + +include::includes/quarkus-proxy-wasm.adoc[leveloffset=+1, opts=optional] diff --git a/quarkus-proxy-wasm/docs/pom.xml b/quarkus-proxy-wasm/docs/pom.xml new file mode 100644 index 0000000..384e7ba --- /dev/null +++ b/quarkus-proxy-wasm/docs/pom.xml @@ -0,0 +1,107 @@ + + + 4.0.0 + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm-parent + 1.0-SNAPSHOT + ../pom.xml + + + quarkus-proxy-wasm-docs + Quarkus Proxy Wasm - Documentation + + + + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm-deployment + ${project.version} + + + + + + + io.quarkus + quarkus-config-doc-maven-plugin + true + + ${project.basedir}/modules/ROOT/pages/includes/ + + + + io.quarkus + quarkus-maven-plugin + + + + build + + + + + + it.ozimov + yaml-properties-maven-plugin + + + + read-project-properties + + initialize + + + ${project.basedir}/../.github/project.yml + + + + + + + maven-resources-plugin + + + copy-resources + + copy-resources + + generate-resources + + ${project.basedir}/modules/ROOT/pages/includes/ + + + ${project.basedir}/templates/includes + attributes.adoc + true + + + + + + copy-images + + copy-resources + + prepare-package + + ${project.build.directory}/generated-docs/_images/ + + + ${project.basedir}/modules/ROOT/assets/images/ + false + + + + + + + + org.asciidoctor + asciidoctor-maven-plugin + + + modules/ROOT/examples + + + diff --git a/quarkus-proxy-wasm/docs/templates/includes/attributes.adoc b/quarkus-proxy-wasm/docs/templates/includes/attributes.adoc new file mode 100644 index 0000000..e1a2881 --- /dev/null +++ b/quarkus-proxy-wasm/docs/templates/includes/attributes.adoc @@ -0,0 +1,3 @@ +:project-version: ${release.current-version} + +:examples-dir: ./../examples/ \ No newline at end of file diff --git a/quarkus-proxy-wasm/integration-tests/pom.xml b/quarkus-proxy-wasm/integration-tests/pom.xml new file mode 100644 index 0000000..5270bc6 --- /dev/null +++ b/quarkus-proxy-wasm/integration-tests/pom.xml @@ -0,0 +1,104 @@ + + + 4.0.0 + + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm-parent + 1.0-SNAPSHOT + ../pom.xml + + quarkus-proxy-wasm-integration-tests + Quarkus Proxy Wasm - Integration Tests + + + true + + + + + com.google.code.gson + gson + 2.12.1 + + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm + ${project.version} + + + io.quarkus + quarkus-rest + + + + io.quarkus + quarkus-junit5 + test + + + io.rest-assured + rest-assured + test + + + + + + + io.quarkus + quarkus-maven-plugin + + + + build + + + + + + maven-failsafe-plugin + + + ${project.build.directory}/${project.build.finalName}-runner + org.jboss.logmanager.LogManager + ${maven.home} + + + + + + integration-test + verify + + + + + + + + + + native-image + + + native + + + + false + true + + + + + maven-surefire-plugin + + ${native.surefire.skip} + + + + + + + diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/App.java b/quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/App.java similarity index 96% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/App.java rename to quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/App.java index 9980a03..ccf20bd 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/App.java +++ b/quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/App.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.example; +package io.quarkiverse.proxywasm.it; import com.dylibso.chicory.wasm.Parser; import com.dylibso.chicory.wasm.WasmModule; @@ -14,7 +14,7 @@ @ApplicationScoped public class App { - public static final String EXAMPLES_DIR = "../proxy-wasm-java-host/src/test"; + public static final String EXAMPLES_DIR = "../../proxy-wasm-java-host/src/test"; private static final Gson gson = new Gson(); public static WasmModule parseTestModule(String file) { diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/MockLogger.java b/quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/MockLogger.java similarity index 94% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/MockLogger.java rename to quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/MockLogger.java index 964c5f8..351a1f5 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/MockLogger.java +++ b/quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/MockLogger.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.example; +package io.quarkiverse.proxywasm.it; import io.roastedroot.proxywasm.LogHandler; import io.roastedroot.proxywasm.LogLevel; diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java b/quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/Resources.java similarity index 97% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java rename to quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/Resources.java index d947078..138cd5f 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/Resources.java +++ b/quarkus-proxy-wasm/integration-tests/src/main/java/io/quarkiverse/proxywasm/it/Resources.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.example; +package io.quarkiverse.proxywasm.it; import io.roastedroot.proxywasm.jaxrs.WasmPlugin; import jakarta.ws.rs.GET; diff --git a/quarkus-proxy-wasm/integration-tests/src/main/resources/application.properties b/quarkus-proxy-wasm/integration-tests/src/main/resources/application.properties new file mode 100644 index 0000000..e69de29 diff --git a/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/FFIIT.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/FFIIT.java new file mode 100644 index 0000000..49993e6 --- /dev/null +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/FFIIT.java @@ -0,0 +1,6 @@ +package io.quarkiverse.proxywasm.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +public class FFIIT extends FFITest {} diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/FFITest.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/FFITest.java similarity index 89% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/FFITest.java rename to quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/FFITest.java index 73c4e57..b5d85ff 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/FFITest.java +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/FFITest.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.example.tests; +package io.quarkiverse.proxywasm.it; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; diff --git a/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HeadersIT.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HeadersIT.java new file mode 100644 index 0000000..f31ce8e --- /dev/null +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HeadersIT.java @@ -0,0 +1,6 @@ +package io.quarkiverse.proxywasm.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +public class HeadersIT extends HeadersTest {} diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/HeadersTest.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HeadersTest.java similarity index 96% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/HeadersTest.java rename to quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HeadersTest.java index d4d80ce..ef4e900 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/HeadersTest.java +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HeadersTest.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.example.tests; +package io.quarkiverse.proxywasm.it; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/Helpers.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/Helpers.java similarity index 96% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/Helpers.java rename to quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/Helpers.java index 0719367..a4effa9 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/Helpers.java +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/Helpers.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.example; +package io.quarkiverse.proxywasm.it; import java.util.ArrayList; import org.hamcrest.Description; diff --git a/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HttpCallIT.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HttpCallIT.java new file mode 100644 index 0000000..4f696a2 --- /dev/null +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HttpCallIT.java @@ -0,0 +1,6 @@ +package io.quarkiverse.proxywasm.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +public class HttpCallIT extends HttpCallTest {} diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/HttpCallTest.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HttpCallTest.java similarity index 92% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/HttpCallTest.java rename to quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HttpCallTest.java index 0c35873..36d003f 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/HttpCallTest.java +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/HttpCallTest.java @@ -1,4 +1,4 @@ -package io.roastedroot.proxywasm.jaxrs.example.tests; +package io.quarkiverse.proxywasm.it; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; diff --git a/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/TickIT.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/TickIT.java new file mode 100644 index 0000000..2c4fe06 --- /dev/null +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/TickIT.java @@ -0,0 +1,6 @@ +package io.quarkiverse.proxywasm.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +public class TickIT extends TickTest {} diff --git a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/TickTest.java b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/TickTest.java similarity index 92% rename from proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/TickTest.java rename to quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/TickTest.java index 536725d..7356ae0 100644 --- a/proxy-wasm-jaxrs-quarkus/src/test/java/io/roastedroot/proxywasm/jaxrs/example/tests/TickTest.java +++ b/quarkus-proxy-wasm/integration-tests/src/test/java/io/quarkiverse/proxywasm/it/TickTest.java @@ -1,7 +1,7 @@ -package io.roastedroot.proxywasm.jaxrs.example.tests; +package io.quarkiverse.proxywasm.it; +import static io.quarkiverse.proxywasm.it.Helpers.isTrue; import static io.restassured.RestAssured.given; -import static io.roastedroot.proxywasm.jaxrs.example.Helpers.isTrue; import static org.hamcrest.Matchers.equalTo; import io.quarkus.test.junit.QuarkusTest; diff --git a/quarkus-proxy-wasm/pom.xml b/quarkus-proxy-wasm/pom.xml new file mode 100644 index 0000000..9bf1dc4 --- /dev/null +++ b/quarkus-proxy-wasm/pom.xml @@ -0,0 +1,105 @@ + + + 4.0.0 + + + io.roastedroot + proxy-wasm-java-host-parent + 1.0-SNAPSHOT + ../pom.xml + + + + + + + + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm-parent + 1.0-SNAPSHOT + pom + Quarkus Proxy Wasm - Parent + + + deployment + runtime + + + + scm:git:git@github.com:quarkiverse/quarkus-proxy-wasm.git + scm:git:git@github.com:quarkiverse/quarkus-proxy-wasm.git + https://github.com/quarkiverse/quarkus-proxy-wasm + + + + 3.14.0 + 17 + UTF-8 + UTF-8 + 3.21.0 + + + + + + io.quarkus + quarkus-bom + ${quarkus.version} + pom + import + + + + + + + + + io.quarkus + quarkus-config-doc-maven-plugin + ${quarkus.version} + + + io.quarkus + quarkus-maven-plugin + ${quarkus.version} + + + maven-compiler-plugin + ${compiler-plugin.version} + + true + + + + + + + + + docs + + + performRelease + !true + + + + docs + + + + it + + + performRelease + !true + + + + integration-tests + + + + diff --git a/quarkus-proxy-wasm/runtime/pom.xml b/quarkus-proxy-wasm/runtime/pom.xml new file mode 100644 index 0000000..9ad43ea --- /dev/null +++ b/quarkus-proxy-wasm/runtime/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + + + io.quarkiverse.proxy-wasm + quarkus-proxy-wasm-parent + 1.0-SNAPSHOT + ../pom.xml + + quarkus-proxy-wasm + Quarkus Proxy Wasm - Runtime + + + + + io.quarkus + quarkus-arc + + + io.quarkus + quarkus-rest + + + io.quarkus + quarkus-vertx-http + + + io.roastedroot + proxy-wasm-jaxrs + ${project.version} + + + + + + + + io.quarkus + quarkus-extension-maven-plugin + ${quarkus.version} + + + + extension-descriptor + + compile + + ${project.groupId}:${project.artifactId}-deployment:${project.version} + + + + + + maven-compiler-plugin + + + default-compile + + + + io.quarkus + quarkus-extension-processor + ${quarkus.version} + + + + + + + + + diff --git a/quarkus-proxy-wasm/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/quarkus-proxy-wasm/runtime/src/main/resources/META-INF/quarkus-extension.yaml new file mode 100644 index 0000000..b145915 --- /dev/null +++ b/quarkus-proxy-wasm/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -0,0 +1,14 @@ +--- +artifact: ${project.groupId}:${project.artifactId}:${project.version} +name: "Proxy Wasm" +description: "Filter HTTP requests and responses with a WebAssembly module" +metadata: + keywords: + - "proxy-wasm" + - "wasm" + - "jaxrs" + - "vertx" + - "WebAssembly" + categories: + - "web" + status: "development"