[infinispan-commits] Infinispan SVN: r2115 - in trunk/server: core/src/main/scala/org/infinispan/server/core/transport and 8 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Wed Jul 28 09:03:04 EDT 2010


Author: galder.zamarreno at jboss.com
Date: 2010-07-28 09:03:01 -0400 (Wed, 28 Jul 2010)
New Revision: 2115

Modified:
   trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolServer.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/CacheValue.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/Logging.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/Main.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/Operation.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/ProtocolServer.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/VersionGenerator.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Channel.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffers.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelFuture.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelHandlerContext.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Decoder.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Encoder.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ExceptionEvent.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/NoState.java
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Transport.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBuffersAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelFutureAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelHandlerContextAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/DecoderAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/EncoderAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ExceptionEventAdapter.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/IdleStateHandlerProvider.scala
   trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/NettyTransport.scala
   trunk/server/core/src/test/scala/org/infinispan/server/core/AbstractMarshallingTest.scala
   trunk/server/core/src/test/scala/org/infinispan/server/core/MarshallingTest.scala
   trunk/server/core/src/test/scala/org/infinispan/server/core/VariableLengthTest.scala
   trunk/server/core/src/test/scala/org/infinispan/server/core/VersionGeneratorTest.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/AbstractVersionedDecoder.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/CacheKey.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodDecoder.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodOperation.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodServer.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/OperationStatus.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/Response.scala
   trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/TopologyView.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodConcurrentTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodFunctionalTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodIdleTimeoutTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodMarshallingTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodProxyTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodReplicationTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodShutdownTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodSingleNodeTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodStatsTest.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala
   trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodTestingUtil.scala
   trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedDecoder.scala
   trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedOperation.scala
   trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedServer.scala
   trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedValue.scala
   trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/TextProtocolUtil.scala
   trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala
   trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedReplicationTest.scala
   trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedShutdownTest.scala
   trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedSingleNodeTest.scala
   trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedStatsTest.scala
   trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/test/MemcachedTestingUtil.scala
Log:
Javadocs, comments...

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolDecoder.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -2,10 +2,7 @@
 
 import org.infinispan.Cache
 import Operation._
-import scala.collection.mutable.HashMap
-import scala.collection.immutable
 import java.util.concurrent.atomic.AtomicInteger
-import scala.collection.JavaConversions._
 import java.util.concurrent.TimeUnit
 import org.infinispan.stats.Stats
 import org.infinispan.server.core.VersionGenerator._
@@ -15,7 +12,8 @@
 import org.infinispan.util.Util
 
 /**
- * // TODO: Document this
+ * Common abstract decoder for Memcached and Hot Rod protocols.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolServer.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolServer.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/AbstractProtocolServer.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -11,7 +11,8 @@
 import org.infinispan.util.{TypedProperties, Util}
 
 /**
- * // TODO: Document this
+ * A common protocol server dealing with common property parameter validation and assignment and transport lifecycle.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
@@ -29,6 +30,7 @@
       val toStart = typedProps.getBooleanProperty("enabled", true)
 
       if (toStart) {
+         // By doing parameter validation here, both programmatic and command line clients benefit from it.
          this.host = typedProps.getProperty(PROP_KEY_HOST, HOST_DEFAULT)
          this.port = typedProps.getIntProperty(PROP_KEY_PORT, defaultPort)
          this.masterThreads = typedProps.getIntProperty(PROP_KEY_MASTER_THREADS, MASTER_THREADS_DEFAULT)

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/CacheValue.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/CacheValue.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/CacheValue.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -6,7 +6,10 @@
 import java.util.Arrays
 
 /**
- * // TODO: Document this
+ * Represents the value part of a key/value pair stored in a protocol cache. With each value, a version is stored
+ * which allows for conditional operations to be executed remotely in a efficient way. For more detailed info on
+ * conditional operations, check <a href="http://community.jboss.org/docs/DOC-15604">this document</a>.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
@@ -47,7 +50,7 @@
 
       override def readObject(input: ObjectInput): AnyRef = {
          val data = new Array[Byte](input.readInt())
-         input.readFully(data)
+         input.readFully(data) // Must be readFully, otherwise partial arrays can be read under load!
          val version = input.readLong
          new CacheValue(data, version)
       }

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/Logging.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/Logging.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/Logging.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -3,27 +3,22 @@
 import org.infinispan.util.logging.{LogFactory, Log}
 
 /**
- * // TODO: Document this
+ * A logging facade for scala code.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
 trait Logging {
    private lazy val log: Log = LogFactory.getLog(getClass)
 
-//   def info(msg: => String) = if (log.isInfoEnabled) log.info(msg, null)
-
    // params.map(_.asInstanceOf[AnyRef]) => returns a Seq[AnyRef]
    // the ': _*' part tells the compiler to pass it as varargs
    def info(msg: => String, params: Any*) = log.info(msg, params.map(_.asInstanceOf[AnyRef]) : _*)
 
-//   def debug(msg: => String) = log.debug(msg, null)
-
    def isDebugEnabled = log.isDebugEnabled
 
    def debug(msg: => String, params: Any*) = log.debug(msg, params.map(_.asInstanceOf[AnyRef]) : _*)
 
-//   def trace(msg: => String) = log.trace(msg, null)
-
    def isTraceEnabled = log.isTraceEnabled
 
    def trace(msg: => String, params: Any*) = log.trace(msg, params.map(_.asInstanceOf[AnyRef]) : _*)
@@ -36,12 +31,4 @@
 
    def error(msg: => String, t: Throwable) = log.error(msg, t, null)
 
-   // TODO: Sort out the other error methods that take both Throwable and varargs
-
-//   def error(msg: => String, params: Any*) =
-//      if (log.isErrorEnabled) log.error(msg, params.map(_.asInstanceOf[AnyRef]) : _*)
-//
-//   def error(msg: => String, t: Throwable, params: Any*) =
-//      if (log.isErrorEnabled) log.error(msg, t, params.map(_.asInstanceOf[AnyRef]) : _*)
-
 }
\ No newline at end of file

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/Main.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/Main.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/Main.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -225,6 +225,7 @@
 
          var f = Executors.newSingleThreadExecutor(tf).submit(new Callable[Void] {
             override def call = {
+               // Stop server first so that no new requests are allowed
                server.stop
                cacheManager.stop
                null

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/Operation.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/Operation.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/Operation.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,7 +1,8 @@
 package org.infinispan.server.core
 
 /**
- * // TODO: Document this
+ * Common set of operations for Memcached and Hot Rod protocols.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/ProtocolServer.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/ProtocolServer.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/ProtocolServer.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -25,7 +25,6 @@
     */
    def start(propertiesFileName: String, cacheManager: EmbeddedCacheManager)
 
