From 04adee060f237c0353ffbbd12172e9dc2e8b1dec Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Mon, 22 Apr 2024 22:39:50 -0400
Subject: [PATCH 01/13] add minecraft server sample app

---
 compose/sample-apps.yml | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml
index f103e7984..dbd3f5f61 100644
--- a/compose/sample-apps.yml
+++ b/compose/sample-apps.yml
@@ -139,4 +139,22 @@ services:
       retries: 3
       start_period: 30s
       timeout: 5s
-
+  minecraft-server:
+    depends_on:
+      cryostat:
+        condition: service_healthy
+    image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest}
+    hostname: minecraft
+    ports:
+      - "7091"
+      - "9494"
+    environment:
+      CRYOSTAT_AGENT_APP_NAME: minecraft
+      CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft
+      CRYOSTAT_AGENT_WEBSERVER_PORT: 9494
+      CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/
+      CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/
+      CRYOSTAT_AGENT_BASEURI_RANGE: public
+      CRYOSTAT_AGENT_SSL_TRUST_ALL: "true"
+      CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
+      CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"

From 8b54e2061564f8361331621941a9f7416c5ac39d Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Mon, 22 Apr 2024 23:15:28 -0400
Subject: [PATCH 02/13] add minecraft server containerfile for automatic local
 build

---
 compose/Containerfile.minecraft | 24 ++++++++++++++++++++++++
 compose/sample-apps-extras.yml  | 24 ++++++++++++++++++++++++
 compose/sample-apps.yml         | 19 -------------------
 smoketest.bash                  |  6 +++++-
 4 files changed, 53 insertions(+), 20 deletions(-)
 create mode 100644 compose/Containerfile.minecraft
 create mode 100644 compose/sample-apps-extras.yml

diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft
new file mode 100644
index 000000000..d9f53e4cf
--- /dev/null
+++ b/compose/Containerfile.minecraft
@@ -0,0 +1,24 @@
+ARG CRYOSTAT_AGENT_VERSION=0.4.0-SNAPSHOT
+
+FROM registry.access.redhat.com/ubi8/openjdk-17:latest AS agentloader
+ARG CRYOSTAT_AGENT_VERSION
+USER 0
+RUN mkdir -p /opt/cryostat && \
+    mvn dependency:get -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" && \
+    mvn dependency:copy -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" -DoutputDirectory=/opt/cryostat \
+    || true
+RUN if [ ! -f "/opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" ]; then \
+        microdnf install git; \
+        git clone https://github.com/cryostatio/cryostat-agent; \
+        cd cryostat-agent; \
+        mvn -DskipTests package; \
+        cp "target/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" /opt/cryostat/; \
+    fi
+
+FROM docker.io/itzg/minecraft-server:java17-jdk
+ARG CRYOSTAT_AGENT_VERSION
+RUN mkdir -p /opt/cryostat
+COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar
+ENV EULA=true \
+    ENABLE_JMX=true \
+    JVM_OPTS="-javaagent:/opt/cryostat/agent.jar"
diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml
new file mode 100644
index 000000000..7d1bbadf0
--- /dev/null
+++ b/compose/sample-apps-extras.yml
@@ -0,0 +1,24 @@
+version: "3"
+services:
+  minecraft-server:
+    depends_on:
+      cryostat:
+        condition: service_healthy
+    image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest}
+    build:
+      context: .
+      dockerfile: ./Containerfile.minecraft
+    hostname: minecraft
+    ports:
+      - "7091"
+      - "9494"
+    environment:
+      CRYOSTAT_AGENT_APP_NAME: minecraft
+      CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft
+      CRYOSTAT_AGENT_WEBSERVER_PORT: 9494
+      CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/
+      CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/
+      CRYOSTAT_AGENT_BASEURI_RANGE: public
+      CRYOSTAT_AGENT_SSL_TRUST_ALL: "true"
+      CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
+      CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"
diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml
index dbd3f5f61..1bc64a933 100644
--- a/compose/sample-apps.yml
+++ b/compose/sample-apps.yml
@@ -139,22 +139,3 @@ services:
       retries: 3
       start_period: 30s
       timeout: 5s
