Dag Framstad created CAMEL-12340:
------------------------------------

             Summary: camel uses 
org.springframework.boot.bind.RelaxedPropertyResolver which is removed from 
spring 2.0.0
                 Key: CAMEL-12340
                 URL: https://issues.apache.org/jira/browse/CAMEL-12340
             Project: Camel
          Issue Type: Bug
    Affects Versions: 2.20.2
            Reporter: Dag Framstad


I'm using camel 2.20.2 and I've upgraded to spring boot 2.0.0 (from 1.5.10) and 
am getting this stacktrace when I start my application:
{code:java}
// code placeholder
2018-03-09 17:47:34,372 ERROR org.springframework.boot.SpringApplication 
Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to 
process import candidates for configuration class 
[no.nav.helse.utbetaling.UtbetalingsOppdragApplication]; nested exception is 
java.lang.IllegalStateException: Could not evaluate condition on 
org.apache.camel.spring.boot.health.HealthCheckRoutesAutoConfiguration due to 
org/springframework/boot/bind/RelaxedPropertyResolver not found. Make sure your 
own configuration does not rely on that class. This can also happen if you are 
@ComponentScanning a springframework package (e.g. if you put a @ComponentScan 
in the default package by mistake)
at 
org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:616)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors(ConfigurationClassParser.java:548)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:184)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:316)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:693)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:531)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
 ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) 
[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at 
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
 [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) 
[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246) 
[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234) 
[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at 
no.nav.helse.utbetaling.UtbetalingsOppdragApplication.main(UtbetalingsOppdragApplication.java:19)
 [classes/:?]
Caused by: java.lang.IllegalStateException: Could not evaluate condition on 
org.apache.camel.spring.boot.health.HealthCheckRoutesAutoConfiguration due to 
org/springframework/boot/bind/RelaxedPropertyResolver not found. Make sure your 
own configuration does not rely on that class. This can also happen if you are 
@ComponentScanning a springframework package (e.g. if you put a @ComponentScan 
in the default package by mistake)
at 
org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:55)
 ~[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at 
org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:109)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:217)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:606)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
... 15 more
Caused by: java.lang.NoClassDefFoundError: 
org/springframework/boot/bind/RelaxedPropertyResolver
at 
org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator.isEnabled(HierarchicalPropertiesEvaluator.java:49)
 ~[camel-spring-boot-2.20.2.jar:2.20.2]
at 
org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator.evaluate(HierarchicalPropertiesEvaluator.java:42)
 ~[camel-spring-boot-2.20.2.jar:2.20.2]
at 
org.apache.camel.spring.boot.util.GroupCondition.getMatchOutcome(GroupCondition.java:40)
 ~[camel-spring-boot-2.20.2.jar:2.20.2]
at 
org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)
 ~[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at 
org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:109)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:217)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:606)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
... 15 more
Caused by: java.lang.ClassNotFoundException: 
org.springframework.boot.bind.RelaxedPropertyResolver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_121]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:1.8.0_121]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
at 
org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator.isEnabled(HierarchicalPropertiesEvaluator.java:49)
 ~[camel-spring-boot-2.20.2.jar:2.20.2]
at 
org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator.evaluate(HierarchicalPropertiesEvaluator.java:42)
 ~[camel-spring-boot-2.20.2.jar:2.20.2]
at 
org.apache.camel.spring.boot.util.GroupCondition.getMatchOutcome(GroupCondition.java:40)
 ~[camel-spring-boot-2.20.2.jar:2.20.2]
at 
org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)
 ~[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at 
org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:109)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:217)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at 
org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:606)
 ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
... 15 more

Process finished with exit code 1
{code}
Any plans to fully support Spring Boot 2.0.0? 
Or any helpful hints on a workaround?

I have included the following dependencies in my pom.xml (only the most 
relevant camel and pring dependencies here, some might be duplicated, the 
application depends on an other pom which has spring-boot-starter-parent as 
parent):
{code}
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.darrachequesne</groupId>
            <artifactId>spring-data-jpa-datatables</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-spring-boot-starter</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-spring</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>io.prometheus</groupId>
            <artifactId>simpleclient_hotspot</artifactId>
        </dependency>
 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-cxf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-jms</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-spring</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-metrics</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.darrachequesne</groupId>
            <artifactId>spring-data-jpa-datatables</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
        </dependency>
 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to