-
    /**
     *  Stops the server
     */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/VersionGenerator.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/VersionGenerator.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/VersionGenerator.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -25,6 +25,7 @@
       if (isClustered && versionPrefix.get == 0)
          throw new IllegalStateException("If clustered, Version prefix cannot be 0. Rank calculator probably not in use.")
       val counter = versionCounter.incrementAndGet
+      // Version counter occupies the least significant 4 bytes of the version
       if (isClustered) versionPrefix.get | counter else counter
    }
 
@@ -49,7 +50,10 @@
 
       private[core] def calculateRank(address: Address, members: Iterable[Address], viewId: Long): Long = {
          val rank: Long = findAddressRank(address, members, 1)
+         // Version is composed of: <view id (2 bytes)><rank (2 bytes)><version counter (4 bytes)>
+         // View id and rank form the prefix which is updated on a view change.
          val newVersionPrefix = (viewId << 48) | (rank << 32)
+         // TODO: Deal with compareAndSet failures?
          versionPrefix.compareAndSet(versionPrefix.get, newVersionPrefix)
          versionPrefix.get
       }

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Channel.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Channel.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Channel.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,11 +1,15 @@
 package org.infinispan.server.core.transport
 
 /**
- * // TODO: Document this
+ * A transport channel.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
 abstract class Channel {
+
    def write(message: Any): ChannelFuture
+
    def disconnect: ChannelFuture
+
 }
\ No newline at end of file

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffer.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,47 +1,146 @@
 package org.infinispan.server.core.transport
 
 /**
- * // TODO: Document this
+ * A channel buffer to which data can be written and from which data can be read.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
 abstract class ChannelBuffer {
+
+   /**
+    * Read a byte.
+    */
    def readByte: Byte
+
+   /**
+    * Read bytes from the buffer into the destination byte array.
+    *
+    * @param dst the destination array byte to which to write read data.
+    * @param dstIndex starting index in destination array where to write data.
+    * @length number of bytes to read from the buffer. The destination array must have space to hold all these bytes.
+    */
    def readBytes(dst: Array[Byte], dstIndex: Int, length: Int)
+
+   /**
+    * Read an unsigned Byte from the buffer.
+    *
+    * @return a Short containing the unsigned Byte that can accommodate top end values that a signed Byte cannot do.
+    */
    def readUnsignedByte: Short
+
+   /**
+    * Read an unsigned, variable length, Int from the buffer.
+    */
    def readUnsignedInt: Int
+
+   /**
+    * Read an unsigned, variable length, Long from the buffer.
+    */
    def readUnsignedLong: Long
+
+   /**
+    * Read an unsigned Short from the buffer.
+    *
+    * @return an Int containing the unsigned Short that can accommodate top end values that a signed Short cannot do.
+    */
    def readUnsignedShort: Int
+
+   /**
+    * Returns a ChannelBuffer containing a number of bytes read from the current buffer.
+    */
    def readBytes(length: Int): ChannelBuffer
+
+   /**
+    * Returns the reader index.
+    */
    def readerIndex: Int
