diff options
| author | mjkwiatkowski <mati.rewa@gmail.com> | 2026-02-16 15:18:21 +0100 |
|---|---|---|
| committer | mjkwiatkowski <mati.rewa@gmail.com> | 2026-02-16 15:18:21 +0100 |
| commit | 2f16cb0f48eca4453e3e894b3d45a3aa09e6dcc0 (patch) | |
| tree | 672d98baa2ac071f2c30de06d613254d0d8cd105 /opendc-web/opendc-web-runner-quarkus | |
| parent | 86d35fcec83057e346e4982b5a6908f25342a392 (diff) | |
Diffstat (limited to 'opendc-web/opendc-web-runner-quarkus')
4 files changed, 0 insertions, 201 deletions
diff --git a/opendc-web/opendc-web-runner-quarkus/build.gradle.kts b/opendc-web/opendc-web-runner-quarkus/build.gradle.kts deleted file mode 100644 index 8e4e08d5..00000000 --- a/opendc-web/opendc-web-runner-quarkus/build.gradle.kts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "Quarkus extension for the OpenDC experiment runner" - -plugins { - `java-library-conventions` - id("io.quarkus.extension") -} - -quarkusExtension { - deploymentModule.set("opendc-web-runner-quarkus-deployment") -} - -dependencies { - modules { - module("javax.annotation:javax.annotation-api") { - replacedBy("jakarta.annotation:jakarta.annotation-api", "javax has been replaced by Jakarta") - } - } - - api(projects.opendcWeb.opendcWebRunner) - - implementation(platform(libs.quarkus.bom)) - implementation(libs.quarkus.core.runtime) -} - -evaluationDependsOn(projects.opendcWeb.opendcWebRunnerQuarkusDeployment.dependencyProject.path) diff --git a/opendc-web/opendc-web-runner-quarkus/src/main/java/org/opendc/web/runner/runtime/OpenDCRunnerRecorder.java b/opendc-web/opendc-web-runner-quarkus/src/main/java/org/opendc/web/runner/runtime/OpenDCRunnerRecorder.java deleted file mode 100644 index d5d524f1..00000000 --- a/opendc-web/opendc-web-runner-quarkus/src/main/java/org/opendc/web/runner/runtime/OpenDCRunnerRecorder.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.web.runner.runtime; - -import io.quarkus.runtime.RuntimeValue; -import io.quarkus.runtime.ShutdownContext; -import io.quarkus.runtime.annotations.Recorder; -import jakarta.enterprise.inject.spi.CDI; -import java.io.File; -import org.jboss.logging.Logger; -import org.opendc.web.runner.JobManager; -import org.opendc.web.runner.OpenDCRunner; - -/** - * Helper class for starting the OpenDC web runner. - */ -@Recorder -public class OpenDCRunnerRecorder { - private static final Logger LOGGER = Logger.getLogger(OpenDCRunnerRecorder.class.getName()); - - /** - * Helper method to create an {@link OpenDCRunner} instance. - */ - public RuntimeValue<OpenDCRunner> createRunner(OpenDCRunnerRuntimeConfig config) { - int parallelism = config.parallelism; - if (parallelism < 0) { - throw new IllegalArgumentException("Parallelism must be non-negative"); - } else if (parallelism == 0) { - parallelism = Math.min(1, Runtime.getRuntime().availableProcessors() - 1); - } - - JobManager manager = CDI.current().select(JobManager.class).get(); - OpenDCRunner runner = new OpenDCRunner( - manager, - new File(config.tracePath), - parallelism, - config.jobTimeout, - config.pollInterval, - config.heartbeatInterval); - - return new RuntimeValue<>(runner); - } - - /** - * Helper method to start the OpenDC runner service. - */ - public void startRunner( - RuntimeValue<OpenDCRunner> runner, OpenDCRunnerRuntimeConfig config, ShutdownContext shutdownContext) { - if (config.enable) { - LOGGER.info("Starting OpenDC Runner in background (polling every " + config.pollInterval + ")"); - - Thread thread = new Thread(runner.getValue()); - thread.setName("opendc-runner"); - thread.start(); - - shutdownContext.addShutdownTask(thread::interrupt); - } - } -} diff --git a/opendc-web/opendc-web-runner-quarkus/src/main/java/org/opendc/web/runner/runtime/OpenDCRunnerRuntimeConfig.java b/opendc-web/opendc-web-runner-quarkus/src/main/java/org/opendc/web/runner/runtime/OpenDCRunnerRuntimeConfig.java deleted file mode 100644 index 61c07e48..00000000 --- a/opendc-web/opendc-web-runner-quarkus/src/main/java/org/opendc/web/runner/runtime/OpenDCRunnerRuntimeConfig.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.web.runner.runtime; - -import io.quarkus.runtime.annotations.ConfigItem; -import io.quarkus.runtime.annotations.ConfigPhase; -import io.quarkus.runtime.annotations.ConfigRoot; -import java.time.Duration; - -/** - * Configuration for the OpenDC web runner. - */ -@ConfigRoot(phase = ConfigPhase.RUN_TIME, name = "opendc-runner") -public class OpenDCRunnerRuntimeConfig { - /** - * Flag to indicate whether the runner should be enabled. - */ - @ConfigItem(defaultValue = "true") - public boolean enable; - - /** - * The path where the workload traces are located. - */ - @ConfigItem(defaultValue = "traces") - public String tracePath; - - /** - * The number of concurrent simulations - */ - @ConfigItem(defaultValue = "1") - public int parallelism; - - /** - * The maximum duration of a job. - */ - @ConfigItem(defaultValue = "10m") - public Duration jobTimeout; - - /** - * The interval between successive polls to the API. - */ - @ConfigItem(defaultValue = "30s") - public Duration pollInterval; - - /** - * The interval between successive heartbeats to the API. - */ - @ConfigItem(defaultValue = "1m") - public Duration heartbeatInterval; -} diff --git a/opendc-web/opendc-web-runner-quarkus/src/main/resources/META-INF/quarkus-extension.yaml b/opendc-web/opendc-web-runner-quarkus/src/main/resources/META-INF/quarkus-extension.yaml deleted file mode 100644 index b93b467a..00000000 --- a/opendc-web/opendc-web-runner-quarkus/src/main/resources/META-INF/quarkus-extension.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -name: "OpenDC Web Runner" -metadata: - status: "preview" - unlisted: true |
