commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nutty...@apache.org
Subject svn commit: r468150 - in /jakarta/commons/sandbox/pipeline/trunk/src: main/java/org/apache/commons/pipeline/driver/ main/java/org/apache/commons/pipeline/util/ test/java/org/apache/commons/pipeline/driver/
Date Thu, 26 Oct 2006 21:44:52 GMT
Author: nuttycom
Date: Thu Oct 26 14:44:52 2006
New Revision: 468150

URL: http://svn.apache.org/viewvc?view=rev&rev=468150
Log:
Replaced BoundedQueueDedicatedThreadSDF with a more general means of configuring the input
queues for DedicatedThreadStageDriver

Added:
    jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/
    jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/BlockingQueueFactory.java
  (with props)
    jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/KeyFactory.java
  (with props)
    jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/QueueFactory.java
  (with props)
Removed:
    jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/BoundedQueueDedicatedThreadSDF.java
    jakarta/commons/sandbox/pipeline/trunk/src/test/java/org/apache/commons/pipeline/driver/BoundedQueueDedicatedThreadSDFTest.java
Modified:
    jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriver.java
    jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriverFactory.java

Modified: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriver.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriver.java?view=diff&rev=468150&r1=468149&r2=468150
==============================================================================
--- jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriver.java
(original)
+++ jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriver.java
Thu Oct 26 14:44:52 2006
@@ -1,18 +1,22 @@
 /*
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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
- *
+ * 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.
- */
+ * 
+ * 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.commons.pipeline.driver;
 
