You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2006/01/03 12:27:43 UTC

svn commit: r365606 - /incubator/jackrabbit/trunk/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java

Author: jukka
Date: Tue Jan  3 03:27:34 2006
New Revision: 365606

URL: http://svn.apache.org/viewcvs?rev=365606&view=rev
Log:
JCR-RMI: Make the iterator buffer size configurable. Thanks, Felix, for the idea!

Modified:
    incubator/jackrabbit/trunk/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java

Modified: incubator/jackrabbit/trunk/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java?rev=365606&r1=365605&r2=365606&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-rmi/src/java/org/apache/jackrabbit/rmi/server/ServerAdapterFactory.java Tue Jan  3 03:27:34 2006
@@ -85,16 +85,46 @@
  * This factory uses the server adapters defined in this package as
  * the default adapter implementations. Subclasses can override or extend
  * the default adapters by implementing the corresponding factory methods.
+ * <p>
+ * The <code>bufferSize</code> property can be used to configure the
+ * size of the buffer used by iterators to speed up iterator traversal
+ * over the network. 
  *
  * @author Jukka Zitting
  * @author Philipp Koch
  */
 public class ServerAdapterFactory implements RemoteAdapterFactory {
 
+    /** The default iterator buffer size. */
+    private static final int DEFAULT_BUFFER_SIZE = 100;
+
+    /** The buffer size of iterators created by this factory. */
+    private int bufferSize;
+
     /**
-     * The default maximum buffer size used for local iterator buffers.
+     * Creates a server adapter factory with the default iterator buffer size.
+     */
+    public ServerAdapterFactory() {
+        bufferSize = DEFAULT_BUFFER_SIZE;
+    }
+
+    /**
+     * Returns the iterator buffer size.
+     *
+     * @return iterator buffer size
      */
-    private static final int MAX_BUFFER_SIZE = 100;
+    public int getBufferSize() {
+        return bufferSize;
+    }
+
+    /**
+     * Sets the iterator buffer size.
+     *
+     * @param bufferSize iterator buffer size
+     */
+    public void setBufferSize(int bufferSize) {
+        this.bufferSize = bufferSize;
+    }
 
     /**
      * Creates a {@link ServerRepository ServerRepository} instance.
@@ -335,7 +365,7 @@
     public RemoteIterator getRemoteNodeIterator(NodeIterator iterator)
             throws RemoteException {
         return optimizeIterator(
-                new ServerNodeIterator(iterator, this, MAX_BUFFER_SIZE));
+                new ServerNodeIterator(iterator, this, bufferSize));
     }
 
     /**
@@ -344,7 +374,7 @@
     public RemoteIterator getRemotePropertyIterator(PropertyIterator iterator)
             throws RemoteException {
         return optimizeIterator(
-                new ServerPropertyIterator(iterator, this, MAX_BUFFER_SIZE));
+                new ServerPropertyIterator(iterator, this, bufferSize));
     }
 
     /**
@@ -353,7 +383,7 @@
     public RemoteIterator getRemoteVersionIterator(VersionIterator iterator)
             throws RemoteException {
         return optimizeIterator(
-                new ServerVersionIterator(iterator, this, MAX_BUFFER_SIZE));
+                new ServerVersionIterator(iterator, this, bufferSize));
     }
 
     /**
@@ -362,7 +392,7 @@
     public RemoteIterator getRemoteNodeTypeIterator(NodeTypeIterator iterator)
             throws RemoteException {
         return optimizeIterator(
-                new ServerNodeTypeIterator(iterator, this, MAX_BUFFER_SIZE));
+                new ServerNodeTypeIterator(iterator, this, bufferSize));
     }
 
     /**
@@ -371,7 +401,7 @@
     public RemoteIterator getRemoteRowIterator(RowIterator iterator)
             throws RemoteException {
         return optimizeIterator(
-                new ServerRowIterator(iterator, this, MAX_BUFFER_SIZE));
+                new ServerRowIterator(iterator, this, bufferSize));
     }
 
 }