Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
@adamw
52 lines (42 sloc) 1.587 kB
package org.elasticmq.server
import org.elasticmq.NodeAddress
import org.elasticmq.rest.sqs.SQSLimits
import com.typesafe.config.Config
class ElasticMQServerConfig(config: Config) {
// Configure main storage
sealed trait Storage
case object InMemoryStorage extends Storage
val storage: Storage = {
val subConfig = config.getConfig("storage")
val storageType = subConfig.getString("type")
if ("in-memory".equalsIgnoreCase(storageType)) {
InMemoryStorage
} else {
throw new IllegalArgumentException("Unknown storage type: " + storageType)
}
}
// What is the outside visible address of this ElasticMQ node (used by replication and rest-sqs)
val nodeAddress = {
val subConfig = config.getConfig("node-address")
NodeAddress(subConfig.getString("protocol"), subConfig.getString("host"), subConfig.getInt("port"),
subConfig.getString("context-path"))
}
// Optionally expose the REST SQS interface
class RestSqsConfiguration {
private val subConfig = config.getConfig("rest-sqs")
val enabled = subConfig.getBoolean("enabled")
val bindPort = subConfig.getInt("bind-port")
val bindHostname = subConfig.getString("bind-hostname")
val sqsLimits = {
val name = subConfig.getString("sqs-limits")
if ("relaxed".equalsIgnoreCase(name)) {
SQSLimits.Relaxed
} else if ("strict".equalsIgnoreCase(name)) {
SQSLimits.Strict
} else {
throw new IllegalArgumentException("Unknown sqs-limits name: " + name)
}
}
}
val restSqs = new RestSqsConfiguration
}
Jump to Line
Something went wrong with that request. Please try again.