This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch camel-2.21.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit 74c3b7ee3cfb646759ec7280a26420aa92d76486 Author: lburgazzoli <[email protected]> AuthorDate: Fri Jun 8 18:49:48 2018 +0200 CAMEL-12561: camel-kubernetes: serviceCall EIP throws NullPointerException --- .../java/org/apache/camel/model/cloud/ServiceCallDefinition.java | 9 +++++---- .../kubernetes/cloud/KubernetesEnvServiceDiscovery.java | 2 ++ .../kubernetes/cloud/ServiceCallEnvironmentRouteTest.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java b/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java index 74ee07d..038573b 100644 --- a/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java @@ -28,7 +28,6 @@ import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import org.apache.camel.CamelContext; -import org.apache.camel.CamelContextAware; import org.apache.camel.ExchangePattern; import org.apache.camel.Expression; import org.apache.camel.Processor; @@ -758,9 +757,11 @@ public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinit final ServiceChooser serviceChooser = retrieveServiceChooser(camelContext); final ServiceLoadBalancer loadBalancer = retrieveLoadBalancer(camelContext); - if (loadBalancer instanceof CamelContextAware) { - ((CamelContextAware) loadBalancer).setCamelContext(camelContext); - } + ObjectHelper.trySetCamelContext(serviceDiscovery, camelContext); + ObjectHelper.trySetCamelContext(serviceFilter, camelContext); + ObjectHelper.trySetCamelContext(serviceChooser, camelContext); + ObjectHelper.trySetCamelContext(loadBalancer, camelContext); + if (loadBalancer instanceof ServiceDiscoveryAware) { ((ServiceDiscoveryAware) loadBalancer).setServiceDiscovery(serviceDiscovery); } diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cloud/KubernetesEnvServiceDiscovery.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cloud/KubernetesEnvServiceDiscovery.java index f8cf453..4e62f0a 100644 --- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cloud/KubernetesEnvServiceDiscovery.java +++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/cloud/KubernetesEnvServiceDiscovery.java @@ -40,6 +40,8 @@ public class KubernetesEnvServiceDiscovery extends KubernetesServiceDiscovery { final int port = ctx.getTypeConverter().tryConvertTo(int.class, num); return Collections.singletonList(new DefaultServiceDefinition(name, host, port)); + } catch (IllegalArgumentException e) { + return Collections.emptyList(); } catch (Exception e) { throw new RuntimeCamelException(e); } diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/cloud/ServiceCallEnvironmentRouteTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/cloud/ServiceCallEnvironmentRouteTest.java index b194d67..c4ccd51 100644 --- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/cloud/ServiceCallEnvironmentRouteTest.java +++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/cloud/ServiceCallEnvironmentRouteTest.java @@ -45,7 +45,7 @@ public class ServiceCallEnvironmentRouteTest extends CamelTestSupport { KubernetesConfiguration kubernetesConfiguration = new KubernetesConfiguration(); ServiceCallConfigurationDefinition config = new ServiceCallConfigurationDefinition(); - config.setServiceDiscovery(new KubernetesEnvServiceDiscovery(kubernetesConfiguration)); + config.kubernetesEnvServiceDiscovery(); // register configuration context.setServiceCallConfiguration(config); -- To stop receiving notification emails like this one, please contact [email protected].
