You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/12/17 14:38:30 UTC

[camel-quarkus] 04/06: Update the Quarkus config to be supported by new smallrye-config

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-quarkus.git

commit da352f07a7ea8413141900720f1f6367c992d3d7
Author: Guillaume Smet <gu...@gmail.com>
AuthorDate: Tue Dec 10 16:18:29 2019 +0100

    Update the Quarkus config to be supported by new smallrye-config
    
    Potentially empty collections/maps need to be marked with Optional.
---
 .../camel/quarkus/core/deployment/BuildProcessor.java |  5 +++--
 .../org/apache/camel/quarkus/core/CamelConfig.java    |  5 +++--
 .../component/dozer/deployment/DozerProcessor.java    | 11 ++++++-----
 .../quarkus/component/dozer/CamelDozerConfig.java     |  7 ++++---
 .../component/opentracing/CamelOpenTracingConfig.java |  3 ++-
 .../opentracing/CamelOpenTracingRecorder.java         |  4 ++--
 .../component/sql/deployment/SqlProcessor.java        |  6 +++++-
 .../camel/quarkus/component/sql/CamelSqlConfig.java   |  7 ++++---
 .../xslt/deployment/XsltNativeImageProcessor.java     |  9 +++++++--
 .../component/xslt/deployment/XsltProcessor.java      | 19 ++++++++++---------
 .../camel/quarkus/component/xslt/CamelXsltConfig.java |  3 ++-
 11 files changed, 48 insertions(+), 31 deletions(-)

diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
index dd825be..fb83ff4 100644
--- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
@@ -21,6 +21,7 @@ import java.lang.reflect.Modifier;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -320,8 +321,8 @@ class BuildProcessor {
                     .map(ClassInfo::name)
                     .filter(dotName -> CamelSupport.isPathIncluded(
                             dotName.toString('/'),
-                            config.main.routesDiscovery.excludePatterns,
-                            config.main.routesDiscovery.includePatterns))
+                            config.main.routesDiscovery.excludePatterns.orElse(Collections.emptyList()),
+                            config.main.routesDiscovery.includePatterns.orElse(Collections.emptyList())))
                     .map(CamelRoutesBuilderClassBuildItem::new)
                     .collect(Collectors.toList());
         }
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
index f328df6..d10f6f5 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.core;
 
 import java.util.List;
+import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
 import io.quarkus.runtime.annotations.ConfigItem;
@@ -70,7 +71,7 @@ public class CamelConfig {
          * And to exclude all routes from two specific packages use: com/mycompany/bar/&#42;,com/mycompany/stuff/&#42;
          */
         @ConfigItem
-        public List<String> excludePatterns;
+        public Optional<List<String>> excludePatterns;
 
         /**
          * Used for inclusive filtering scanning of RouteBuilder classes.
@@ -84,6 +85,6 @@ public class CamelConfig {
          * And to include all routes from two specific packages use: com/mycompany/foo/&#42;,com/mycompany/stuff/&#42;
          */
         @ConfigItem
-        public List<String> includePatterns;
+        public Optional<List<String>> includePatterns;
     }
 }
diff --git a/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java b/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java
index 5b37179..eeb48c1 100644
--- a/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java
+++ b/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java
@@ -33,6 +33,7 @@ import java.net.URL;
 import java.sql.Time;
 import java.sql.Timestamp;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
 
 import com.github.dozermapper.core.DozerBeanMapperBuilder;
@@ -78,7 +79,7 @@ class DozerProcessor {
             CamelDozerConfig camelDozerConfig) {
 
         // Add user Dozer mapping files to the image
-        camelDozerConfig.mappingFiles
+        camelDozerConfig.mappingFiles.orElse(Collections.emptyList())
                 .stream()
                 .map(this::mappingPathToURI)
                 // No scheme means classpath URI
@@ -145,10 +146,10 @@ class DozerProcessor {
                 VariableDefinition.class,
                 VariablesDefinition.class));
 