@@ -38,7 +42,7 @@
 public class DedicatedThreadStageDriver extends AbstractStageDriver {
     private final Log log = LogFactory.getLog(DedicatedThreadStageDriver.class);
     
-    //wait timeout to ensure deadlock cannot occur on thread termination
+    //poll timeout to ensure deadlock cannot occur on thread termination
     private long timeout;
     
     //flag describing whether or not the driver is fault tolerant

Modified: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriverFactory.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriverFactory.java?view=diff&rev=468150&r1=468149&r2=468150
==============================================================================
--- jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriverFactory.java
(original)
+++ jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/driver/DedicatedThreadStageDriverFactory.java
Thu Oct 26 14:44:52 2006
@@ -1,18 +1,22 @@
 /*
- * Copyright 2005 The Apache Software Foundation
- *
- * Licensed 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
- *
+ * 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.
- */
+ * 
+ * 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.commons.pipeline.driver;
 
@@ -22,6 +26,7 @@
 import org.apache.commons.pipeline.StageContext;
 import org.apache.commons.pipeline.StageDriver;
 import org.apache.commons.pipeline.StageDriverFactory;
+import org.apache.commons.pipeline.util.BlockingQueueFactory;
 
 /**
  * This factory is used to create DedicatedThreadStageDriver instances configured
@@ -43,42 +48,20 @@
      */
     public StageDriver createStageDriver(Stage stage, StageContext context) {
         try {
-            return new DedicatedThreadStageDriver(stage, context, queueClass.newInstance(),
timeout, faultTolerance);
+            return new DedicatedThreadStageDriver(stage, context, queueFactory.createQueue(),
timeout, faultTolerance);
         } catch (Exception e) {
             throw new IllegalStateException("Instantiation of driver failed due to illegal
factory state.", e);
         }
     }
-    
-    /**
-     * Holds value of property queueClass.
-     */
-    private Class<? extends BlockingQueue> queueClass = LinkedBlockingQueue.class;
-    
-    /**
-     * Getter for property queueClass.
-     * @return Value of property queueClass.
-     */
-    public Class<? extends BlockingQueue> getQueueClass() {
-        return this.queueClass;
-    }
-    
-    /**
-     * Setter for property queueClass.
-     * @param queueClass New value of property queueClass.
-     */
-    public void setQueueClass(Class<? extends BlockingQueue> queueClass) {
-        if (queueClass == null) throw new IllegalArgumentException("Queue class may not be
null.");
-        this.queueClass = queueClass;
-    }
-    
+        
     /**
      * Holds value of property timeout.
      */
     private long timeout = 500;
     
     /**
-     * Timeout for wait to ensure deadlock cannot occur on thread termination.
-     * Default is 500
+     * Timeout (in milliseconds) for queue polling to ensure deadlock cannot 
+     * occur on thread termination. Default value is 500 ms.
      * @return Value of property timeout.
      */
     public long getTimeout() {
@@ -124,5 +107,25 @@
     public void setFaultToleranceLevel(String level) {
         this.faultTolerance = FaultTolerance.valueOf(level);
     }
-    
+
+    /**
+     * Holds value of property queueFactory.
+     */
+    private BlockingQueueFactory<?> queueFactory = new BlockingQueueFactory.LinkedBlockingQueueFactory();
+
+    /**
+     * Getter for property queueFactory.
+     * @return Value of property queueFactory.
+     */
+    public BlockingQueueFactory<?> getQueueFactory() {
+        return this.queueFactory;
+    }
+
+    /**
+     * Setter for property queueFactory.
+     * @param queueFactory New value of property queueFactory.
+     */
+    public void setQueueFactory(BlockingQueueFactory<?> queueFactory) {
+        this.queueFactory = queueFactory;
+    }    
 }

Added: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/BlockingQueueFactory.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/BlockingQueueFactory.java?view=auto&rev=468150
==============================================================================
--- jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/BlockingQueueFactory.java
(added)
+++ jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/BlockingQueueFactory.java
Thu Oct 26 14:44:52 2006
@@ -0,0 +1,233 @@
+/*
+ * 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.commons.pipeline.util;
+
+import java.util.Comparator;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.DelayQueue;
+import java.util.concurrent.Delayed;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.PriorityBlockingQueue;
+import java.util.concurrent.SynchronousQueue;
+
+/**
+ * Many {@link StageDriver} implementations require for one or more queues
+ * to be created. This interface provides a consistent API for factories used
+ * to create such queues and supplies a couple of default implementations.
+ */
+public interface BlockingQueueFactory<T> extends QueueFactory<T> {
+    public BlockingQueue<T> createQueue();
+    
+    public static class ArrayBlockingQueueFactory<T> extends AbstractQueueFactory<T>
implements BlockingQueueFactory<T> {
+        public ArrayBlockingQueue<T> createQueue() {
+            if (this.initialContents == null || this.initialContents.isEmpty()) {
+                return new ArrayBlockingQueue(this.capacity, this.fair);
+            } else {
+                if (this.initialContents.size() > this.capacity) {
+                    throw new IllegalStateException("The number of elements in the initial
contents of the queue to be created exceeds its capacity.");
+                } else {
+                    ArrayBlockingQueue<T> queue = new ArrayBlockingQueue<T>(this.capacity,
this.fair);
+                    queue.addAll(this.initialContents);
+                    return queue;
+                }
+            }
+        }
+        
+        /**
+         * Holds value of property capacity.
+         */
+        private int capacity = Integer.MAX_VALUE;
+        
+        /**
+         * Getter for property capacity.
+         * @return Value of property capacity.
+         */
+        public void setCapacity(int capacity) {
+            this.capacity = capacity;
+        }
+        
+        /**
+         * Setter for property capacity.
+         * @param capacity New value of property capacity.
+         */
+        public int getCapacity() {
+            return this.capacity;
+        }
+        
+        /**
+         * Holds value of property fair.
+         */
+        private boolean fair = false;
+        
+        /**
+         * Getter for property fair.
+         * @return Value of property fair.
+         */
+        public boolean isFair() {
+            return this.fair;
+        }
+        
+        /**
+         * Setter for property fair.
+         * @param fair New value of property fair.
+         */
+        public void setFair(boolean fair) {
+            this.fair = fair;
+        }
+    }
+    
+    public static class DelayQueueFactoryL<T extends Delayed> extends AbstractQueueFactory<T>
 implements BlockingQueueFactory<T> {
+        public DelayQueue<T> createQueue() {
+            if (this.initialContents == null || this.initialContents.isEmpty()) {
+                return new DelayQueue<T>();
+            } else {
+                return new DelayQueue<T>(this.initialContents);
+            }
+        }
+    }
+    
+    public static class LinkedBlockingQueueFactory<T> extends AbstractQueueFactory<T>
 implements BlockingQueueFactory<T> {
+        
+        public LinkedBlockingQueue<T> createQueue() {
+            if (this.initialContents == null || this.initialContents.isEmpty()) {
+                return new LinkedBlockingQueue<T>(capacity);
+            } else {
+                if (this.initialContents.size() > this.capacity) {
+                    throw new IllegalStateException("The number of elements in the initial
contents of the queue to be created exceeds its capacity.");
+                } else {
+                    LinkedBlockingQueue<T> queue = new LinkedBlockingQueue<T>(capacity);
+                    queue.addAll(this.initialContents);
+                    return queue;
+                }
+            }
+        }
+        
+        /**
+         * Holds value of property capacity.
+         */
+        private int capacity = Integer.MAX_VALUE;
+        
+        /**
+         * Getter for property capacity.
+         * @return Value of property capacity.
+         */
+        public void setCapacity(int capacity) {
+            this.capacity = capacity;
+        }
+        
+        /**
+         * Setter for property capacity.
+         * @param capacity New value of property capacity.
+         */
+        public int getCapacity() {
+            return this.capacity;
+        }
+    }
+    
+    public static class PriorityBlockingQueueFactory<T> extends AbstractQueueFactory<T>
implements BlockingQueueFactory<T> {
+        public PriorityBlockingQueue<T> createQueue() {
+            if (comparator == null) {
+                if (this.initialContents == null || this.initialContents.isEmpty()) {
+                    return new PriorityBlockingQueue<T>(initialCapacity);
+                } else {
+                    return new PriorityBlockingQueue<T>(this.initialContents);
+                }
+            } else {
+                PriorityBlockingQueue queue = new PriorityBlockingQueue<T>(initialCapacity,
comparator);
+                if ( !(this.initialContents == null || this.initialContents.isEmpty()) )
{
+                    queue.addAll(this.initialContents);
+                }
+                return queue;
+            }
+        }
+        
+        /**
+         * Holds value of property initialCapacity. Default value is the same
+         * as that for java.util.concurrent.PriorityBlockingQueue.
+         */
+        private int initialCapacity = 11;
+        
+        /**
+         * Getter for property initialCapacity.
+         * @return Value of property initialCapacity.
+         */
+        public int getInitialCapacity() {
+            return this.initialCapacity;
+        }
+        
+        /**
+         * Setter for property initialCapacity.
+         * @param initialCapacity New value of property initialCapacity.
+         */
+        public void setInitialCapacity(int initialCapacity) {
+            this.initialCapacity = initialCapacity;
+        }
+        
+        /**
+         * Holds value of property comparator.
+         */
+        private Comparator<? super T> comparator;
+        
+        /**
+         * Getter for property comparator.
+         * @return Value of property comparator.
+         */
+        public Comparator<? super T> getComparator() {
+            return this.comparator;
+        }
+        
+        /**
+         * Setter for property comparator.
+         * @param comparator New value of property comparator.
+         */
+        public void setComparator(Comparator<? super T> comparator) {
+            this.comparator = comparator;
+        }
+        
+    }
+    
+    public static class SynchronousQueueFactory<T> implements BlockingQueueFactory<T>
{
+        public SynchronousQueue<T> createQueue() {
+            return new SynchronousQueue<T>(this.fair);
+        }
+        
+        /**
+         * Holds value of property fair.
+         */
+        private boolean fair = false;
+        
+        /**
+         * Getter for property fair.
+         * @return Value of property fair.
+         */
+        public boolean isFair() {
+            return this.fair;
+        }
+        
+        /**
+         * Setter for property fair.
+         * @param fair New value of property fair.
+         */
+        public void setFair(boolean fair) {
+            this.fair = fair;
+        }
+    }
+}

Propchange: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/BlockingQueueFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/KeyFactory.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/KeyFactory.java?view=auto&rev=468150
==============================================================================
--- jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/KeyFactory.java
(added)
+++ jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/KeyFactory.java
Thu Oct 26 14:44:52 2006
@@ -0,0 +1,46 @@
+/*
+ * 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.commons.pipeline.util;
+
+/**
+ * An implementation of this interface should define a strategy that will
+ * allow a unique identifier to be generated for an object. This identifier
+ * may be mutually comparable with identifiers generated for a different 
+ * object type; it is used to permit signalling between drivers in
+ * separate pipeline branches.
+ *
+ *
+ */
+public interface KeyFactory<T,K> {
+    /**
+     * Generates a unique identifier of type K for an object of type T.
+     * @return the newly created identifier
+     */ 
+    public K generateKey(T source);
+    
+    /**
+     * Trivial key factory that produces the object's hash code as a key.
+     */
+    public static class HashKeyFactory implements KeyFactory<Object,Integer> {
+        public Integer generateKey(Object source) {
+            return source.hashCode();
+        }        
+    }
+}

Propchange: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/KeyFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/QueueFactory.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/QueueFactory.java?view=auto&rev=468150
==============================================================================
--- jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/QueueFactory.java
(added)
+++ jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/QueueFactory.java
Thu Oct 26 14:44:52 2006
@@ -0,0 +1,141 @@
+/*
+ * 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.commons.pipeline.util;
+
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.PriorityQueue;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * Many {@link StageDriver} implementations require for one or more queues
+ * to be created. This interface provides a consistent API for factories used
+ * to create such queues and supplies a couple of default implementations.
+ */
+public interface QueueFactory<T> {
+    /**
+     * Create a new queue.
+     */
+    public Queue<T> createQueue();
+    
+    public static abstract class AbstractQueueFactory<T> {
+        /**
+         * Holds value of property initialContents.
+         */
+        protected Collection<? extends T> initialContents;
+        
+        /**
+         * Getter for property initialContents.
+         * @return Value of property initialContents.
+         */
+        public Collection<? extends T> getInitialContents() {
+            return this.initialContents;
+        }
+        
+        /**
+         * Setter for property initialContents.
+         * @param initialContents New value of property initialContents.
+         */
+        public void setInitialContents(Collection<? extends T> initialContents) {
+            this.initialContents = initialContents;
+        }
+    }
+    
+    public static class LinkedListFactory<T> extends AbstractQueueFactory<T>
implements QueueFactory<T> {
+        public LinkedList<T> createQueue() {
+            if (this.initialContents == null || this.initialContents.isEmpty()) {
+                return new LinkedList<T>();
+            } else {
+                return new LinkedList<T>(this.initialContents);
+            }
+        }
+    }
+    
+    public static class ConcurrentLinkedQueueFactory<T> extends AbstractQueueFactory<T>
implements QueueFactory<T> {
+        public ConcurrentLinkedQueue<T> createQueue() {
+            if (this.initialContents == null || this.initialContents.isEmpty()) {
+                return new ConcurrentLinkedQueue<T>();
+            } else {
+                return new ConcurrentLinkedQueue<T>(this.initialContents);
+            }
+        }
+    }
+    
+    public static class PriorityQueueFactory<T> extends AbstractQueueFactory<T>
implements QueueFactory<T> {
+        public PriorityQueue<T> createQueue() {
+            if (comparator == null) {
+                if (this.initialContents == null || this.initialContents.isEmpty()) {
+                    return new PriorityQueue<T>(initialCapacity);
+                } else {
+                    return new PriorityQueue(this.initialContents);
+                }
+            } else {
+                PriorityQueue queue = new PriorityQueue<T>(initialCapacity, comparator);
+                queue.addAll(this.initialContents);
+                return queue;
+            }
+        }
+        
+        /**
+         * Holds value of property initialCapacity. Default value is the same
+         * as that for java.util.concurrent.PriorityQueue.
+         */
+        private int initialCapacity = 11;
+        
+        /**
+         * Getter for property initialCapacity.
+         * @return Value of property initialCapacity.
+         */
+        public int getInitialCapacity() {
+            return this.initialCapacity;
+        }
+        
+        /**
+         * Setter for property initialCapacity.
+         * @param initialCapacity New value of property initialCapacity.
+         */
+        public void setInitialCapacity(int initialCapacity) {
+            this.initialCapacity = initialCapacity;
+        }
+        
+        /**
+         * Holds value of property comparator.
+         */
+        private Comparator<? super T> comparator;
+        
+        /**
+         * Getter for property comparator.
+         * @return Value of property comparator.
+         */
+        public Comparator<? super T> getComparator() {
+            return this.comparator;
+        }
+        
+        /**
+         * Setter for property comparator.
+         * @param comparator New value of property comparator.
+         */
+        public void setComparator(Comparator<? super T> comparator) {
+            this.comparator = comparator;
+        }
+    }
+}

Propchange: jakarta/commons/sandbox/pipeline/trunk/src/main/java/org/apache/commons/pipeline/util/QueueFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message