diff --git a/.github/workflows/js-java-async-helidon.yml b/.github/workflows/archive-js-java-async-helidon.yml
similarity index 61%
rename from .github/workflows/js-java-async-helidon.yml
rename to .github/workflows/archive-js-java-async-helidon.yml
index ff4515afe..4a6e53cd4 100644
--- a/.github/workflows/js-java-async-helidon.yml
+++ b/.github/workflows/archive-js-java-async-helidon.yml
@@ -1,21 +1,19 @@
-name: js-java-async-helidon
+name: archive/js-java-async-helidon
on:
push:
paths:
- - 'js-java-async-helidon/**'
- - '.github/workflows/js-java-async-helidon.yml'
+ - 'archive/js-java-async-helidon/**'
+ - '.github/workflows/archive-js-java-async-helidon.yml'
pull_request:
paths:
- - 'js-java-async-helidon/**'
- - '.github/workflows/js-java-async-helidon.yml'
- schedule:
- - cron: "0 0 1 * *" # run every month
+ - 'archive/js-java-async-helidon/**'
+ - '.github/workflows/archive-js-java-async-helidon.yml'
workflow_dispatch:
permissions:
contents: read
jobs:
run:
- name: Run 'js-java-async-helidon'
+ name: Run 'archive/js-java-async-helidon'
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
@@ -26,9 +24,9 @@ jobs:
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: 'maven'
- - name: Run 'js-java-async-helidon'
+ - name: Run 'archive/js-java-async-helidon'
run: |
- cd js-java-async-helidon
+ cd archive/js-java-async-helidon
mvn --no-transfer-progress clean package
mvn exec:exec &
sleep 10
diff --git a/README.md b/README.md
index 87b0ab9f6..ab70e8ae4 100644
--- a/README.md
+++ b/README.md
@@ -170,7 +170,7 @@ cd graalvm-demos
-### Helidon
+### Scala
diff --git a/js-java-async-helidon/README.md b/archive/js-java-async-helidon/README.md
similarity index 76%
rename from js-java-async-helidon/README.md
rename to archive/js-java-async-helidon/README.md
index df85461d2..624275618 100644
--- a/js-java-async-helidon/README.md
+++ b/archive/js-java-async-helidon/README.md
@@ -2,14 +2,11 @@
This is a polyglot Helidon HTTP web service that demonstrates how multiple JavaScript `Context`s can be executed in parallel to handle asynchronous operations with [Helidon](https://helidon.io/), mixing JavaScript `Promise` and Java `CompletableFuture` objects.
-## Prerequisites
-* [GraalVM](http://graalvm.org)
-
## Preparation
1. Download and install the latest GraalVM JDK using [SDKMAN!](https://sdkman.io/).
```bash
- sdk install java 21.0.1-graal
+ sdk install java 21.0.5-graal
```
2. Download or clone the repository and navigate into the `js-java-async-helidon` directory:
@@ -17,7 +14,7 @@ This is a polyglot Helidon HTTP web service that demonstrates how multiple JavaS
git clone https://github.com/graalvm/graalvm-demos
```
```bash
- cd graalvm-demos/js-java-async-helidon
+ cd graalvm-demos/archive/js-java-async-helidon
```
3. Build the application using Maven:
@@ -25,22 +22,24 @@ This is a polyglot Helidon HTTP web service that demonstrates how multiple JavaS
mvn clean package
```
-Now you are all set to run the polyglot Helidon Web service.
+Now you are all set to run the polyglot Helidon web service.
## Running the Application
-You can run this Helidon HTTP web service with the following command:
+You can run this Helidon application with the following command:
```bash
mvn exec:exec
```
-The application will create a new HTTP web service accepting requests on port `8080`.
+The application accepts requests on port `8080`.
Open [http://localhost:8080/greet?request=42](http://localhost:8080/greet?request=42) in the browser to send a request.
To demonstrate error handling, the application will not accept requests with `request` smaller than `42`.
For example, the following requests will return an error message:
```bash
curl http://localhost:8080/greet?request=41
+```
+```bash
curl http://localhost:8080/greet?request=foo
```
@@ -56,3 +55,5 @@ wrk -c 100 -t 10 -d 100 http://localhost:8080/greet?request=42
This is a sample application that, for brevity, contains reasonably large snippets of code inside the strings.
This is not the best approach for structuring polyglot apps, but the easiest to show in a compact way.
+
+Read more about asynchronous programming across multiple languages in this post [Asynchronous polyglot programming with Java and JavaScript on GraalVM](https://medium.com/graalvm/asynchronous-polyglot-programming-in-graalvm-javascript-and-java-2c62eb02acf0).
\ No newline at end of file
diff --git a/js-java-async-helidon/pom.xml b/archive/js-java-async-helidon/pom.xml
similarity index 100%
rename from js-java-async-helidon/pom.xml
rename to archive/js-java-async-helidon/pom.xml
diff --git a/js-java-async-helidon/src/main/java/module-info.java b/archive/js-java-async-helidon/src/main/java/module-info.java
similarity index 100%
rename from js-java-async-helidon/src/main/java/module-info.java
rename to archive/js-java-async-helidon/src/main/java/module-info.java
diff --git a/js-java-async-helidon/src/main/java/org/graalvm/demo/ConcurrentJsExecutor.java b/archive/js-java-async-helidon/src/main/java/org/graalvm/demo/ConcurrentJsExecutor.java
similarity index 100%
rename from js-java-async-helidon/src/main/java/org/graalvm/demo/ConcurrentJsExecutor.java
rename to archive/js-java-async-helidon/src/main/java/org/graalvm/demo/ConcurrentJsExecutor.java
diff --git a/js-java-async-helidon/src/main/java/org/graalvm/demo/HelidonService.java b/archive/js-java-async-helidon/src/main/java/org/graalvm/demo/HelidonService.java
similarity index 100%
rename from js-java-async-helidon/src/main/java/org/graalvm/demo/HelidonService.java
rename to archive/js-java-async-helidon/src/main/java/org/graalvm/demo/HelidonService.java
diff --git a/js-java-async-helidon/src/main/java/org/graalvm/demo/JsJavaAsyncHelidonService.java b/archive/js-java-async-helidon/src/main/java/org/graalvm/demo/JsJavaAsyncHelidonService.java
similarity index 100%
rename from js-java-async-helidon/src/main/java/org/graalvm/demo/JsJavaAsyncHelidonService.java
rename to archive/js-java-async-helidon/src/main/java/org/graalvm/demo/JsJavaAsyncHelidonService.java