+
+   /**
+    * Read bytes from the buffer into the destination byte array. The amount of bytes to read are defined
+    * by the array's length.
+    */
    def readBytes(dst: Array[Byte]): Unit
+
+   /**
+    * Reads a ranged number of bytes into a byte array. The number of bytes to be read is defined by an unsigned,
+    * variable length, integer that's read from the buffer.
+    */
    def readRangedBytes: Array[Byte]
+
+   /**
+    * Returns the amount of readable bytes in the buffer.
+    */
    def readableBytes: Int
 
    /**
-    * Reads length of String and then returns an UTF-8 formatted String of such length.
+    * Reads the length of String and then returns an UTF-8 formatted String of such length.
     */
    def readString: String
+
+   /**
+    * Read a Long from the buffer.
+    */
    def readLong: Long
+
+   /**
+    * Read an Int from the buffer.
+    */
    def readInt: Int
+
+   /**
+    * Write a Byte to the buffer.
+    */
    def writeByte(value: Byte)
+
+   /**
+    * Write a Byte array to the buffer.
+    */
    def writeBytes(src: Array[Byte])
 
    /**
-    * Writes the length of the byte array and transfers the specified source array's data to this buffer
-   */
+    * Writes the length of the byte array as an unsigned integer and and then transfers the specified source array's
+    * data to this buffer.
+    */
    def writeRangedBytes(src: Array[Byte])
+
+   /**
+    * Writes an Int as an unsigned, variable length, integer to the buffer.
+    */
    def writeUnsignedInt(i: Int)
+
+   /**
+    * Writes a Long as an unsigned, variable length, long to the buffer.
+    */
    def writeUnsignedLong(l: Long)
+
+   /**
+    * Writes an unsigned short to the buffer.
+    */
    def writeUnsignedShort(i: Int)
+
+   /**
+    * Returns the writer index.
+    */
    def writerIndex: Int
 
    /**
     * Writes the length of the String followed by the String itself. This methods expects String not to be null.
     */
    def writeString(msg: String)
+
+   /**
+    * Writes a Long to the buffer.
+    */
    def writeLong(l: Long)
+
+   /**
+    * Writes an Int to the buffer.
+    */
    def writeInt(i: Int)
 
+   /**
+    * Retrieve the underlying buffer.
+    */
    def getUnderlyingChannelBuffer: AnyRef
 }
\ No newline at end of file

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffers.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffers.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelBuffers.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -3,7 +3,8 @@
 import netty.ChannelBuffersAdapter
 
 /**
- * // TODO: Document this
+ * A factory class used to create buffer instances.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelFuture.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelFuture.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelFuture.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -3,7 +3,8 @@
 import java.util.concurrent.TimeUnit
 
 /**
- * // TODO: Document this
+ * A channel future representing the result of a channel operation.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelHandlerContext.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelHandlerContext.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ChannelHandlerContext.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,7 +1,8 @@
 package org.infinispan.server.core.transport
 
 /**
- * // TODO: Document this
+ * A channel handler context.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Decoder.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Decoder.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Decoder.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,15 +1,25 @@
 package org.infinispan.server.core.transport
 
 /**
- * // TODO: Document this
+ * A protocol decoder.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
 abstract class Decoder {
 
+   /**
+    * Decodes the received packets so far into a frame.
+    */
    def decode(ctx: ChannelHandlerContext, buffer: ChannelBuffer): AnyRef
-   
+
+   /**
+    * Invoked when an exception was raised by an I/O thread or a channel handler.
+    */
    def exceptionCaught(ctx: ChannelHandlerContext, e: ExceptionEvent)
 
+   /**
+    * Decodes the received data so far into a frame when the channel is disconnected.
+    */
    def decodeLast(ctx: ChannelHandlerContext, buffer: ChannelBuffer): AnyRef
 }
\ No newline at end of file

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Encoder.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Encoder.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Encoder.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,10 +1,17 @@
 package org.infinispan.server.core.transport
 
 /**
- * // TODO: Document this
+ * A protocol encoder. Normally, an encoder is used to write headers shared by all protocol operations or to delay
+ * writing the protocol message so that all writing is done in a central place.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
 abstract class Encoder {
+
+   /**
+    * Transforms the specified message into another message and return the transformed message.
+    * Note that you can not return {@code null}. You must return something, at least an empty channel buffer.
+    */
    def encode(ctx: ChannelHandlerContext, channel: Channel, msg: AnyRef): AnyRef
 }
