diff --git a/akka-kernel/src/main/scala/Kernel.scala b/akka-kernel/src/main/scala/Kernel.scala
index 8514198bc1..aaf1246995 100644
--- a/akka-kernel/src/main/scala/Kernel.scala
+++ b/akka-kernel/src/main/scala/Kernel.scala
@@ -16,6 +16,8 @@ import se.scalablesolutions.akka.nio.RemoteNode
import se.scalablesolutions.akka.util.Logging
/**
+ * The Akka Kernel.
+ *
* @author Jonas Bonér
*/
object Kernel extends Logging {
@@ -36,9 +38,18 @@ object Kernel extends Logging {
def main(args: Array[String]) = boot
- def boot = synchronized {
+ /**
+ * Boots up the Kernel.
+ */
+ def boot: Unit = boot(true)
+
+ /**
+ * Boots up the Kernel.
+ * If you pass in false as parameter then the Akka banner is not printed out.
+ */
+ def boot(withBanner: Boolean): Unit = synchronized {
if (!hasBooted) {
- printBanner
+ if (withBanner) printBanner
log.info("Starting Akka...")
runApplicationBootClasses
@@ -50,7 +61,7 @@ object Kernel extends Logging {
hasBooted = true
}
}
-
+
def startRemoteService = {
// FIXME manage remote serve thread for graceful shutdown
val remoteServerThread = new Thread(new Runnable() {
@@ -112,125 +123,16 @@ object Kernel extends Logging {
private def printBanner = {
log.info(
-"""==============================
- __ __
- _____ | | _| | _______
- \__ \ | |/ / |/ /\__ \
- / __ \| <| < / __ \_
- (____ /__|_ \__|_ \(____ /
- \/ \/ \/ \/
+"""
+==============================
+ __ __
+ _____ | | _| | _______
+ \__ \ | |/ / |/ /\__ \
+ / __ \| <| < / __ \_
+ (____ /__|_ \__|_ \(____ /
+ \/ \/ \/ \/
""")
log.info(" Running version " + VERSION)
log.info("==============================")
}
-
- private def cassandraBenchmark = {
- import se.scalablesolutions.akka.state.CassandraStorage
- val NR_ENTRIES = 100000
-
- println("=================================================")
- var start = System.currentTimeMillis
- for (i <- 1 to NR_ENTRIES) CassandraStorage.insertMapStorageEntryFor("test", i.toString, "data")
- var end = System.currentTimeMillis
- println("Writes per second: " + NR_ENTRIES / ((end - start).toDouble / 1000))
-
- println("=================================================")
- start = System.currentTimeMillis
- val entries = new scala.collection.mutable.ArrayBuffer[Tuple2[String, String]]
- for (i <- 1 to NR_ENTRIES) entries += (i.toString, "data")
- CassandraStorage.insertMapStorageEntriesFor("test", entries.toList)
- end = System.currentTimeMillis
- println("Writes per second - batch: " + NR_ENTRIES / ((end - start).toDouble / 1000))
-
- println("=================================================")
- start = System.currentTimeMillis
- for (i <- 1 to NR_ENTRIES) CassandraStorage.getMapStorageEntryFor("test", i.toString)
- end = System.currentTimeMillis
- println("Reads per second: " + NR_ENTRIES / ((end - start).toDouble / 1000))
-
- System.exit(0)
- }
-}
-
-
-
-
-/*
-//import voldemort.client.{SocketStoreClientFactory, StoreClient, StoreClientFactory}
-//import voldemort.server.{VoldemortConfig, VoldemortServer}
-//import voldemort.versioning.Versioned
-
- private[this] var storageFactory: StoreClientFactory = _
- private[this] var storageServer: VoldemortServer = _
-*/
-
-// private[akka] def startVoldemort = {
-// val VOLDEMORT_SERVER_URL = "tcp://" + SERVER_URL
-// val VOLDEMORT_SERVER_PORT = 6666
-// val VOLDEMORT_BOOTSTRAP_URL = VOLDEMORT_SERVER_URL + ":" + VOLDEMORT_SERVER_PORT
-// // Start Voldemort server
-// val config = VoldemortConfig.loadFromVoldemortHome(Boot.HOME)
-// storageServer = new VoldemortServer(config)
-// storageServer.start
-// log.info("Replicated persistent storage server started at %s", VOLDEMORT_BOOTSTRAP_URL)
-//
-// // Create Voldemort client factory
-// val numThreads = 10
-// val maxQueuedRequests = 10
-// val maxConnectionsPerNode = 10
-// val maxTotalConnections = 100
-// storageFactory = new SocketStoreClientFactory(
-// numThreads,
-// numThreads,
-// maxQueuedRequests,
-// maxConnectionsPerNode,
-// maxTotalConnections,
-// VOLDEMORT_BOOTSTRAP_URL)
-//
-// val name = this.getClass.getName
-// val storage = getStorageFor("actors")
-//// val value = storage.get(name)
-// val value = new Versioned("state")
-// //value.setObject("state")
-// storage.put(name, value)
-// }
-//
-// private[akka] def getStorageFor(storageName: String): StoreClient[String, String] =
-// storageFactory.getStoreClient(storageName)
-
-// private[akka] def startZooKeeper = {
-//import org.apache.zookeeper.jmx.ManagedUtil
-//import org.apache.zookeeper.server.persistence.FileTxnSnapLog
-//import org.apache.zookeeper.server.ServerConfig
-//import org.apache.zookeeper.server.NIOServerCnxn
-// val ZOO_KEEPER_SERVER_URL = SERVER_URL
-// val ZOO_KEEPER_SERVER_PORT = 9898
-// try {
-// ManagedUtil.registerLog4jMBeans
-// ServerConfig.parse(args)
-// } catch {
-// case e: JMException => log.warning("Unable to register log4j JMX control: s%", e)
-// case e => log.fatal("Error in ZooKeeper config: s%", e)
-// }
-// val factory = new ZooKeeperServer.Factory() {
-// override def createConnectionFactory = new NIOServerCnxn.Factory(ServerConfig.getClientPort)
-// override def createServer = {
-// val server = new ZooKeeperServer
-// val txLog = new FileTxnSnapLog(
-// new File(ServerConfig.getDataLogDir),
-// new File(ServerConfig.getDataDir))
-// server.setTxnLogFactory(txLog)
-// server
-// }
-// }
-// try {
-// val zooKeeper = factory.createServer
-// zooKeeper.startup
-// log.info("ZooKeeper started")
-// // TODO: handle clean shutdown as below in separate thread
-// // val cnxnFactory = serverFactory.createConnectionFactory
-// // cnxnFactory.setZooKeeperServer(zooKeeper)
-// // cnxnFactory.join
-// // if (zooKeeper.isRunning) zooKeeper.shutdown
-// } catch { case e => log.fatal("Unexpected exception: s%",e) }
-// }
+}
\ No newline at end of file
diff --git a/changes.xml b/changes.xml
index 658b8ab550..dd7514bbec 100644
--- a/changes.xml
+++ b/changes.xml
@@ -62,6 +62,7 @@ see http://maven.apache.org/plugins/maven-changes-plugin/usage.html for full gui
New URL: http://akkasource.org
Enhanced trapping of failures: 'trapExit = List(classOf[..], classOf[..])'
Upgraded to Netty 3.2, Protobuf 2.2, ScalaTest 1.0, Jersey 1.1.3, Atmosphere 0.4.1, Cassandra 0.4.1, Configgy 1.4
+ Lowered actor memory footprint; now an actor consumes ~625 bytes, which mean that you can create 6.5 million on 4 G RAM
Concurrent mode is now per actor basis
Remote actors are now defined by their UUID (not class name)
Fixed dispatcher bug
diff --git a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.jar b/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.jar
deleted file mode 100644
index 129328deff..0000000000
Binary files a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.jar and /dev/null differ
diff --git a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.pom b/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.pom
deleted file mode 100644
index dc99125995..0000000000
--- a/embedded-repo/com/facebook/fb303/1.0/fb303-1.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.facebook
- fb303
- 1.0
- jar
-
\ No newline at end of file
diff --git a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar b/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar
deleted file mode 100755
index 6b1b43bf7b..0000000000
Binary files a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar and /dev/null differ
diff --git a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom b/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom
deleted file mode 100755
index d35560379a..0000000000
--- a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.twitter
- scala-stats
- 1.0
- jar
-
\ No newline at end of file