[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