This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.13.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 4e411dbc86311ea300abb35126e119ff554143e6
Author: James Netherton <jamesnether...@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 | 95 ---------------------
 .../main/CamelMainRoutesExcludeFilterTest.java     |  3 +-
 ...ainRoutesIncludeFilterCombinedPropertyTest.java | 96 ----------------------
 .../camel/quarkus/main/CamelMainRecorder.java      |  9 +-
 .../quarkus/main/CamelMainRoutesCollector.java     | 27 +-----
 7 files changed, 8 insertions(+), 254 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 ab57746e1f..b72b9ecaad 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;
@@ -77,8 +76,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;
@@ -367,28 +364,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 9b5583d5b8..0000000000
--- 
a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesExcludeFilterCombinedPropertyTest.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 javax.inject.Inject;
-
-import io.quarkus.test.QuarkusUnitTest;
-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 6b932dc5e7..a614284102 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
@@ -55,7 +55,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 264b0f4c70..0000000000
--- 
a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/main/CamelMainRoutesIncludeFilterCombinedPropertyTest.java
+++ /dev/null
@@ -1,96 +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 javax.inject.Inject;
-
-import io.quarkus.test.QuarkusUnitTest;
-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);
     }
 }

Reply via email to