You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/01/31 05:24:35 UTC

[camel] 05/08: CAMEL-14354: camel-core optimize

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

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

commit 7d5bfbfdcf437b6911f0b8bffbfb6feb5aaaac94
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jan 30 10:56:02 2020 +0100

    CAMEL-14354: camel-core optimize
---
 .../apache/camel/component/mock/MockEndpoint.java  | 25 +++++++++++++++++++---
 .../camel/impl/DefaultMessageHeaderTest.java       | 12 +++++++++--
 .../org/apache/camel/support/DefaultExchange.java  | 12 ++++++++++-
 3 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java b/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
index 5557825..9ac9223 100644
--- a/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
+++ b/components/camel-mock/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
@@ -46,6 +46,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.BrowsableEndpoint;
+import org.apache.camel.spi.HeadersMapFactory;
 import org.apache.camel.spi.InterceptSendToEndpoint;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.NotifyBuilderMatcher;
@@ -549,7 +550,13 @@ public class MockEndpoint extends DefaultEndpoint implements BrowsableEndpoint,
             expectedMinimumMessageCount(1);
         }
         if (expectedHeaderValues == null) {
-            expectedHeaderValues = getCamelContext().adapt(ExtendedCamelContext.class).getHeadersMapFactory().newMap();
+            HeadersMapFactory factory = getCamelContext().adapt(ExtendedCamelContext.class).getHeadersMapFactory();
+            if (factory != null) {
+                expectedHeaderValues = factory.newMap();
+            } else {
+                // should not really happen but some tests dont start camel context
+                expectedHeaderValues = new HashMap<>();
+            }
             // we just wants to expects to be called once
             expects(new AssertionTask() {
                 @Override
@@ -1566,7 +1573,13 @@ public class MockEndpoint extends DefaultEndpoint implements BrowsableEndpoint,
 
         if (expectedHeaderValues != null) {
             if (actualHeaderValues == null) {
-                actualHeaderValues = getCamelContext().adapt(ExtendedCamelContext.class).getHeadersMapFactory().newMap();
+                HeadersMapFactory factory = getCamelContext().adapt(ExtendedCamelContext.class).getHeadersMapFactory();
+                if (factory != null) {
+                    actualHeaderValues = factory.newMap();
+                } else {
+                    // should not really happen but some tests dont start camel context
+                    actualHeaderValues = new HashMap<>();
+                }
             }
             if (in.hasHeaders()) {
                 actualHeaderValues.putAll(in.getHeaders());
@@ -1575,7 +1588,13 @@ public class MockEndpoint extends DefaultEndpoint implements BrowsableEndpoint,
 
         if (expectedPropertyValues != null) {
             if (actualPropertyValues == null) {
-                actualPropertyValues = getCamelContext().adapt(ExtendedCamelContext.class).getHeadersMapFactory().newMap();
+                HeadersMapFactory factory = getCamelContext().adapt(ExtendedCamelContext.class).getHeadersMapFactory();
+                if (factory != null) {
+                    actualPropertyValues = factory.newMap();
+                } else {
+                    // should not really happen but some tests dont start camel context
+                    actualPropertyValues = new HashMap<>();
+                }
             }
             actualPropertyValues.putAll(copy.getProperties());
         }
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultMessageHeaderTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultMessageHeaderTest.java
index 5494c8f..379e9d1 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultMessageHeaderTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultMessageHeaderTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.impl;
 
+import junit.framework.TestCase;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Message;
 import org.apache.camel.support.DefaultExchange;
@@ -23,9 +24,16 @@ import org.apache.camel.support.DefaultMessage;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class DefaultMessageHeaderTest extends Assert {
+public class DefaultMessageHeaderTest extends TestCase {
 
-    private CamelContext camelContext = new DefaultCamelContext();
+    private CamelContext camelContext;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        camelContext = new DefaultCamelContext();
+        camelContext.start();
+    }
 
     @Test
     public void testLookupCaseAgnostic() {
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
index 71220ae..f4cb782 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultExchange.java
@@ -17,6 +17,7 @@
 package org.apache.camel.support;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
@@ -33,6 +34,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.ExtendedExchange;
 import org.apache.camel.Message;
 import org.apache.camel.MessageHistory;
+import org.apache.camel.spi.HeadersMapFactory;
 import org.apache.camel.spi.Synchronization;
 import org.apache.camel.spi.UnitOfWork;
 import org.apache.camel.util.ObjectHelper;
@@ -155,7 +157,15 @@ public final class DefaultExchange implements ExtendedExchange {
             return null;
         }
 
-        return context.adapt(ExtendedCamelContext.class).getHeadersMapFactory().newMap(headers);
+        if (context != null) {
+            ExtendedCamelContext ecc = (ExtendedCamelContext) context;
+            HeadersMapFactory factory = ecc.getHeadersMapFactory();
+            if (factory != null) {
+                return factory.newMap(headers);
+            }
+        }
+        // should not really happen but some tests dont start camel context
+        return new HashMap<>(headers);
     }
 
     @SuppressWarnings("unchecked")