You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2020/01/15 16:12:10 UTC
[camel] 04/07: Small changes to the model to make it easier to work
with
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3a4bfe51dbde6bd3bacf26da6b77d075cbaab5c2
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed Jan 15 14:48:56 2020 +0100
Small changes to the model to make it easier to work with
---
.../camel/component/hbase/model/HBaseCell.java | 6 +-
.../camel/component/hbase/model/HBaseRow.java | 2 +-
.../apache/camel/model/AggregateDefinition.java | 7 +-
.../org/apache/camel/model/CatchDefinition.java | 8 +-
.../camel/model/CircuitBreakerDefinition.java | 13 +--
.../org/apache/camel/model/FinallyDefinition.java | 13 +++
.../apache/camel/model/InterceptDefinition.java | 12 +++
.../camel/model/InterceptFromDefinition.java | 3 +
.../model/InterceptSendToEndpointDefinition.java | 14 +++
.../apache/camel/model/LoadBalanceDefinition.java | 13 +--
.../apache/camel/model/MulticastDefinition.java | 13 +++
.../apache/camel/model/OnCompletionDefinition.java | 10 +-
.../apache/camel/model/OnExceptionDefinition.java | 8 +-
.../apache/camel/model/OnFallbackDefinition.java | 13 +++
.../apache/camel/model/OtherwiseDefinition.java | 13 +++
.../org/apache/camel/model/OutputDefinition.java | 4 +-
.../org/apache/camel/model/PipelineDefinition.java | 14 +++
.../org/apache/camel/model/PolicyDefinition.java | 14 +++
.../apache/camel/model/ResequenceDefinition.java | 8 +-
.../org/apache/camel/model/RouteDefinition.java | 15 +--
.../org/apache/camel/model/SagaDefinition.java | 7 ++
.../org/apache/camel/model/StepDefinition.java | 14 +++
.../apache/camel/model/TransactedDefinition.java | 9 ++
.../java/org/apache/camel/model/TryDefinition.java | 7 ++
.../model/cloud/ServiceCallConfiguration.java | 104 +++++++++++++++++++++
.../cloud/ServiceCallExpressionConfiguration.java | 68 +-------------
.../ServiceCallServiceChooserConfiguration.java | 66 +------------
.../ServiceCallServiceDiscoveryConfiguration.java | 66 +------------
.../ServiceCallServiceFilterConfiguration.java | 59 +-----------
...erviceCallServiceLoadBalancerConfiguration.java | 59 +-----------
.../camel/model/dataformat/BindyDataFormat.java | 7 ++
.../apache/camel/model/ModelSanityCheckerTest.java | 3 +-
32 files changed, 310 insertions(+), 362 deletions(-)
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java
index 41774c8..6847acc 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java
@@ -37,20 +37,20 @@ public class HBaseCell {
return "HBaseCell=[family=" + family + ", qualifier=" + qualifier + ", value=" + value + ", valueType=" + valueType.getName();
}
- @XmlAttribute(name = "family")
public String getFamily() {
return family;
}
+ @XmlAttribute(name = "family")
public void setFamily(String family) {
this.family = family;
}
- @XmlAttribute(name = "qualifier")
public String getQualifier() {
return qualifier;
}
+ @XmlAttribute(name = "qualifier")
public void setQualifier(String qualifier) {
this.qualifier = qualifier;
}
@@ -63,11 +63,11 @@ public class HBaseCell {
this.value = value;
}
- @XmlAttribute(name = "type")
public Class<?> getValueType() {
return valueType;
}
+ @XmlAttribute(name = "type")
public void setValueType(Class<?> valueType) {
if (valueType == null) {
throw new IllegalArgumentException("Value type can not be null");
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseRow.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseRow.java
index 56a09da..8b5fe6b 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseRow.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseRow.java
@@ -48,11 +48,11 @@ public class HBaseRow implements Cloneable {
this.id = id;
}
- @XmlAttribute(name = "type")
public Class<?> getRowType() {
return rowType;
}
+ @XmlAttribute(name = "type")
public void setRowType(Class<?> rowType) {
this.rowType = rowType;
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/AggregateDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/AggregateDefinition.java
index a24c262..3049b1a 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/AggregateDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/AggregateDefinition.java
@@ -50,7 +50,7 @@ import org.apache.camel.spi.Metadata;
@Metadata(label = "eip,routing")
@XmlRootElement(name = "aggregate")
@XmlAccessorType(XmlAccessType.FIELD)
-public class AggregateDefinition extends ProcessorDefinition<AggregateDefinition> implements OutputNode, ExecutorServiceAwareDefinition<AggregateDefinition> {
+public class AggregateDefinition extends OutputDefinition<AggregateDefinition> implements ExecutorServiceAwareDefinition<AggregateDefinition> {
@XmlElement(name = "correlationExpression", required = true)
private ExpressionSubElementDefinition correlationExpression;
@XmlElement(name = "completionPredicate")
@@ -136,8 +136,6 @@ public class AggregateDefinition extends ProcessorDefinition<AggregateDefinition
private AggregateController aggregateController;
@XmlAttribute
private String aggregateControllerRef;
- @XmlElementRef
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
public AggregateDefinition() {
}
@@ -1145,8 +1143,9 @@ public class AggregateDefinition extends ProcessorDefinition<AggregateDefinition
return outputs;
}
+ @XmlElementRef
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
+ super.setOutputs(outputs);
}
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/CatchDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/CatchDefinition.java
index baee0d0..e400e15 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/CatchDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/CatchDefinition.java
@@ -37,14 +37,12 @@ import org.apache.camel.spi.Metadata;
@Metadata(label = "error")
@XmlRootElement(name = "doCatch")
@XmlAccessorType(XmlAccessType.FIELD)
-public class CatchDefinition extends ProcessorDefinition<CatchDefinition> implements OutputNode {
+public class CatchDefinition extends OutputDefinition<CatchDefinition> {
@XmlElement(name = "exception")
private List<String> exceptions = new ArrayList<>();
@XmlElement(name = "onWhen")
@AsPredicate
private WhenDefinition onWhen;
- @XmlElementRef
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
@XmlTransient
private List<Class<? extends Throwable>> exceptionClasses;
@@ -80,8 +78,10 @@ public class CatchDefinition extends ProcessorDefinition<CatchDefinition> implem
return outputs;
}
+ @XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
+ super.setOutputs(outputs);
}
public List<Class<? extends Throwable>> getExceptionClasses() {
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/CircuitBreakerDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/CircuitBreakerDefinition.java
index 5ff3f91..122eb29 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/CircuitBreakerDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/CircuitBreakerDefinition.java
@@ -33,7 +33,7 @@ import org.apache.camel.spi.Metadata;
@Metadata(label = "eip,routing,circuitbreaker")
@XmlRootElement(name = "circuitBreaker")
@XmlAccessorType(XmlAccessType.FIELD)
-public class CircuitBreakerDefinition extends ProcessorDefinition<CircuitBreakerDefinition> implements OutputNode {
+public class CircuitBreakerDefinition extends OutputDefinition<CircuitBreakerDefinition> {
@XmlElement
private HystrixConfigurationDefinition hystrixConfiguration;
@@ -41,8 +41,6 @@ public class CircuitBreakerDefinition extends ProcessorDefinition<CircuitBreaker
private Resilience4jConfigurationDefinition resilience4jConfiguration;
@XmlAttribute
private String configurationRef;
- @XmlElementRef
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
@XmlTransient
private OnFallbackDefinition onFallback;
@@ -69,13 +67,10 @@ public class CircuitBreakerDefinition extends ProcessorDefinition<CircuitBreaker
return outputs;
}
+ @XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
- if (outputs != null) {
- for (ProcessorDefinition<?> output : outputs) {
- configureChild(output);
- }
- }
+ super.setOutputs(outputs);
}
@Override
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/FinallyDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/FinallyDefinition.java
index 5bec371..1bf5f9f 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/FinallyDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/FinallyDefinition.java
@@ -16,8 +16,11 @@
*/
package org.apache.camel.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.spi.Metadata;
@@ -45,4 +48,14 @@ public class FinallyDefinition extends OutputDefinition<FinallyDefinition> {
return "doFinally";
}
+ @Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptDefinition.java
index dbf2d0a..98d603d 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptDefinition.java
@@ -21,6 +21,7 @@ import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -67,6 +68,17 @@ public class InterceptDefinition extends OutputDefinition<InterceptDefinition> {
return true;
}
+ @Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
/**
* Applies this interceptor only if the given predicate is true
*
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptFromDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptFromDefinition.java
index c39e088..e99c6da 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptFromDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptFromDefinition.java
@@ -16,9 +16,12 @@
*/
package org.apache.camel.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.spi.Metadata;
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java
index 1cb0d13..87155da 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/InterceptSendToEndpointDefinition.java
@@ -16,9 +16,12 @@
*/
package org.apache.camel.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.Predicate;
@@ -48,6 +51,17 @@ public class InterceptSendToEndpointDefinition extends OutputDefinition<Intercep
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
+ @Override
public String toString() {
return "InterceptSendToEndpoint[" + uri + " -> " + getOutputs() + "]";
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/LoadBalanceDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/LoadBalanceDefinition.java
index 5fa0735..c46716d 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/LoadBalanceDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/LoadBalanceDefinition.java
@@ -45,7 +45,7 @@ import org.apache.camel.spi.Metadata;
@Metadata(label = "eip,routing")
@XmlRootElement(name = "loadBalance")
@XmlAccessorType(XmlAccessType.FIELD)
-public class LoadBalanceDefinition extends ProcessorDefinition<LoadBalanceDefinition> implements OutputNode {
+public class LoadBalanceDefinition extends OutputDefinition<LoadBalanceDefinition> {
@XmlElements({@XmlElement(required = false, name = "failover", type = FailoverLoadBalancerDefinition.class),
@XmlElement(required = false, name = "random", type = RandomLoadBalancerDefinition.class),
@XmlElement(required = false, name = "customLoadBalancer", type = CustomLoadBalancerDefinition.class),
@@ -54,8 +54,6 @@ public class LoadBalanceDefinition extends ProcessorDefinition<LoadBalanceDefini
@XmlElement(required = false, name = "topic", type = TopicLoadBalancerDefinition.class),
@XmlElement(required = false, name = "weighted", type = WeightedLoadBalancerDefinition.class)})
private LoadBalancerDefinition loadBalancerType;
- @XmlElementRef
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
public LoadBalanceDefinition() {
}
@@ -65,13 +63,10 @@ public class LoadBalanceDefinition extends ProcessorDefinition<LoadBalanceDefini
return outputs;
}
+ @XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
- if (outputs != null) {
- for (ProcessorDefinition<?> output : outputs) {
- configureChild(output);
- }
- }
+ super.setOutputs(outputs);
}
public LoadBalancerDefinition getLoadBalancerType() {
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/MulticastDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/MulticastDefinition.java
index 79d9233..a7bf4e8 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/MulticastDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/MulticastDefinition.java
@@ -16,12 +16,14 @@
*/
package org.apache.camel.model;
+import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.function.Supplier;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -74,6 +76,17 @@ public class MulticastDefinition extends OutputDefinition<MulticastDefinition> i
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
+ @Override
public String toString() {
return "Multicast[" + getOutputs() + "]";
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
index f82d93f..a0086e6 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
@@ -27,6 +27,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
import org.apache.camel.Predicate;
import org.apache.camel.spi.AsPredicate;
@@ -37,8 +38,9 @@ import org.apache.camel.spi.Metadata;
*/
@Metadata(label = "configuration")
@XmlRootElement(name = "onCompletion")
+@XmlType(propOrder = {"onWhen", "outputs"})
@XmlAccessorType(XmlAccessType.FIELD)
-public class OnCompletionDefinition extends ProcessorDefinition<OnCompletionDefinition> implements OutputNode, ExecutorServiceAwareDefinition<OnCompletionDefinition> {
+public class OnCompletionDefinition extends OutputDefinition<OnCompletionDefinition> implements ExecutorServiceAwareDefinition<OnCompletionDefinition> {
@XmlAttribute
@Metadata(defaultValue = "AfterConsumer")
private OnCompletionMode mode;
@@ -55,8 +57,6 @@ public class OnCompletionDefinition extends ProcessorDefinition<OnCompletionDefi
private String executorServiceRef;
@XmlAttribute(name = "useOriginalMessage")
private String useOriginalMessage;
- @XmlElementRef
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
@XmlTransient
private ExecutorService executorService;
@XmlTransient
@@ -268,8 +268,10 @@ public class OnCompletionDefinition extends ProcessorDefinition<OnCompletionDefi
return outputs;
}
+ @XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
+ super.setOutputs(outputs);
}
public OnCompletionMode getMode() {
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnExceptionDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
index a842798..4f1bef5 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
@@ -45,7 +45,7 @@ import org.apache.camel.util.ObjectHelper;
@Metadata(label = "error")
@XmlRootElement(name = "onException")
@XmlAccessorType(XmlAccessType.FIELD)
-public class OnExceptionDefinition extends ProcessorDefinition<OnExceptionDefinition> implements OutputNode {
+public class OnExceptionDefinition extends OutputDefinition<OnExceptionDefinition> {
@XmlElement(name = "exception", required = true)
private List<String> exceptions = new ArrayList<>();
@XmlElement(name = "onWhen")
@@ -72,8 +72,6 @@ public class OnExceptionDefinition extends ProcessorDefinition<OnExceptionDefini
private String useOriginalMessage;
@XmlAttribute(name = "useOriginalBody")
private String useOriginalBody;
- @XmlElementRef
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
@XmlTransient
private Predicate handledPolicy;
@XmlTransient
@@ -808,8 +806,10 @@ public class OnExceptionDefinition extends ProcessorDefinition<OnExceptionDefini
return outputs;
}
+ @XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
+ super.setOutputs(outputs);
}
public List<String> getExceptions() {
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnFallbackDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnFallbackDefinition.java
index ccec8a7..90a607f 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/OnFallbackDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/OnFallbackDefinition.java
@@ -16,11 +16,13 @@
*/
package org.apache.camel.model;
+import java.util.List;
import java.util.stream.Collectors;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.spi.Metadata;
@@ -41,6 +43,17 @@ public class OnFallbackDefinition extends OutputDefinition<OnFallbackDefinition>
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
+ @Override
public String toString() {
if (Boolean.toString(true).equals(fallbackViaNetwork)) {
return "OnFallbackViaNetwork[" + getOutputs() + "]";
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/OtherwiseDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/OtherwiseDefinition.java
index 573fd71..a2e9289 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/OtherwiseDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/OtherwiseDefinition.java
@@ -16,10 +16,12 @@
*/
package org.apache.camel.model;
+import java.util.List;
import java.util.stream.Collectors;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.spi.Metadata;
@@ -36,6 +38,17 @@ public class OtherwiseDefinition extends OutputDefinition<OtherwiseDefinition> {
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
+ @Override
public String toString() {
return "Otherwise[" + getOutputs() + "]";
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/OutputDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/OutputDefinition.java
index c8b6e30..6ad7880 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/OutputDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/OutputDefinition.java
@@ -22,6 +22,7 @@ import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.apache.camel.spi.Metadata;
@@ -31,10 +32,9 @@ import org.apache.camel.spi.Metadata;
*/
@Metadata(label = "configuration")
@XmlType(name = "output")
-@XmlAccessorType(XmlAccessType.FIELD)
+@XmlAccessorType(XmlAccessType.NONE)
public class OutputDefinition<Type extends ProcessorDefinition<Type>> extends ProcessorDefinition<Type> implements OutputNode {
- @XmlElementRef
protected List<ProcessorDefinition<?>> outputs = new ArrayList<>();
@Override
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/PipelineDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/PipelineDefinition.java
index 501aef4..cfbad09 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/PipelineDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/PipelineDefinition.java
@@ -16,8 +16,11 @@
*/
package org.apache.camel.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.spi.Metadata;
@@ -34,6 +37,17 @@ public class PipelineDefinition extends OutputDefinition<PipelineDefinition> {
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
+ @Override
public String getShortName() {
return "pipeline";
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/PolicyDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/PolicyDefinition.java
index 375da46..f2f7536 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/PolicyDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/PolicyDefinition.java
@@ -16,9 +16,12 @@
*/
package org.apache.camel.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -49,6 +52,17 @@ public class PolicyDefinition extends OutputDefinition<PolicyDefinition> {
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return outputs;
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
+ @Override
public String toString() {
return "Policy[" + description() + "]";
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/ResequenceDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/ResequenceDefinition.java
index 4bd193d..ef0ece2 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/ResequenceDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/ResequenceDefinition.java
@@ -41,7 +41,7 @@ import org.apache.camel.spi.Metadata;
@Metadata(label = "eip,routing")
@XmlRootElement(name = "resequence")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ResequenceDefinition extends ProcessorDefinition<ResequenceDefinition> implements OutputNode {
+public class ResequenceDefinition extends OutputDefinition<ResequenceDefinition> {
@Metadata(required = false)
@XmlElements({@XmlElement(name = "batch-config", type = BatchResequencerConfig.class), @XmlElement(name = "stream-config", type = StreamResequencerConfig.class)})
private ResequencerConfig resequencerConfig;
@@ -52,8 +52,6 @@ public class ResequenceDefinition extends ProcessorDefinition<ResequenceDefiniti
@XmlElementRef
@Metadata(required = true)
private ExpressionDefinition expression;
- @XmlElementRef
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
public ResequenceDefinition() {
}
@@ -69,8 +67,10 @@ public class ResequenceDefinition extends ProcessorDefinition<ResequenceDefiniti
return outputs;
}
+ @XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
+ super.setOutputs(outputs);
}
// Fluent API
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java
index 7e839eb..470a9d6 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/RouteDefinition.java
@@ -53,10 +53,9 @@ import org.apache.camel.spi.RoutePolicy;
@XmlType(propOrder = {"input", "inputType", "outputType", "outputs", "routeProperties"})
@XmlAccessorType(XmlAccessType.PROPERTY)
// must use XmlAccessType.PROPERTY as there is some custom logic needed to be executed in the setter methods
-public class RouteDefinition extends ProcessorDefinition<RouteDefinition> implements OutputNode, NamedRoute {
+public class RouteDefinition extends OutputDefinition<RouteDefinition> implements NamedRoute {
private final AtomicBoolean prepared = new AtomicBoolean(false);
private FromDefinition input;
- private List<ProcessorDefinition<?>> outputs = new ArrayList<>();
private String group;
private String streamCache;
private String trace;
@@ -693,14 +692,9 @@ public class RouteDefinition extends ProcessorDefinition<RouteDefinition> implem
* route.
*/
@XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
- this.outputs = outputs;
-
- if (outputs != null) {
- for (ProcessorDefinition<?> output : outputs) {
- configureChild(output);
- }
- }
+ super.setOutputs(outputs);
}
/**
@@ -853,6 +847,7 @@ public class RouteDefinition extends ProcessorDefinition<RouteDefinition> implem
/**
* Sets the error handler if one is not already set
*/
+ @XmlTransient
public void setErrorHandlerFactoryIfNull(ErrorHandlerFactory errorHandlerFactory) {
if (this.errorHandlerFactory == null) {
setErrorHandlerFactory(errorHandlerFactory);
@@ -925,7 +920,6 @@ public class RouteDefinition extends ProcessorDefinition<RouteDefinition> implem
return new ErrorHandlerBuilderRef(ErrorHandlerReifier.DEFAULT_ERROR_HANDLER_BUILDER);
}
- @XmlTransient
public ErrorHandlerFactory getErrorHandlerFactory() {
if (errorHandlerFactory == null) {
errorHandlerFactory = createErrorHandlerBuilder();
@@ -936,6 +930,7 @@ public class RouteDefinition extends ProcessorDefinition<RouteDefinition> implem
/**
* Sets the error handler to use with processors created by this builder
*/
+ @XmlTransient
public void setErrorHandlerFactory(ErrorHandlerFactory errorHandlerFactory) {
this.errorHandlerFactory = errorHandlerFactory;
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java
index d0ba02d..e1d9269 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/SagaDefinition.java
@@ -24,6 +24,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -68,6 +69,12 @@ public class SagaDefinition extends OutputDefinition<SagaDefinition> {
public SagaDefinition() {
}
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
@Override
public boolean isAbstract() {
return true;
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/StepDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/StepDefinition.java
index c51436e..4b88aef 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/StepDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/StepDefinition.java
@@ -16,8 +16,11 @@
*/
package org.apache.camel.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.spi.Metadata;
@@ -35,6 +38,17 @@ public class StepDefinition extends OutputDefinition<StepDefinition> {
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return super.getOutputs();
+ }
+
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
+ @Override
public String getShortName() {
return "step";
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/TransactedDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/TransactedDefinition.java
index 4d3ed22..ba7fcdf 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/TransactedDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/TransactedDefinition.java
@@ -16,9 +16,12 @@
*/
package org.apache.camel.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -54,6 +57,12 @@ public class TransactedDefinition extends OutputDefinition<TransactedDefinition>
this.policy = policy;
}
+ @XmlElementRef
+ @Override
+ public void setOutputs(List<ProcessorDefinition<?>> outputs) {
+ super.setOutputs(outputs);
+ }
+
@Override
public String toString() {
String desc = description();
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/TryDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/TryDefinition.java
index 116ce4f..5a202c7 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/TryDefinition.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/TryDefinition.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -157,6 +158,12 @@ public class TryDefinition extends OutputDefinition<TryDefinition> {
}
@Override
+ public List<ProcessorDefinition<?>> getOutputs() {
+ return super.getOutputs();
+ }
+
+ @XmlElementRef
+ @Override
public void setOutputs(List<ProcessorDefinition<?>> outputs) {
initialized = false;
super.setOutputs(outputs);
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
new file mode 100644
index 0000000..610b5ee
--- /dev/null
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
@@ -0,0 +1,104 @@
+/*
+ * 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.model.cloud;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.model.IdentifiedType;
+import org.apache.camel.model.PropertyDefinition;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.support.CamelContextHelper;
+
+@XmlType(name = "serviceCallConfiguration")
+@XmlAccessorType(XmlAccessType.FIELD)
+public abstract class ServiceCallConfiguration extends IdentifiedType {
+ @XmlElement(name = "properties")
+ @Metadata(label = "advanced")
+ protected List<PropertyDefinition> properties;
+
+ // *************************************************************************
+ //
+ // *************************************************************************
+
+ public List<PropertyDefinition> getProperties() {
+ return properties;
+ }
+
+ /**
+ * Set client properties to use.
+ * <p/>
+ * These properties are specific to what service call implementation are in
+ * use. For example if using ribbon, then the client properties are define
+ * in com.netflix.client.config.CommonClientConfigKey.
+ */
+ public void setProperties(List<PropertyDefinition> properties) {
+ this.properties = properties;
+ }
+
+ /**
+ * Adds a custom property to use.
+ * <p/>
+ * These properties are specific to what service call implementation are in
+ * use. For example if using ribbon, then the client properties are define
+ * in com.netflix.client.config.CommonClientConfigKey.
+ */
+ public ServiceCallConfiguration property(String key, String value) {
+ if (properties == null) {
+ properties = new ArrayList<>();
+ }
+ PropertyDefinition prop = new PropertyDefinition();
+ prop.setKey(key);
+ prop.setValue(value);
+ properties.add(prop);
+ return this;
+ }
+
+ protected Map<String, String> getPropertiesAsMap(CamelContext camelContext) throws Exception {
+ Map<String, String> answer;
+
+ if (properties == null || properties.isEmpty()) {
+ answer = Collections.emptyMap();
+ } else {
+ answer = new HashMap<>();
+ for (PropertyDefinition prop : properties) {
+ // support property placeholders
+ String key = CamelContextHelper.parseText(camelContext, prop.getKey());
+ String value = CamelContextHelper.parseText(camelContext, prop.getValue());
+ answer.put(key, value);
+ }
+ }
+
+ return answer;
+ }
+
+ // *************************************************************************
+ // Utilities
+ // *************************************************************************
+
+ protected void postProcessFactoryParameters(CamelContext camelContext, Map<String, Object> parameters) throws Exception {
+ }
+}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
index cfaa939..0de723d 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
@@ -16,16 +16,12 @@
*/
package org.apache.camel.model.cloud;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -36,9 +32,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.cloud.ServiceCallConstants;
import org.apache.camel.cloud.ServiceExpressionFactory;
-import org.apache.camel.model.IdentifiedType;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.PropertyDefinition;
import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.spi.Metadata;
import org.apache.camel.support.CamelContextHelper;
@@ -47,14 +41,11 @@ import org.apache.camel.support.PropertyBindingSupport;
@Metadata(label = "routing,cloud")
@XmlRootElement(name = "serviceExpression")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ServiceCallExpressionConfiguration extends IdentifiedType implements ServiceExpressionFactory {
+public class ServiceCallExpressionConfiguration extends ServiceCallConfiguration implements ServiceExpressionFactory {
@XmlTransient
private final ServiceCallDefinition parent;
@XmlTransient
private final String factoryKey;
- @XmlElement(name = "properties")
- @Metadata(label = "advanced")
- private List<PropertyDefinition> properties;
@XmlAttribute
@Metadata(defaultValue = ServiceCallConstants.SERVICE_HOST)
private String hostHeader = ServiceCallConstants.SERVICE_HOST;
@@ -87,55 +78,8 @@ public class ServiceCallExpressionConfiguration extends IdentifiedType implement
//
// *************************************************************************
- public List<PropertyDefinition> getProperties() {
- return properties;
- }
-
- /**
- * Set client properties to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
- public void setProperties(List<PropertyDefinition> properties) {
- this.properties = properties;
- }
-
- /**
- * Adds a custom property to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
- public ServiceCallExpressionConfiguration property(String key, String value) {
- if (properties == null) {
- properties = new ArrayList<>();
- }
- PropertyDefinition prop = new PropertyDefinition();
- prop.setKey(key);
- prop.setValue(value);
- properties.add(prop);
- return this;
- }
-
- protected Map<String, String> getPropertiesAsMap(CamelContext camelContext) throws Exception {
- Map<String, String> answer;
-
- if (properties == null || properties.isEmpty()) {
- answer = Collections.emptyMap();
- } else {
- answer = new HashMap<>();
- for (PropertyDefinition prop : properties) {
- // support property placeholders
- String key = CamelContextHelper.parseText(camelContext, prop.getKey());
- String value = CamelContextHelper.parseText(camelContext, prop.getValue());
- answer.put(key, value);
- }
- }
-
- return answer;
+ public ServiceCallServiceChooserConfiguration property(String key, String value) {
+ return (ServiceCallServiceChooserConfiguration) super.property(key, value);
}
public String getHostHeader() {
@@ -282,10 +226,4 @@ public class ServiceCallExpressionConfiguration extends IdentifiedType implement
return answer;
}
- // *************************************************************************
- // Utilities
- // *************************************************************************
-
- protected void postProcessFactoryParameters(CamelContext camelContext, Map<String, Object> parameters) throws Exception {
- }
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
index cca7642..2ceedfa 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
@@ -16,15 +16,11 @@
*/
package org.apache.camel.model.cloud;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -33,9 +29,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.cloud.ServiceChooser;
import org.apache.camel.cloud.ServiceChooserFactory;
-import org.apache.camel.model.IdentifiedType;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.PropertyDefinition;
import org.apache.camel.spi.Metadata;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.PropertyBindingSupport;
@@ -44,14 +38,11 @@ import org.apache.camel.util.ObjectHelper;
@Metadata(label = "routing,cloud,service-discovery")
@XmlRootElement(name = "serviceChooserConfiguration")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ServiceCallServiceChooserConfiguration extends IdentifiedType implements ServiceChooserFactory {
+public class ServiceCallServiceChooserConfiguration extends ServiceCallConfiguration implements ServiceChooserFactory {
@XmlTransient
private final ServiceCallDefinition parent;
@XmlTransient
private final String factoryKey;
- @XmlElement(name = "properties")
- @Metadata(label = "advanced")
- private List<PropertyDefinition> properties;
public ServiceCallServiceChooserConfiguration() {
this(null, null);
@@ -74,55 +65,8 @@ public class ServiceCallServiceChooserConfiguration extends IdentifiedType imple
//
// *************************************************************************
- public List<PropertyDefinition> getProperties() {
- return properties;
- }
-
- /**
- * Set client properties to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
- public void setProperties(List<PropertyDefinition> properties) {
- this.properties = properties;
- }
-
- /**
- * Adds a custom property to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
public ServiceCallServiceChooserConfiguration property(String key, String value) {
- if (properties == null) {
- properties = new ArrayList<>();
- }
- PropertyDefinition prop = new PropertyDefinition();
- prop.setKey(key);
- prop.setValue(value);
- properties.add(prop);
- return this;
- }
-
- protected Map<String, String> getPropertiesAsMap(CamelContext camelContext) throws Exception {
- Map<String, String> answer;
-
- if (properties == null || properties.isEmpty()) {
- answer = Collections.emptyMap();
- } else {
- answer = new HashMap<>();
- for (PropertyDefinition prop : properties) {
- // support property placeholders
- String key = CamelContextHelper.parseText(camelContext, prop.getKey());
- String value = CamelContextHelper.parseText(camelContext, prop.getValue());
- answer.put(key, value);
- }
- }
-
- return answer;
+ return (ServiceCallServiceChooserConfiguration) super.property(key, value);
}
// *************************************************************************
@@ -192,10 +136,4 @@ public class ServiceCallServiceChooserConfiguration extends IdentifiedType imple
return answer;
}
- // *************************************************************************
- // Utilities
- // *************************************************************************
-
- protected void postProcessFactoryParameters(CamelContext camelContext, Map<String, Object> parameters) throws Exception {
- }
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
index 8c9a650..4315cb8 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
@@ -16,16 +16,12 @@
*/
package org.apache.camel.model.cloud;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -34,9 +30,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.cloud.ServiceDiscovery;
import org.apache.camel.cloud.ServiceDiscoveryFactory;
-import org.apache.camel.model.IdentifiedType;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.PropertyDefinition;
import org.apache.camel.spi.Metadata;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.PropertyBindingSupport;
@@ -45,14 +39,11 @@ import org.apache.camel.util.ObjectHelper;
@Metadata(label = "routing,cloud,service-discovery")
@XmlRootElement(name = "serviceDiscoveryConfiguration")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ServiceCallServiceDiscoveryConfiguration extends IdentifiedType implements ServiceDiscoveryFactory {
+public class ServiceCallServiceDiscoveryConfiguration extends ServiceCallConfiguration implements ServiceDiscoveryFactory {
@XmlTransient
private final Optional<ServiceCallDefinition> parent;
@XmlTransient
private final String factoryKey;
- @XmlElement(name = "properties")
- @Metadata(label = "advanced")
- private List<PropertyDefinition> properties;
public ServiceCallServiceDiscoveryConfiguration() {
this(null, null);
@@ -75,55 +66,8 @@ public class ServiceCallServiceDiscoveryConfiguration extends IdentifiedType imp
//
// *************************************************************************
- public List<PropertyDefinition> getProperties() {
- return properties;
- }
-
- /**
- * Set client properties to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
- public void setProperties(List<PropertyDefinition> properties) {
- this.properties = properties;
- }
-
- /**
- * Adds a custom property to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
public ServiceCallServiceDiscoveryConfiguration property(String key, String value) {
- if (properties == null) {
- properties = new ArrayList<>();
- }
- PropertyDefinition prop = new PropertyDefinition();
- prop.setKey(key);
- prop.setValue(value);
- properties.add(prop);
- return this;
- }
-
- protected Map<String, String> getPropertiesAsMap(CamelContext camelContext) throws Exception {
- Map<String, String> answer;
-
- if (properties == null || properties.isEmpty()) {
- answer = Collections.emptyMap();
- } else {
- answer = new HashMap<>();
- for (PropertyDefinition prop : properties) {
- // support property placeholders
- String key = CamelContextHelper.parseText(camelContext, prop.getKey());
- String value = CamelContextHelper.parseText(camelContext, prop.getValue());
- answer.put(key, value);
- }
- }
-
- return answer;
+ return (ServiceCallServiceDiscoveryConfiguration) super.property(key, value);
}
// *************************************************************************
@@ -193,10 +137,4 @@ public class ServiceCallServiceDiscoveryConfiguration extends IdentifiedType imp
return answer;
}
- // *************************************************************************
- // Utilities
- // *************************************************************************
-
- protected void postProcessFactoryParameters(CamelContext camelContext, Map<String, Object> parameters) throws Exception {
- }
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
index 52a0c3f..25d7a33 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
@@ -16,15 +16,11 @@
*/
package org.apache.camel.model.cloud;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -33,9 +29,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.cloud.ServiceFilter;
import org.apache.camel.cloud.ServiceFilterFactory;
-import org.apache.camel.model.IdentifiedType;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.PropertyDefinition;
import org.apache.camel.spi.Metadata;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.PropertyBindingSupport;
@@ -44,14 +38,11 @@ import org.apache.camel.util.ObjectHelper;
@Metadata(label = "routing,cloud,service-discovery")
@XmlRootElement(name = "serviceFilterConfiguration")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ServiceCallServiceFilterConfiguration extends IdentifiedType implements ServiceFilterFactory {
+public class ServiceCallServiceFilterConfiguration extends ServiceCallConfiguration implements ServiceFilterFactory {
@XmlTransient
private final ServiceCallDefinition parent;
@XmlTransient
private final String factoryKey;
- @XmlElement(name = "properties")
- @Metadata(label = "advanced")
- private List<PropertyDefinition> properties;
public ServiceCallServiceFilterConfiguration() {
this(null, null);
@@ -74,21 +65,6 @@ public class ServiceCallServiceFilterConfiguration extends IdentifiedType implem
//
// *************************************************************************
- public List<PropertyDefinition> getProperties() {
- return properties;
- }
-
- /**
- * Set client properties to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
- public void setProperties(List<PropertyDefinition> properties) {
- this.properties = properties;
- }
-
/**
* Adds a custom property to use.
* <p/>
@@ -97,32 +73,7 @@ public class ServiceCallServiceFilterConfiguration extends IdentifiedType implem
* in com.netflix.client.config.CommonClientConfigKey.
*/
public ServiceCallServiceFilterConfiguration property(String key, String value) {
- if (properties == null) {
- properties = new ArrayList<>();
- }
- PropertyDefinition prop = new PropertyDefinition();
- prop.setKey(key);
- prop.setValue(value);
- properties.add(prop);
- return this;
- }
-
- protected Map<String, String> getPropertiesAsMap(CamelContext camelContext) throws Exception {
- Map<String, String> answer;
-
- if (properties == null || properties.isEmpty()) {
- answer = Collections.emptyMap();
- } else {
- answer = new HashMap<>();
- for (PropertyDefinition prop : properties) {
- // support property placeholders
- String key = CamelContextHelper.parseText(camelContext, prop.getKey());
- String value = CamelContextHelper.parseText(camelContext, prop.getValue());
- answer.put(key, value);
- }
- }
-
- return answer;
+ return (ServiceCallServiceFilterConfiguration) super.property(key, value);
}
// *************************************************************************
@@ -192,10 +143,4 @@ public class ServiceCallServiceFilterConfiguration extends IdentifiedType implem
return answer;
}
- // *************************************************************************
- // Utilities
- // *************************************************************************
-
- protected void postProcessFactoryParameters(CamelContext camelContext, Map<String, Object> parameters) throws Exception {
- }
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
index e6afc97..3fb9fd5 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
@@ -16,15 +16,11 @@
*/
package org.apache.camel.model.cloud;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -33,9 +29,7 @@ import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.NoFactoryAvailableException;
import org.apache.camel.cloud.ServiceLoadBalancer;
import org.apache.camel.cloud.ServiceLoadBalancerFactory;
-import org.apache.camel.model.IdentifiedType;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.PropertyDefinition;
import org.apache.camel.spi.Metadata;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.PropertyBindingSupport;
@@ -44,14 +38,11 @@ import org.apache.camel.util.ObjectHelper;
@Metadata(label = "routing,cloud,load-balancing")
@XmlRootElement(name = "loadBalancerConfiguration")
@XmlAccessorType(XmlAccessType.FIELD)
-public class ServiceCallServiceLoadBalancerConfiguration extends IdentifiedType implements ServiceLoadBalancerFactory {
+public class ServiceCallServiceLoadBalancerConfiguration extends ServiceCallConfiguration implements ServiceLoadBalancerFactory {
@XmlTransient
private final ServiceCallDefinition parent;
@XmlTransient
private final String factoryKey;
- @XmlElement(name = "properties")
- @Metadata(label = "advanced")
- private List<PropertyDefinition> properties;
public ServiceCallServiceLoadBalancerConfiguration() {
this(null, null);
@@ -74,21 +65,6 @@ public class ServiceCallServiceLoadBalancerConfiguration extends IdentifiedType
//
// *************************************************************************
- public List<PropertyDefinition> getProperties() {
- return properties;
- }
-
- /**
- * Set client properties to use.
- * <p/>
- * These properties are specific to what service call implementation are in
- * use. For example if using ribbon, then the client properties are define
- * in com.netflix.client.config.CommonClientConfigKey.
- */
- public void setProperties(List<PropertyDefinition> properties) {
- this.properties = properties;
- }
-
/**
* Adds a custom property to use.
* <p/>
@@ -97,32 +73,7 @@ public class ServiceCallServiceLoadBalancerConfiguration extends IdentifiedType
* in com.netflix.client.config.CommonClientConfigKey.
*/
public ServiceCallServiceLoadBalancerConfiguration property(String key, String value) {
- if (properties == null) {
- properties = new ArrayList<>();
- }
- PropertyDefinition prop = new PropertyDefinition();
- prop.setKey(key);
- prop.setValue(value);
- properties.add(prop);
- return this;
- }
-
- protected Map<String, String> getPropertiesAsMap(CamelContext camelContext) throws Exception {
- Map<String, String> answer;
-
- if (properties == null || properties.isEmpty()) {
- answer = Collections.emptyMap();
- } else {
- answer = new HashMap<>();
- for (PropertyDefinition prop : properties) {
- // support property placeholders
- String key = CamelContextHelper.parseText(camelContext, prop.getKey());
- String value = CamelContextHelper.parseText(camelContext, prop.getValue());
- answer.put(key, value);
- }
- }
-
- return answer;
+ return (ServiceCallServiceLoadBalancerConfiguration) super.property(key, value);
}
// *************************************************************************
@@ -192,10 +143,4 @@ public class ServiceCallServiceLoadBalancerConfiguration extends IdentifiedType
return answer;
}
- // *************************************************************************
- // Utilities
- // *************************************************************************
-
- protected void postProcessFactoryParameters(CamelContext camelContext, Map<String, Object> parameters) throws Exception {
- }
}
diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java
index 001eca9..29d2e8b 100644
--- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java
+++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/BindyDataFormat.java
@@ -77,6 +77,13 @@ public class BindyDataFormat extends DataFormatDefinition {
/**
* Name of model class to use.
*/
+ public void setClassType(String classType) {
+ setClassTypeAsString(classType);
+ }
+
+ /**
+ * Name of model class to use.
+ */
public void setClassType(Class<?> classType) {
this.clazz = classType;
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java b/core/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java
index d2a485e..7417def 100644
--- a/core/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java
@@ -108,7 +108,8 @@ public class ModelSanityCheckerTest extends Assert {
assertFalse("Class " + clazz.getName() + " has method " + method.getName() + " should not have @XmlAttribute annotation", attribute);
assertFalse("Class " + clazz.getName() + " has method " + method.getName() + " should not have @XmlElement annotation", element);
- assertFalse("Class " + clazz.getName() + " has method " + method.getName() + " should not have @XmlElementRef annotation", elementRef);
+ assertFalse("Class " + clazz.getName() + " has method " + method.getName() + " should not have @XmlElementRef annotation",
+ elementRef && !"setOutputs".equals(method.getName()));
}
}