Repository: logging-log4j2
Updated Branches:
  refs/heads/feature/LOG4J2-1430 68e8ecb81 -> bf997fc10


Make fairness configurable in ArrayBlockingQueueFactory


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

Branch: refs/heads/feature/LOG4J2-1430
Commit: bf997fc1007e70a526bb20b6c90e63202c6f0886
Parents: 68e8ecb
Author: Matt Sicker <[email protected]>
Authored: Fri Jun 17 19:10:12 2016 -0500
Committer: Matt Sicker <[email protected]>
Committed: Fri Jun 17 19:10:12 2016 -0500

----------------------------------------------------------------------
 .../log4j/core/async/ArrayBlockingQueueFactory.java   | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/bf997fc1/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
index dcad78a..ef1f05d 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
@@ -5,6 +5,7 @@ import java.util.concurrent.BlockingQueue;
 
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 
 /**
@@ -14,13 +15,20 @@ import 
org.apache.logging.log4j.core.config.plugins.PluginFactory;
  */
 @Plugin(name = "ArrayBlockingQueue", category = Node.CATEGORY, elementType = 
BlockingQueueFactory.ELEMENT_TYPE)
 public class ArrayBlockingQueueFactory<E> implements BlockingQueueFactory<E> {
+
+    private final boolean fair;
+
+    private ArrayBlockingQueueFactory(final boolean fair) {
+        this.fair = fair;
+    }
+
     @Override
     public BlockingQueue<E> create(int capacity) {
-        return new ArrayBlockingQueue<>(capacity);
+        return new ArrayBlockingQueue<>(capacity, fair);
     }
 
     @PluginFactory
-    public static <E> ArrayBlockingQueueFactory<E> createFactory() {
-        return new ArrayBlockingQueueFactory<>();
+    public static <E> ArrayBlockingQueueFactory<E> 
createFactory(@PluginAttribute("fair") final boolean fair) {
+        return new ArrayBlockingQueueFactory<>(fair);
     }
 }

Reply via email to