From 9e39a0ad4e02869a1ee37a0a32736cf7eacd9a8e Mon Sep 17 00:00:00 2001
From: Christian Ribeaud <christian.ribeaud@novartis.com>
Date: Fri, 10 Mar 2017 18:44:53 +0100
Subject: [PATCH] Add log configuration

* Find out how to improve the performance.
---
 pom.xml                                       |  6 +++
 ...taProviderComponentMultithreadingTest.java | 40 +++++++++++++++++++
 src/test/resources/log4j2.properties          |  6 ---
 src/test/resources/logback.xml                | 16 ++++++++
 4 files changed, 62 insertions(+), 6 deletions(-)
 create mode 100644 src/test/java/org/apache/camel/component/dataprovider/DataProviderComponentMultithreadingTest.java
 delete mode 100644 src/test/resources/log4j2.properties
 create mode 100644 src/test/resources/logback.xml

diff --git a/pom.xml b/pom.xml
index 734c54d..31a620d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,6 +18,7 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <camel.version>2.18.1</camel.version>
         <slf4j.version>1.7.22</slf4j.version>
+        <logback.classic>1.2.1</logback.classic>
         <guava.version>21.0</guava.version>
         <mockito.version>1.10.19</mockito.version>
         <maven.compiler.source>1.8</maven.compiler.source>
@@ -49,6 +50,11 @@
         </dependency>
 
         <!-- testing -->
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>${logback.classic}</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-testng</artifactId>
diff --git a/src/test/java/org/apache/camel/component/dataprovider/DataProviderComponentMultithreadingTest.java b/src/test/java/org/apache/camel/component/dataprovider/DataProviderComponentMultithreadingTest.java
new file mode 100644
index 0000000..3317aac
--- /dev/null
+++ b/src/test/java/org/apache/camel/component/dataprovider/DataProviderComponentMultithreadingTest.java
@@ -0,0 +1,40 @@
+package org.apache.camel.component.dataprovider;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.testng.CamelTestSupport;
+import org.testng.annotations.Test;
+
+/**
+ * Test cases for corresponding class {@link DataProviderComponent}.
+ *
+ * @author <a href="mailto:christian.ribeaud@novartis.com">Christian Ribeaud</a>
+ */
+public class DataProviderComponentMultithreadingTest extends CamelTestSupport {
+
+    @Test
+    public void testDataProvider() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        // It will wait until it reaches the expected count
+        mock.expectedMessageCount(1000);
+        mock.assertIsSatisfied();
+    }
+
+    @Override
+    protected JndiRegistry createRegistry() throws Exception {
+        JndiRegistry registry = super.createRegistry();
+        registry.bind("foo", new StaticDataProvider<>(DataProviderComponentTest.getRandomStrings(1000)));
+        return registry;
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() {
+                from("dataprovider://foo?consumer.useFixedDelay=true&consumer.delay=20&consumer.maxMessagesPerPoll=20&initialDelay=20").
+                       to("mock:result");
+            }
+        };
+    }
+}
diff --git a/src/test/resources/log4j2.properties b/src/test/resources/log4j2.properties
deleted file mode 100644
index df3daa5..0000000
--- a/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
-rootLogger.level = INFO
-rootLogger.appenderRef.out.ref = out
diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml
new file mode 100644
index 0000000..f623577
--- /dev/null
+++ b/src/test/resources/logback.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="true">
+
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!-- encoders are assigned the type
+             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <logger name="org.apache.camel.component.dataprovider" level="DEBUG"/>
+
+    <root level="INFO">
+        <appender-ref ref="CONSOLE"/>
+    </root>
+</configuration>
\ No newline at end of file