-  minecraft-server:
-    depends_on:
-      cryostat:
-        condition: service_healthy
-    image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest}
-    hostname: minecraft
-    ports:
-      - "7091"
-      - "9494"
-    environment:
-      CRYOSTAT_AGENT_APP_NAME: minecraft
-      CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft
-      CRYOSTAT_AGENT_WEBSERVER_PORT: 9494
-      CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/
-      CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/
-      CRYOSTAT_AGENT_BASEURI_RANGE: public
-      CRYOSTAT_AGENT_SSL_TRUST_ALL: "true"
-      CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
-      CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"
diff --git a/smoketest.bash b/smoketest.bash
index d19384fae..8dfae2ce3 100755
--- a/smoketest.bash
+++ b/smoketest.bash
@@ -33,6 +33,7 @@ display_usage() {
     echo -e "\t-G\t\t\t\t\t\texclude Grafana dashboard and jfr-datasource from deployment."
     echo -e "\t-r\t\t\t\t\t\tconfigure a cryostat-Reports sidecar instance"
     echo -e "\t-t\t\t\t\t\t\tinclude sample applications for Testing."
+    echo -e "\t-T\t\t\t\t\t\tinclude additional sample applications for Testing."
     echo -e "\t-V\t\t\t\t\t\tdo not discard data storage Volumes on exit."
     echo -e "\t-X\t\t\t\t\t\tdeploy additional development aid tools."
     echo -e "\t-c [podman|docker]\t\t\t\tUse Podman or Docker Container Engine (default \"podman\")."
@@ -42,7 +43,7 @@ display_usage() {
 
 s3=seaweed
 ce=podman
-while getopts "hs:prGtOVXcbn" opt; do
+while getopts "hs:prGtTOVXcbn" opt; do
     case $opt in
         h)
             display_usage
@@ -60,6 +61,9 @@ while getopts "hs:prGtOVXcbn" opt; do
         t)
             FILES+=("${DIR}/compose/sample-apps.yml")
             ;;
+        T)
+            FILES+=("${DIR}/compose/sample-apps-extras.yml")
+            ;;
         O)
             PULL_IMAGES=false
             ;;

From 1e45af316b0f97c192ab5fdcb91fad2d34917a97 Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Mon, 22 Apr 2024 23:16:28 -0400
Subject: [PATCH 03/13] fixup! add minecraft server containerfile for automatic
 local build

---
 compose/sample-apps.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml
index 1bc64a933..f103e7984 100644
--- a/compose/sample-apps.yml
+++ b/compose/sample-apps.yml
@@ -139,3 +139,4 @@ services:
       retries: 3
       start_period: 30s
       timeout: 5s
+

From 0a980c078e812b0f6b3ca3694ce5a01946ff3935 Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 23 Apr 2024 09:45:49 -0400
Subject: [PATCH 04/13] build additional-apps containers on start, fix JMX
 config

---
 compose/Containerfile.minecraft | 3 ---
 compose/sample-apps-extras.yml  | 5 +++++
 smoketest.bash                  | 3 +++
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft
index d9f53e4cf..530e9919a 100644
--- a/compose/Containerfile.minecraft
+++ b/compose/Containerfile.minecraft
@@ -19,6 +19,3 @@ FROM docker.io/itzg/minecraft-server:java17-jdk
 ARG CRYOSTAT_AGENT_VERSION
 RUN mkdir -p /opt/cryostat
 COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar
-ENV EULA=true \
-    ENABLE_JMX=true \
-    JVM_OPTS="-javaagent:/opt/cryostat/agent.jar"
diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml
index 7d1bbadf0..51ca53942 100644
--- a/compose/sample-apps-extras.yml
+++ b/compose/sample-apps-extras.yml
@@ -22,3 +22,8 @@ services:
       CRYOSTAT_AGENT_SSL_TRUST_ALL: "true"
       CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
       CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"
+      EULA: "true"
+      ENABLE_JMX: "true"
+      JMX_HOST: minecraft
+      JMX_PORT: "7091"
+      JVM_OPTS: -javaagent:/opt/cryostat/agent.jar
diff --git a/smoketest.bash b/smoketest.bash
index 8dfae2ce3..253421e92 100755
--- a/smoketest.bash
+++ b/smoketest.bash
@@ -23,6 +23,7 @@ CRYOSTAT_HTTP_PORT=${CRYOSTAT_HTTP_PORT:-8080}
 USE_PROXY=${USE_PROXY:-true}
 DEPLOY_GRAFANA=${DEPLOY_GRAFANA:-true}
 DRY_RUN=${DRY_RUN:-false}