\ No newline at end of file

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ExceptionEvent.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ExceptionEvent.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/ExceptionEvent.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,7 +1,8 @@
 package org.infinispan.server.core.transport
 
 /**
- * // TODO: Document this
+ * An exception event.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/NoState.java
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/NoState.java	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/NoState.java	2010-07-28 13:03:01 UTC (rev 2115)
@@ -24,7 +24,7 @@
 package org.infinispan.server.core.transport;
 
 /**
- * // TODO: Document this
+ * A simple enumeration marker that signals the lack of state choices.
  *
  * @author Galder Zamarreño
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Transport.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Transport.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/Transport.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -3,7 +3,8 @@
 import java.net.SocketAddress
 
 /**
- * // TODO: Document this
+ * A transport.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -4,7 +4,8 @@
 import org.infinispan.server.core.transport.{ChannelBuffer, ChannelFuture, Channel}
 
 /**
- * // TODO: Document this
+ * Transport channel implementation for Netty transport.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBufferAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -5,7 +5,8 @@
 import org.infinispan.server.core.Logging
 
 /**
- * // TODO: Document this
+ * Channel buffer adapter for a Netty buffer.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
@@ -49,9 +50,6 @@
    override def writeByte(value: Byte) = buffer.writeByte(value)
    override def writeBytes(src: Array[Byte]) = buffer.writeBytes(src)
 
-   /**
-    * Writes the length of the byte array and transfers the specified source array's data to this buffer
-   */
    override def writeRangedBytes(src: Array[Byte]) {
       writeUnsignedInt(src.length)
       writeBytes(src)
@@ -61,9 +59,6 @@
    override def writeUnsignedShort(i: Int) = buffer.writeShort(i)
    override def writerIndex: Int = buffer.writerIndex
 
-   /**
-    * Writes the length of the String followed by the String itself. This methods expects String not to be null.
-    */
    override def writeString(msg: String) = writeRangedBytes(msg.getBytes())
    override def writeLong(l: Long) = buffer.writeLong(l)
    override def writeInt(i: Int) = buffer.writeInt(i)

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBuffersAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBuffersAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelBuffersAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -4,7 +4,8 @@
 import org.jboss.netty.buffer.{ChannelBuffers => NettyChannelBuffers}
 
 /**
- * // TODO: Document this
+ * A channel buffers factory adapter for Netty buffers.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelFutureAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelFutureAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelFutureAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -5,7 +5,8 @@
 import java.util.concurrent.TimeUnit
 
 /**
- * // TODO: Document this
+ * A channel future adapter for Netty channel futures.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelHandlerContextAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelHandlerContextAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ChannelHandlerContextAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,10 +1,11 @@
 package org.infinispan.server.core.transport.netty
 
 import org.jboss.netty.channel.{ChannelHandlerContext => NettyChannelHandlerContext}
-import org.infinispan.server.core.transport.{ChannelBuffers, Channel, ChannelHandlerContext}
+import org.infinispan.server.core.transport.{Channel, ChannelHandlerContext}
 
 /**
- * // TODO: Document this
+ * A channel handler context adapter for Netty.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/DecoderAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/DecoderAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/DecoderAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -6,7 +6,8 @@
 import org.jboss.netty.channel.{ChannelStateEvent, ExceptionEvent => NettyExceptionEvent, ChannelHandlerContext => NettyChannelHandlerContext, Channel => NettyChannel}
 
 /**
- * // TODO: Document this
+ * A protocol decoder for Netty.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/EncoderAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/EncoderAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/EncoderAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,13 +1,13 @@
 package org.infinispan.server.core.transport.netty
 
-import org.jboss.netty.channel.ChannelHandler
 import org.jboss.netty.handler.codec.oneone.OneToOneEncoder
 import org.jboss.netty.channel.{ChannelHandlerContext => NettyChannelHandlerContext}
 import org.jboss.netty.channel.{Channel => NettyChannel}
 import org.infinispan.server.core.transport.{ChannelBuffer, Encoder}
 
 /**
- * // TODO: Document this
+ * An encoder adapter for Netty.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
@@ -16,6 +16,7 @@
    protected override def encode(nCtx: NettyChannelHandlerContext, ch: NettyChannel, msg: AnyRef): AnyRef = {
       var ret = encoder.encode(new ChannelHandlerContextAdapter(nCtx), new ChannelAdapter(ch), msg);
       ret = ret match {
+         // In this case, Netty mandates that its own ChannelBuffer is sent down, so take it from the Channel wrapper. 
          case cb: ChannelBuffer => cb.getUnderlyingChannelBuffer
          case _ => ret
       }

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ExceptionEventAdapter.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ExceptionEventAdapter.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/ExceptionEventAdapter.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -4,7 +4,8 @@
 import org.jboss.netty.channel.{ExceptionEvent => NettyExceptionEvent}
 
 /**
- * // TODO: Document this
+ * An exception event adapter for Netty.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/IdleStateHandlerProvider.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/IdleStateHandlerProvider.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/IdleStateHandlerProvider.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -2,8 +2,10 @@
 
 import org.jboss.netty.handler.timeout.{IdleStateEvent, IdleStateAwareChannelHandler}
 import org.jboss.netty.channel.{ChannelHandlerContext => NettyChannelHandlerContext}
+
 /**
- * // TODO: Document this
+ * A Netty channel handler that allows idle channels to be closed.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/NettyTransport.scala
===================================================================
--- trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/NettyTransport.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/main/scala/org/infinispan/server/core/transport/netty/NettyTransport.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -12,7 +12,8 @@
 import org.jboss.netty.util.{ThreadNameDeterminer, ThreadRenamingRunnable}
 
 /**
- * // TODO: Document this
+ * A Netty based transport.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */
@@ -62,6 +63,7 @@
                else if (proposedThreadName contains "server boss") "ServerMaster-"
                else if (proposedThreadName contains "client worker") "ClientWorker-"
                else "ClientMaster-"
+            // Set thread name to be: <prefix><ServerWorker-|ServerMaster-|ClientWorker-|ClientMaster-><number>
             val name = threadNamePrefix + typeInFix + proposedThreadName.substring(index + 1, proposedThreadName.length)
             if (isTraceEnabled)
                trace("Thread name will be {0}, with current thread name being {1} and proposed name being '{2}'",
@@ -71,11 +73,11 @@
       })
       val bootstrap = new ServerBootstrap(factory)
       bootstrap.setPipelineFactory(pipeline)
