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

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


The following commit(s) were added to refs/heads/main by this push:
     new 442160c72 Ref #542: Restore camel-vm old behavior (#543)
442160c72 is described below

commit 442160c72d3c84e9bb197b519a332f96abbbef46
Author: Nicolas Filotto <[email protected]>
AuthorDate: Wed Oct 30 10:33:28 2024 +0100

    Ref #542: Restore camel-vm old behavior (#543)
---
 .../camel/karaf/component/directvm/direct-vm.json  |  2 +-
 .../org/apache/camel/karaf/component/vm/vm.json    |  2 +-
 .../camel/karaf/component/vm/VmConsumer.java       | 32 +++++++++++++++++-----
 3 files changed, 27 insertions(+), 9 deletions(-)

diff --git 
a/components/camel-directvm/src/generated/resources/META-INF/org/apache/camel/karaf/component/directvm/direct-vm.json
 
b/components/camel-directvm/src/generated/resources/META-INF/org/apache/camel/karaf/component/directvm/direct-vm.json
index ec22c559d..7bc7c2aad 100644
--- 
a/components/camel-directvm/src/generated/resources/META-INF/org/apache/camel/karaf/component/directvm/direct-vm.json
+++ 
b/components/camel-directvm/src/generated/resources/META-INF/org/apache/camel/karaf/component/directvm/direct-vm.json
@@ -11,7 +11,7 @@
     "supportLevel": "Stable",
     "groupId": "org.apache.camel.karaf",
     "artifactId": "camel-directvm",
-    "version": "4.8.0-SNAPSHOT",
+    "version": "4.8.1-SNAPSHOT",
     "scheme": "direct-vm",
     "extendsScheme": "",
     "syntax": "direct-vm:name",
diff --git 
a/components/camel-vm/src/generated/resources/META-INF/org/apache/camel/karaf/component/vm/vm.json
 
b/components/camel-vm/src/generated/resources/META-INF/org/apache/camel/karaf/component/vm/vm.json
index 37cce05fb..909e8e672 100644
--- 
a/components/camel-vm/src/generated/resources/META-INF/org/apache/camel/karaf/component/vm/vm.json
+++ 
b/components/camel-vm/src/generated/resources/META-INF/org/apache/camel/karaf/component/vm/vm.json
@@ -11,7 +11,7 @@
     "supportLevel": "Stable",
     "groupId": "org.apache.camel.karaf",
     "artifactId": "camel-vm",
-    "version": "4.8.0-SNAPSHOT",
+    "version": "4.8.1-SNAPSHOT",
     "scheme": "vm",
     "extendsScheme": "",
     "syntax": "vm:name",
diff --git 
a/components/camel-vm/src/main/java/org/apache/camel/karaf/component/vm/VmConsumer.java
 
b/components/camel-vm/src/main/java/org/apache/camel/karaf/component/vm/VmConsumer.java
index 8efbb645f..1e1d5faf1 100644
--- 
a/components/camel-vm/src/main/java/org/apache/camel/karaf/component/vm/VmConsumer.java
+++ 
b/components/camel-vm/src/main/java/org/apache/camel/karaf/component/vm/VmConsumer.java
@@ -16,14 +16,13 @@
  */
 package org.apache.camel.karaf.component.vm;
 
-import org.apache.camel.*;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
+import org.apache.camel.Exchange;
+import org.apache.camel.ExchangeExtension;
+import org.apache.camel.Processor;
 import org.apache.camel.component.seda.SedaConsumer;
-import org.apache.camel.support.DefaultExchange;
-
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
+import org.apache.camel.support.ExchangeHelper;
 
 public class VmConsumer extends SedaConsumer implements CamelContextAware {
 
@@ -43,4 +42,23 @@ public class VmConsumer extends SedaConsumer implements 
CamelContextAware {
         this.camelContext = camelContext;
     }
 
+    @Override
+    protected Exchange prepareExchange(Exchange exchange) {
+        Exchange result = ExchangeHelper.copyExchangeWithProperties(exchange, 
camelContext);
+        ExchangeExtension exchangeExtension = result.getExchangeExtension();
+        exchangeExtension.setFromEndpoint(getEndpoint());
+        exchangeExtension.setFromRouteId(getRouteId());
+        return result;
+    }
+
+    @Override
+    protected void onProcessingDone(Exchange original, Exchange prepared) {
+        // copy result back
+        ExchangeHelper.copyResults(original, prepared);
+        // log exception if an exception occurred and was not handled
+        if (original.getException() != null) {
+            getExceptionHandler().handleException("Error processing exchange", 
original,
+                    original.getException());
+        }
+    }
 }

Reply via email to