+upFlags=()
 
 display_usage() {
     echo "Usage:"
@@ -63,6 +64,7 @@ while getopts "hs:prGtTOVXcbn" opt; do
             ;;
         T)
             FILES+=("${DIR}/compose/sample-apps-extras.yml")
+            upFlags+=("--build")
             ;;
         O)
             PULL_IMAGES=false
@@ -326,6 +328,7 @@ fi
 docker-compose \
     "${CMD[@]}" \
     up \
+        "${upFlags[@]}" \
         --renew-anon-volumes \
         --remove-orphans \
         --abort-on-container-exit

From f705e8e1f62e38bcadcdae0e23a7bfd8a1be7bd6 Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 2 Jul 2024 16:09:57 -0400
Subject: [PATCH 05/13] update agent version

---
 compose/Containerfile.minecraft | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft
index 530e9919a..53b379502 100644
--- a/compose/Containerfile.minecraft
+++ b/compose/Containerfile.minecraft
@@ -1,4 +1,4 @@
-ARG CRYOSTAT_AGENT_VERSION=0.4.0-SNAPSHOT
+ARG CRYOSTAT_AGENT_VERSION=0.5.0-SNAPSHOT
 
 FROM registry.access.redhat.com/ubi8/openjdk-17:latest AS agentloader
 ARG CRYOSTAT_AGENT_VERSION

From 869ac8dab800a9d875aea6cb0577b5c7258ea1ab Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 2 Jul 2024 16:10:23 -0400
Subject: [PATCH 06/13] update agent config

---
 compose/sample-apps-extras.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml
index 51ca53942..6dbd993ee 100644
--- a/compose/sample-apps-extras.yml
+++ b/compose/sample-apps-extras.yml
@@ -21,7 +21,8 @@ services:
       CRYOSTAT_AGENT_BASEURI_RANGE: public
       CRYOSTAT_AGENT_SSL_TRUST_ALL: "true"
       CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
-      CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"
+      CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
+      CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
       EULA: "true"
       ENABLE_JMX: "true"
       JMX_HOST: minecraft

From 870139e201187c932421287b83ff1a081173659c Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 2 Jul 2024 16:33:31 -0400
Subject: [PATCH 07/13] build agent with jdk11, run minecraft on jdk21

---
 compose/Containerfile.minecraft | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft
index 53b379502..ad16db60b 100644
--- a/compose/Containerfile.minecraft
+++ b/compose/Containerfile.minecraft
@@ -1,6 +1,6 @@
 ARG CRYOSTAT_AGENT_VERSION=0.5.0-SNAPSHOT
 
-FROM registry.access.redhat.com/ubi8/openjdk-17:latest AS agentloader
+FROM registry.access.redhat.com/ubi8/openjdk-11:latest AS agentloader
 ARG CRYOSTAT_AGENT_VERSION
 USER 0
 RUN mkdir -p /opt/cryostat && \
@@ -15,7 +15,7 @@ RUN if [ ! -f "/opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar
         cp "target/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" /opt/cryostat/; \
     fi
 
-FROM docker.io/itzg/minecraft-server:java17-jdk
+FROM docker.io/itzg/minecraft-server:java21-jdk
 ARG CRYOSTAT_AGENT_VERSION
 RUN mkdir -p /opt/cryostat
 COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar

From e4ef528d4bac82cdea2ebb0637c636da67adc226 Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 2 Jul 2024 16:33:47 -0400
Subject: [PATCH 08/13] config agent for dynamic writes, enable harvester

---
 compose/sample-apps-extras.yml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml
index 6dbd993ee..127fd1516 100644
--- a/compose/sample-apps-extras.yml
+++ b/compose/sample-apps-extras.yml
@@ -23,6 +23,12 @@ services:
       CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
       CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
       CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
+      CRYOSTAT_AGENT_API_WRITES_ENABLED: "true"
+      CRYOSTAT_AGENT_HARVESTER_TEMPLATE: profiling
+      CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000
+      CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3
+      CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000
+      CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)"
       EULA: "true"
       ENABLE_JMX: "true"
       JMX_HOST: minecraft

