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 <guillaume.s...@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/*,com/mycompany/stuff/* */ @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/*,com/mycompany/stuff/* */ @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.