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 2018/06/08 21:56:38 UTC

[camel] branch camel-2.21.x updated (4743146 -> 74c3b7e)

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

lburgazzoli pushed a change to branch camel-2.21.x
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 4743146  CAMEL-12558: camel-catalog - Transacted and Policy should not have outputs
     new 31acd88  CAMEL-12560: camel-kubernetes: serviceCall EIP configuration is not read from application.properties
     new bd38d92  CAMEL-12560: fix cherry-pick
     new 74c3b7e  CAMEL-12561: camel-kubernetes: serviceCall EIP throws NullPointerException

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/model/cloud/ServiceCallDefinition.java   |  9 +--
 .../cloud/KubernetesEnvServiceDiscovery.java       |  2 +
 .../cloud/ServiceCallEnvironmentRouteTest.java     |  2 +-
 ...bernetesServiceDiscoveryAutoConfiguration.java} | 29 +++++----
 .../src/main/resources/META-INF/spring.factories   |  1 +
 ...netesServiceDiscoveryAutoConfigurationTest.java | 72 ++++++++++++++++++++++
 ...ernetesClusterServiceAutoConfigurationTest.java |  1 +
 .../src/test/resources/logback.xml                 |  2 +-
 8 files changed, 97 insertions(+), 21 deletions(-)
 copy platforms/spring-boot/components-starter/{camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/cloud/ConsulServiceDiscoveryAutoConfiguration.java => camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/springboot/cloud/KubernetesServiceDiscoveryAutoConfiguration.java} (74%)
 create mode 100644 platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java
 copy {components/camel-spring-boot => platforms/spring-boot/components-starter/camel-kubernetes-starter}/src/test/resources/logback.xml (95%)

-- 
To stop receiving notification emails like this one, please contact
lburgazzoli@apache.org.

[camel] 03/03: CAMEL-12561: camel-kubernetes: serviceCall EIP throws NullPointerException

Posted by lb...@apache.org.
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 <lb...@gmail.com>
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
lburgazzoli@apache.org.

[camel] 01/03: CAMEL-12560: camel-kubernetes: serviceCall EIP configuration is not read from application.properties

Posted by lb...@apache.org.
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 31acd884fa6670370393c7196bcb3fc3f425e396
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Fri Jun 8 18:12:44 2018 +0200

    CAMEL-12560: camel-kubernetes: serviceCall EIP configuration is not read from application.properties
---
 ...ubernetesServiceDiscoveryAutoConfiguration.java | 105 +++++++++++++++++++++
 .../src/main/resources/META-INF/spring.factories   |   1 +
 ...netesServiceDiscoveryAutoConfigurationTest.java |  66 +++++++++++++
 ...ernetesClusterServiceAutoConfigurationTest.java |   1 +
 .../src/test/resources/logback.xml                 |  42 +++++++++
 5 files changed, 215 insertions(+)

diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/springboot/cloud/KubernetesServiceDiscoveryAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/springboot/cloud/KubernetesServiceDiscoveryAutoConfiguration.java
new file mode 100644
index 0000000..86f8bfa
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/springboot/cloud/KubernetesServiceDiscoveryAutoConfiguration.java
@@ -0,0 +1,105 @@
+/**
+ * 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.component.kubernetes.springboot.cloud;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.PostConstruct;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.cloud.ServiceDiscovery;
+import org.apache.camel.component.kubernetes.cloud.KubernetesServiceDiscoveryFactory;
+import org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationCommon;
+import org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.util.GroupCondition;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.beans.factory.BeanCreationException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+
+@Configuration
+@ConditionalOnBean({ CamelAutoConfiguration.class, CamelContext.class })
+@Conditional(KubernetesServiceDiscoveryAutoConfiguration.Condition.class)
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class)
+public class KubernetesServiceDiscoveryAutoConfiguration {
+    @Autowired
+    private CamelContext camelContext;
+    @Autowired
+    private KubernetesServiceCallServiceDiscoveryConfigurationProperties configuration;
+    @Autowired
+    private ConfigurableBeanFactory beanFactory;
+
+    @Lazy
+    @Bean(name = "kubernetes-service-discovery")
+    public ServiceDiscovery configureServiceDiscoveryFactory() throws Exception {
+        KubernetesServiceDiscoveryFactory factory = new KubernetesServiceDiscoveryFactory();
+
+        IntrospectionSupport.setProperties(
+            camelContext,
+            camelContext.getTypeConverter(),
+            factory,
+            IntrospectionSupport.getNonNullProperties(configuration));
+
+        return factory.newInstance(camelContext);
+    }
+
+    @PostConstruct
+    public void postConstruct() {
+        if (beanFactory != null) {
+            Map<String, Object> parameters = new HashMap<>();
+
+            for (Map.Entry<String, KubernetesServiceCallServiceDiscoveryConfigurationCommon> entry : configuration.getConfigurations().entrySet()) {
+                // clean up params
+                parameters.clear();
+
+                // The instance factory
+                KubernetesServiceDiscoveryFactory factory = new KubernetesServiceDiscoveryFactory();
+
+                try {
+                    IntrospectionSupport.getProperties(entry.getValue(), parameters, null, false);
+                    IntrospectionSupport.setProperties(camelContext, camelContext.getTypeConverter(), factory, parameters);
+
+                    beanFactory.registerSingleton(entry.getKey(), factory.newInstance(camelContext));
+                } catch (Exception e) {
+                    throw new BeanCreationException(entry.getKey(), e.getMessage(), e);
+                }
+            }
+        }
+    }
+
+    // *******************************
+    // Condition
+    // *******************************
+
+    public static class Condition extends GroupCondition {
+        public Condition() {
+            super(
+                "camel.cloud.kubernetes",
+                "camel.cloud.kubernetes.service-discovery"
+            );
+        }
+    }
+}
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories
index 276298c..2cd83c3 100644
--- a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/resources/META-INF/spring.factories
@@ -23,6 +23,7 @@ org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentA
 org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentAutoConfiguration,\
 org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentAutoConfiguration,\
 org.apache.camel.component.kubernetes.springboot.KubernetesComponentAutoConfiguration,\
+org.apache.camel.component.kubernetes.springboot.cloud.KubernetesServiceDiscoveryAutoConfiguration,\
 org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceAutoConfiguration,\
 org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentAutoConfiguration,\
 org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentAutoConfiguration,\
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java
new file mode 100644
index 0000000..5c9bd3f
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java
@@ -0,0 +1,66 @@
+/**
+ * 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.component.kubernetes.springboot.test.cloud;
+
+import org.apache.camel.cloud.ServiceDiscovery;
+import org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties;
+import org.junit.Test;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.runner.ApplicationContextRunner;
+import org.springframework.context.annotation.Configuration;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class KubernetesServiceDiscoveryAutoConfigurationTest {
+
+    @Test
+    public void testServiceDiscoveryDisabled() {
+        new ApplicationContextRunner()
+            .withUserConfiguration(TestConfiguration.class)
+            .withPropertyValues(
+                "spring.main.banner-mode=off",
+                "camel.cloud.kubernetes.service-discovery.enabled=false")
+            .run(
+                context -> {
+                    assertThat(context).doesNotHaveBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
+                    assertThat(context).getBeans(ServiceDiscovery.class).doesNotContainKeys("kubernetes-service-discovery");
+                }
+            );
+    }
+
+
+    @Test
+    public void testServiceDiscoveryEnabled() {
+        new ApplicationContextRunner()
+            .withUserConfiguration(TestConfiguration.class)
+            .withPropertyValues(
+                "spring.main.banner-mode=off",
+                "camel.cloud.kubernetes.service-discovery.enabled=true")
+            .run(
+                context -> {
+                    assertThat(context).hasSingleBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
+                    assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("kubernetes-service-discovery");
+                }
+            );
+    }
+
+
+    @EnableAutoConfiguration
+    @Configuration
+    public static class TestConfiguration {
+    }
+}
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cluster/KubernetesClusterServiceAutoConfigurationTest.java b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cluster/KubernetesClusterServiceAutoConfigurationTest.java
index 1f0f6c4..aef0bfb 100644
--- a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cluster/KubernetesClusterServiceAutoConfigurationTest.java
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cluster/KubernetesClusterServiceAutoConfigurationTest.java
@@ -38,6 +38,7 @@ import static org.junit.Assert.assertNotNull;
 @DirtiesContext
 @ContextConfiguration(classes = KubernetesClusterServiceAutoConfiguration.class)
 @SpringBootTest(properties = {
+        "spring.main.banner-mode=off",
         "camel.component.kubernetes.cluster.service.enabled=true",
         "camel.component.kubernetes.cluster.service.id=myid1",
         "camel.component.kubernetes.cluster.service.master-url=http://myurl:9000",
diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/resources/logback.xml b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/resources/logback.xml
new file mode 100644
index 0000000..29ad9de
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/resources/logback.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<configuration>
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <!-- encoders are assigned the type
+         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%-15.15thread] %-5level %-30.30logger - %msg%n</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%-15.15thread] %-5level %-30.30logger - %msg%n</pattern>
+    </encoder>
+    <file>target/camel-kubernetes-starter-test.log</file>
+  </appender>
+
+  <root level="INFO">
+    <!--<appender-ref ref="STDOUT"/>-->
+    <appender-ref ref="FILE"/>
+  </root>
+
+</configuration>
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
lburgazzoli@apache.org.

[camel] 02/03: CAMEL-12560: fix cherry-pick

Posted by lb...@apache.org.
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 bd38d92b4a62530ba72a4f8f665b42662408099c
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Fri Jun 8 23:53:24 2018 +0200

    CAMEL-12560: fix cherry-pick
---
 ...netesServiceDiscoveryAutoConfigurationTest.java | 46 ++++++++++++----------
 1 file changed, 26 insertions(+), 20 deletions(-)

diff --git a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java
index 5c9bd3f..ac09349 100644
--- a/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java
+++ b/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/test/java/org/apache/camel/component/kubernetes/springboot/test/cloud/KubernetesServiceDiscoveryAutoConfigurationTest.java
@@ -20,7 +20,8 @@ import org.apache.camel.cloud.ServiceDiscovery;
 import org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties;
 import org.junit.Test;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.test.context.runner.ApplicationContextRunner;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.annotation.Configuration;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -29,35 +30,40 @@ public class KubernetesServiceDiscoveryAutoConfigurationTest {
 
     @Test
     public void testServiceDiscoveryDisabled() {
-        new ApplicationContextRunner()
-            .withUserConfiguration(TestConfiguration.class)
-            .withPropertyValues(
-                "spring.main.banner-mode=off",
-                "camel.cloud.kubernetes.service-discovery.enabled=false")
+        ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class)
+            .web(false)
             .run(
-                context -> {
-                    assertThat(context).doesNotHaveBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
-                    assertThat(context).getBeans(ServiceDiscovery.class).doesNotContainKeys("kubernetes-service-discovery");
-                }
+                "--debug=false",
+                "--spring.main.banner-mode=OFF",
+                "--camel.cloud.kubernetes.service-discovery.enabled=false"
             );
+
+        try {
+            assertThat(context.getBeansOfType(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class)).isEmpty();
+            assertThat(context.getBeansOfType(ServiceDiscovery.class)).doesNotContainKeys("kubernetes-service-discovery");
+        } finally {
+            context.close();
+        }
     }
 
 
     @Test
     public void testServiceDiscoveryEnabled() {
-        new ApplicationContextRunner()
-            .withUserConfiguration(TestConfiguration.class)
-            .withPropertyValues(
-                "spring.main.banner-mode=off",
-                "camel.cloud.kubernetes.service-discovery.enabled=true")
+        ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class)
+            .web(false)
             .run(
-                context -> {
-                    assertThat(context).hasSingleBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
-                    assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("kubernetes-service-discovery");
-                }
+                "--debug=false",
+                "--spring.main.banner-mode=OFF",
+                "--camel.cloud.kubernetes.service-discovery.enabled=true"
             );
-    }
 
+        try {
+            assertThat(context.getBeansOfType(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class)).hasSize(1);
+            assertThat(context.getBeansOfType(ServiceDiscovery.class)).containsKeys("kubernetes-service-discovery");
+        } finally {
+            context.close();
+        }
+    }
 
     @EnableAutoConfiguration
     @Configuration

-- 
To stop receiving notification emails like this one, please contact
lburgazzoli@apache.org.