From 409011ed3877336f16d2d06c8d39ede491ec971f Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 2 Jul 2024 17:24:24 -0400
Subject: [PATCH 09/13] fixup! config agent for dynamic writes, enable
 harvester

---
 compose/sample-apps-extras.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml
index 127fd1516..68fe3a1d9 100644
--- a/compose/sample-apps-extras.yml
+++ b/compose/sample-apps-extras.yml
@@ -24,7 +24,7 @@ services:
       CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
       CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
       CRYOSTAT_AGENT_API_WRITES_ENABLED: "true"
-      CRYOSTAT_AGENT_HARVESTER_TEMPLATE: profiling
+      CRYOSTAT_AGENT_HARVESTER_TEMPLATE: Profiling
       CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000
       CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3
       CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000

From 9039b2e6e855ad6d0ecc213f7caa922c5a888f41 Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 2 Jul 2024 17:24:39 -0400
Subject: [PATCH 10/13] config to allow mc client connections

---
 compose/sample-apps-extras.yml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml
index 68fe3a1d9..385748eca 100644
--- a/compose/sample-apps-extras.yml
+++ b/compose/sample-apps-extras.yml
@@ -12,6 +12,7 @@ services:
     ports:
       - "7091"
       - "9494"
+      - "25565:25565"
     environment:
       CRYOSTAT_AGENT_APP_NAME: minecraft
       CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft
@@ -30,6 +31,8 @@ services:
       CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000
       CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)"
       EULA: "true"
+      ONLINE_MODE: "false"
+      OVERRIDE_SERVER_PROPERTIES: "true"
       ENABLE_JMX: "true"
       JMX_HOST: minecraft
       JMX_PORT: "7091"

From d16d7b6064b5c60a3a6c224dd72c78fc6d9db916 Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Thu, 4 Jul 2024 12:58:48 -0400
Subject: [PATCH 11/13] clean up to use cryostatio/test-applications gameserver
 image

---
 compose/Containerfile.minecraft | 21 ------------------
 compose/sample-apps-extras.yml  | 39 ---------------------------------
 compose/sample-apps.yml         | 38 ++++++++++++++++++++++++++++++--
 smoketest.bash                  |  9 +-------
 4 files changed, 37 insertions(+), 70 deletions(-)
 delete mode 100644 compose/Containerfile.minecraft
 delete mode 100644 compose/sample-apps-extras.yml