-        if (!camelDozerConfig.mappingFiles.isEmpty()) {
+        if (camelDozerConfig.mappingFiles.isPresent()) {
             // Register for reflection any classes participating in Dozer mapping
             Mapper mapper = DozerBeanMapperBuilder.create()
-                    .withMappingFiles(camelDozerConfig.mappingFiles)
+                    .withMappingFiles(camelDozerConfig.mappingFiles.get())
                     .build();
 
             mapper.getMappingMetadata()
@@ -167,12 +168,12 @@ class DozerProcessor {
 
         CamelBeanBuildItem camelBeanBuildItem = null;
 
-        if (!camelDozerConfig.mappingFiles.isEmpty()) {
+        if (camelDozerConfig.mappingFiles.isPresent()) {
             // Bind DozerBeanMapperConfiguration to the Camel registry for the user provided Dozer mapping files
             camelBeanBuildItem = new CamelBeanBuildItem(
                     "dozerBeanMappingConfiguration",
                     DozerBeanMapperConfiguration.class.getName(),
-                    camelDozerRecorder.createDozerBeanMapperConfiguration(camelDozerConfig.mappingFiles));
+                    camelDozerRecorder.createDozerBeanMapperConfiguration(camelDozerConfig.mappingFiles.get()));
         }
 
         return camelBeanBuildItem;
diff --git a/extensions/dozer/runtime/src/main/java/org/apache/camel/quarkus/component/dozer/CamelDozerConfig.java b/extensions/dozer/runtime/src/main/java/org/apache/camel/quarkus/component/dozer/CamelDozerConfig.java
index 3441c04..1a0d11b 100644
--- a/extensions/dozer/runtime/src/main/java/org/apache/camel/quarkus/component/dozer/CamelDozerConfig.java
+++ b/extensions/dozer/runtime/src/main/java/org/apache/camel/quarkus/component/dozer/CamelDozerConfig.java
@@ -16,12 +16,13 @@
  */
 package org.apache.camel.quarkus.component.dozer;
 
+import java.util.List;
+import java.util.Optional;
+
 import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
 
-import java.util.List;
-
 @ConfigRoot(name = "camel.dozer", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
 public class CamelDozerConfig {
 
@@ -29,7 +30,7 @@ public class CamelDozerConfig {
      * A comma separated list of Dozer XML mapping configuration file URIs.
      */
     @ConfigItem
-    public List<String> mappingFiles;
+    public Optional<List<String>> mappingFiles;
 
     /**
      * Sets whether to configure the DozerTypeConverter for the CamelContext
diff --git a/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingConfig.java b/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingConfig.java
index 8c1d87a..73d4364 100644
--- a/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingConfig.java
+++ b/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingConfig.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.opentracing;
 
 import java.util.List;
+import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
@@ -35,5 +36,5 @@ public final class CamelOpenTracingConfig {
      * Sets whether to disable tracing for endpoint URIs that match the given patterns
      */
     @ConfigItem
-    public List<String> excludePatterns;
+    public Optional<List<String>> excludePatterns;
 }
diff --git a/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingRecorder.java b/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingRecorder.java
index 26c15f6..4331f02 100644
--- a/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingRecorder.java
+++ b/extensions/opentracing/runtime/src/main/java/org/apache/camel/quarkus/component/opentracing/CamelOpenTracingRecorder.java
@@ -35,8 +35,8 @@ public class CamelOpenTracingRecorder {
         if (tracer != null) {
             openTracingTracer.setTracer(tracer);
             openTracingTracer.setEncoding(camelOpenTracingConfig.encoding);
-            if (camelOpenTracingConfig.excludePatterns != null) {
-                openTracingTracer.setExcludePatterns(new LinkedHashSet<>(camelOpenTracingConfig.excludePatterns));
+            if (camelOpenTracingConfig.excludePatterns.isPresent()) {
+                openTracingTracer.setExcludePatterns(new LinkedHashSet<>(camelOpenTracingConfig.excludePatterns.get()));
             }
         }
         return new RuntimeValue<>(openTracingTracer);
diff --git a/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java b/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
index a15eb56..b09fb6a 100644
--- a/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
+++ b/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
@@ -47,7 +47,11 @@ class SqlProcessor {
 
     @BuildStep
     void sqlNativeImageResources(BuildProducer<NativeImageResourceBuildItem> nativeImage, CamelSqlConfig config) {
-        config.scriptFiles
+        if (!config.scriptFiles.isPresent()) {
+            return;
+        }
+
+        config.scriptFiles.get()
                 .stream()
                 .map(scriptFile -> new NativeImageResourceBuildItem(scriptFile.replace("classpath:", "")))
                 .forEach(nativeImage::produce);
diff --git a/extensions/sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/CamelSqlConfig.java b/extensions/sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/CamelSqlConfig.java
index db15f7e..bb83a24 100644
--- a/extensions/sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/CamelSqlConfig.java
+++ b/extensions/sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/CamelSqlConfig.java
@@ -16,12 +16,13 @@
  */
 package org.apache.camel.quarkus.component.sql;
 
+import java.util.List;
+import java.util.Optional;
+
 import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
 
-import java.util.List;
-
 @ConfigRoot(name = "camel.sql", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
 public class CamelSqlConfig {
 
@@ -34,5 +35,5 @@ public class CamelSqlConfig {
      * classpath:sql/my-script.sql). Other URI schemes are not supported.
      */
     @ConfigItem
-    public List<String> scriptFiles;
+    public Optional<List<String>> scriptFiles;
 }
diff --git a/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltNativeImageProcessor.java b/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltNativeImageProcessor.java
index 65cffdb..8c78c3b 100644
--- a/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltNativeImageProcessor.java
+++ b/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltNativeImageProcessor.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.xslt.deployment;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -45,9 +46,13 @@ class XsltNativeImageProcessor {
 
     @BuildStep
     List<NativeImageResourceBuildItem> xsltResources(CamelXsltConfig config) {
-        List<NativeImageResourceBuildItem> items = new ArrayList<>(config.sources.size());
+        if (!config.sources.isPresent()) {
+            return Collections.emptyList();
+        }
+
+        List<NativeImageResourceBuildItem> items = new ArrayList<>(config.sources.get().size());
 
-        for (String source : config.sources) {
+        for (String source : config.sources.get()) {
             String scheme = ResourceHelper.getScheme(source);
 
             if (Objects.isNull(scheme) || Objects.equals(scheme, CLASSPATH_SCHEME)) {
diff --git a/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltProcessor.java b/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltProcessor.java
index b0c6084..d33b1b9 100644
--- a/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltProcessor.java
+++ b/extensions/xslt/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/deployment/XsltProcessor.java
@@ -20,6 +20,7 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -28,24 +29,24 @@ import java.util.Set;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
 
-import io.quarkus.deployment.annotations.BuildProducer;
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.annotations.ExecutionTime;
-import io.quarkus.deployment.annotations.Record;
-import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
-import io.quarkus.deployment.builditem.GeneratedClassBuildItem;
 import org.apache.camel.component.xslt.XsltComponent;
-import org.apache.camel.quarkus.component.xslt.deployment.BuildTimeUriResolver.ResolutionResult;
 import org.apache.camel.quarkus.component.xslt.CamelXsltConfig;
 import org.apache.camel.quarkus.component.xslt.CamelXsltErrorListener;
 import org.apache.camel.quarkus.component.xslt.CamelXsltRecorder;
 import org.apache.camel.quarkus.component.xslt.RuntimeUriResolver.Builder;
-import org.apache.camel.quarkus.core.deployment.CamelServiceFilter;
+import org.apache.camel.quarkus.component.xslt.deployment.BuildTimeUriResolver.ResolutionResult;
 import org.apache.camel.quarkus.core.deployment.CamelBeanBuildItem;
+import org.apache.camel.quarkus.core.deployment.CamelServiceFilter;
 import org.apache.camel.quarkus.core.deployment.CamelServiceFilterBuildItem;
 import org.apache.camel.quarkus.support.xalan.XalanTransformerFactory;
 import org.apache.commons.lang3.StringUtils;
 
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
+import io.quarkus.deployment.builditem.GeneratedClassBuildItem;
 import io.quarkus.runtime.RuntimeValue;
 
 class XsltProcessor {
@@ -91,7 +92,7 @@ class XsltProcessor {
         final Set<String> translets = new LinkedHashSet<>();
         try {
             final BuildTimeUriResolver resolver = new BuildTimeUriResolver();
-            for (String uri : config.sources) {
+            for (String uri : config.sources.orElse(Collections.emptyList())) {
                 ResolutionResult resolvedUri = resolver.resolve(uri);
                 uriResolverEntries.produce(resolvedUri.toBuildItem());
                 final String translet = resolvedUri.transletClassName;
diff --git a/extensions/xslt/runtime/src/main/java/org/apache/camel/quarkus/component/xslt/CamelXsltConfig.java b/extensions/xslt/runtime/src/main/java/org/apache/camel/quarkus/component/xslt/CamelXsltConfig.java
index 6a2cc7a..ed7c684 100644
--- a/extensions/xslt/runtime/src/main/java/org/apache/camel/quarkus/component/xslt/CamelXsltConfig.java
+++ b/extensions/xslt/runtime/src/main/java/org/apache/camel/quarkus/component/xslt/CamelXsltConfig.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.xslt;
 
 import java.util.List;
+import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
@@ -28,7 +29,7 @@ public class CamelXsltConfig {
      * A comma separated list of templates to compile.
      */
     @ConfigItem
-    public List<String> sources;
+    public Optional<List<String>> sources;
 
     /**
      * The package name for the generated classes.