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

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.backport;
15 
16import org.apache.log4j.spi.LoggingEvent;
17 
18import uk.org.simonsite.log4j.appender.ActiveAsynchronousAppenderProperties;
19import uk.org.simonsite.log4j.appender.LoggingEventQueue;
20import edu.emory.mathcs.backport.java.util.concurrent.ArrayBlockingQueue;
21 
22/**
23 * Queue used to buffer {@link LoggingEvent}s for asynchronous dispatch. This is
24 * backed by a {@link ArrayBlockingQueue} and is thread-safe.
25 * 
26 * @author <a href="mailto:simon_park_mail AT yahoo DOT co DOT uk">Simon
27 *         Park</a>
28 * @version 2.0
29 */
30public final class LoggingEventBlockingQueue implements LoggingEventQueue {
31 
32  private final ArrayBlockingQueue queue;
33 
34  public LoggingEventBlockingQueue(
35      final ActiveAsynchronousAppenderProperties properties) {
36    super();
37    this.queue = new ArrayBlockingQueue(properties.getMaxSize());
38  }
39 
40  /**
41   * @see uk.org.simonsite.log4j.appender.LoggingEventQueue#poll()
42   */
43  public final LoggingEvent poll() {
44    return (LoggingEvent) this.queue.poll();
45  }
46 
47  /**
48   * @see uk.org.simonsite.log4j.appender.LoggingEventQueue#put(org.apache.log4j.spi.LoggingEvent)
49   */
50  public final void put(final LoggingEvent loggingEvent)
51      throws InterruptedException {
52    if (loggingEvent == null) {
53      return;
54    }
55    this.queue.put(loggingEvent);
56  }
57 
58  /**
59   * @see uk.org.simonsite.log4j.appender.LoggingEventQueue#take()
60   */
61  public final LoggingEvent take() throws InterruptedException {
62    return (LoggingEvent) this.queue.take();
63  }
64}

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