Skip to content

Commit

Permalink
Upgrade to Camel 3.3.0 - WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesnetherton committed Apr 28, 2020
1 parent 9bf6102 commit e8543f5
Show file tree
Hide file tree
Showing 7 changed files with 255 additions and 252 deletions.
378 changes: 189 additions & 189 deletions docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public abstract class BaseModel implements Model {
private Map<String, ServiceCallConfigurationDefinition> serviceCallConfigurations = new ConcurrentHashMap<>();
private Map<String, HystrixConfigurationDefinition> hystrixConfigurations = new ConcurrentHashMap<>();
private Map<String, Resilience4jConfigurationDefinition> resilience4jConfigurations = new ConcurrentHashMap<>();
private Map<String, FaultToleranceConfigurationDefinition> faultToleranceConfigurations = new ConcurrentHashMap<>();
private Function<RouteDefinition, Boolean> routeFilter;

public BaseModel(CamelContext camelContext) {
Expand Down Expand Up @@ -215,6 +216,34 @@ public void addResilience4jConfiguration(String id, Resilience4jConfigurationDef
resilience4jConfigurations.put(id, configuration);
}

@Override
public FaultToleranceConfigurationDefinition getFaultToleranceConfiguration(String id) {
if (id == null) {
id = "";
}

return faultToleranceConfigurations.get(id);
}

@Override
public void setFaultToleranceConfiguration(FaultToleranceConfigurationDefinition configuration) {
faultToleranceConfigurations.put("", configuration);
}

@Override
public void setFaultToleranceConfigurations(List<FaultToleranceConfigurationDefinition> configurations) {
if (configurations != null) {
for (FaultToleranceConfigurationDefinition configuration : configurations) {
faultToleranceConfigurations.put(configuration.getId(), configuration);
}
}
}

@Override
public void addFaultToleranceConfiguration(String id, FaultToleranceConfigurationDefinition configuration) {
faultToleranceConfigurations.put(id, configuration);
}

@Override
public DataFormatDefinition resolveDataFormatDefinition(String name) {
// lookup type and create the data format from it
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,26 @@ public void addResilience4jConfiguration(String id, Resilience4jConfigurationDef
model.addResilience4jConfiguration(id, configuration);
}

@Override
public FaultToleranceConfigurationDefinition getFaultToleranceConfiguration(String id) {
return model.getFaultToleranceConfiguration(id);
}

@Override
public void setFaultToleranceConfiguration(FaultToleranceConfigurationDefinition configuration) {
model.setFaultToleranceConfiguration(configuration);
}

@Override
public void setFaultToleranceConfigurations(List<FaultToleranceConfigurationDefinition> configurations) {
model.setFaultToleranceConfigurations(configurations);
}

@Override
public void addFaultToleranceConfiguration(String id, FaultToleranceConfigurationDefinition configuration) {
model.addFaultToleranceConfiguration(id, configuration);
}

@Override
public List<ValidatorDefinition> getValidators() {
return model.getValidators();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,33 +115,22 @@ public <T> Optional<T> newInstance(String key, Class<T> type) {

@Override
public Optional<Class<?>> findClass(String key) {
return findClass(key, null);
}

@Override
public Optional<Class<?>> findClass(String key, String propertyPrefix) {
final String mapKey = mapKey(path, propertyPrefix, key);
final String mapKey = mapKey(path, null, key);
final Class<?> cl = classMap.get(mapKey);
LOG.tracef("Found a non-optional class for key %s: %s", mapKey, cl == null ? "null" : cl.getName());
return Optional.ofNullable(cl);
}

@Override
public Optional<Class<?>> findClass(String key, String propertyPrefix, Class<?> clazz) {
// Just ignore clazz which is only useful for OSGiFactoryFinder
return findClass(key, propertyPrefix);
}

@Override
public Optional<Class<?>> findOptionalClass(String key, String propertyPrefix) {
final String mapKey = mapKey(path, propertyPrefix, key);
public Optional<Class<?>> findOptionalClass(String key) {
final String mapKey = mapKey(path, null, key);
final Class<?> cl = classMap.get(mapKey);
LOG.tracef("Found an optional class for key %s: %s", mapKey, cl == null ? "null" : cl.getName());
return Optional.ofNullable(cl);
}

private Optional<Object> doNewInstance(String key, String propertyPrefix) {
return findClass(key, propertyPrefix).map(ObjectHelper::newInstance);
return findClass(key).map(ObjectHelper::newInstance);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,8 @@
*/
package org.apache.camel.quarkus.component.file.deployment;

import java.nio.file.Paths;

import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.file.strategy.FileProcessStrategyFactory;
import org.apache.camel.component.file.strategy.GenericFileProcessStrategyFactory;
import org.apache.camel.quarkus.core.deployment.CamelServiceBuildItem;

class FileProcessor {

Expand All @@ -34,33 +27,4 @@ class FileProcessor {
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}

@BuildStep
ReflectiveClassBuildItem registerForReflection() {
return new ReflectiveClassBuildItem(true, false,
GenericFile.class,
GenericFileProcessStrategyFactory.class,
FileProcessStrategyFactory.class);
}

@BuildStep
CamelServiceBuildItem fileProcessStrategyFactoryService() {
//
// The current factory finder set-up does not take into account additional service defined from
// the factory file using prefixes, as example, the factory file content of the file component
// defines two services:
//
// class=org.apache.camel.component.file.FileComponent
// strategy.factory.class=org.apache.camel.component.file.strategy.FileProcessStrategyFactory
//
// but the current implementation puts an instance if the FileComponent class into the registry
// and blindly ignore strategy.factory.class, in addition, the current selector can't distinguish
// between REGISTER and DISCOVERY at service factory property level thus this CamelServiceBuildItem
// is needed to workaround the limitation.
//
return new CamelServiceBuildItem(
Paths.get("META-INF/services/org/apache/camel/component/strategy.factory.file"),
"file.strategy.factory",
"org.apache.camel.component.file.strategy.FileProcessStrategyFactory");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,23 @@
"component": {
"kind": "component",
"name": "qute",
"scheme": "qute",
"extendsScheme": "",
"syntax": "qute:resourceUri",
"title": "Qute",
"description": "Transforms the message using a Quarkus Qute template.",
"label": "transformation",
"deprecated": false,
"async": false,
"consumerOnly": false,
"producerOnly": true,
"lenientProperties": false,
"javaType": "org.apache.camel.component.qute.QuteComponent",
"firstVersion": "3.2.0",
"label": "transformation",
"javaType": "org.apache.camel.component.qute.QuteComponent",
"supportLevel": "Stable",
"groupId": "org.apache.camel.quarkus",
"artifactId": "camel-quarkus-qute-component",
"version": "1.1.0-SNAPSHOT"
"version": "1.1.0-SNAPSHOT",
"scheme": "qute",
"extendsScheme": "",
"syntax": "qute:resourceUri",
"async": false,
"consumerOnly": false,
"producerOnly": true,
"lenientProperties": false
},
"componentProperties": {
"lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@
<ahc.version>2.10.4</ahc.version>
<awssdk1.version>1.11.714</awssdk1.version>
<awssdk1-swf-libs.version>1.11.22</awssdk1-swf-libs.version>
<awssdk2.version>2.11.5</awssdk2.version>
<camel.version>3.2.0</camel.version>
<awssdk2.version>2.13.4</awssdk2.version>
<camel.version>3.3.0-SNAPSHOT</camel.version>
<freemarker.version>2.3.30</freemarker.version>
<github-api.version>1.111</github-api.version>
<google-http-client.version>1.22.0</google-http-client.version>
Expand Down

0 comments on commit e8543f5

Please sign in to comment.