-      bootstrap.setOption("child.tcpNoDelay", tcpNoDelay)
+      bootstrap.setOption("child.tcpNoDelay", tcpNoDelay) // Sets server side tcpNoDelay
       if (sendBufSize > 0)
-         bootstrap.setOption("child.sendBufferSize", sendBufSize)
+         bootstrap.setOption("child.sendBufferSize", sendBufSize) // Sets server side send buffer
       if (recvBufSize > 0)
-         bootstrap.setOption("receiveBufferSize", recvBufSize)
+         bootstrap.setOption("receiveBufferSize", recvBufSize) // Sets server side receive buffer
 
       val ch = bootstrap.bind(address)
       serverChannels.add(ch)

Modified: trunk/server/core/src/test/scala/org/infinispan/server/core/AbstractMarshallingTest.scala
===================================================================
--- trunk/server/core/src/test/scala/org/infinispan/server/core/AbstractMarshallingTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/test/scala/org/infinispan/server/core/AbstractMarshallingTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -7,7 +7,8 @@
 import java.io.{ObjectOutputStream, ByteArrayOutputStream}
 
 /**
- * // TODO: Document this
+ * Abstract class to help marshalling tests in different server modules.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/test/scala/org/infinispan/server/core/MarshallingTest.scala
===================================================================
--- trunk/server/core/src/test/scala/org/infinispan/server/core/MarshallingTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/test/scala/org/infinispan/server/core/MarshallingTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -4,7 +4,8 @@
 import org.testng.Assert._
 
 /**
- * // TODO: Document this
+ * Marshalling test for server core classes.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/test/scala/org/infinispan/server/core/VariableLengthTest.scala
===================================================================
--- trunk/server/core/src/test/scala/org/infinispan/server/core/VariableLengthTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/test/scala/org/infinispan/server/core/VariableLengthTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -6,11 +6,8 @@
 import org.infinispan.server.core.transport.netty.{ChannelBufferAdapter}
 
 /**
- * Appears that optional parameters in annotations result in compiler errors:
- * https://lampsvn.epfl.ch/trac/scala/ticket/1810
+ * Variable length number test.
  *
- * Keep an eye on that for @Test and @AfterClass annotations
- *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/core/src/test/scala/org/infinispan/server/core/VersionGeneratorTest.scala
===================================================================
--- trunk/server/core/src/test/scala/org/infinispan/server/core/VersionGeneratorTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/core/src/test/scala/org/infinispan/server/core/VersionGeneratorTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -6,7 +6,8 @@
 import org.infinispan.server.core.VersionGenerator._
 
 /**
- * // TODO: Document this
+ * Version generator test
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/AbstractVersionedDecoder.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/AbstractVersionedDecoder.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/AbstractVersionedDecoder.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -8,33 +8,70 @@
 import org.infinispan.util.ByteArrayKey
 
 /**
- * // TODO: Document this
+ * This class represents the work to be done by a decoder of a particular Hot Rod protocol version.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */   
 abstract class AbstractVersionedDecoder {
 
+   /**
+    * Having read the message's Id, read the rest of Hot Rod header from the given buffer and return it.
+    */
    def readHeader(buffer: ChannelBuffer, messageId: Long): HotRodHeader
 
+   /**
+    * Read the key to operate on from the message.
+    */
    def readKey(buffer: ChannelBuffer): ByteArrayKey
 
+   /**
+    * Read the parameters of the operation, if present.
+    */
    def readParameters(header: HotRodHeader, buffer: ChannelBuffer): Option[RequestParameters]
 
+   /**
+    * Read the value part of the operation.
+    */
    def createValue(params: RequestParameters, nextVersion: Long): CacheValue
 
+   /**
+    * Create a successful response.
+    */
    def createSuccessResponse(header: HotRodHeader, prev: CacheValue): AnyRef
 
+   /**
+    * Create a response indicating the the operation could not be executed.
+    */
    def createNotExecutedResponse(header: HotRodHeader, prev: CacheValue): AnyRef
 
+   /**
+    * Create a response indicating that the key, which the message tried to operate on, did not exist.
+    */
    def createNotExistResponse(header: HotRodHeader): AnyRef
 
+   /**
+    * Create a response for get a request.
+    */
    def createGetResponse(header: HotRodHeader, v: CacheValue, op: Enumeration#Value): AnyRef
 
+   /**
+    * Handle a protocol specific message.
+    */
    def handleCustomRequest(header: HotRodHeader, buffer: ChannelBuffer, cache: Cache[ByteArrayKey, CacheValue]): AnyRef
 
+   /**
+    * Create a response for the stats command.
+    */
    def createStatsResponse(header: HotRodHeader, stats: Stats): AnyRef
 
+   /**
+    * Create an error response based on the Throwable instance received.
+    */
    def createErrorResponse(header: HotRodHeader, t: Throwable): AnyRef
 
+   /**
+    * Get an optimized cache instance depending on the operation parameters.
+    */
    def getOptimizedCache(h: HotRodHeader, c: Cache[ByteArrayKey, CacheValue]): Cache[ByteArrayKey, CacheValue]
 }
\ No newline at end of file

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/CacheKey.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/CacheKey.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/CacheKey.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -5,12 +5,12 @@
 import org.infinispan.marshall.Marshallable
 import java.io.{ObjectInput, ObjectOutput}
 import org.infinispan.server.core.Logging
-import org.infinispan.util.hash.MurmurHash2
 
 /**
- * // TODO: Document this
+ * Represents the key part of a key/value pair stored in the underlying Hot Rod cache.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
 // TODO: putting Ids.HOTROD_CACHE_KEY fails compilation in 2.8 - https://lampsvn.epfl.ch/trac/scala/ticket/2764
 @Marshallable(externalizer = classOf[CacheKey.Externalizer], id = 57)
@@ -27,7 +27,6 @@
 
    override def hashCode: Int = {
       41 + Arrays.hashCode(data)
-//      MurmurHash2.hash(data)
    }
 
    override def toString = {

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodDecoder.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodDecoder.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodDecoder.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -4,7 +4,7 @@
 import org.infinispan.server.core._
 import transport._
 import OperationStatus._
-import org.infinispan.manager.{DefaultCacheManager, EmbeddedCacheManager}
+import org.infinispan.manager.EmbeddedCacheManager
 import java.io.StreamCorruptedException
 import org.infinispan.server.hotrod.ProtocolFlag._
 import org.infinispan.server.hotrod.OperationResponse._
@@ -13,7 +13,9 @@
 import org.infinispan.util.ByteArrayKey
 
 /**
- * // TODO: Document this
+ * Top level Hot Rod decoder that after figuring out the version, delegates the rest of the reading to the
+ * corresponding versioned decoder.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
@@ -108,7 +110,6 @@
       result
    }
 
-
    override def createStatsResponse(h: HotRodHeader, stats: Stats): AnyRef =
       h.decoder.createStatsResponse(h, stats)
 

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodEncoder.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -11,11 +11,11 @@
 import scala.collection.JavaConversions._
 
 /**
- * // TODO: Document this
+ * Hot Rod specific encoder.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
-
 class HotRodEncoder(cacheManager: EmbeddedCacheManager) extends Encoder {
    import HotRodEncoder._
    import HotRodServer._
@@ -61,11 +61,11 @@
                   iterator = iterator.take(g.count)
                }
                for (entry <- iterator) {
-                  buffer.writeByte(1) //not done
+                  buffer.writeByte(1) // Not done
                   buffer.writeRangedBytes(entry.getKey.getData)
                   buffer.writeRangedBytes(entry.getValue.data)
                }
-               buffer.writeByte(0)
+               buffer.writeByte(0) // Done
             }
          }
          case g: GetResponse => if (g.status == Success) buffer.writeRangedBytes(g.data.get)

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodOperation.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodOperation.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodOperation.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,11 +1,11 @@
 package org.infinispan.server.hotrod
 
 /**
- * // TODO: Document this
+ * Hot Rod specific operations. Enumeration starts at a number other that 0 not to clash with common operations.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
-
 object HotRodOperation extends Enumeration(20) {
    type HotRodOperation = Value
 

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodServer.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodServer.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/HotRodServer.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -17,7 +17,9 @@
 import org.infinispan.server.core.Main._
 
 /**
- * // TODO: Document this
+ * Hot Rod server, in charge of defining its encoder/decoder and, if clustered, update the topology information
+ * on startup and shutdown.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/OperationStatus.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/OperationStatus.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/OperationStatus.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,11 +1,11 @@
 package org.infinispan.server.hotrod
 
 /**
- * // TODO: Document this
+ * Hot Rod operation possible status outcomes.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
-
 object OperationStatus extends Enumeration {
    type OperationStatus = Value
 

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/Response.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/Response.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/Response.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -2,12 +2,11 @@
 
 import OperationStatus._
 import OperationResponse._
-import org.infinispan.Cache
-import org.infinispan.server.core.CacheValue
-import org.infinispan.util.{ByteArrayKey, Util}
+import org.infinispan.util.Util
 
 /**
- * // TODO: Document this
+ * A basic responses. The rest of this file contains other response types.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/TopologyView.scala
===================================================================
--- trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/TopologyView.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/main/scala/org/infinispan/server/hotrod/TopologyView.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -4,7 +4,8 @@
 import java.io.{ObjectInput, ObjectOutput}
 
 /**
- * // TODO: Document this
+ * A Hot Rod server topology view.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodConcurrentTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodConcurrentTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodConcurrentTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -6,7 +6,8 @@
 import org.testng.annotations.Test
 
 /**
- * // TODO: Document this
+ * Tests that Hot Rod servers can be concurrently accessed and modified.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodFunctionalTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodFunctionalTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodFunctionalTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -14,13 +14,6 @@
 /**
  * Hot Rod server functional test.
  *
- * Note: It appears that optional parameters in annotations result in compiler errors.
- * This has been solved in Scala 2.8.0.Beta1, so use that compiler,
- * otherwise this class won't compile.
- * https://lampsvn.epfl.ch/trac/scala/ticket/1810
- *
- * Keep an eye on that for @Test and @AfterClass annotations
- *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodIdleTimeoutTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodIdleTimeoutTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodIdleTimeoutTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -5,10 +5,11 @@
 import test.HotRodTestingUtil._
 import org.testng.Assert._
 import test.{HotRodClient, UniquePortThreadLocal}
-import org.infinispan.manager.{EmbeddedCacheManager, CacheContainer}
+import org.infinispan.manager.EmbeddedCacheManager
 
 /**
- * // TODO: Document this
+ * Tests idle timeout logic in Hot Rod.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodMarshallingTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodMarshallingTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodMarshallingTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -7,7 +7,8 @@
 import org.infinispan.util.ByteArrayKey
 
 /**
- * // TODO: Document this
+ * Tests marshalling of Hot Rod classes.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodProxyTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodProxyTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodProxyTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -9,7 +9,8 @@
 import org.infinispan.test.AbstractCacheTest._
 
 /**
- * // TODO: Document this
+ * Tests Hot Rod instances that are behind a proxy.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodReplicationTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodReplicationTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodReplicationTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -10,7 +10,8 @@
 import org.infinispan.test.AbstractCacheTest._
 
 /**
- * // TODO: Document this
+ * Tests Hot Rod instances configured with replication.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodShutdownTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodShutdownTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodShutdownTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -5,7 +5,8 @@
 import org.jboss.netty.channel.ChannelFuture
 
 /**
- * // TODO: Document this
+ * Tests that Hot Rod server can shutdown even if client dies not close connection.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodSingleNodeTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodSingleNodeTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodSingleNodeTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -12,7 +12,8 @@
 import org.infinispan.util.ByteArrayKey
 
 /**
- * // TODO: Document this
+ * Base test class for single node Hot Rod tests.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodStatsTest.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodStatsTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/HotRodStatsTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -8,7 +8,8 @@
 import org.infinispan.manager.EmbeddedCacheManager
 
 /**
- * // TODO: Document this
+ * Tests stats operation against a Hot Rod server.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodClient.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -25,7 +25,8 @@
 import org.infinispan.util.{ByteArrayKey, Util}
 
 /**
- * A very simply Hot Rod client for testing purpouses
+ * A very simply Hot Rod client for testing purpouses. It's a quick and dirty client implementation done for testing
+ * purpouses. As a result, it might not be very readable, particularly for readers not used to scala.
  *
  * Reasons why this should not really be a trait:
  * Storing var instances in a trait cause issues with TestNG, see:

Modified: trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodTestingUtil.scala
===================================================================
--- trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodTestingUtil.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/hotrod/src/test/scala/org/infinispan/server/hotrod/test/HotRodTestingUtil.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -14,7 +14,8 @@
 import java.util.{Properties, Arrays}
 
 /**
- * // TODO: Document this
+ * Test utils for Hot Rod tests.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedDecoder.scala
===================================================================
--- trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedDecoder.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedDecoder.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -18,7 +18,8 @@
 import scala.collection.immutable
 
 /**
- * // TODO: Document this
+ * A Memcached protocol specific decoder
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */
@@ -365,15 +366,6 @@
       buffer
    }
 
