You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/01/28 08:44:05 UTC

[camel] 01/03: CAMEL-18957: added support for the Produce annotation

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

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c8b98d65a50a8b0a77dda9e1667051820918db3e
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Jan 27 17:01:37 2023 +0100

    CAMEL-18957: added support for the Produce annotation
---
 .../camel/test/infra/core/DefaultAnnotationProcessor.java     | 11 +++++++++++
 .../camel/test/infra/core/DefaultCamelContextExtension.java   |  2 ++
 2 files changed, 13 insertions(+)

diff --git a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultAnnotationProcessor.java b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultAnnotationProcessor.java
index 4a1fbdd744b..8f425ad88b2 100644
--- a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultAnnotationProcessor.java
+++ b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultAnnotationProcessor.java
@@ -29,6 +29,8 @@ import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.EndpointInject;
+import org.apache.camel.Produce;
+import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.slf4j.Logger;
@@ -158,6 +160,15 @@ public class DefaultAnnotationProcessor implements AnnotationProcessor {
                     assert endpoint != null;
                     field.set(instance, endpoint);
                 }
+
+                return;
+            }
+
+            if (annotation instanceof Produce p) {
+                final ProducerTemplate producerTemplate = context.createProducerTemplate();
+
+                producerTemplate.setDefaultEndpointUri(p.value());
+                field.set(instance, producerTemplate);
             }
         } catch (IllegalAccessException e) {
             throw new RuntimeException(illegalAccessMessage(annotation.getClass(), instance, fieldName), e);
diff --git a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java
index 4a007474347..d4dc983aaa6 100644
--- a/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java
+++ b/test-infra/camel-test-infra-core/src/test/java/org/apache/camel/test/infra/core/DefaultCamelContextExtension.java
@@ -21,6 +21,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.NoSuchEndpointException;
+import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.impl.DefaultCamelContext;
@@ -92,6 +93,7 @@ public class DefaultCamelContextExtension implements CamelContextExtension {
         LOG.info("********************************************************************************");
         LOG.info("Testing: {} ({})", extensionContext.getDisplayName(), o.getClass().getName());
 
+        fixtureProcessor.evalField(extensionContext, Produce.class, o, context);
         fixtureProcessor.evalField(extensionContext, EndpointInject.class, o, context);
         fixtureProcessor.evalField(extensionContext, BindToRegistry.class, o, context);