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>