-//   override def start {
-//      scheduler = Executors.newScheduledThreadPool(1)
-//      cache = createCache
-//   }
-//
-//   override def stop {
-//      scheduler.shutdown
-//   }
-
    private def createValue(data: Array[Byte], nextVersion: Long, flags: Int): MemcachedValue = {
       new MemcachedValue(data, nextVersion, flags)
    }   

Modified: trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedOperation.scala
===================================================================
--- trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedOperation.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedOperation.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,13 +1,11 @@
 package org.infinispan.server.memcached
 
-import org.infinispan.server.core.Operation._
-
 /**
- * // TODO: Document this
+ * Memcached operations. The enumeration stats at a number other than 0 to make sure it does not clash with common operations.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
-
 object MemcachedOperation extends Enumeration(10) {
    type MemcachedOperation = Value
    val AppendRequest, PrependRequest = Value

Modified: trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedServer.scala
===================================================================
--- trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedServer.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedServer.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -2,12 +2,14 @@
 
 import org.infinispan.server.core.AbstractProtocolServer
 import org.infinispan.server.core.transport.{Decoder, Encoder}
-import java.util.concurrent.{Executors, ScheduledExecutorService}
-import org.infinispan.manager.{EmbeddedCacheManager, CacheContainer}
+import java.util.concurrent.Executors
+import org.infinispan.manager.EmbeddedCacheManager
 import java.util.Properties
 
 /**
- * // TODO: Document this
+ * Memcached server defining its decoder/encoder settings. In fact, Memcached does not use an encoder since there's
+ * no really common headers between protocol operations.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedValue.scala
===================================================================
--- trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedValue.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/MemcachedValue.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -6,9 +6,10 @@
 import org.infinispan.marshall.Marshallable
 
 /**
- * // TODO: Document this
+ * Memcached value part of key/value pair containing flags on top the common byte array and version.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
 // TODO: putting Ids.MEMCACHED_CACHE_VALUE fails compilation in 2.8 - https://lampsvn.epfl.ch/trac/scala/ticket/2764
 @Marshallable(externalizer = classOf[MemcachedValue.Externalizer], id = 56)

Modified: trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/TextProtocolUtil.scala
===================================================================
--- trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/TextProtocolUtil.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/main/scala/org/infinispan/server/memcached/TextProtocolUtil.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -3,12 +3,13 @@
 import org.infinispan.server.core.transport.ChannelBuffer
 
 /**
- * // TODO: Document this
+ * Memcached text protocol utilities.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
-// todo: refactor name once old code has been removed?
 trait TextProtocolUtil {
+   // todo: refactor name once old code has been removed?
 
    val CRLF = "\r\n"
    val CRLFBytes = "\r\n".getBytes

Modified: trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala
===================================================================
--- trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedFunctionalTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -1,6 +1,5 @@
 package org.infinispan.server.memcached
 
-import org.infinispan.manager.CacheContainer
 import java.lang.reflect.Method
 import java.util.concurrent.TimeUnit
 import org.testng.Assert._
@@ -10,9 +9,10 @@
 import org.infinispan.Version
 
 /**
- * // TODO: Document this
+ * Tests Memcached protocol functionality against Infinispan Memcached server.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
 @Test(groups = Array("functional"), testName = "server.memcached.MemcachedFunctionalTest")
 class MemcachedFunctionalTest extends MemcachedSingleNodeTest {

Modified: trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedReplicationTest.scala
===================================================================
--- trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedReplicationTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedReplicationTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -11,7 +11,8 @@
 import org.infinispan.test.AbstractCacheTest._
 
 /**
- * // TODO: Document this
+ * Tests replicated Infinispan Memcached servers.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedShutdownTest.scala
===================================================================
--- trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedShutdownTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedShutdownTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -6,7 +6,8 @@
 import org.testng.Assert._
 
 /**
- * // TODO: Document this
+ * Tests that Infinispan Memcached server can shutdown even if client does not close connection.
+ *
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedSingleNodeTest.scala
===================================================================
--- trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedSingleNodeTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedSingleNodeTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -8,7 +8,8 @@
 import org.infinispan.manager.EmbeddedCacheManager
 
 /**
- * // TODO: Document this
+ * Base class for single node tests.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */

Modified: trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedStatsTest.scala
===================================================================
--- trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedStatsTest.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/MemcachedStatsTest.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -10,9 +10,10 @@
 import org.infinispan.manager.EmbeddedCacheManager
 
 /**
- * // TODO: Document this
+ * Tests stats command for Infinispan Memcached server.
+ *
  * @author Galder Zamarreño
- * @since
+ * @since 4.1
  */
 @Test(groups = Array("functional"), testName = "server.memcached.MemcachedStatsTest")
 class MemcachedStatsTest extends MemcachedSingleNodeTest {

Modified: trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/test/MemcachedTestingUtil.scala
===================================================================
--- trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/test/MemcachedTestingUtil.scala	2010-07-28 12:58:00 UTC (rev 2114)
+++ trunk/server/memcached/src/test/scala/org/infinispan/server/memcached/test/MemcachedTestingUtil.scala	2010-07-28 13:03:01 UTC (rev 2115)
@@ -11,7 +11,8 @@
 import org.infinispan.server.core.Main._
 
 /**
- * // TODO: Document this
+ * Utils for Memcached tests.
+ * 
  * @author Galder Zamarreño
  * @since 4.1
  */



More information about the infinispan-commits mailing list