You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by al...@apache.org on 2023/02/15 20:21:40 UTC
[camel-quarkus] branch main updated: Restore ability for camel.main.javaRoutesIncludePattern to be overridable at runtime
This is an automated email from the ASF dual-hosted git repository.
aldettinger pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new e508a753c3 Restore ability for camel.main.javaRoutesIncludePattern to be overridable at runtime
e508a753c3 is described below
commit e508a753c3215f125c2e1c9fcddddafcd1dd4316
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Feb 15 10:55:28 2023 +0000
Restore ability for camel.main.javaRoutesIncludePattern to be overridable at runtime
Fixes #4574
---
.../quarkus/core/deployment/CamelProcessor.java | 25 ------
.../core/deployment/main/CamelMainProcessor.java | 7 +-
...ainRoutesExcludeFilterCombinedPropertyTest.java | 94 ---------------------
.../main/CamelMainRoutesExcludeFilterTest.java | 3 +-
...ainRoutesIncludeFilterCombinedPropertyTest.java | 95 ----------------------
.../camel/quarkus/main/CamelMainRecorder.java | 9 +-
.../quarkus/main/CamelMainRoutesCollector.java | 27 +-----
7 files changed, 8 insertions(+), 252 deletions(-)
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
index e17134c203..26d6bea287 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
@@ -23,7 +23,6 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashSet;
import java.util.List;
-import java.util.Optional;
import java.util.Set;
import java.util.TreeSet;
import java.util.function.Predicate;
@@ -80,8 +79,6 @@ import org.apache.camel.quarkus.core.deployment.util.PathFilter;
import org.apache.camel.quarkus.core.util.FileUtils;
import org.apache.camel.spi.TypeConverterLoader;
import org.apache.camel.spi.TypeConverterRegistry;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
import org.jboss.jandex.AnnotationTarget;
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;
@@ -372,28 +369,6 @@ class CamelProcessor {
allKnownImplementors.addAll(index.getAllKnownSubclasses(ROUTE_BUILDER_TYPE));
allKnownImplementors.addAll(index.getAllKnownSubclasses(ADVICE_WITH_ROUTE_BUILDER_TYPE));
- Config config = ConfigProvider.getConfig();
- Optional<List<String>> camelMainRoutesExclude = config.getOptionalValues("camel.main.javaRoutesExcludePattern",
- String.class);
- Optional<List<String>> camelMainRoutesInclude = config.getOptionalValues("camel.main.javaRoutesIncludePattern",
- String.class);
-
- camelMainRoutesExclude.ifPresent(excludes -> {
- if (camelConfig.routesDiscovery.excludePatterns.isPresent()) {
- camelConfig.routesDiscovery.excludePatterns.get().addAll(excludes);
- } else {
- camelConfig.routesDiscovery.excludePatterns = Optional.of(excludes);
- }
- });
-
- camelMainRoutesInclude.ifPresent(includes -> {
- if (camelConfig.routesDiscovery.includePatterns.isPresent()) {
- camelConfig.routesDiscovery.includePatterns.get().addAll(includes);
- } else {
- camelConfig.routesDiscovery.includePatterns = Optional.of(includes);
- }
- });
-
final Predicate<DotName> pathFilter = new PathFilter.Builder()
.exclude(
routesBuilderClassExcludes.stream()
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainProcessor.java
index 395043bbbd..cc6194f989 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/main/CamelMainProcessor.java
@@ -79,11 +79,8 @@ public class CamelMainProcessor {
@Record(value = ExecutionTime.STATIC_INIT, optional = true)
public CamelRoutesCollectorBuildItem routesCollector(
CamelMainRecorder recorder,
- CamelRoutesLoaderBuildItems.Registry registryRoutesLoader,
- CamelConfig config) {
-
- RuntimeValue<RoutesCollector> routesCollector = recorder.newRoutesCollector(registryRoutesLoader.getLoader(),
- config.routesDiscovery.excludePatterns, config.routesDiscovery.includePatterns);
+ CamelRoutesLoaderBuildItems.Registry registryRoutesLoader) {
+ RuntimeValue<RoutesCollector> routesCollector = recorder.newRoutesCollector(registryRoutesLoader.getLoader());
return new CamelRoutesCollectorBuildItem(routesCollector);
}
diff --git a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterCombinedPropertyTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterCombinedPropertyTest.java
deleted file mode 100644
index e0885a8bd1..0000000000
--- a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterCombinedPropertyTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * 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.quarkus.core.deployment.main;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.List;
-import java.util.Properties;
-
-import io.quarkus.test.QuarkusUnitTest;
-import jakarta.inject.Inject;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Route;
-import org.apache.camel.builder.RouteBuilder;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.Asset;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-public class CamelMainRoutesExcludeFilterCombinedPropertyTest {
- @RegisterExtension
- static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
- .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
- .addAsResource(applicationProperties(), "application.properties"));
-
- @Inject
- CamelContext context;
-
- public static Asset applicationProperties() {
- Writer writer = new StringWriter();
-
- Properties props = new Properties();
- props.setProperty("quarkus.banner.enabled", "false");
- props.setProperty("quarkus.camel.routes-discovery.enabled", "true");
- props.setProperty("quarkus.camel.routes-discovery.exclude-patterns", "**/*FilteredA");
- props.setProperty("camel.main.javaRoutesExcludePattern", "**/*FilteredB");
-
- try {
- props.store(writer, "");
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
-
- return new StringAsset(writer.toString());
- }
-
- @Test
- public void testRoutesFilter() {
- List<Route> routes = context.getRoutes();
- assertEquals(1, routes.size());
- assertNotNull(context.getRoute("my-route"));
- }
-
- public static class MyRoute extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("direct:in").routeId("my-route").to("log:out");
- }
- }
-
- public static class MyRouteFilteredA extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("direct:filtered-a").routeId("my-route-filtered-a").to("log:filtered-a");
- }
- }
-
- public static class MyRouteFilteredB extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("direct:filtered-b").routeId("my-route-filtered-b").to("log:filtered-b");
- }
- }
-}
diff --git a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterTest.java
index bc7b9f735b..897e271005 100644
--- a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterTest.java
+++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterTest.java
@@ -54,7 +54,8 @@ public class CamelMainRoutesExcludeFilterTest {
Properties props = new Properties();
props.setProperty("quarkus.banner.enabled", "false");
props.setProperty("quarkus.camel.routes-discovery.enabled", "true");
- props.setProperty("quarkus.camel.routes-discovery.exclude-patterns", "**/*Filtered,**/*Bean,**/*Producer");
+ props.setProperty("quarkus.camel.routes-discovery.exclude-patterns", "**/*Filtered");
+ props.setProperty("camel.main.javaRoutesExcludePattern", "**/*Bean,**/*Producer");
try {
props.store(writer, "");
diff --git a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesIncludeFilterCombinedPropertyTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesIncludeFilterCombinedPropertyTest.java
deleted file mode 100644
index 0ad6fd3a32..0000000000
--- a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesIncludeFilterCombinedPropertyTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.quarkus.core.deployment.main;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.List;
-import java.util.Properties;
-
-import io.quarkus.test.QuarkusUnitTest;
-import jakarta.inject.Inject;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Route;
-import org.apache.camel.builder.RouteBuilder;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.Asset;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-public class CamelMainRoutesIncludeFilterCombinedPropertyTest {
- @RegisterExtension
- static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
- .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
- .addAsResource(applicationProperties(), "application.properties"));
-
- @Inject
- CamelContext context;
-
- public static Asset applicationProperties() {
- Writer writer = new StringWriter();
-
- Properties props = new Properties();
- props.setProperty("quarkus.banner.enabled", "false");
- props.setProperty("quarkus.camel.routes-discovery.enabled", "true");
- props.setProperty("quarkus.camel.routes-discovery.include-patterns", "**/*FilteredA");
- props.setProperty("camel.main.javaRoutesIncludePattern", "**/*FilteredB");
-
- try {
- props.store(writer, "");
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
-
- return new StringAsset(writer.toString());
- }
-
- @Test
- public void testRoutesFilter() {
- List<Route> routes = context.getRoutes();
- assertEquals(2, routes.size());
- assertNotNull(context.getRoute("my-route-filtered-a"));
- assertNotNull(context.getRoute("my-route-filtered-b"));
- }
-
- public static class MyRoute extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("direct:in").routeId("my-route").to("log:out");
- }
- }
-
- public static class MyRouteFilteredA extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("direct:filtered-a").routeId("my-route-filtered-a").to("log:filtered-a");
- }
- }
-
- public static class MyRouteFilteredB extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("direct:filtered-b").routeId("my-route-filtered-b").to("log:filtered-b");
- }
- }
-}
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java
index 0e3b223a68..55e765102d 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRecorder.java
@@ -17,7 +17,6 @@
package org.apache.camel.quarkus.main;
import java.util.List;
-import java.util.Optional;
import java.util.Set;
import io.quarkus.arc.runtime.BeanContainer;
@@ -70,12 +69,8 @@ public class CamelMainRecorder {
main.getValue().addMainListener(listener.getValue());
}
- public RuntimeValue<RoutesCollector> newRoutesCollector(
- RuntimeValue<RegistryRoutesLoader> registryRoutesLoader,
- Optional<List<String>> excludePatterns,
- Optional<List<String>> includePatterns) {
- return new RuntimeValue<>(
- new CamelMainRoutesCollector(registryRoutesLoader.getValue(), excludePatterns, includePatterns));
+ public RuntimeValue<RoutesCollector> newRoutesCollector(RuntimeValue<RegistryRoutesLoader> registryRoutesLoader) {
+ return new RuntimeValue<>(new CamelMainRoutesCollector(registryRoutesLoader.getValue()));
}
public void customizeContext(RuntimeValue<CamelMain> main, List<RuntimeValue<CamelContextCustomizer>> contextCustomizers) {
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
index 44d86a0f8a..8595f531d0 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
@@ -17,7 +17,6 @@
package org.apache.camel.quarkus.main;
import java.util.List;
-import java.util.Optional;
import org.apache.camel.CamelContext;
import org.apache.camel.RoutesBuilder;
@@ -26,16 +25,9 @@ import org.apache.camel.quarkus.core.RegistryRoutesLoader;
public class CamelMainRoutesCollector extends DefaultRoutesCollector {
private final RegistryRoutesLoader registryRoutesLoader;
- private final Optional<List<String>> excludePatterns;
- private final Optional<List<String>> includePatterns;
- public CamelMainRoutesCollector(
- RegistryRoutesLoader registryRoutesLoader,
- Optional<List<String>> excludePatterns,
- Optional<List<String>> includePatterns) {
+ public CamelMainRoutesCollector(RegistryRoutesLoader registryRoutesLoader) {
this.registryRoutesLoader = registryRoutesLoader;
- this.excludePatterns = excludePatterns;
- this.includePatterns = includePatterns;
}
public RegistryRoutesLoader getRegistryRoutesLoader() {
@@ -48,21 +40,6 @@ public class CamelMainRoutesCollector extends DefaultRoutesCollector {
String excludePattern,
String includePattern) {
- /**
- * The incoming excludePattern & includePattern are ignored since they are provided from camel-main via:
- *
- * camel.main.javaRoutesExcludePattern
- * camel.main.javaRoutesIncludePattern
- *
- * The values for those properties are combined with the quarkus.camel.routes-discovery equivalents at build time.
- */
- return registryRoutesLoader.collectRoutesFromRegistry(
- camelContext,
- getPatternString(excludePatterns),
- getPatternString(includePatterns));
- }
-
- private String getPatternString(Optional<List<String>> camelQuarkusPatterns) {
- return camelQuarkusPatterns.map(patterns -> String.join(",", patterns)).orElse(null);
+ return registryRoutesLoader.collectRoutesFromRegistry(camelContext, excludePattern, includePattern);
}
}