Streamlined configuration, transport adapters and FailureInjector

- Transports no longer uses raw ActorRefs as listeners but proper interfaces.
 - Added managementCommand support to Transports
 - Added support for dynamically loadable transport adapters
 - Added throttler/failure injector transport adapter
 - added actor based adapter support
 - Changed configuration method of multiple transports - Fixed tests to work with the new remoting
This commit is contained in:
Endre Sándor Varga 2012-11-23 10:15:19 +01:00
parent 5b96c28acd
commit 0705d47a88
30 changed files with 1812 additions and 585 deletions

View file

@ -4,38 +4,36 @@ import akka.testkit._
import akka.actor._
import com.typesafe.config._
import scala.concurrent.duration._
import akka.remote.netty.NettyRemoteTransport
import akka.remote.netty.{ SSLSettings, NettyRemoteTransport }
import java.util.ArrayList
@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])
class Ticket1978ConfigSpec extends AkkaSpec("""
akka {
actor.provider = "akka.remote.RemoteActorRefProvider"
remote.netty {
hostname = localhost
port = 0
}
}
""") with ImplicitSender with DefaultTimeout {
class Ticket1978ConfigSpec extends AkkaSpec with ImplicitSender with DefaultTimeout {
val cfg = ConfigFactory.parseString("""
ssl-settings {
key-store = "keystore"
trust-store = "truststore"
key-store-password = "changeme"
trust-store-password = "changeme"
protocol = "TLSv1"
random-number-generator = "AES128CounterSecureRNG"
enabled-algorithms = [TLS_RSA_WITH_AES_128_CBC_SHA]
sha1prng-random-source = "/dev/./urandom"
}""")
"SSL Remoting" must {
"be able to parse these extra Netty config elements" in {
val settings =
system.asInstanceOf[ExtendedActorSystem]
.provider.asInstanceOf[RemoteActorRefProvider]
.transport.asInstanceOf[NettyRemoteTransport]
.settings
import settings._
val settings = new SSLSettings(cfg.getConfig("ssl-settings"))
EnableSSL must be(false)
SslSettings.SSLKeyStore must be(Some("keystore"))
SslSettings.SSLKeyStorePassword must be(Some("changeme"))
SslSettings.SSLTrustStore must be(Some("truststore"))
SslSettings.SSLTrustStorePassword must be(Some("changeme"))
SslSettings.SSLProtocol must be(Some("TLSv1"))
SslSettings.SSLEnabledAlgorithms must be(Set("TLS_RSA_WITH_AES_128_CBC_SHA"))
SslSettings.SSLRandomSource must be(None)
SslSettings.SSLRandomNumberGenerator must be(None)
settings.SSLKeyStore must be(Some("keystore"))
settings.SSLKeyStorePassword must be(Some("changeme"))
settings.SSLTrustStore must be(Some("truststore"))
settings.SSLTrustStorePassword must be(Some("changeme"))
settings.SSLProtocol must be(Some("TLSv1"))
settings.SSLEnabledAlgorithms must be(Set("TLS_RSA_WITH_AES_128_CBC_SHA"))
settings.SSLRandomSource must be(Some("/dev/./urandom"))
settings.SSLRandomNumberGenerator must be(Some("AES128CounterSecureRNG"))
}
}
}