changed remote server API to allow creating multiple servers (RemoteServer) or one (RemoteServerNode), also added a shutdown method

This commit is contained in:
jboner 2009-11-24 17:41:08 +01:00
parent 794750f7fa
commit 1787307dad
23 changed files with 288 additions and 160 deletions

View file

@ -19,18 +19,18 @@
<dependencies>
<dependency>
<artifactId>akka-util-java</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.5</version>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.aspectwerkz</groupId>

View file

@ -6,24 +6,24 @@ package se.scalablesolutions.akka.nio
import scala.collection.mutable.HashMap
import protobuf.RemoteProtocol.{RemoteRequest, RemoteReply}
import se.scalablesolutions.akka.nio.protobuf.RemoteProtocol.{RemoteRequest, RemoteReply}
import se.scalablesolutions.akka.actor.{Exit, Actor}
import se.scalablesolutions.akka.dispatch.{DefaultCompletableFutureResult, CompletableFutureResult}
import se.scalablesolutions.akka.util.Logging
import se.scalablesolutions.akka.Config.config
import org.jboss.netty.bootstrap.ClientBootstrap
import org.jboss.netty.channel._
import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory
import org.jboss.netty.bootstrap.ClientBootstrap
import org.jboss.netty.handler.codec.frame.{LengthFieldBasedFrameDecoder, LengthFieldPrepender}
import org.jboss.netty.handler.codec.compression.{ZlibDecoder, ZlibEncoder}
import org.jboss.netty.handler.codec.protobuf.{ProtobufDecoder, ProtobufEncoder}
import org.jboss.netty.handler.timeout.ReadTimeoutHandler
import org.jboss.netty.util.{TimerTask, Timeout, HashedWheelTimer}
import java.net.InetSocketAddress
import java.util.concurrent.{TimeUnit, Executors, ConcurrentMap, ConcurrentHashMap}
import org.jboss.netty.handler.codec.compression.{ZlibDecoder, ZlibEncoder}
/**
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/

View file

@ -21,11 +21,34 @@ import org.jboss.netty.handler.codec.protobuf.{ProtobufDecoder, ProtobufEncoder}
import org.jboss.netty.handler.codec.compression.{ZlibEncoder, ZlibDecoder}
/**
* Use this object if you need a single remote server on a specific node.
*
* <pre>
* RemoteServerNode.start
* </pre>
*
* If you need to create more than one, then you can use the RemoteServer:
*
* <pre>
* val server = new RemoteServer
* server.start
* </pre>
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
object RemoteServer extends Logging {
object RemoteServerNode extends RemoteServer
/**
* This object holds configuration variables.
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
object RemoteServer {
val HOSTNAME = config.getString("akka.remote.server.hostname", "localhost")
val PORT = config.getInt("akka.remote.server.port", 9999)
val CONNECTION_TIMEOUT_MILLIS = config.getInt("akka.remote.server.connection-timeout", 1000)
val COMPRESSION_SCHEME = config.getString("akka.remote.compression-scheme", "zlib")
val ZLIB_COMPRESSION_LEVEL = {
val level = config.getInt("akka.remote.zlib-compression-level", 6)
@ -33,11 +56,29 @@ object RemoteServer extends Logging {
"zlib compression level has to be within 1-9, with 1 being fastest and 9 being the most compressed")
level
}
}
val CONNECTION_TIMEOUT_MILLIS = config.getInt("akka.remote.server.connection-timeout", 1000)
/**
* Use this class if you need a more than one remote server on a specific node.
*
* <pre>
* val server = new RemoteServer
* server.start
* </pre>
*
* If you need to create more than one, then you can use the RemoteServer:
*
* <pre>
* RemoteServerNode.start
* </pre>
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
class RemoteServer extends Logging {
val name = "RemoteServer@" + hostname + ":" + port
private var hostname = HOSTNAME
private var port = PORT
private var hostname = RemoteServer.HOSTNAME
private var port = RemoteServer.PORT
@volatile private var isRunning = false
@volatile private var isConfigured = false
@ -48,13 +89,11 @@ object RemoteServer extends Logging {
private val bootstrap = new ServerBootstrap(factory)
def name = "RemoteServer@" + hostname + ":" + port
def start: Unit = start(None)
def start(loader: Option[ClassLoader]): Unit = start(HOSTNAME, PORT, loader)
def start(loader: Option[ClassLoader]): Unit = start(hostname, port, loader)
def start(hostname: String, port: Int): Unit = start(hostname, port, None)
def start(_hostname: String, _port: Int): Unit = start(_hostname, _port, None)
def start(_hostname: String, _port: Int, loader: Option[ClassLoader]): Unit = synchronized {
if (!isRunning) {
@ -62,15 +101,20 @@ object RemoteServer extends Logging {
port = _port
log.info("Starting remote server at [%s:%s]", hostname, port)
bootstrap.setPipelineFactory(new RemoteServerPipelineFactory(name, loader))
// FIXME make these RemoteServer options configurable
bootstrap.setOption("child.tcpNoDelay", true)
bootstrap.setOption("child.keepAlive", true)
bootstrap.setOption("child.reuseAddress", true)
bootstrap.setOption("child.connectTimeoutMillis", CONNECTION_TIMEOUT_MILLIS)
bootstrap.setOption("child.connectTimeoutMillis", RemoteServer.CONNECTION_TIMEOUT_MILLIS)
bootstrap.bind(new InetSocketAddress(hostname, port))
isRunning = true
}
}
def shutdown = {
bootstrap.releaseExternalResources
}
}
/**
@ -78,6 +122,8 @@ object RemoteServer extends Logging {
*/
class RemoteServerPipelineFactory(name: String, loader: Option[ClassLoader])
extends ChannelPipelineFactory {
import RemoteServer._
def getPipeline: ChannelPipeline = {
val pipeline = Channels.pipeline()
RemoteServer.COMPRESSION_SCHEME match {

View file

@ -3,9 +3,9 @@ package se.scalablesolutions.akka.actor
import java.util.concurrent.TimeUnit
import junit.framework.TestCase
import se.scalablesolutions.akka.nio.{RemoteServer, RemoteClient}
import org.scalatest.junit.JUnitSuite
import org.junit.Test
import se.scalablesolutions.akka.nio.{RemoteServerNode, RemoteServer, RemoteClient}
object Global {
var oneWay = "nada"
@ -32,7 +32,7 @@ class RemoteActorTest extends JUnitSuite {
akka.Config.config
new Thread(new Runnable() {
def run = {
RemoteServer.start
RemoteServerNode.start
}
}).start
Thread.sleep(1000)

View file

@ -5,11 +5,11 @@
package se.scalablesolutions.akka.actor
import se.scalablesolutions.akka.serialization.BinaryString
import se.scalablesolutions.akka.nio.{RemoteClient, RemoteServer}
import se.scalablesolutions.akka.config.ScalaConfig._
import org.scalatest.junit.JUnitSuite
import org.junit.Test
import se.scalablesolutions.akka.nio.{RemoteServerNode, RemoteClient, RemoteServer}
object Log {
var messageLog: String = ""
@ -25,7 +25,7 @@ class RemoteSupervisorTest extends JUnitSuite {
akka.Config.config
new Thread(new Runnable() {
def run = {
RemoteServer.start
RemoteServerNode.start
}
}).start
Thread.sleep(1000)

View file

@ -17,13 +17,13 @@
<dependencies>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.rabbitmq</groupId>

View file

@ -19,13 +19,13 @@
<dependencies>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>

View file

@ -17,8 +17,8 @@
<dependencies>
<dependency>
<artifactId>akka-kernel</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.sun.grizzly</groupId>

View file

@ -7,7 +7,8 @@ package se.scalablesolutions.akka.api;
import se.scalablesolutions.akka.Config;
import se.scalablesolutions.akka.actor.ActiveObject;
import se.scalablesolutions.akka.config.ActiveObjectConfigurator;
import se.scalablesolutions.akka.nio.RemoteServer;
import se.scalablesolutions.akka.nio.RemoteServerNode;
import junit.framework.TestCase;
public class RemoteInMemoryStateTest extends TestCase {
@ -16,7 +17,7 @@ public class RemoteInMemoryStateTest extends TestCase {
static {
new Thread(new Runnable() {
public void run() {
RemoteServer.start();
RemoteServerNode.start();
}
}).start();
try { Thread.currentThread().sleep(1000); } catch (Exception e) {}

View file

@ -19,40 +19,40 @@
<dependencies>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-persistence</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-rest</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-amqp</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-camel</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-security</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<!-- Core deps -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.5</version>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.aspectwerkz</groupId>
@ -277,8 +277,8 @@
<phase>install</phase>
<configuration>
<tasks>
<copy file="target/akka-kernel-${akka.version}.jar"
tofile="../dist/akka-${akka.version}.jar"/>
<copy file="target/akka-kernel-${project.version}.jar"
tofile="../dist/akka-${project.version}.jar"/>
</tasks>
</configuration>
<goals>

View file

@ -12,7 +12,7 @@ import javax.ws.rs.core.UriBuilder
import java.io.File
import java.net.URLClassLoader
import se.scalablesolutions.akka.nio.RemoteServer
import se.scalablesolutions.akka.nio.RemoteServerNode
import se.scalablesolutions.akka.util.Logging
/**
@ -54,7 +54,7 @@ object Kernel extends Logging {
def startRemoteService = {
// FIXME manage remote serve thread for graceful shutdown
val remoteServerThread = new Thread(new Runnable() {
def run = RemoteServer.start(applicationLoader)
def run = RemoteServerNode.start(applicationLoader)
}, "Akka Remote Service")
remoteServerThread.start
}

View file

@ -17,13 +17,13 @@
<dependencies>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<!-- For Mongo -->
@ -49,6 +49,20 @@
<artifactId>commons-pool</artifactId>
<version>1.5.1</version>
</dependency>
<!-- For Testing -->
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest</artifactId>
<version>1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View file

@ -19,13 +19,13 @@
<dependencies>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<!-- For Jersey & Atmosphere -->

View file

@ -17,33 +17,33 @@
<dependencies>
<dependency>
<artifactId>akka-util-java</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-persistence</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-rest</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-kernel</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
@ -73,8 +73,8 @@
<phase>install</phase>
<configuration>
<tasks>
<copy file="target/akka-samples-java-${akka.version}.jar"
tofile="../deploy/akka-samples-java-${akka.version}.jar"/>
<copy file="target/akka-samples-java-${project.version}.jar"
tofile="../deploy/akka-samples-java-${project.version}.jar"/>
</tasks>
</configuration>
<goals>

View file

@ -21,33 +21,33 @@
<dependencies>
<dependency>
<artifactId>akka-util-java</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-persistence</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-rest</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-kernel</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>

View file

@ -17,33 +17,33 @@
<dependencies>
<dependency>
<artifactId>akka-util-java</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-persistence</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-rest</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-kernel</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
@ -62,8 +62,8 @@
<phase>install</phase>
<configuration>
<tasks>
<copy file="target/akka-samples-scala-${akka.version}.jar"
tofile="../deploy/akka-samples-scala-${akka.version}.jar"/>
<copy file="target/akka-samples-scala-${project.version}.jar"
tofile="../deploy/akka-samples-scala-${project.version}.jar"/>
</tasks>
</configuration>
<goals>

View file

@ -17,33 +17,33 @@
<dependencies>
<dependency>
<artifactId>akka-kernel</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util-java</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-security</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-persistence</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
@ -68,8 +68,8 @@
<phase>install</phase>
<configuration>
<tasks>
<copy file="target/akka-samples-security-${akka.version}.jar"
tofile="../deploy/akka-samples-security-${akka.version}.jar"/>
<copy file="target/akka-samples-security-${project.version}.jar"
tofile="../deploy/akka-samples-security-${project.version}.jar"/>
</tasks>
</configuration>
<goals>

View file

@ -18,32 +18,32 @@
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.5</version>
<version>${scala.version}</version>
</dependency>
<!--<dependency>
<artifactId>akka-kernel</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>-->
<dependency>
<artifactId>akka-actors</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-persistence</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<artifactId>akka-util</artifactId>
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
@ -56,11 +56,11 @@
<version>1.0</version>
</dependency>
<dependency>
<groupId>net.liftweb</groupId>
<artifactId>lift-util</artifactId>
<version>1.1-M6</version>
<groupId>net.liftweb</groupId>
<artifactId>lift-util</artifactId>
<version>1.1-M6</version>
</dependency>
<!-- For Testing -->
<dependency>
<groupId>org.scalatest</groupId>
@ -80,8 +80,8 @@
<version>1.8.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View file

@ -18,12 +18,12 @@
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.5</version>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>net.lag</groupId>
<artifactId>configgy</artifactId>
<version>1.3</version>
<version>1.4</version>
</dependency>
</dependencies>

View file

@ -60,7 +60,7 @@
</div>
<br></br>
Source: <a href="./../../../../nio/RemoteServer.scala.html#Some(25)">RemoteServer.scala(25)</a>
Source: <a href="./../../../../nio/RemoteServerNode.scala.html#Some(25)">RemoteServerNode.scala(25)</a>
</div>

View file

@ -60,7 +60,7 @@
</div>
<br></br>
Source: <a href="./../../../../nio/RemoteServer.scala.html#Some(86)">RemoteServer.scala(86)</a>
Source: <a href="./../../../../nio/RemoteServerNode.scala.html#Some(86)">RemoteServerNode.scala(86)</a>
</div>

View file

@ -60,7 +60,7 @@
</div>
<br></br>
Source: <a href="./../../../../nio/RemoteServer.scala.html#Some(70)">RemoteServer.scala(70)</a>
Source: <a href="./../../../../nio/RemoteServerNode.scala.html#Some(70)">RemoteServerNode.scala(70)</a>
</div>

115
pom.xml
View file

@ -9,12 +9,25 @@
<groupId>se.scalablesolutions.akka</groupId>
<version>0.6</version>
<inceptionYear>2009</inceptionYear>
<url>http://akkasource.org</url>
<packaging>pom</packaging>
<description>
Akka implements a unique hybrid of the Actor model and Software Transactional Memory (STM).
Akka gives you you:
* Concurrency (high-level and simple).
* Asynchronous, non-blocking, event-driven and highly performant components.
* Scalability through very performant remote actors.
* Fault-tolerance through supervision hierarchies with “let-it-crash” semantics.
</description>
<properties>
<akka.version>0.6</akka.version>
<akka.groupId>se.scalablesolutions.akka</akka.groupId>
<scala.version>2.7.5</scala.version>
<scala.version>2.7.7</scala.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.5</maven.compiler.source>
<maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
<maven.compiler.encoding>${project.build.sourceEncoding}</maven.compiler.encoding>
<project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding>
</properties>
<modules>
@ -39,12 +52,6 @@
<url>http://scalablesolutions.se</url>
</organization>
<scm>
<connection>scm:git:git://github.com/jboner/akka.git</connection>
<developerConnection>scm:git:git@github.com:jboner/akka.git</developerConnection>
<url>http://github.com/jboner/akka</url>
</scm>
<licenses>
<license>
<name>The Apache License, ASL Version 2.0</name>
@ -66,17 +73,47 @@
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/jboner/akka.git</connection>
<developerConnection>scm:git:git@github.com:jboner/akka.git</developerConnection>
<url>http://github.com/jboner/akka</url>
</scm>
<issueManagement>
<system>assembla</system>
<url>http://assembla.com/spaces/akka/</url>
</issueManagement>
<ciManagement>
<system>hudson</system>
<url>http://hudson.scala-tools.org/job/akka/</url>
<notifiers>
<!-- TODO: Configure-->
<notifier/>
</notifiers>
</ciManagement>
<mailingLists>
<mailingList>
<name>User and Developer Discussion List</name>
<archive>http://groups.google.com/group/akka-user</archive>
<post>akka-user@googlegroups.com</post>
<subscribe>akka-user+subscribe@googlegroups.com</subscribe>
<unsubscribe>akka-user+unsubscribe@googlegroups.com</unsubscribe>
</mailingList>
</mailingLists>
<repositories>
<repository>
<id>repo1.maven</id>
<name>Maven Main Repository</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>project.embedded.module</id>
<name>Project Embedded Repository</name>
<url>file://${basedir}/../embedded-repo</url>
</repository>
<repository>
<id>repo1.maven</id>
<name>Maven Main Repository</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>scala-tools-snapshots</id>
<name>Scala-Tools Maven2 Snapshot Repository</name>
@ -262,7 +299,7 @@
<configuration>
<archive>
<manifestEntries>
<akka_version>${akka.version}</akka_version>
<akka_version>${project.version}</akka_version>
</manifestEntries>
</archive>
</configuration>
@ -348,28 +385,58 @@
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.1.2</version>
<reportSets>
<reportSet>
<reports>
<report>cim</report>
<report>dependencies</report>
<report>dependency-convergence</report>
<!--<report>dependency-management</report>-->
<report>index</report>
<report>issue-tracking</report>
<report>license</report>
<report>mailing-list</report>
<!--<report>plugin-management</report>-->
<report>plugins</report>
<report>project-team</report>
<report>scm</report>
<report>summary</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.9.1</version>
<version>2.12.2</version>
<configuration>
<jvmArgs>
<jvmArg>-Xmx1024m</jvmArg>
<jvmArg>-DpackageLinkDefs=file://${basedir}/../vscaladocs-packageLinkDefs.properties</jvmArg>
</jvmArgs>
<args>
<!--arg>-unchecked</arg-->
</args>
<charset>${project.build.sourceEncoding}</charset>
<!--<bottom>Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.</bottom>-->
<vscaladocVersion>1.2-SNAPSHOT</vscaladocVersion>
<scalaVersion>${scala.version}</scalaVersion>
<jvmArgs>
<jvmArg>-Xmx1024m</jvmArg>
<jvmArg>-DpackageLinkDefs=file://${project.build.directory}/packageLinkDefs.properties</jvmArg>
</jvmArgs>
<!--FIXME: see that sxr plugin works -->
<!--
<compilerPlugins>
<compilerPlugin>
<groupId>org.scala-tools.sxr</groupId>
<artifactId>sxr_${scala.version}</artifactId>
<version>0.2.3</version>
</compilerPlugin>
</compilerPlugins>
-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.0-beta-3</version>
<version>2.1</version>
<reportSets>
<reportSet>
<reports>