summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-runner-quarkus-deployment
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-web/opendc-web-runner-quarkus-deployment')
-rw-r--r--opendc-web/opendc-web-runner-quarkus-deployment/build.gradle.kts37
-rw-r--r--opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerBuildItem.java42
-rw-r--r--opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerConfig.java38
-rw-r--r--opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerProcessor.java120
4 files changed, 0 insertions, 237 deletions
diff --git a/opendc-web/opendc-web-runner-quarkus-deployment/build.gradle.kts b/opendc-web/opendc-web-runner-quarkus-deployment/build.gradle.kts
deleted file mode 100644
index 589337f4..00000000
--- a/opendc-web/opendc-web-runner-quarkus-deployment/build.gradle.kts
+++ /dev/null
@@ -1,37 +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"
-
-// Build configuration
-plugins {
- `java-library-conventions`
-}
-
-dependencies {
- implementation(projects.opendcWeb.opendcWebRunnerQuarkus)
- implementation(projects.opendcTrace.opendcTraceApi)
-
- implementation(platform(libs.quarkus.bom))
- implementation(libs.quarkus.core.deployment)
- implementation(libs.quarkus.arc.deployment)
-}
diff --git a/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerBuildItem.java b/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerBuildItem.java
deleted file mode 100644
index 3be15ee3..00000000
--- a/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerBuildItem.java
+++ /dev/null
@@ -1,42 +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.deployment;
-
-import io.quarkus.builder.item.SimpleBuildItem;
-import io.quarkus.runtime.RuntimeValue;
-import org.opendc.web.runner.OpenDCRunner;
-
-/**
- * A {@link SimpleBuildItem} that produces an {@link OpenDCRunner} instance.
- */
-public final class OpenDCRunnerBuildItem extends SimpleBuildItem {
- private final RuntimeValue<OpenDCRunner> runner;
-
- public OpenDCRunnerBuildItem(RuntimeValue<OpenDCRunner> runner) {
- this.runner = runner;
- }
-
- public RuntimeValue<OpenDCRunner> getRunner() {
- return runner;
- }
-}
diff --git a/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerConfig.java b/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerConfig.java
deleted file mode 100644
index ccbc5e19..00000000
--- a/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerConfig.java
+++ /dev/null
@@ -1,38 +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.deployment;
-
-import io.quarkus.runtime.annotations.ConfigItem;
-import io.quarkus.runtime.annotations.ConfigRoot;
-
-/**
- * Build-time configuration for the OpenDC web runner extension.
- */
-@ConfigRoot(name = "opendc-runner")
-public class OpenDCRunnerConfig {
- /**
- * A flag to include the OpenDC web runner extension into the build.
- */
- @ConfigItem(defaultValue = "true")
- boolean include;
-}
diff --git a/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerProcessor.java b/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerProcessor.java
deleted file mode 100644
index 85a973e7..00000000
--- a/opendc-web/opendc-web-runner-quarkus-deployment/src/main/java/org/opendc/web/runner/deployment/OpenDCRunnerProcessor.java
+++ /dev/null
@@ -1,120 +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.deployment;
-
-import static io.quarkus.deployment.annotations.ExecutionTime.RUNTIME_INIT;
-
-import io.quarkus.arc.deployment.UnremovableBeanBuildItem;
-import io.quarkus.deployment.annotations.BuildProducer;
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.annotations.Record;
-import io.quarkus.deployment.builditem.*;
-import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
-import io.quarkus.deployment.util.ServiceUtil;
-import io.quarkus.runtime.RuntimeValue;
-import java.io.IOException;
-import java.util.Set;
-import java.util.function.BooleanSupplier;
-import org.opendc.trace.spi.TraceFormat;
-import org.opendc.web.runner.JobManager;
-import org.opendc.web.runner.OpenDCRunner;
-import org.opendc.web.runner.runtime.OpenDCRunnerRecorder;
-import org.opendc.web.runner.runtime.OpenDCRunnerRuntimeConfig;
-
-/**
- * Build processor for the OpenDC web runner Quarkus extension.
- */
-public class OpenDCRunnerProcessor {
-
- private static final String FEATURE = "opendc-runner";
-
- /**
- * Provide the {@link FeatureBuildItem} for this Quarkus extension.
- */
- @BuildStep(onlyIf = IsIncluded.class)
- public FeatureBuildItem feature() {
- return new FeatureBuildItem(FEATURE);
- }
-
- /**
- * Build step to register the trace formats used by OpenDC.
- */
- @BuildStep
- void registerTraceFormats(BuildProducer<ServiceProviderBuildItem> services) throws IOException {
- String service = "META-INF/services/" + TraceFormat.class.getName();
-
- Set<String> implementations =
- ServiceUtil.classNamesNamedIn(Thread.currentThread().getContextClassLoader(), service);
-
- services.produce(
- new ServiceProviderBuildItem(TraceFormat.class.getName(), implementations.toArray(new String[0])));
- }
-
- /**
- * Mark {@link JobManager} as unremoveable, since we look up this service dynamically in {@link OpenDCRunnerRecorder}.
- */
- @BuildStep
- UnremovableBeanBuildItem unremovableBeans() {
- return UnremovableBeanBuildItem.beanTypes(JobManager.class);
- }
-
- /**
- * Build step to create the runner service.
- */
- @BuildStep(onlyIf = IsIncluded.class)
- @Record(RUNTIME_INIT)
- ServiceStartBuildItem createRunnerService(
- OpenDCRunnerRecorder recorder,
- OpenDCRunnerRuntimeConfig config,
- BuildProducer<OpenDCRunnerBuildItem> runnerBuildItem) {
- RuntimeValue<OpenDCRunner> runner = recorder.createRunner(config);
- runnerBuildItem.produce(new OpenDCRunnerBuildItem(runner));
- return new ServiceStartBuildItem("OpenDCRunnerService");
- }
-
- /**
- * Build step to start the runner service.
- */
- @BuildStep(onlyIf = IsIncluded.class)
- @Record(RUNTIME_INIT)
- void startRunnerService(
- ApplicationStartBuildItem start,
- OpenDCRunnerBuildItem runnerBuildItem,
- OpenDCRunnerRecorder recorder,
- OpenDCRunnerRuntimeConfig config,
- ShutdownContextBuildItem shutdownContextBuildItem) {
- recorder.startRunner(runnerBuildItem.getRunner(), config, shutdownContextBuildItem);
- }
-
- /**
- * A {@link BooleanSupplier} to determine if the OpenDC web runner extension should be included.
- */
- private static class IsIncluded implements BooleanSupplier {
- OpenDCRunnerConfig config;
-
- @Override
- public boolean getAsBoolean() {
- return config.include;
- }
- }
-}