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
+
+[](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"