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/*,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.