Hi everyone,

I had a problem in my spring boot application when updating from camel 3.8.0 to 
3.9.0. My WebClient calls which uses .block(Duration) method (belonging to 
reactor-core artifact) do not work anymore.

Versioning:
Java 11.0.2.
Spring boot 2.4.4.
Camel 3.9.0.

My pom:
...
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.camel.springboot</groupId>
                <artifactId>camel-spring-boot-dependencies</artifactId>
                <version>3.9.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
...


Example of failing test:
...
  @Test
  void httpCallBlocking() {
    ResponseEntity<Void> response =
        WebClient.create()
            .get()
            .uri("http://www.google.es/";)
            .retrieve()
            .toBodilessEntity()
            .block(Duration.ofSeconds(5));

    assertEquals(200, response.getStatusCodeValue());
  }
...


Output:
...
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 6.23 s 
<<< FAILURE! - in com.example.demo.DemoApplicationTests
[ERROR] httpCallBlocking  Time elapsed: 1.429 s  <<< ERROR!
java.lang.NoClassDefFoundError: reactor/util/context/ContextView
        at 
com.example.demo.DemoApplicationTests.httpCallBlocking(DemoApplicationTests.java:25)
Caused by: java.lang.ClassNotFoundException: reactor.util.context.ContextView
        at 
com.example.demo.DemoApplicationTests.httpCallBlocking(DemoApplicationTests.java:25)
...


It looks like camel 3.9.0 uses io.projectreactor:reactor-core:3.3.12-RELEASE, 
while 3.8.0 used io.projectreactor:reactor-core:3.4.4. I don't really know the 
reasons behind this downgrade.

Is it a camel dependency management issue or is it normal behavior? 

If I switch from camel-spring-boot-dependencies to camel-spring-boot-bom it 
works fine, since the non-camel dependencies are now managed by spring. Should 
I just use camel-spring-boot-bom? I would like to keep using 
camel-spring-boot-dependencies if possible.


Greetings.
Michael.

Reply via email to