From 5e28d20e3b6c5088c94d5def1bd48aee05e6917a Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sun, 12 Apr 2026 13:03:07 +0200 Subject: [PATCH] feat: run RuntimeDetector on JAR upload and store detected runtime After versionRepo.create(), detect the runtime type from the saved JAR via RuntimeDetector and persist the result via updateDetectedRuntime(). Log messages now include the detected runtime type (or 'unknown'). Co-Authored-By: Claude Sonnet 4.6 --- .../cameleer3/server/core/runtime/AppService.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppService.java b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppService.java index e3e11c9b..49d26e0a 100644 --- a/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppService.java +++ b/cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/AppService.java @@ -71,7 +71,17 @@ public class AppService { String checksum = HexFormat.of().formatHex(digest.digest()); UUID versionId = versionRepo.create(appId, nextVersion, jarFile.toString(), checksum, filename, size); - log.info("Uploaded JAR for app {}: version={}, size={}, sha256={}", appId, nextVersion, size, checksum); + // Detect runtime type from the saved JAR + RuntimeDetector.DetectionResult detection = RuntimeDetector.detect(jarFile); + if (detection.runtimeType() != null) { + versionRepo.updateDetectedRuntime(versionId, detection.runtimeType().toConfigValue(), detection.mainClass()); + log.info("Uploaded JAR for app {}: version={}, size={}, sha256={}, detected={}", + appId, nextVersion, size, checksum, detection.runtimeType().toConfigValue()); + } else { + log.info("Uploaded JAR for app {}: version={}, size={}, sha256={}, detected=unknown", + appId, nextVersion, size, checksum); + } + return versionRepo.findById(versionId).orElseThrow(); }