You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2014/08/26 14:21:01 UTC
git commit: Add test case covering Camel Custom Tracer
Repository: camel
Updated Branches:
refs/heads/master 5094d6006 -> 8c2fa7c56
Add test case covering Camel Custom Tracer
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8c2fa7c5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8c2fa7c5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8c2fa7c5
Branch: refs/heads/master
Commit: 8c2fa7c561caaef73338146657096f5be36ef1d8
Parents: 5094d60
Author: Charles Moulliard <ch...@gmail.com>
Authored: Tue Aug 26 14:20:52 2014 +0200
Committer: Charles Moulliard <ch...@gmail.com>
Committed: Tue Aug 26 14:20:52 2014 +0200
----------------------------------------------------------------------
.../osgi/blueprint/BlueprintTracerTest.java | 84 ++++++++++++++++++++
.../camel/itest/osgi/blueprint/blueprint-29.xml | 38 +++++++++
2 files changed, 122 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/8c2fa7c5/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/BlueprintTracerTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/BlueprintTracerTest.java b/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/BlueprintTracerTest.java
new file mode 100644
index 0000000..170faf7
--- /dev/null
+++ b/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/BlueprintTracerTest.java
@@ -0,0 +1,84 @@
+package org.apache.camel.itest.osgi.blueprint;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.processor.interceptor.DefaultTraceEventMessage;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.tinybundles.core.TinyBundles;
+import org.osgi.framework.Constants;
+
+import static org.ops4j.pax.exam.OptionUtils.combine;
+
+@RunWith(PaxExam.class)
+public class BlueprintTracerTest extends OSGiBlueprintTestSupport {
+
+ private String name = BlueprintTracerTest.class.getName();
+
+ @Test
+ public void testTracer() throws Exception {
+ // start bundle
+ getInstalledBundle(name).start();
+
+ // must use the camel context from osgi
+ CamelContext ctx = getOsgiService(CamelContext.class, "(camel.context.symbolicname=" + name + ")", 10000);
+
+ ProducerTemplate myTemplate = ctx.createProducerTemplate();
+ myTemplate.start();
+
+ // do our testing
+ MockEndpoint result = ctx.getEndpoint("mock:result", MockEndpoint.class);
+ result.expectedMessageCount(1);
+
+ MockEndpoint tracer = ctx.getEndpoint("mock:traced", MockEndpoint.class);
+
+ myTemplate.sendBody("direct:start", "Hello World");
+
+ result.assertIsSatisfied();
+
+ DefaultTraceEventMessage em = tracer.getReceivedExchanges().get(0).getIn().getBody(DefaultTraceEventMessage.class);
+ assertEquals("Hello Camel", em.getBody());
+
+ assertEquals("String", em.getBodyType());
+ assertEquals(null, em.getCausedByException());
+ assertNotNull(em.getExchangeId());
+ assertNotNull(em.getShortExchangeId());
+ assertNotNull(em.getExchangePattern());
+ assertEquals("direct://start", em.getFromEndpointUri());
+ // there is always a breadcrumb header
+ assertNotNull(em.getHeaders());
+ assertNotNull(em.getProperties());
+ assertNull(em.getOutBody());
+ assertNull(em.getOutBodyType());
+ assertNull(em.getOutHeaders());
+ assertNull(em.getPreviousNode());
+ assertNotNull(em.getToNode());
+ assertNotNull(em.getTimestamp());
+
+ myTemplate.stop();
+ }
+
+ @Configuration
+ public static Option[] configure() throws Exception {
+
+ Option[] options = combine(
+ getDefaultCamelKarafOptions(),
+
+ bundle(TinyBundles.bundle()
+ .add("OSGI-INF/blueprint/test.xml", BlueprintTracerTest.class.getResource("blueprint-29.xml"))
+ .set(Constants.BUNDLE_SYMBOLICNAME, BlueprintTracerTest.class.getName())
+ .set(Constants.BUNDLE_VERSION, "1.0.0")
+ .set(Constants.DYNAMICIMPORT_PACKAGE, "*")
+ .build()).noStart(),
+
+ // using the features to install the camel components
+ loadCamelFeatures("camel-blueprint"));
+
+ return options;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/8c2fa7c5/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/blueprint/blueprint-29.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/blueprint/blueprint-29.xml b/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/blueprint/blueprint-29.xml
new file mode 100644
index 0000000..8dea9c8
--- /dev/null
+++ b/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/blueprint/blueprint-29.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:camel="http://camel.apache.org/schema/blueprint">
+
+ <camelContext trace="true" xmlns="http://camel.apache.org/schema/blueprint">
+ <endpoint id="traced" uri="mock:traced"/>
+ <route>
+ <from uri="direct:start"/>
+ <to uri="mock:result"/>
+ </route>
+ </camelContext>
+
+ <bean id="camelTracer" class="org.apache.camel.processor.interceptor.Tracer">
+ <property name="traceExceptions" value="false"/>
+ <property name="traceInterceptors" value="true"/>
+ <property name="traceExceptions" value="true"/>
+ <property name="logLevel" value="INFO"/>
+ <property name="logName" value="org.apache.camel.blueprint.log"/>
+ <property name="destination" ref="traced"/>
+ </bean>
+
+</blueprint>