EMMA Coverage Report (generated Wed Feb 26 21:48:09 GMT 2014)
[all classes][uk.org.simonsite.log4j.appender.concurrent]

COVERAGE SUMMARY FOR SOURCE FILE [LoggingEventBlockingQueue.java]

nameclass, %method, %block, %line, %
LoggingEventBlockingQueue.java100% (1/1)100% (4/4)96%  (27/28)89%  (8/9)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class LoggingEventBlockingQueue100% (1/1)100% (4/4)96%  (27/28)89%  (8/9)
put (LoggingEvent): void 100% (1/1)88%  (7/8)75%  (3/4)
LoggingEventBlockingQueue (ActiveAsynchronousAppenderProperties): void 100% (1/1)100% (10/10)100% (3/3)
poll (): LoggingEvent 100% (1/1)100% (5/5)100% (1/1)
take (): LoggingEvent 100% (1/1)100% (5/5)100% (1/1)

1/*
2 * Licensed under the Apache License, Version 2.0 (the "License");
3 * you may not use this file except in compliance with the License.
4 * You may obtain a copy of the License at
5 * 
6 *      http://www.apache.org/licenses/LICENSE-2.0
7 * 
8 * Unless required by applicable law or agreed to in writing, software
9 * distributed under the License is distributed on an "AS IS" BASIS,
10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 * See the License for the specific language governing permissions and
12 * limitations under the License.
13 */
14package uk.org.simonsite.log4j.appender.concurrent;
15 
16import java.util.concurrent.ArrayBlockingQueue;
17 
18import org.apache.log4j.spi.LoggingEvent;
19 
20import uk.org.simonsite.log4j.appender.ActiveAsynchronousAppenderProperties;
21import uk.org.simonsite.log4j.appender.LoggingEventQueue;
22 
23/**
24 * Queue used to buffer {@link LoggingEvent}s for asynchronous dispatch. This is
25 * backed by a {@link ArrayBlockingQueue} and is thread-safe.
26 * 
27 * @author <a href="mailto:simon_park_mail AT yahoo DOT co DOT uk">Simon
28 *         Park</a>
29 * @version 2.0
30 */
31public final class LoggingEventBlockingQueue implements LoggingEventQueue {
32 
33  private final ArrayBlockingQueue<LoggingEvent> queue;
34 
35  public LoggingEventBlockingQueue(
36      final ActiveAsynchronousAppenderProperties properties) {
37    super();
38    this.queue = new ArrayBlockingQueue<LoggingEvent>(properties.getMaxSize());
39  }
40 
41  /**
42   * @see uk.org.simonsite.log4j.appender.LoggingEventQueue#poll()
43   */
44  public final LoggingEvent poll() {
45    return this.queue.poll();
46  }
47 
48  /**
49   * @see uk.org.simonsite.log4j.appender.LoggingEventQueue#put(org.apache.log4j.spi.LoggingEvent)
50   */
51  public final void put(final LoggingEvent loggingEvent)
52      throws InterruptedException {
53    if (loggingEvent == null) {
54      return;
55    }
56    this.queue.put(loggingEvent);
57  }
58 
59  /**
60   * @see uk.org.simonsite.log4j.appender.LoggingEventQueue#take()
61   */
62  public final LoggingEvent take() throws InterruptedException {
63    return this.queue.take();
64  }
65}

[all classes][uk.org.simonsite.log4j.appender.concurrent]
EMMA 2.0.5312 (C) Vladimir Roubtsov