Repository: logging-log4j2
Updated Branches:
  refs/heads/master 1285b1e2f -> f6f33b1d9


Kafka appender close timeout test


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f6f33b1d
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f6f33b1d
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f6f33b1d

Branch: refs/heads/master
Commit: f6f33b1d980561fc0fc1ff148c16d4ae1b47c8f9
Parents: 1285b1e
Author: Mikael StÃ¥ldal <[email protected]>
Authored: Fri May 20 14:05:59 2016 +0200
Committer: Mikael StÃ¥ldal <[email protected]>
Committed: Fri May 20 14:05:59 2016 +0200

----------------------------------------------------------------------
 .../kafka/KafkaAppenderCloseTimeoutTest.java    | 75 ++++++++++++++++++++
 .../src/test/resources/KafkaAppenderTest.xml    | 14 ++--
 2 files changed, 85 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f6f33b1d/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java
 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java
new file mode 100644
index 0000000..64d5b1f
--- /dev/null
+++ 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppenderCloseTimeoutTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.
+ */
+
+package org.apache.logging.log4j.core.appender.mom.kafka;
+
+import java.util.Properties;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.kafka.clients.producer.MockProducer;
+import org.apache.kafka.clients.producer.Producer;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.junit.LoggerContextRule;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class KafkaAppenderCloseTimeoutTest {
+
+    private static final MockProducer<byte[], byte[]> kafka = new 
MockProducer<byte[], byte[]>(true, null, null) {
+        @Override
+        public void close() {
+            try {
+                Thread.sleep(3000);
+            } catch (InterruptedException ignore) {
+            }
+        }
+
+        @Override
+        public void close(long timeout, TimeUnit timeUnit) {
+            try {
+                Thread.sleep(timeUnit.toMillis(timeout));
+            } catch (InterruptedException ignore) {
+            }
+        }
+    };
+
+    @BeforeClass
+    public static void setUpClass() throws Exception {
+        KafkaManager.producerFactory = new KafkaProducerFactory() {
+            @Override
+            public Producer<byte[], byte[]> newKafkaProducer(final Properties 
config) {
+                return kafka;
+            }
+        };
+    }
+
+    @Rule
+    public LoggerContextRule ctx = new 
LoggerContextRule("KafkaAppenderTest.xml");
+
+    @Before
+    public void setUp() throws Exception {
+        kafka.clear();
+    }
+
+    @Test(timeout = 2000)
+    public void testClose() throws Exception {
+        final Appender appender = 
ctx.getRequiredAppender("KafkaAppenderWithCloseTimeout");
+        appender.stop();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f6f33b1d/log4j-core/src/test/resources/KafkaAppenderTest.xml
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/resources/KafkaAppenderTest.xml 
b/log4j-core/src/test/resources/KafkaAppenderTest.xml
index c38196b..1bf8774 100644
--- a/log4j-core/src/test/resources/KafkaAppenderTest.xml
+++ b/log4j-core/src/test/resources/KafkaAppenderTest.xml
@@ -24,16 +24,22 @@
       <PatternLayout pattern="[%m]"/>
       <Property name="bootstrap.servers">localhost:9092</Property>
     </Kafka>
-  <Kafka name="KafkaAppenderWithSerializedLayout" topic="kafka-topic">
-    <SerializedLayout/>
-    <Property name="bootstrap.servers">localhost:9092</Property>
-  </Kafka>
+    <Kafka name="KafkaAppenderWithSerializedLayout" topic="kafka-topic">
+      <SerializedLayout/>
+      <Property name="bootstrap.servers">localhost:9092</Property>
+    </Kafka>
+    <Kafka name="KafkaAppenderWithCloseTimeout" topic="kafka-topic">
+      <SerializedLayout/>
+      <Property name="bootstrap.servers">localhost:9092</Property>
+      <Property name="timeout.ms">1000</Property>
+    </Kafka>
   </Appenders>
   <Loggers>
     <Root level="info">
       <AppenderRef ref="KafkaAppender"/>
       <AppenderRef ref="KafkaAppenderWithLayout"/>
       <AppenderRef ref="KafkaAppenderWithSerializedLayout"/>
+      <AppenderRef ref="KafkaAppenderWithCloseTimeout"/>
     </Root>
   </Loggers>
 </Configuration>
\ No newline at end of file

Reply via email to