diff --git a/compose/Containerfile.minecraft b/compose/Containerfile.minecraft
deleted file mode 100644
index ad16db60b..000000000
--- a/compose/Containerfile.minecraft
+++ /dev/null
@@ -1,21 +0,0 @@
-ARG CRYOSTAT_AGENT_VERSION=0.5.0-SNAPSHOT
-
-FROM registry.access.redhat.com/ubi8/openjdk-11:latest AS agentloader
-ARG CRYOSTAT_AGENT_VERSION
-USER 0
-RUN mkdir -p /opt/cryostat && \
-    mvn dependency:get -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" && \
-    mvn dependency:copy -Dartifact="io.cryostat:cryostat-agent:${CRYOSTAT_AGENT_VERSION}:jar:shaded" -DoutputDirectory=/opt/cryostat \
-    || true
-RUN if [ ! -f "/opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" ]; then \
-        microdnf install git; \
-        git clone https://github.com/cryostatio/cryostat-agent; \
-        cd cryostat-agent; \
-        mvn -DskipTests package; \
-        cp "target/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar" /opt/cryostat/; \
-    fi
-
-FROM docker.io/itzg/minecraft-server:java21-jdk
-ARG CRYOSTAT_AGENT_VERSION
-RUN mkdir -p /opt/cryostat
-COPY --from=agentloader /opt/cryostat/cryostat-agent-${CRYOSTAT_AGENT_VERSION}-shaded.jar /opt/cryostat/agent.jar
diff --git a/compose/sample-apps-extras.yml b/compose/sample-apps-extras.yml
deleted file mode 100644
index 385748eca..000000000
--- a/compose/sample-apps-extras.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-version: "3"
-services:
-  minecraft-server:
-    depends_on:
-      cryostat:
-        condition: service_healthy
-    image: ${MINECRAFT_TEST_IMAGE:-localhost/minecraft-server:latest}
-    build:
-      context: .
-      dockerfile: ./Containerfile.minecraft
-    hostname: minecraft
-    ports:
-      - "7091"
-      - "9494"
-      - "25565:25565"
-    environment:
-      CRYOSTAT_AGENT_APP_NAME: minecraft
-      CRYOSTAT_AGENT_WEBSERVER_HOST: minecraft
-      CRYOSTAT_AGENT_WEBSERVER_PORT: 9494
-      CRYOSTAT_AGENT_CALLBACK: http://minecraft:9494/
-      CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/
-      CRYOSTAT_AGENT_BASEURI_RANGE: public
-      CRYOSTAT_AGENT_SSL_TRUST_ALL: "true"
-      CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
-      CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
-      CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
-      CRYOSTAT_AGENT_API_WRITES_ENABLED: "true"
-      CRYOSTAT_AGENT_HARVESTER_TEMPLATE: Profiling
-      CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000
-      CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3
-      CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000
-      CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)"
-      EULA: "true"
-      ONLINE_MODE: "false"
-      OVERRIDE_SERVER_PROPERTIES: "true"
-      ENABLE_JMX: "true"
-      JMX_HOST: minecraft
-      JMX_PORT: "7091"
-      JVM_OPTS: -javaagent:/opt/cryostat/agent.jar
diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml
index f103e7984..4eedb75b9 100644
--- a/compose/sample-apps.yml
+++ b/compose/sample-apps.yml
@@ -95,7 +95,7 @@ services:
       start_period: 30s
       timeout: 5s
   quarkus-test-agent:
-    image: ${QUARKUS_TEST_IMAGE:-quay.io/andrewazores/quarkus-test:latest}
+    image: ${QUARKUS_TEST_IMAGE:-quay.io/redhat-java-monitoring/quarkus-cryostat-agent:latest}
     # do not add a depends_on:cryostat/depends_on:auth here, so that we can test that the agent is tolerant of that state
     hostname: quarkus-test-agent
     ports:
@@ -139,4 +139,38 @@ services:
       retries: 3
       start_period: 30s
       timeout: 5s
-
+  gameserver:
+    depends_on:
+      cryostat:
+        condition: service_healthy
+    image: ${GAMESERVER_TEST_IMAGE:-quay.io/redhat-java-monitoring/gameserver-cryostat-agent:latest}
+    hostname: gameserver
+    ports:
+      - "7091"
+      - "9494"
+      - "25565:25565"
+    environment:
+      CRYOSTAT_AGENT_APP_NAME: gameserver
+      CRYOSTAT_AGENT_WEBSERVER_HOST: gameserver
+      CRYOSTAT_AGENT_WEBSERVER_PORT: 9494
+      CRYOSTAT_AGENT_CALLBACK: http://gameserver:9494/
+      CRYOSTAT_AGENT_BASEURI: http://${CRYOSTAT_HTTP_HOST}:8080/
+      CRYOSTAT_AGENT_BASEURI_RANGE: public
+      CRYOSTAT_AGENT_SSL_TRUST_ALL: "true"
+      CRYOSTAT_AGENT_SSL_VERIFY_HOSTNAME: "false"
+      CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
+      CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
+      CRYOSTAT_AGENT_API_WRITES_ENABLED: "true"
+      CRYOSTAT_AGENT_HARVESTER_TEMPLATE: Profiling
+      CRYOSTAT_AGENT_HARVESTER_PERIOD_MS: 300000
+      CRYOSTAT_AGENT_HARVESTER_MAX_FILES: 3
+      CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_AGE_MS: 60000
+      CRYOSTAT_AGENT_HARVESTER_EXIT_MAX_SIZE_B: 153600 # "$(echo 1024*150 | bc)"
+      EULA: "true"
+      ONLINE_MODE: "false"
+      OVERRIDE_SERVER_PROPERTIES: "true"
+      ENABLE_JMX: "true"
+      JMX_HOST: gameserver
+      JMX_PORT: "7091"
+      JVM_OPTS: -javaagent:/opt/cryostat/agent.jar
+    restart: always
diff --git a/smoketest.bash b/smoketest.bash
index 253421e92..d19384fae 100755
--- a/smoketest.bash
+++ b/smoketest.bash
@@ -23,7 +23,6 @@ CRYOSTAT_HTTP_PORT=${CRYOSTAT_HTTP_PORT:-8080}
 USE_PROXY=${USE_PROXY:-true}
 DEPLOY_GRAFANA=${DEPLOY_GRAFANA:-true}
 DRY_RUN=${DRY_RUN:-false}
