You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2021/03/23 09:40:34 UTC
[camel-quarkus] 14/15: Spring RabbitMQ integration test fails in
native mode with Camel 3.9.0
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 7957d315944bffc715cf7b4d02088779639056d2
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Mon Mar 22 14:13:16 2021 +0100
Spring RabbitMQ integration test fails in native mode with Camel 3.9.0
---
.../rabbitmq/deployment/SpringRabbitmqProcessor.java | 13 +++++++++++--
.../spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java | 12 +++++++++---
.../component/spring/rabbitmq/it/SpringRabbitmqIT.java | 2 --
.../spring/rabbitmq/it/SpringRabbitmqTest.java | 17 ++++++++++++++---
4 files changed, 34 insertions(+), 10 deletions(-)
diff --git a/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java b/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java
index d5c6a52..9f9fb06 100644
--- a/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java
+++ b/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java
@@ -16,10 +16,14 @@
*/
package org.apache.camel.quarkus.component.spring.rabbitmq.deployment;
+import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageProxyDefinitionBuildItem;
import org.springframework.amqp.rabbit.connection.ChannelProxy;
+import org.springframework.aop.SpringProxy;
+import org.springframework.aop.framework.Advised;
+import org.springframework.core.DecoratingProxy;
class SpringRabbitmqProcessor {
@@ -31,7 +35,12 @@ class SpringRabbitmqProcessor {
}
@BuildStep
- NativeImageProxyDefinitionBuildItem initProxies() {
- return new NativeImageProxyDefinitionBuildItem(ChannelProxy.class.getCanonicalName());
+ void initProxies(BuildProducer<NativeImageProxyDefinitionBuildItem> proxies) {
+ proxies.produce(new NativeImageProxyDefinitionBuildItem(ChannelProxy.class.getCanonicalName()));
+ proxies.produce(new NativeImageProxyDefinitionBuildItem(
+ "org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer$ContainerDelegate",
+ SpringProxy.class.getCanonicalName(), Advised.class.getCanonicalName(),
+ DecoratingProxy.class.getCanonicalName()));
}
+
}
diff --git a/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java b/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java
index 442c313..bafee55 100644
--- a/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java
+++ b/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java
@@ -20,18 +20,24 @@ package org.apache.camel.quarkus.component.spring.rabbitmq.it;
import javax.enterprise.context.ApplicationScoped;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.springrabbit.SpringRabbitMQConstants;
@ApplicationScoped
public class SpringRabbitmqRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
+ createRoute(SpringRabbitMQConstants.DIRECT_MESSAGE_LISTENER_CONTAINER);
+ createRoute(SpringRabbitMQConstants.SIMPLE_MESSAGE_LISTENER_CONTAINER);
+ }
+
+ private void createRoute(String type) {
String url = String.format(
- "spring-rabbitmq:%s?queues=myqueue&routingKey=%s&connectionFactory=#connectionFactory&autoDeclare=true",
- SpringRabbitmqResource.EXCHANGE_IN_OUT, SpringRabbitmqResource.ROUTING_KEY_IN_OUT);
+ "spring-rabbitmq:%s?queues=%s&routingKey=%s&connectionFactory=#connectionFactory&autoDeclare=true&messageListenerContainerType=DMLC",
+ SpringRabbitmqResource.EXCHANGE_IN_OUT + type, type, SpringRabbitmqResource.ROUTING_KEY_IN_OUT + type);
from(url)
.transform(body().prepend("Hello "))
- .to(SpringRabbitmqResource.DIRECT_IN_OUT);
+ .to(SpringRabbitmqResource.DIRECT_IN_OUT + type);
}
}
diff --git a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java
index 4a5bdf4..52812e3 100644
--- a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java
+++ b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java
@@ -16,11 +16,9 @@
*/
package org.apache.camel.quarkus.component.spring.rabbitmq.it;
-import io.quarkus.test.junit.DisabledOnNativeImage;
import io.quarkus.test.junit.NativeImageTest;
@NativeImageTest
-@DisabledOnNativeImage("https://github.com/apache/camel-quarkus/issues/2340")
class SpringRabbitmqIT extends SpringRabbitmqTest {
}
diff --git a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java
index 2fdddec..9822030 100644
--- a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java
+++ b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java
@@ -20,6 +20,7 @@ import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import io.restassured.response.Response;
+import org.apache.camel.component.springrabbit.SpringRabbitMQConstants;
import org.junit.jupiter.api.Test;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.BindingBuilder;
@@ -39,10 +40,20 @@ class SpringRabbitmqTest {
private ConnectionFactory connectionFactory;
@Test
- public void testInOut() {
- sendToExchange(SpringRabbitmqResource.EXCHANGE_IN_OUT, SpringRabbitmqResource.ROUTING_KEY_IN_OUT, "Sheldon");
+ public void testInOutDMLC() {
+ testInOut(SpringRabbitMQConstants.DIRECT_MESSAGE_LISTENER_CONTAINER);
+ }
+
+ @Test
+ public void testInOutSMLC() {
+ testInOut(SpringRabbitMQConstants.SIMPLE_MESSAGE_LISTENER_CONTAINER);
+ }
+
+ public void testInOut(String type) {
+ sendToExchange(SpringRabbitmqResource.EXCHANGE_IN_OUT + type,
+ SpringRabbitmqResource.ROUTING_KEY_IN_OUT + type, "Sheldon");
- getFromDirect(SpringRabbitmqResource.DIRECT_IN_OUT)
+ getFromDirect(SpringRabbitmqResource.DIRECT_IN_OUT + type)
.then()
.statusCode(200)
.body(is("Hello Sheldon"));