This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new d8c30ac  core: cleanup ServiceCallDefinition (#4803)
d8c30ac is described below

commit d8c30ac562519a9e043336915a96c1b07fc36527
Author: Luca Burgazzoli <lburgazz...@users.noreply.github.com>
AuthorDate: Mon Dec 21 14:37:53 2020 +0100

    core: cleanup ServiceCallDefinition (#4803)
---
 .../org/apache/camel/catalog/models/serviceCall.json      |  2 +-
 .../camel/impl/cloud/ServiceCallProcessorFactory.java     |  2 +-
 .../org/apache/camel/model/cloud/serviceCall.json         |  2 +-
 .../model/cloud/ServiceCallConfigurationDefinition.java   |  2 +-
 .../apache/camel/model/cloud/ServiceCallDefinition.java   | 15 ++++++++++++---
 .../java/org/apache/camel/xml/in/ModelParser.java         |  2 +-
 6 files changed, 17 insertions(+), 8 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json
index a73231a..620ef6c 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json
@@ -24,7 +24,7 @@
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": 
"Service Discovery Configuration", "required": true, "type": "object", 
"javaType": 
"org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", 
"oneOf": [ "cachingServiceDiscovery", "combinedServiceDiscovery", 
"consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", 
"kubernetesServiceDiscovery", "staticServiceDiscovery", 
"zookeeperServiceDiscovery" ], "deprecated": false, "autowired": fal [...]
     "serviceFilterConfiguration": { "kind": "element", "displayName": "Service 
Filter Configuration", "required": true, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration", "oneOf": 
[ "blacklistServiceFilter", "combinedServiceFilter", "customServiceFilter", 
"healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, 
"autowired": false, "secret": false, "description": "Configures the 
ServiceFilter using the given configuration." },
     "loadBalancerConfiguration": { "kind": "element", "displayName": "Load 
Balancer Configuration", "required": true, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", 
"oneOf": [ "defaultLoadBalancer", "ribbonLoadBalancer" ], "deprecated": false, 
"autowired": false, "secret": false, "description": "Configures the 
LoadBalancer using the given configuration." },
-    "expressionConfiguration": { "kind": "element", "displayName": "Expression 
Configuration", "required": true, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallExpressionConfiguration", "oneOf": [ 
"expressionConfiguration" ], "deprecated": false, "autowired": false, "secret": 
false, "description": "Configures the Expression using the given 
configuration." },
+    "expressionConfiguration": { "kind": "element", "displayName": "Expression 
Configuration", "required": false, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallExpressionConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Configures the Expression using the given configuration." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the id of this node" 
},
     "description": { "kind": "element", "displayName": "Description", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.model.DescriptionDefinition", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the description of 
this node" }
   }
diff --git 
a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
 
b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
index 95cedde..e9bdf9d 100644
--- 
a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
+++ 
b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
@@ -368,7 +368,7 @@ public class ServiceCallProcessorFactory extends 
TypedProcessorFactory<ServiceCa
                                 ServiceLoadBalancer.class))
                 .orElseGet(
                         // Default
-                        () -> new DefaultServiceLoadBalancer());
+                    DefaultServiceLoadBalancer::new);
     }
 
     // ******************************************
diff --git 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
index a73231a..620ef6c 100644
--- 
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
+++ 
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
@@ -24,7 +24,7 @@
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": 
"Service Discovery Configuration", "required": true, "type": "object", 
"javaType": 
"org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", 
"oneOf": [ "cachingServiceDiscovery", "combinedServiceDiscovery", 
"consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", 
"kubernetesServiceDiscovery", "staticServiceDiscovery", 
"zookeeperServiceDiscovery" ], "deprecated": false, "autowired": fal [...]
     "serviceFilterConfiguration": { "kind": "element", "displayName": "Service 
Filter Configuration", "required": true, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration", "oneOf": 
[ "blacklistServiceFilter", "combinedServiceFilter", "customServiceFilter", 
"healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, 
"autowired": false, "secret": false, "description": "Configures the 
ServiceFilter using the given configuration." },
     "loadBalancerConfiguration": { "kind": "element", "displayName": "Load 
Balancer Configuration", "required": true, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", 
"oneOf": [ "defaultLoadBalancer", "ribbonLoadBalancer" ], "deprecated": false, 
"autowired": false, "secret": false, "description": "Configures the 
LoadBalancer using the given configuration." },
-    "expressionConfiguration": { "kind": "element", "displayName": "Expression 
Configuration", "required": true, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallExpressionConfiguration", "oneOf": [ 
"expressionConfiguration" ], "deprecated": false, "autowired": false, "secret": 
false, "description": "Configures the Expression using the given 
configuration." },
+    "expressionConfiguration": { "kind": "element", "displayName": "Expression 
Configuration", "required": false, "type": "object", "javaType": 
"org.apache.camel.model.cloud.ServiceCallExpressionConfiguration", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Configures the Expression using the given configuration." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the id of this node" 
},
     "description": { "kind": "element", "displayName": "Description", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.model.DescriptionDefinition", "deprecated": false, 
"autowired": false, "secret": false, "description": "Sets the description of 
this node" }
   }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
index b8a9f00..5075616 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
@@ -93,7 +93,7 @@ public class ServiceCallConfigurationDefinition extends 
IdentifiedType {
             @XmlElement(name = "defaultLoadBalancer", type = 
DefaultServiceCallServiceLoadBalancerConfiguration.class) })
     private ServiceCallServiceLoadBalancerConfiguration 
loadBalancerConfiguration;
 
-    @XmlElements({ @XmlElement(name = "expression", type = 
ServiceCallExpressionConfiguration.class) })
+    @XmlElement(name = "expression")
     private ServiceCallExpressionConfiguration expressionConfiguration;
 
     public ServiceCallConfigurationDefinition() {
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
index 957c3e7..e25d6e2 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
@@ -32,6 +32,7 @@ import org.apache.camel.cloud.ServiceDiscovery;
 import org.apache.camel.cloud.ServiceFilter;
 import org.apache.camel.cloud.ServiceLoadBalancer;
 import org.apache.camel.model.NoOutputDefinition;
+import org.apache.camel.model.language.RefExpression;
 import org.apache.camel.spi.Metadata;
 
 /**
@@ -99,12 +100,16 @@ public class ServiceCallDefinition extends 
NoOutputDefinition<ServiceCallDefinit
             @XmlElement(name = "defaultLoadBalancer", type = 
DefaultServiceCallServiceLoadBalancerConfiguration.class) })
     private ServiceCallServiceLoadBalancerConfiguration 
loadBalancerConfiguration;
 
-    @XmlElements({ @XmlElement(name = "expressionConfiguration", type = 
ServiceCallExpressionConfiguration.class) })
+    @XmlElement(name = "expression")
     private ServiceCallExpressionConfiguration expressionConfiguration;
 
     public ServiceCallDefinition() {
     }
 
+    public ServiceCallDefinition(String name) {
+        this.name = name;
+    }
+
     @Override
     public String toString() {
         return "ServiceCall[" + name + "]";
@@ -276,7 +281,11 @@ public class ServiceCallDefinition extends 
NoOutputDefinition<ServiceCallDefinit
      * Set a reference to a custom {@link Expression} to use.
      */
     public void setExpressionRef(String expressionRef) {
-        this.expressionRef = expressionRef;
+        if (this.expressionConfiguration == null) {
+            this.expressionConfiguration = new 
ServiceCallExpressionConfiguration();
+        }
+
+        this.expressionConfiguration.expressionType(new 
RefExpression(expressionRef));
     }
 
     public Expression getExpression() {
@@ -453,7 +462,7 @@ public class ServiceCallDefinition extends 
NoOutputDefinition<ServiceCallDefinit
      * Sets a reference to a custom {@link Expression} to use.
      */
     public ServiceCallDefinition expression(String expressionRef) {
-        setExpressionRef(loadBalancerRef);
+        setExpressionRef(expressionRef);
         return this;
     }
 
diff --git 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index 77fce70..4feba60 100644
--- 
a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ 
b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -1608,7 +1608,6 @@ public class ModelParser extends BaseParser {
             return true;
         }, (def, key) -> {
             switch (key) {
-                case "expressionConfiguration": 
def.setExpressionConfiguration(doParseServiceCallExpressionConfiguration()); 
break;
                 case "ribbonLoadBalancer": 
def.setLoadBalancerConfiguration(doParseRibbonServiceCallServiceLoadBalancerConfiguration());
 break;
                 case "defaultLoadBalancer": 
def.setLoadBalancerConfiguration(doParseDefaultServiceCallServiceLoadBalancerConfiguration());
 break;
                 case "cachingServiceDiscovery": 
def.setServiceDiscoveryConfiguration(doParseCachingServiceCallServiceDiscoveryConfiguration());
 break;
@@ -1624,6 +1623,7 @@ public class ModelParser extends BaseParser {
                 case "customServiceFilter": 
def.setServiceFilterConfiguration(doParseCustomServiceCallServiceFilterConfiguration());
 break;
                 case "healthyServiceFilter": 
def.setServiceFilterConfiguration(doParseHealthyServiceCallServiceFilterConfiguration());
 break;
                 case "passThroughServiceFilter": 
def.setServiceFilterConfiguration(doParsePassThroughServiceCallServiceFilterConfiguration());
 break;
+                case "expressionConfiguration": 
def.setExpressionConfiguration(doParseServiceCallExpressionConfiguration()); 
break;
                 default: return 
optionalIdentifiedDefinitionElementHandler().accept(def, key);
             }
             return true;

Reply via email to