-upFlags=()
 
 display_usage() {
     echo "Usage:"
@@ -34,7 +33,6 @@ display_usage() {
     echo -e "\t-G\t\t\t\t\t\texclude Grafana dashboard and jfr-datasource from deployment."
     echo -e "\t-r\t\t\t\t\t\tconfigure a cryostat-Reports sidecar instance"
     echo -e "\t-t\t\t\t\t\t\tinclude sample applications for Testing."
-    echo -e "\t-T\t\t\t\t\t\tinclude additional sample applications for Testing."
     echo -e "\t-V\t\t\t\t\t\tdo not discard data storage Volumes on exit."
     echo -e "\t-X\t\t\t\t\t\tdeploy additional development aid tools."
     echo -e "\t-c [podman|docker]\t\t\t\tUse Podman or Docker Container Engine (default \"podman\")."
@@ -44,7 +42,7 @@ display_usage() {
 
 s3=seaweed
 ce=podman
-while getopts "hs:prGtTOVXcbn" opt; do
+while getopts "hs:prGtOVXcbn" opt; do
     case $opt in
         h)
             display_usage
@@ -62,10 +60,6 @@ while getopts "hs:prGtTOVXcbn" opt; do
         t)
             FILES+=("${DIR}/compose/sample-apps.yml")
             ;;
-        T)
-            FILES+=("${DIR}/compose/sample-apps-extras.yml")
-            upFlags+=("--build")
-            ;;
         O)
             PULL_IMAGES=false
             ;;
@@ -328,7 +322,6 @@ fi
 docker-compose \
     "${CMD[@]}" \
     up \
-        "${upFlags[@]}" \
         --renew-anon-volumes \
         --remove-orphans \
         --abort-on-container-exit

From 004075f757fac5784d4eb8181dabc8ce8d8bd15a Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Thu, 4 Jul 2024 13:08:42 -0400
Subject: [PATCH 12/13] use test-applications vertx

---
 compose/sample-apps.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml
index 4eedb75b9..81880d5cb 100644
--- a/compose/sample-apps.yml
+++ b/compose/sample-apps.yml
@@ -4,7 +4,7 @@ services:
     depends_on:
       cryostat:
         condition: service_healthy
-    image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.13.1}
+    image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/redhat-java-monitoring/vertx-cryostat-agent:latest}
     hostname: vertx-fib-demo-1
     environment:
       HTTP_PORT: 8081
@@ -37,7 +37,7 @@ services:
     depends_on:
       cryostat:
         condition: service_healthy
-    image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.13.1}
+    image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/redhat-java-monitoring/vertx-cryostat-agent:latest}
     hostname: vertx-fib-demo-2
     environment:
       HTTP_PORT: 8082
@@ -67,7 +67,7 @@ services:
     depends_on:
       cryostat:
         condition: service_healthy
-    image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.13.1}
+    image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/redhat-java-monitoring/vertx-cryostat-agent:latest}
     hostname: vertx-fib-demo-3
     environment:
       HTTP_PORT: 8083

From 30b447cf974e2454e93d8a6cbf2286d41d6cf75b Mon Sep 17 00:00:00 2001
From: Andrew Azores <aazores@redhat.com>
Date: Tue, 2 Jul 2024 16:08:14 -0400
Subject: [PATCH 13/13] test(smoketest): update vertx-fib-demo images and
 configs

---
 compose/sample-apps.yml | 37 ++++++++++++++++++++++++++++++-------
 1 file changed, 30 insertions(+), 7 deletions(-)

