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)