This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git
commit f6362613470a3518f04b67a8249d46bd53066966 Author: Luca Burgazzoli <[email protected]> AuthorDate: Fri Sep 18 10:52:58 2020 +0200 quarkus: remove the need for a shutdown task bean as it was introduced only for testing --- .../k/quarkus/cron/deployment/Application.java | 23 ++--- .../org/apache/camel/k/quarkus/it/Application.java | 20 +--- .../org/apache/camel/k/quarkus/it/RuntimeTest.java | 2 - .../org/apache/camel/k/quarkus/Application.java | 12 +-- .../camel/k/quarkus/ApplicationProducers.java | 17 ---- .../apache/camel/k/support/DelegatingRuntime.java | 109 +++++++++++++++++++++ 6 files changed, 121 insertions(+), 62 deletions(-) diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java index a70fd02..27927c6 100644 --- a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-cron/src/main/java/org/apache/camel/k/quarkus/cron/deployment/Application.java @@ -22,13 +22,11 @@ import java.util.concurrent.atomic.AtomicBoolean; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; -import javax.inject.Singleton; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; -import io.quarkus.arc.Unremovable; import org.apache.camel.CamelContext; import org.apache.camel.ExtendedCamelContext; import org.apache.camel.k.Constants; @@ -38,6 +36,7 @@ import org.apache.camel.k.SourceLoader; import org.apache.camel.k.Sources; import org.apache.camel.k.cron.CronSourceLoaderInterceptor; import org.apache.camel.k.loader.yaml.YamlSourceLoader; +import org.apache.camel.k.support.DelegatingRuntime; @Path("/test") @ApplicationScoped @@ -72,15 +71,21 @@ public class Application { final SourceLoader loader = new YamlSourceLoader(); final Source source = Sources.fromBytes("my-cron", "yaml", null, List.of("cron"), code.getBytes(StandardCharsets.UTF_8)); + final Runtime rt = new DelegatingRuntime(runtime) { + @Override + public void stop() throws Exception { + stopped.set(true); + } + }; final CronSourceLoaderInterceptor interceptor = new CronSourceLoaderInterceptor(); - interceptor.setRuntime(runtime); + interceptor.setRuntime(rt); interceptor.setOverridableComponents("timer"); SourceLoader.Result result = interceptor.afterLoad( loader, source, - loader.load(runtime, source)); + loader.load(rt, source)); result.builder().ifPresent(b -> { try { @@ -99,14 +104,4 @@ public class Application { public String stopped() { return "" + stopped.get(); } - - /* - * Override the default ShutdownTask for testing purpose. - */ - @Unremovable - @Singleton - @javax.enterprise.inject.Produces - org.apache.camel.k.quarkus.Application.ShutdownTask shutdownTask() { - return () -> stopped.set(true); - } } diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/main/java/org/apache/camel/k/quarkus/it/Application.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/main/java/org/apache/camel/k/quarkus/it/Application.java index f3112a8..ce7f8a1 100644 --- a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/main/java/org/apache/camel/k/quarkus/it/Application.java +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/main/java/org/apache/camel/k/quarkus/it/Application.java @@ -43,24 +43,8 @@ public class Application { @Produces(MediaType.APPLICATION_JSON) public JsonObject inspect() { return Json.createObjectBuilder() - .add( - "camel-context", - instance(CamelContext.class) - .map(Object::getClass) - .map(Class::getName) - .orElse("")) - .add( - "camel-k-runtime", - instance(Runtime.class) - .map(Object::getClass) - .map(Class::getName) - .orElse("")) - .add( - "shutdown-task", - instance(org.apache.camel.k.quarkus.Application.ShutdownTask.class) - .map(Object::getClass) - .map(Class::getName) - .orElse("")) + .add("camel-context", instance(CamelContext.class).map(Object::getClass).map(Class::getName).orElse("")) + .add("camel-k-runtime", instance(Runtime.class).map(Object::getClass).map(Class::getName).orElse("")) .build(); } diff --git a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/test/java/org/apache/camel/k/quarkus/it/RuntimeTest.java b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/test/java/org/apache/camel/k/quarkus/it/RuntimeTest.java index 5689b73..7216824 100644 --- a/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/test/java/org/apache/camel/k/quarkus/it/RuntimeTest.java +++ b/camel-k-quarkus/camel-k-quarkus-itests/camel-k-quarkus-itests-runtime/src/test/java/org/apache/camel/k/quarkus/it/RuntimeTest.java @@ -22,7 +22,6 @@ import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.path.json.JsonPath; import org.apache.camel.k.quarkus.Application; -import org.apache.camel.k.quarkus.ApplicationProducers; import org.apache.camel.quarkus.core.FastCamelContext; import org.junit.jupiter.api.Test; @@ -43,7 +42,6 @@ public class RuntimeTest { assertThat(p.getString("camel-context")).isEqualTo(FastCamelContext.class.getName()); assertThat(p.getString("camel-k-runtime")).isEqualTo(Application.Runtime.class.getName()); - assertThat(p.getString("shutdown-task")).isEqualTo(ApplicationProducers.DefaultShutdownTask.class.getName()); } @Test diff --git a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java index fb0392a..320bd83 100644 --- a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java +++ b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/Application.java @@ -75,9 +75,7 @@ public final class Application { @Override public void stop() throws Exception { if (!this.stopped.compareAndExchange(false, true)) { - instance(ShutdownTask.class).ifPresentOrElse( - ShutdownTask::run, - Quarkus::asyncExit); + Quarkus.asyncExit(); } } } @@ -144,14 +142,6 @@ public final class Application { } } - /** - * Provide the task to be executed to shutdown the runtime - */ - @FunctionalInterface - public interface ShutdownTask { - void run(); - } - // ********************************* // // Helpers diff --git a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationProducers.java b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationProducers.java index f44f3c9..3e18fc3 100644 --- a/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationProducers.java +++ b/camel-k-quarkus/camel-k-runtime-quarkus/runtime/src/main/java/org/apache/camel/k/quarkus/ApplicationProducers.java @@ -20,9 +20,7 @@ import javax.enterprise.context.ApplicationScoped; import javax.enterprise.inject.Produces; import javax.inject.Singleton; -import io.quarkus.arc.DefaultBean; import io.quarkus.arc.Unremovable; -import io.quarkus.runtime.Quarkus; import org.apache.camel.k.Runtime; @ApplicationScoped @@ -39,19 +37,4 @@ public class ApplicationProducers { Runtime runtime() { return this.runtime; } - - @Unremovable - @DefaultBean - @Singleton - @Produces - Application.ShutdownTask shutdownTask() { - return new DefaultShutdownTask(); - } - - public static class DefaultShutdownTask implements Application.ShutdownTask { - @Override - public void run() { - Quarkus.asyncExit(); - } - } } diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/DelegatingRuntime.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/DelegatingRuntime.java new file mode 100644 index 0000000..960306b --- /dev/null +++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/support/DelegatingRuntime.java @@ -0,0 +1,109 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.k.support; + +import java.util.Collection; +import java.util.Map; +import java.util.Properties; + +import org.apache.camel.CamelContext; +import org.apache.camel.RoutesBuilder; +import org.apache.camel.k.Runtime; +import org.apache.camel.spi.Registry; + +public class DelegatingRuntime implements Runtime { + private final Runtime runtime; + + public DelegatingRuntime(Runtime runtime) { + this.runtime = runtime; + } + + @Override + public <T extends CamelContext> T getCamelContext(Class<T> type) { + return runtime.getCamelContext(type); + } + + @Override + public Registry getRegistry() { + return runtime.getRegistry(); + } + + @Override + public void setInitialProperties(Properties properties) { + runtime.setInitialProperties(properties); + } + + @Override + public void setInitialProperties(Map<String, String> properties) { + runtime.setInitialProperties(properties); + } + + @Override + public void setInitialProperties(String key, String value, String... keyVals) { + runtime.setInitialProperties(key, value, keyVals); + } + + @Override + public void setProperties(Properties properties) { + runtime.setProperties(properties); + } + + @Override + public void setProperties(Map<String, String> properties) { + runtime.setProperties(properties); + } + + @Override + public void setProperties(String key, String value, String... keyVals) { + runtime.setProperties(key, value, keyVals); + } + + @Override + public void addRoutes(RoutesBuilder builder) { + runtime.addRoutes(builder); + } + + @Override + public void addConfiguration(Object configuration) { + runtime.addConfiguration(configuration); + } + + @Override + public void setPropertiesLocations(Collection<String> locations) { + runtime.setPropertiesLocations(locations); + } + + @Override + public void setPropertiesLocations(String... locations) { + runtime.setPropertiesLocations(locations); + } + + @Override + public void stop() throws Exception { + runtime.stop(); + } + + @Override + public void close() throws Exception { + runtime.close(); + } + + @Override + public CamelContext getCamelContext() { + return runtime.getCamelContext(); + } +}