diff --git a/compose/sample-apps.yml b/compose/sample-apps.yml
index 81880d5cb..8cd3f12bb 100644
--- a/compose/sample-apps.yml
+++ b/compose/sample-apps.yml
@@ -9,6 +9,7 @@ services:
     environment:
       HTTP_PORT: 8081
       JMX_PORT: 9093
+      USE_JDP: "true"
       CRYOSTAT_AGENT_APP_NAME: vertx-fib-demo-1
       CRYOSTAT_AGENT_WEBCLIENT_SSL_TRUST_ALL: "true"
       CRYOSTAT_AGENT_WEBCLIENT_SSL_VERIFY_HOSTNAME: "false"
@@ -17,15 +18,12 @@ services:
       CRYOSTAT_AGENT_CALLBACK: "http://sample-app-1:8910/"
       CRYOSTAT_AGENT_BASEURI: "http://${CRYOSTAT_HTTP_HOST}:8080/"
       CRYOSTAT_AGENT_TRUST_ALL: "true"
-      CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"
+      CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
+      CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
     ports:
       - "8081:8081"
     expose:
       - "8910"
-    labels:
-      io.cryostat.discovery: "true"
-      io.cryostat.jmxHost: "sample-app-1"
-      io.cryostat.jmxPort: "9093"
     restart: always
     healthcheck:
       test: curl --fail http://localhost:8081 || exit 1
@@ -42,6 +40,7 @@ services:
     environment:
       HTTP_PORT: 8082
       JMX_PORT: 9094
+      USE_JDP: "true"
       USE_AUTH: "true"
       CRYOSTAT_AGENT_APP_NAME: "vertx-fib-demo-2"
       CRYOSTAT_AGENT_WEBCLIENT_SSL_TRUST_ALL: "true"
@@ -51,7 +50,8 @@ services:
       CRYOSTAT_AGENT_CALLBACK: "http://sample-app-2:8911/"
       CRYOSTAT_AGENT_BASEURI: "http://${CRYOSTAT_HTTP_HOST}:8080/"
       CRYOSTAT_AGENT_TRUST_ALL: "true"
-      CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"
+      CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
+      CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
     ports:
       - "8082:8082"
     expose:
@@ -72,6 +72,7 @@ services:
     environment:
       HTTP_PORT: 8083
       JMX_PORT: 9095
+      USE_JDP: "true"
       USE_AUTH: "true"
       USE_SSL: "true"
       CRYOSTAT_AGENT_APP_NAME: "vertx-fib-demo-3"
@@ -82,7 +83,8 @@ services:
       CRYOSTAT_AGENT_CALLBACK: "http://sample-app-3:8912/"
       CRYOSTAT_AGENT_BASEURI: "http://${CRYOSTAT_HTTP_HOST}:8080/"
       CRYOSTAT_AGENT_TRUST_ALL: "true"
-      CRYOSTAT_AGENT_AUTHORIZATION: Basic dXNlcjpwYXNz # "Basic $(echo -n user:pass | base64)"
+      CRYOSTAT_AGENT_AUTHORIZATION_TYPE: basic
+      CRYOSTAT_AGENT_AUTHORIZATION_VALUE: user:pass
     ports:
       - "8083:8083"
     expose:
@@ -94,6 +96,27 @@ services:
       retries: 3
       start_period: 30s
       timeout: 5s
+  sample-app-4:
+    depends_on:
+      cryostat:
+        condition: service_healthy
+    image: ${VERTX_FIB_DEMO_IMAGE:-quay.io/andrewazores/vertx-fib-demo:0.14.0}
+    hostname: vertx-fib-demo-4
+    environment:
+      HTTP_PORT: 8084
+      JMX_PORT: 9096
+      USE_JDP: "true"
+      USE_AUTH: "false"
+      USE_SSL: "false"
+    ports:
+      - "8084:8084"
+    restart: always
+    healthcheck:
+      test: curl --fail http://localhost:8081 || exit 1
+      interval: 10s
+      retries: 3
+      start_period: 30s
+      timeout: 5s
   quarkus-test-agent:
     image: ${QUARKUS_TEST_IMAGE:-quay.io/redhat-java-monitoring/quarkus-cryostat-agent:latest}
     # do not add a depends_on:cryostat/depends_on:auth here, so that we can test that the agent is tolerant of that state