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")