diff --git a/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java b/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java
index f502aff..ff7b43e 100644
--- a/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java
+++ b/proxy-wasm-java-host/src/main/java/io/roastedroot/proxywasm/ProxyWasm.java
@@ -2,7 +2,6 @@
import static io.roastedroot.proxywasm.Helpers.len;
-import com.dylibso.chicory.experimental.aot.AotMachine;
import com.dylibso.chicory.runtime.ByteArrayMemory;
import com.dylibso.chicory.runtime.HostFunction;
import com.dylibso.chicory.runtime.ImportMemory;
@@ -324,7 +323,7 @@ public ProxyWasm build(Instance.Builder instanceBuilder) throws StartException {
var imports = ImportValues.builder();
if (this.machineFactory != null) {
- instanceBuilder.withMachineFactory(AotMachine::new);
+ instanceBuilder.withMachineFactory(this.machineFactory);
}
imports.addMemory(Objects.requireNonNullElseGet(memory, this::defaultImportMemory));
diff --git a/quarkus-x-kuadrant-example/pom.xml b/quarkus-x-kuadrant-example/pom.xml
index 53f8ccf..869b29f 100644
--- a/quarkus-x-kuadrant-example/pom.xml
+++ b/quarkus-x-kuadrant-example/pom.xml
@@ -86,6 +86,23 @@
+
+
+ com.dylibso.chicory
+ aot-maven-plugin-experimental
+
+
+ wasm-shim
+
+ wasm-aot-gen
+
+
+ io.roastedroot.proxywasm.kuadrant.example.WasmShim
+ src/main/wasm/wasm_shim.wasm
+
+
+
+
maven-failsafe-plugin
${surefire-plugin.version}
diff --git a/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java b/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java
index 8648e3f..e40bd58 100644
--- a/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java
+++ b/quarkus-x-kuadrant-example/src/main/java/io/roastedroot/proxywasm/kuadrant/example/App.java
@@ -1,7 +1,5 @@
package io.roastedroot.proxywasm.kuadrant.example;
-import com.dylibso.chicory.wasm.Parser;
-import com.dylibso.chicory.wasm.WasmModule;
import io.roastedroot.proxywasm.LogHandler;
import io.roastedroot.proxywasm.StartException;
import io.roastedroot.proxywasm.plugin.Plugin;
@@ -19,9 +17,6 @@
@ApplicationScoped
public class App {
- private static WasmModule module =
- Parser.parse(App.class.getResourceAsStream("wasm_shim.wasm"));
-
static final String CONFIG;
static {
@@ -42,10 +37,11 @@ public PluginFactory kuadrant() throws StartException {
return () ->
Plugin.builder()
.withName("kuadrant")
+ .withMachineFactory(WasmShimModule::create)
.withLogger(DEBUG ? LogHandler.SYSTEM : null)
.withPluginConfig(CONFIG)
.withUpstreams(Map.of("limitador", limitadorUrl))
.withMetricsHandler(new SimpleMetricsHandler())
- .build(module);
+ .build(WasmShimModule.load());
}
}
diff --git a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/README.md b/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/README.md
deleted file mode 100644
index 3e05a1d..0000000
--- a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## Attribution
-
-The wasm_shim.wasm plugin comes from:
-
-https://github.com/Kuadrant/wasm-shim
-
diff --git a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/wasm_shim.wasm b/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/wasm_shim.wasm
deleted file mode 100755
index ab8618a..0000000
Binary files a/quarkus-x-kuadrant-example/src/main/resources/io/roastedroot/proxywasm/kuadrant/example/wasm_shim.wasm and /dev/null differ
diff --git a/quarkus-x-kuadrant-example/src/main/wasm/README.md b/quarkus-x-kuadrant-example/src/main/wasm/README.md
new file mode 100644
index 0000000..7d2e737
--- /dev/null
+++ b/quarkus-x-kuadrant-example/src/main/wasm/README.md
@@ -0,0 +1,19 @@
+## Attribution
+
+The wasm_shim.wasm plugin comes from:
+
+https://github.com/Kuadrant/wasm-shim
+
+add to `Cargo.toml`:
+
+```toml
+[profile.release]
+opt-level = "s"
+debug = false
+```
+
+to build run:
+
+```bash
+cargo build --release --target wasm32-unknown-unknown
+```
diff --git a/quarkus-x-kuadrant-example/src/main/wasm/wasm_shim.wasm b/quarkus-x-kuadrant-example/src/main/wasm/wasm_shim.wasm
new file mode 100755
index 0000000..6a68cdc
Binary files /dev/null and b/quarkus-x-kuadrant-example/src/main/wasm/wasm_shim.wasm differ