Merge branch 'master' into osgi

Conflicts:
	project/build/AkkaProject.scala
	project/plugins/Plugins.scala
This commit is contained in:
Heiko Seeberger 2010-07-20 11:26:34 +02:00
commit d9e3b11a20
7 changed files with 420 additions and 219 deletions

View file

@ -31,8 +31,8 @@ trait ListenerManagement extends Logging {
* The <code>listener</code> is stopped by this method. * The <code>listener</code> is stopped by this method.
*/ */
def removeListener(listener: ActorRef) = { def removeListener(listener: ActorRef) = {
listener.stop
listeners.remove(listener) listeners.remove(listener)
listener.stop
} }
/** /**

View file

@ -1,35 +1,24 @@
package sample.lift package sample.lift
import se.scalablesolutions.akka.actor.{Transactor, Actor} import se.scalablesolutions.akka.actor._
import se.scalablesolutions.akka.actor.Actor._
import se.scalablesolutions.akka.config.ScalaConfig._ import se.scalablesolutions.akka.config.ScalaConfig._
import se.scalablesolutions.akka.stm.TransactionalMap import se.scalablesolutions.akka.stm.TransactionalMap
import se.scalablesolutions.akka.persistence.cassandra.CassandraStorage import se.scalablesolutions.akka.persistence.cassandra.CassandraStorage
import Actor._ import scala.xml.Node
import java.lang.Integer import java.lang.Integer
import javax.ws.rs.{GET, Path, Produces} import javax.ws.rs.{GET, Path, Produces}
import java.nio.ByteBuffer import java.nio.ByteBuffer
import net.liftweb.http._
import net.liftweb.http.rest._
/** class SimpleServiceActor extends Transactor {
* Try service out by invoking (multiple times):
* <pre>
* curl http://localhost:9998/liftcount
* </pre>
* Or browse to the URL from a web browser.
*/
@Path("/liftcount")
class SimpleService extends Transactor {
case object Tick
private val KEY = "COUNTER" private val KEY = "COUNTER"
private var hasStartedTicking = false private var hasStartedTicking = false
private lazy val storage = TransactionalMap[String, Integer]() private lazy val storage = TransactionalMap[String, Integer]()
@GET
@Produces(Array("text/html"))
def count = (self !! Tick).getOrElse(<h1>Error in counter</h1>)
def receive = { def receive = {
case Tick => if (hasStartedTicking) { case "Tick" => if (hasStartedTicking) {
val counter = storage.get(KEY).get.asInstanceOf[Integer].intValue val counter = storage.get(KEY).get.asInstanceOf[Integer].intValue
storage.put(KEY, new Integer(counter + 1)) storage.put(KEY, new Integer(counter + 1))
self.reply(<h1>Tick: {counter + 1}</h1>) self.reply(<h1>Tick: {counter + 1}</h1>)
@ -41,27 +30,14 @@ class SimpleService extends Transactor {
} }
} }
/** class PersistentServiceActor extends Transactor {
* Try service out by invoking (multiple times):
* <pre>
* curl http://localhost:9998/persistentliftcount
* </pre>
* Or browse to the URL from a web browser.
*/
@Path("/persistentliftcount")
class PersistentSimpleService extends Transactor {
case object Tick
private val KEY = "COUNTER" private val KEY = "COUNTER"
private var hasStartedTicking = false private var hasStartedTicking = false
private lazy val storage = CassandraStorage.newMap private lazy val storage = CassandraStorage.newMap
@GET
@Produces(Array("text/html"))
def count = (self !! Tick).getOrElse(<h1>Error in counter</h1>)
def receive = { def receive = {
case Tick => if (hasStartedTicking) { case "Tick" => if (hasStartedTicking) {
val bytes = storage.get(KEY.getBytes).get val bytes = storage.get(KEY.getBytes).get
val counter = ByteBuffer.wrap(bytes).getInt val counter = ByteBuffer.wrap(bytes).getInt
storage.put(KEY.getBytes, ByteBuffer.allocate(4).putInt(counter + 1).array) storage.put(KEY.getBytes, ByteBuffer.allocate(4).putInt(counter + 1).array)
@ -73,3 +49,46 @@ class PersistentSimpleService extends Transactor {
} }
} }
} }
/**
* Try service out by invoking (multiple times):
* <pre>
* curl http://localhost:8080/liftcount
* </pre>
* Or browse to the URL from a web browser.
*/
object SimpleRestService extends RestHelper {
serve {
case Get("liftcount" :: _, req) =>
//Fetch the first actor of type SimpleServiceActor
//Send it the "Tick" message and expect a Node back
val result = for( a <- ActorRegistry.actorsFor(classOf[SimpleServiceActor]).headOption;
r <- (a !! "Tick").as[Node] ) yield r
//Return either the resulting NodeSeq or a default one
(result getOrElse <h1>Error in counter</h1>).asInstanceOf[Node]
}
}
/**
* Try service out by invoking (multiple times):
* <pre>
* curl http://localhost:8080/persistentliftcount
* </pre>
* Or browse to the URL from a web browser.
*/
object PersistentRestService extends RestHelper {
serve {
case Get("persistentliftcount" :: _, req) =>
//Fetch the first actor of type SimpleServiceActor
//Send it the "Tick" message and expect a Node back
val result = for( a <- ActorRegistry.actorsFor(classOf[PersistentServiceActor]).headOption;
r <- (a !! "Tick").as[Node] ) yield r
//Return either the resulting NodeSeq or a default one
(result getOrElse <h1>Error in counter</h1>).asInstanceOf[Node]
}
}

View file

@ -13,7 +13,7 @@ import se.scalablesolutions.akka.actor.Actor._
import se.scalablesolutions.akka.config.ScalaConfig._ import se.scalablesolutions.akka.config.ScalaConfig._
import se.scalablesolutions.akka.util.Logging import se.scalablesolutions.akka.util.Logging
import sample.lift.{PersistentSimpleService, SimpleService} import sample.lift._
/** /**
* A class that's instantiated early and run. It allows the application * A class that's instantiated early and run. It allows the application
@ -35,6 +35,8 @@ class Boot extends Logging {
true true
} }
} }
LiftRules.statelessDispatchTable.append(SimpleRestService)
LiftRules.statelessDispatchTable.append(PersistentRestService)
LiftRules.passNotFoundToChain = true LiftRules.passNotFoundToChain = true
@ -42,10 +44,10 @@ class Boot extends Logging {
SupervisorConfig( SupervisorConfig(
RestartStrategy(OneForOne, 3, 100, List(classOf[Exception])), RestartStrategy(OneForOne, 3, 100, List(classOf[Exception])),
Supervise( Supervise(
actorOf[SimpleService], actorOf[SimpleServiceActor],
LifeCycle(Permanent)) :: LifeCycle(Permanent)) ::
Supervise( Supervise(
actorOf[PersistentSimpleService], actorOf[PersistentServiceActor],
LifeCycle(Permanent)) :: LifeCycle(Permanent)) ::
Nil)) Nil))
factory.newInstance.start factory.newInstance.start

View file

@ -13,7 +13,7 @@
</filter-mapping> </filter-mapping>
<servlet> <servlet>
<servlet-name>AkkaServlet</servlet-name> <servlet-name>AkkaServlet</servlet-name>
<servlet-class>se.scalablesolutions.akka.rest.AkkaServlet</servlet-class> <servlet-class>se.scalablesolutions.akka.comet.AkkaServlet</servlet-class>
</servlet> </servlet>
<servlet-mapping> <servlet-mapping>
<servlet-name>AkkaServlet</servlet-name> <servlet-name>AkkaServlet</servlet-name>

View file

@ -57,7 +57,9 @@ akka {
hostname = "localhost" hostname = "localhost"
port = 9998 port = 9998
filters = ["se.scalablesolutions.akka.security.AkkaSecurityFilterFactory"] # List with all jersey filters to use filters = ["se.scalablesolutions.akka.security.AkkaSecurityFilterFactory"] # List with all jersey filters to use
resource_packages = ["sample.rest.scala","sample.rest.java","sample.security"] # List with all resource packages for your Jersey services resource_packages = ["sample.rest.scala",
"sample.rest.java",
"sample.security"] # List with all resource packages for your Jersey services
authenticator = "sample.security.BasicAuthenticationService" # The authentication service to use. Need to be overridden (uses sample now) authenticator = "sample.security.BasicAuthenticationService" # The authentication service to use. Need to be overridden (uses sample now)
#maxInactiveActivity = 60000 #Atmosphere CometSupport maxInactiveActivity #maxInactiveActivity = 60000 #Atmosphere CometSupport maxInactiveActivity
#IF you are using a KerberosAuthenticationActor #IF you are using a KerberosAuthenticationActor

View file

@ -2,35 +2,20 @@
| Copyright (C) 2009-2010 Scalable Solutions AB <http://scalablesolutions.se> | | Copyright (C) 2009-2010 Scalable Solutions AB <http://scalablesolutions.se> |
\---------------------------------------------------------------------------*/ \---------------------------------------------------------------------------*/
import sbt._ import com.weiglewilczek.bnd4sbt.BNDPlugin
import sbt.CompileOrder._
import spde._
import de.tuxed.codefellow.plugin.CodeFellowPlugin import de.tuxed.codefellow.plugin.CodeFellowPlugin
import java.io.File
import java.util.jar.Attributes import java.util.jar.Attributes
import java.util.jar.Attributes.Name._ import java.util.jar.Attributes.Name._
import java.io.File import sbt._
import sbt.CompileOrder._
import spde._
import com.weiglewilczek.bnd4sbt._ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
// ------------------------------------------------------------
// project versions
val JERSEY_VERSION = "1.2"
val ATMO_VERSION = "0.6"
val CAMEL_VERSION = "2.4.0"
val SPRING_VERSION = "3.0.3.RELEASE"
val CASSANDRA_VERSION = "0.6.1"
val LIFT_VERSION = "2.0-scala280-SNAPSHOT"
val SCALATEST_VERSION = "1.2-for-scala-2.8.0.final-SNAPSHOT"
val MULTIVERSE_VERSION = "0.6-SNAPSHOT"
// ------------------------------------------------------------
lazy val deployPath = info.projectPath / "deploy"
lazy val distPath = info.projectPath / "dist"
// -------------------------------------------------------------------------------------------------------------------
// Compile settings
// -------------------------------------------------------------------------------------------------------------------
override def compileOptions = super.compileOptions ++ override def compileOptions = super.compileOptions ++
Seq("-deprecation", Seq("-deprecation",
"-Xmigration", "-Xmigration",
@ -39,57 +24,195 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
"-Xwarninit", "-Xwarninit",
"-encoding", "utf8") "-encoding", "utf8")
.map(x => CompileOption(x)) .map(x => CompileOption(x))
override def javaCompileOptions = JavaCompileOption("-Xlint:unchecked") :: super.javaCompileOptions.toList override def javaCompileOptions = JavaCompileOption("-Xlint:unchecked") :: super.javaCompileOptions.toList
// -------------------------------------------------------------------------------------------------------------------
// Deploy/dist settings
// -------------------------------------------------------------------------------------------------------------------
lazy val deployPath = info.projectPath / "deploy"
lazy val distPath = info.projectPath / "dist"
def distName = "%s_%s-%s.zip".format(name, buildScalaVersion, version) def distName = "%s_%s-%s.zip".format(name, buildScalaVersion, version)
lazy val dist = zipTask(allArtifacts, "dist", distName) dependsOn (`package`) describedAs("Zips up the distribution.") lazy val dist = zipTask(allArtifacts, "dist", distName) dependsOn (`package`) describedAs("Zips up the distribution.")
// ------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------
// Repositories // All repositories *must* go here! See ModuleConigurations below.
// -------------------------------------------------------------------------------------------------------------------
object Repositories {
lazy val AkkaRepo = MavenRepository("Akka Repository", "http://scalablesolutions.se/akka/repository")
lazy val CodehausSnapshotRepo = MavenRepository("Codehaus Snapshots", "http://snapshots.repository.codehaus.org")
lazy val EmbeddedRepo = MavenRepository("Embedded Repo", (info.projectPath / "embedded-repo").asURL.toString)
lazy val GuiceyFruitRepo = MavenRepository("GuiceyFruit Repo", "http://guiceyfruit.googlecode.com/svn/repo/releases/")
lazy val JBossRepo = MavenRepository("JBoss Repo", "https://repository.jboss.org/nexus/content/groups/public/")
lazy val JavaNetRepo = MavenRepository("java.net Repo", "http://download.java.net/maven/2")
lazy val SonatypeSnapshotRepo = MavenRepository("Sonatype OSS Repo", "http://oss.sonatype.org/content/repositories/releases")
lazy val SunJDMKRepo = MavenRepository("Sun JDMK Repo", "http://wp5.e-taxonomy.eu/cdmlib/mavenrepo")
}
// -------------------------------------------------------------------------------------------------------------------
// ModuleConfigurations
// Every dependency that cannot be resolved from the built-in repositories (Maven Central and Scala Tools Releases) // Every dependency that cannot be resolved from the built-in repositories (Maven Central and Scala Tools Releases)
// must be resolved from a ModuleConfiguration. This will result in a significant acceleration of the update action. // must be resolved from a ModuleConfiguration. This will result in a significant acceleration of the update action.
// Therefore, if repositories are defined, this must happen as def, not as val. // Therefore, if repositories are defined, this must happen as def, not as val.
// ------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------
val embeddedRepo = "Embedded Repo" at (info.projectPath / "embedded-repo").asURL.toString import Repositories._
val scalaTestModuleConfig = ModuleConfiguration("org.scalatest", ScalaToolsSnapshots) lazy val atmosphereModuleConfig = ModuleConfiguration("org.atmosphere", SonatypeSnapshotRepo)
def guiceyFruitRepo = "GuiceyFruit Repo" at "http://guiceyfruit.googlecode.com/svn/repo/releases/" lazy val grizzlyModuleConfig = ModuleConfiguration("com.sun.grizzly", JavaNetRepo)
val guiceyFruitModuleConfig = ModuleConfiguration("org.guiceyfruit", guiceyFruitRepo) lazy val guiceyFruitModuleConfig = ModuleConfiguration("org.guiceyfruit", GuiceyFruitRepo)
def jbossRepo = "JBoss Repo" at "https://repository.jboss.org/nexus/content/groups/public/" lazy val jbossModuleConfig = ModuleConfiguration("org.jboss", JBossRepo)
val jbossModuleConfig = ModuleConfiguration("org.jboss", jbossRepo) lazy val jdmkModuleConfig = ModuleConfiguration("com.sun.jdmk", SunJDMKRepo)
val nettyModuleConfig = ModuleConfiguration("org.jboss.netty", jbossRepo) lazy val jerseyContrModuleConfig = ModuleConfiguration("com.sun.jersey.contribs", JavaNetRepo)
val jgroupsModuleConfig = ModuleConfiguration("jgroups", jbossRepo) lazy val jerseyModuleConfig = ModuleConfiguration("com.sun.jersey", JavaNetRepo)
def sunjdmkRepo = "Sun JDMK Repo" at "http://wp5.e-taxonomy.eu/cdmlib/mavenrepo" lazy val jgroupsModuleConfig = ModuleConfiguration("jgroups", JBossRepo)
val jmsModuleConfig = ModuleConfiguration("javax.jms", sunjdmkRepo) lazy val jmsModuleConfig = ModuleConfiguration("javax.jms", SunJDMKRepo)
val jdmkModuleConfig = ModuleConfiguration("com.sun.jdmk", sunjdmkRepo) lazy val jmxModuleConfig = ModuleConfiguration("com.sun.jmx", SunJDMKRepo)
val jmxModuleConfig = ModuleConfiguration("com.sun.jmx", sunjdmkRepo) lazy val liftModuleConfig = ModuleConfiguration("net.liftweb", ScalaToolsSnapshots)
def javaNetRepo = "java.net Repo" at "http://download.java.net/maven/2" lazy val multiverseModuleConfig = ModuleConfiguration("org.multiverse", CodehausSnapshotRepo)
def sonatypeSnapshotRepo = "Sonatype OSS Repo" at "http://oss.sonatype.org/content/repositories/releases" lazy val nettyModuleConfig = ModuleConfiguration("org.jboss.netty", JBossRepo)
val jerseyModuleConfig = ModuleConfiguration("com.sun.jersey", javaNetRepo) lazy val scalaTestModuleConfig = ModuleConfiguration("org.scalatest", ScalaToolsSnapshots)
val jerseyContrModuleConfig = ModuleConfiguration("com.sun.jersey.contribs", javaNetRepo) lazy val embeddedRepo = EmbeddedRepo // This is the only exception, because the embedded repo is fast!
val grizzlyModuleConfig = ModuleConfiguration("com.sun.grizzly", javaNetRepo)
val atmosphereModuleConfig = ModuleConfiguration("org.atmosphere", sonatypeSnapshotRepo)
val liftModuleConfig = ModuleConfiguration("net.liftweb", ScalaToolsSnapshots)
// val scalaBundleConfig = ModuleConfiguration("com.weiglewilczek.scala-lang-osgi", ScalaToolsReleases)
def codehausSnapshotRepo = "Codehaus Snapshots" at "http://snapshots.repository.codehaus.org"
val multiverseModuleConfig = ModuleConfiguration("org.multiverse", codehausSnapshotRepo)
// ------------------------------------------------------------ // -------------------------------------------------------------------------------------------------------------------
// project defintions // Versions
lazy val akka_core = project("akka-core", "akka-core", new AkkaCoreProject(_)) // -------------------------------------------------------------------------------------------------------------------
lazy val akka_amqp = project("akka-amqp", "akka-amqp", new AkkaAMQPProject(_), akka_core) lazy val ATMO_VERSION = "0.6"
lazy val akka_http = project("akka-http", "akka-http", new AkkaHttpProject(_), akka_core, akka_camel) lazy val CAMEL_VERSION = "2.4.0"
lazy val akka_camel = project("akka-camel", "akka-camel", new AkkaCamelProject(_), akka_core) lazy val CASSANDRA_VERSION = "0.6.1"
lazy val DispatchVersion = "0.7.4"
lazy val JacksonVersion = "1.2.1"
lazy val JERSEY_VERSION = "1.2"
lazy val LIFT_VERSION = "2.0-scala280-SNAPSHOT"
lazy val MULTIVERSE_VERSION = "0.6-SNAPSHOT"
lazy val SCALATEST_VERSION = "1.2-for-scala-2.8.0.final-SNAPSHOT"
lazy val Slf4jVersion = "1.6.0"
lazy val SPRING_VERSION = "3.0.3.RELEASE"
lazy val WerkzVersion = "2.2.1"
// -------------------------------------------------------------------------------------------------------------------
// Dependencies
// -------------------------------------------------------------------------------------------------------------------
object Dependencies {
// Compile
lazy val annotation = "javax.annotation" % "jsr250-api" % "1.0" % "compile"
lazy val aopalliance = "aopalliance" % "aopalliance" % "1.0" % "compile"
lazy val atmo = "org.atmosphere" % "atmosphere-annotations" % ATMO_VERSION % "compile"
lazy val atmo_jbossweb = "org.atmosphere" % "atmosphere-compat-jbossweb" % ATMO_VERSION % "compile"
lazy val atmo_jersey = "org.atmosphere" % "atmosphere-jersey" % ATMO_VERSION % "compile"
lazy val atmo_runtime = "org.atmosphere" % "atmosphere-runtime" % ATMO_VERSION % "compile"
lazy val atmo_tomcat = "org.atmosphere" % "atmosphere-compat-tomcat" % ATMO_VERSION % "compile"
lazy val atmo_weblogic = "org.atmosphere" % "atmosphere-compat-weblogic" % ATMO_VERSION % "compile"
lazy val atomikos_transactions = "com.atomikos" % "transactions" % "3.2.3" % "compile"
lazy val atomikos_transactions_api = "com.atomikos" % "transactions-api" % "3.2.3" % "compile"
lazy val atomikos_transactions_jta = "com.atomikos" % "transactions-jta" % "3.2.3" % "compile"
lazy val camel_core = "org.apache.camel" % "camel-core" % CAMEL_VERSION % "compile"
lazy val cassandra = "org.apache.cassandra" % "cassandra" % CASSANDRA_VERSION % "compile"
lazy val commons_codec = "commons-codec" % "commons-codec" % "1.4" % "compile"
lazy val commons_io = "commons-io" % "commons-io" % "1.4" % "compile"
lazy val commons_logging = "commons-logging" % "commons-logging" % "1.1.1" % "compile"
lazy val commons_pool = "commons-pool" % "commons-pool" % "1.5.4" % "compile"
lazy val configgy = "net.lag" % "configgy" % "2.8.0-1.5.5" % "compile"
lazy val dispatch_http = "net.databinder" % "dispatch-http_2.8.0" % DispatchVersion % "compile"
lazy val dispatch_json = "net.databinder" % "dispatch-json_2.8.0" % DispatchVersion % "compile"
lazy val grizzly = "com.sun.grizzly" % "grizzly-comet-webserver" % "1.9.18-i" % "compile"
lazy val guicey = "org.guiceyfruit" % "guice-all" % "2.0" % "compile"
lazy val h2_lzf = "voldemort.store.compress" % "h2-lzf" % "1.0" % "compile"
lazy val jackson = "org.codehaus.jackson" % "jackson-mapper-asl" % JacksonVersion % "compile"
lazy val jackson_core = "org.codehaus.jackson" % "jackson-core-asl" % JacksonVersion % "compile"
lazy val jackson_core_asl = "org.codehaus.jackson" % "jackson-core-asl" % JacksonVersion % "compile"
lazy val jersey = "com.sun.jersey" % "jersey-core" % JERSEY_VERSION % "compile"
lazy val jersey_json = "com.sun.jersey" % "jersey-json" % JERSEY_VERSION % "compile"
lazy val jersey_server = "com.sun.jersey" % "jersey-server" % JERSEY_VERSION % "compile"
lazy val jersey_contrib = "com.sun.jersey.contribs" % "jersey-scala" % JERSEY_VERSION % "compile"
lazy val jgroups = "jgroups" % "jgroups" % "2.9.0.GA" % "compile"
lazy val jsr166x = "jsr166x" % "jsr166x" % "1.0" % "compile"
lazy val jsr250 = "javax.annotation" % "jsr250-api" % "1.0" % "compile"
lazy val jsr311 = "javax.ws.rs" % "jsr311-api" % "1.1" % "compile"
lazy val jta_1_1 = "org.apache.geronimo.specs" % "geronimo-jta_1.1_spec" % "1.1.1" % "compile" intransitive()
lazy val lift = "net.liftweb" % "lift-webkit" % LIFT_VERSION % "compile"
lazy val lift_util = "net.liftweb" % "lift-util" % LIFT_VERSION % "compile"
lazy val log4j = "log4j" % "log4j" % "1.2.15" % "compile"
lazy val mongo = "org.mongodb" % "mongo-java-driver" % "1.4" % "compile"
lazy val multiverse = "org.multiverse" % "multiverse-alpha" % MULTIVERSE_VERSION % "compile" intransitive()
lazy val netty = "org.jboss.netty" % "netty" % "3.2.1.Final" % "compile"
lazy val protobuf = "com.google.protobuf" % "protobuf-java" % "2.3.0" % "compile"
lazy val rabbit = "com.rabbitmq" % "amqp-client" % "1.8.1" % "compile"
lazy val redis = "com.redis" % "redisclient" % "2.8.0-1.4" % "compile"
lazy val sbinary = "sbinary" % "sbinary" % "2.8.0-0.3.1" % "compile"
lazy val servlet = "javax.servlet" % "servlet-api" % "2.5" % "compile"
lazy val sjson = "sjson.json" % "sjson" % "0.7-SNAPSHOT-2.8.0" % "compile"
lazy val slf4j = "org.slf4j" % "slf4j-api" % Slf4jVersion % "compile"
lazy val slf4j_log4j = "org.slf4j" % "slf4j-log4j12" % Slf4jVersion % "compile"
lazy val spring_beans = "org.springframework" % "spring-beans" % SPRING_VERSION % "compile"
lazy val spring_context = "org.springframework" % "spring-context" % SPRING_VERSION % "compile"
lazy val stax_api = "javax.xml.stream" % "stax-api" % "1.0-2" % "compile"
lazy val thrift = "com.facebook" % "thrift" % "r917130" % "compile"
lazy val werkz = "org.codehaus.aspectwerkz" % "aspectwerkz-nodeps-jdk5" % WerkzVersion % "compile"
lazy val werkz_core = "org.codehaus.aspectwerkz" % "aspectwerkz-jdk5" % WerkzVersion % "compile"
// Test
lazy val camel_spring = "org.apache.camel" % "camel-spring" % CAMEL_VERSION % "test"
lazy val cassandra_clhm = "org.apache.cassandra" % "clhm-production" % CASSANDRA_VERSION % "test"
lazy val commons_coll = "commons-collections" % "commons-collections" % "3.2.1" % "test"
lazy val google_coll = "com.google.collections" % "google-collections" % "1.0" % "test"
lazy val high_scale = "org.apache.cassandra" % "high-scale-lib" % CASSANDRA_VERSION % "test"
lazy val jettyServer = "org.mortbay.jetty" % "jetty" % "6.1.22" % "test"
lazy val junit = "junit" % "junit" % "4.5" % "test"
lazy val mockito = "org.mockito" % "mockito-all" % "1.8.1" % "test"
lazy val scalatest = "org.scalatest" % "scalatest" % SCALATEST_VERSION % "test"
}
// -------------------------------------------------------------------------------------------------------------------
// Subprojects
// -------------------------------------------------------------------------------------------------------------------
lazy val akka_core = project("akka-core", "akka-core", new AkkaCoreProject(_))
lazy val akka_amqp = project("akka-amqp", "akka-amqp", new AkkaAMQPProject(_), akka_core)
lazy val akka_http = project("akka-http", "akka-http", new AkkaHttpProject(_), akka_core, akka_camel)
lazy val akka_camel = project("akka-camel", "akka-camel", new AkkaCamelProject(_), akka_core)
lazy val akka_persistence = project("akka-persistence", "akka-persistence", new AkkaPersistenceParentProject(_)) lazy val akka_persistence = project("akka-persistence", "akka-persistence", new AkkaPersistenceParentProject(_))
lazy val akka_spring = project("akka-spring", "akka-spring", new AkkaSpringProject(_), akka_core, akka_camel) lazy val akka_spring = project("akka-spring", "akka-spring", new AkkaSpringProject(_), akka_core, akka_camel)
lazy val akka_jta = project("akka-jta", "akka-jta", new AkkaJTAProject(_), akka_core) lazy val akka_jta = project("akka-jta", "akka-jta", new AkkaJTAProject(_), akka_core)
lazy val akka_kernel = project("akka-kernel", "akka-kernel", new AkkaKernelProject(_), lazy val akka_kernel = project("akka-kernel", "akka-kernel", new AkkaKernelProject(_),
akka_core, akka_http, akka_spring, akka_camel, akka_persistence, akka_amqp) akka_core, akka_http, akka_spring, akka_camel, akka_persistence, akka_amqp)
lazy val akka_osgi = project("akka-osgi", "akka-osgi", new AkkaOSGiParentProject(_)) lazy val akka_samples = project("akka-samples", "akka-samples", new AkkaSamplesParentProject(_))
// examples
lazy val akka_samples = project("akka-samples", "akka-samples", new AkkaSamplesParentProject(_))
// ------------------------------------------------------------ // ------------------------------------------------------------
// Run Akka microkernel using 'sbt run' + use for packaging executable JAR // Run Akka microkernel using 'sbt run' + use for packaging executable JAR
@ -177,103 +300,87 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
None None
} dependsOn(dist) describedAs("Run mvn install for artifacts in dist.") } dependsOn(dist) describedAs("Run mvn install for artifacts in dist.")
// ------------------------------------------------------------ // -------------------------------------------------------------------------------------------------------------------
// subprojects // akka-core subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaCoreProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin { class AkkaCoreProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin {
val netty = "org.jboss.netty" % "netty" % "3.2.1.Final" % "compile" val aopalliance = Dependencies.aopalliance
val commons_codec = "commons-codec" % "commons-codec" % "1.4" % "compile" val commons_codec = Dependencies.commons_codec
val commons_io = "commons-io" % "commons-io" % "1.4" % "compile" val commons_io = Dependencies.commons_io
val dispatch_json = "net.databinder" % "dispatch-json_2.8.0" % "0.7.4" % "compile" val configgy = Dependencies.configgy
val dispatch_http = "net.databinder" % "dispatch-http_2.8.0" % "0.7.4" % "compile" val dispatch_http = Dependencies.dispatch_http
val sjson = "sjson.json" % "sjson" % "0.7-SNAPSHOT-2.8.0" % "compile" val dispatch_json = Dependencies.dispatch_json
val sbinary = "sbinary" % "sbinary" % "2.8.0-0.3.1" % "compile" val guicey = Dependencies.guicey
val jackson = "org.codehaus.jackson" % "jackson-mapper-asl" % "1.2.1" % "compile" val h2_lzf = Dependencies.h2_lzf
val jackson_core = "org.codehaus.jackson" % "jackson-core-asl" % "1.2.1" % "compile" val jackson = Dependencies.jackson
val h2_lzf = "voldemort.store.compress" % "h2-lzf" % "1.0" % "compile" val jackson_core = Dependencies.jackson_core
val jsr166x = "jsr166x" % "jsr166x" % "1.0" % "compile" val jgroups = Dependencies.jgroups
val jta_1_1 = "org.apache.geronimo.specs" % "geronimo-jta_1.1_spec" % "1.1.1" % "compile" intransitive() val jsr166x = Dependencies.jsr166x
val werkz = "org.codehaus.aspectwerkz" % "aspectwerkz-nodeps-jdk5" % "2.2.1" % "compile" val jta_1_1 = Dependencies.jta_1_1
val werkz_core = "org.codehaus.aspectwerkz" % "aspectwerkz-jdk5" % "2.2.1" % "compile" val multiverse = Dependencies.multiverse
val configgy = "net.lag" % "configgy" % "2.8.0-1.5.5" % "compile" val netty = Dependencies.netty
val guicey = "org.guiceyfruit" % "guice-all" % "2.0" % "compile" val protobuf = Dependencies.protobuf
val aopalliance = "aopalliance" % "aopalliance" % "1.0" % "compile" val sbinary = Dependencies.sbinary
val protobuf = "com.google.protobuf" % "protobuf-java" % "2.3.0" % "compile" val sjson = Dependencies.sjson
val multiverse = "org.multiverse" % "multiverse-alpha" % MULTIVERSE_VERSION % "compile" intransitive() val werkz = Dependencies.werkz
val jgroups = "jgroups" % "jgroups" % "2.9.0.GA" % "compile" val werkz_core = Dependencies.werkz_core
// testing // testing
val scalatest = "org.scalatest" % "scalatest" % SCALATEST_VERSION % "test" val junit = Dependencies.junit
val junit = "junit" % "junit" % "4.5" % "test" val scalatest = Dependencies.scalatest
} }
// -------------------------------------------------------------------------------------------------------------------
// akka-amqp subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaAMQPProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin { class AkkaAMQPProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin {
val commons_io = "commons-io" % "commons-io" % "1.4" % "compile" val commons_io = Dependencies.commons_io
val rabbit = "com.rabbitmq" % "amqp-client" % "1.8.1" % "compile" val rabbit = Dependencies.rabbit
// testing // testing
val multiverse = "org.multiverse" % "multiverse-alpha" % MULTIVERSE_VERSION % "test" intransitive() val junit = Dependencies.junit
val scalatest = "org.scalatest" % "scalatest" % SCALATEST_VERSION % "test" val multiverse = Dependencies.multiverse
val junit = "junit" % "junit" % "4.5" % "test" val scalatest = Dependencies.scalatest
} }
// -------------------------------------------------------------------------------------------------------------------
// akka-http subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaHttpProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin { class AkkaHttpProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin {
val jackson_core_asl = "org.codehaus.jackson" % "jackson-core-asl" % "1.2.1" % "compile" val annotation = Dependencies.annotation
val stax_api = "javax.xml.stream" % "stax-api" % "1.0-2" % "compile" val atmo = Dependencies.atmo
val servlet = "javax.servlet" % "servlet-api" % "2.5" % "compile" val atmo_jbossweb = Dependencies.atmo_jbossweb
val jersey = "com.sun.jersey" % "jersey-core" % JERSEY_VERSION % "compile" val atmo_jersey = Dependencies.atmo_jersey
val jersey_server = "com.sun.jersey" % "jersey-server" % JERSEY_VERSION % "compile" val atmo_runtime = Dependencies.atmo_runtime
val jersey_json = "com.sun.jersey" % "jersey-json" % JERSEY_VERSION % "compile" val atmo_tomcat = Dependencies.atmo_tomcat
val jersey_contrib = "com.sun.jersey.contribs" % "jersey-scala" % JERSEY_VERSION % "compile" val atmo_weblogic = Dependencies.atmo_weblogic
val jsr311 = "javax.ws.rs" % "jsr311-api" % "1.1" % "compile" val commons_logging = Dependencies.commons_logging
val grizzly = "com.sun.grizzly" % "grizzly-comet-webserver" % "1.9.18-i" % "compile" val grizzly = Dependencies.grizzly
val atmo = "org.atmosphere" % "atmosphere-annotations" % ATMO_VERSION % "compile" val jackson_core_asl = Dependencies.jackson_core_asl
val atmo_jersey = "org.atmosphere" % "atmosphere-jersey" % ATMO_VERSION % "compile" val jersey = Dependencies.jersey
val atmo_runtime = "org.atmosphere" % "atmosphere-runtime" % ATMO_VERSION % "compile" val jersey_contrib = Dependencies.jersey_contrib
val atmo_tomcat = "org.atmosphere" % "atmosphere-compat-tomcat" % ATMO_VERSION % "compile" val jersey_json = Dependencies.jersey_json
val atmo_weblogic = "org.atmosphere" % "atmosphere-compat-weblogic" % ATMO_VERSION % "compile" val jersey_server = Dependencies.jersey_server
val atmo_jbossweb = "org.atmosphere" % "atmosphere-compat-jbossweb" % ATMO_VERSION % "compile" val jsr311 = Dependencies.jsr311
val commons_logging = "commons-logging" % "commons-logging" % "1.1.1" % "compile" val servlet = Dependencies.servlet
val annotation = "javax.annotation" % "jsr250-api" % "1.0" % "compile" val stax_api = Dependencies.stax_api
// testing // testing
val scalatest = "org.scalatest" % "scalatest" % SCALATEST_VERSION % "test" val junit = Dependencies.junit
val junit = "junit" % "junit" % "4.5" % "test" val mockito = Dependencies.mockito
val mockito = "org.mockito" % "mockito-all" % "1.8.1" % "test" val scalatest = Dependencies.scalatest
} }
// -------------------------------------------------------------------------------------------------------------------
// akka-camel subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaCamelProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin { class AkkaCamelProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin {
val camel_core = "org.apache.camel" % "camel-core" % CAMEL_VERSION % "compile" val camel_core = Dependencies.camel_core
}
class AkkaPersistenceCommonProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val thrift = "com.facebook" % "thrift" % "r917130" % "compile"
val commons_pool = "commons-pool" % "commons-pool" % "1.5.4" % "compile"
}
class AkkaRedisProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val redis = "com.redis" % "redisclient" % "2.8.0-1.4" % "compile"
val commons_codec = "commons-codec" % "commons-codec" % "1.4" % "compile"
override def testOptions = TestFilter((name: String) => name.endsWith("Test")) :: Nil
}
class AkkaMongoProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val mongo = "org.mongodb" % "mongo-java-driver" % "1.4" % "compile"
override def testOptions = TestFilter((name: String) => name.endsWith("Test")) :: Nil
}
class AkkaCassandraProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val cassandra = "org.apache.cassandra" % "cassandra" % CASSANDRA_VERSION % "compile"
val slf4j = "org.slf4j" % "slf4j-api" % "1.6.0" % "compile"
val slf4j_log4j = "org.slf4j" % "slf4j-log4j12" % "1.6.0" % "compile"
val log4j = "log4j" % "log4j" % "1.2.15" % "compile"
// testing
val high_scale = "org.apache.cassandra" % "high-scale-lib" % CASSANDRA_VERSION % "test"
val cassandra_clhm = "org.apache.cassandra" % "clhm-production" % CASSANDRA_VERSION % "test"
val commons_coll = "commons-collections" % "commons-collections" % "3.2.1" % "test"
val google_coll = "com.google.collections" % "google-collections" % "1.0" % "test"
override def testOptions = TestFilter((name: String) => name.endsWith("Test")) :: Nil
} }
// -------------------------------------------------------------------------------------------------------------------
// akka-persistence subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaPersistenceParentProject(info: ProjectInfo) extends ParentProject(info) { class AkkaPersistenceParentProject(info: ProjectInfo) extends ParentProject(info) {
lazy val akka_persistence_common = project("akka-persistence-common", "akka-persistence-common", lazy val akka_persistence_common = project("akka-persistence-common", "akka-persistence-common",
new AkkaPersistenceCommonProject(_), akka_core) new AkkaPersistenceCommonProject(_), akka_core)
@ -285,24 +392,78 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
new AkkaCassandraProject(_), akka_persistence_common) new AkkaCassandraProject(_), akka_persistence_common)
} }
class AkkaKernelProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) // -------------------------------------------------------------------------------------------------------------------
// akka-persistence-common subproject
class AkkaSpringProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin { // -------------------------------------------------------------------------------------------------------------------
val spring_beans = "org.springframework" % "spring-beans" % SPRING_VERSION % "compile" class AkkaPersistenceCommonProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val spring_context = "org.springframework" % "spring-context" % SPRING_VERSION % "compile" val commons_pool = Dependencies.commons_pool
val thrift = Dependencies.thrift
// testing
val camel_spring = "org.apache.camel" % "camel-spring" % CAMEL_VERSION % "test"
val scalatest = "org.scalatest" % "scalatest" % SCALATEST_VERSION % "test"
val junit = "junit" % "junit" % "4.5" % "test"
} }
// -------------------------------------------------------------------------------------------------------------------
// akka-persistence-redis subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaRedisProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val commons_codec = Dependencies.commons_codec
val redis = Dependencies.redis
override def testOptions = TestFilter((name: String) => name.endsWith("Test")) :: Nil
}
// -------------------------------------------------------------------------------------------------------------------
// akka-persistence-mongo subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaMongoProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val mongo = Dependencies.mongo
override def testOptions = TestFilter((name: String) => name.endsWith("Test")) :: Nil
}
// -------------------------------------------------------------------------------------------------------------------
// akka-persistence-cassandra subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaCassandraProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val cassandra = Dependencies.cassandra
val log4j = Dependencies.log4j
val slf4j = Dependencies.slf4j
val slf4j_log4j = Dependencies.slf4j_log4j
// testing
val cassandra_clhm = Dependencies.cassandra_clhm
val commons_coll = Dependencies.commons_coll
val google_coll = Dependencies.google_coll
val high_scale = Dependencies.high_scale
override def testOptions = TestFilter((name: String) => name.endsWith("Test")) :: Nil
}
// -------------------------------------------------------------------------------------------------------------------
// akka-kernel subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaKernelProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath)
// -------------------------------------------------------------------------------------------------------------------
// akka-spring subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaSpringProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin {
val spring_beans = Dependencies.spring_beans
val spring_context = Dependencies.spring_context
// testing
val camel_spring = Dependencies.camel_spring
val junit = Dependencies.junit
val scalatest = Dependencies.scalatest
}
// -------------------------------------------------------------------------------------------------------------------
// akka-jta subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaJTAProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin { class AkkaJTAProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with CodeFellowPlugin {
val atomikos_transactions = "com.atomikos" % "transactions" % "3.2.3" % "compile" val atomikos_transactions = Dependencies.atomikos_transactions
val atomikos_transactions_jta = "com.atomikos" % "transactions-jta" % "3.2.3" % "compile" val atomikos_transactions_api = Dependencies.atomikos_transactions_api
val atomikos_transactions_api = "com.atomikos" % "transactions-api" % "3.2.3" % "compile" val atomikos_transactions_jta = Dependencies.atomikos_transactions_jta
val jta_1_1 = Dependencies.jta_1_1
//val atomikos_transactions_util = "com.atomikos" % "transactions-util" % "3.2.3" % "compile" //val atomikos_transactions_util = "com.atomikos" % "transactions-util" % "3.2.3" % "compile"
val jta_spec = "org.apache.geronimo.specs" % "geronimo-jta_1.1_spec" % "1.1.1" % "compile" intransitive()
} }
// ================= OSGi Packaging ================== // ================= OSGi Packaging ==================
@ -404,21 +565,24 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
// ================= EXAMPLES ================== // ================= EXAMPLES ==================
class AkkaSampleAntsProject(info: ProjectInfo) extends DefaultSpdeProject(info) with CodeFellowPlugin { class AkkaSampleAntsProject(info: ProjectInfo) extends DefaultSpdeProject(info) with CodeFellowPlugin {
val scalaToolsSnapshots = ScalaToolsSnapshots // val scalaToolsSnapshots = ScalaToolsSnapshots
override def spdeSourcePath = mainSourcePath / "spde" override def spdeSourcePath = mainSourcePath / "spde"
} }
class AkkaSampleChatProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin class AkkaSampleChatProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin
class AkkaSamplePubSubProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin class AkkaSamplePubSubProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin
class AkkaSampleLiftProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin { class AkkaSampleLiftProject(info: ProjectInfo) extends DefaultWebProject(info) with DeployProject with CodeFellowPlugin {
val commons_logging = "commons-logging" % "commons-logging" % "1.1.1" % "compile" val commons_logging = Dependencies.commons_logging
val lift = "net.liftweb" % "lift-webkit" % LIFT_VERSION % "compile" val lift = Dependencies.lift
val lift_util = "net.liftweb" % "lift-util" % LIFT_VERSION % "compile" val lift_util = Dependencies.lift_util
val servlet = "javax.servlet" % "servlet-api" % "2.5" % "compile" val servlet = Dependencies.servlet
// testing // testing
val jetty = "org.mortbay.jetty" % "jetty" % "6.1.22" % "test" val jettyServer = Dependencies.jettyServer
val junit = "junit" % "junit" % "4.5" % "test" val junit = Dependencies.junit
def deployPath = AkkaParentProject.this.deployPath
} }
class AkkaSampleRestJavaProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin class AkkaSampleRestJavaProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin
@ -426,7 +590,7 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
class AkkaSampleRemoteProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin class AkkaSampleRemoteProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin
class AkkaSampleRestScalaProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin { class AkkaSampleRestScalaProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin {
val jsr311 = "javax.ws.rs" % "jsr311-api" % "1.1.1" % "compile" val jsr311 = Dependencies.jsr311
} }
class AkkaSampleCamelProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin { class AkkaSampleCamelProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin {
@ -447,9 +611,9 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
} }
class AkkaSampleSecurityProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin { class AkkaSampleSecurityProject(info: ProjectInfo) extends AkkaDefaultProject(info, deployPath) with CodeFellowPlugin {
val jsr311 = "javax.ws.rs" % "jsr311-api" % "1.1.1" % "compile" val commons_codec = Dependencies.commons_codec
val jsr250 = "javax.annotation" % "jsr250-api" % "1.0" % "compile" val jsr250 = Dependencies.jsr250
val commons_codec = "commons-codec" % "commons-codec" % "1.4" % "compile" val jsr311 = Dependencies.jsr311
} }
class AkkaSampleOSGiProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with BNDPlugin { class AkkaSampleOSGiProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) with BNDPlugin {
@ -516,7 +680,7 @@ class AkkaParent(info: ProjectInfo) extends DefaultProject(info) {
// ------------------------------------------------------------ // ------------------------------------------------------------
class AkkaDefaultProject(info: ProjectInfo, val deployPath: Path) extends DefaultProject(info) with DeployProject with OSGiProject class AkkaDefaultProject(info: ProjectInfo, val deployPath: Path) extends DefaultProject(info) with DeployProject with OSGiProject
trait DeployProject extends DefaultProject { trait DeployProject { self: Project =>
// defines where the deployTask copies jars to // defines where the deployTask copies jars to
def deployPath: Path def deployPath: Path

View file

@ -1,17 +1,31 @@
import sbt._ import sbt._
class Plugins(info: ProjectInfo) extends PluginDefinition(info) { class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
val embeddedRepo = "Embedded Repo" at (info.projectPath / "embedded-repo").asURL.toString
val codeFellow = "de.tuxed" % "codefellow-plugin" % "0.3" // for code completion and more in VIM
// val repo = "GH-pages repo" at "http://mpeltonen.github.com/maven/"
// val idea = "com.github.mpeltonen" % "sbt-idea-plugin" % "0.1-SNAPSHOT"
// Repositories: Using module configs to speed up resolution => Repos must be defs! // -------------------------------------------------------------------------------------------------------------------
def aquteRepo = "aQute Maven Repository" at "http://www.aqute.biz/repo" // All repositories *must* go here! See ModuleConigurations below.
lazy val aquteModuleConfig = ModuleConfiguration("biz.aQute", aquteRepo) // -------------------------------------------------------------------------------------------------------------------
def databinderRepo = "Databinder Repository" at "http://databinder.net/repo" object Repositories {
lazy val spdeModuleConfig = ModuleConfiguration("us.technically.spde", databinderRepo) lazy val AquteRepo = "aQute Maven Repository" at "http://www.aqute.biz/repo"
lazy val DatabinderRepo = "Databinder Repository" at "http://databinder.net/repo"
lazy val EmbeddedRepo = "Embedded Repo" at (info.projectPath / "embedded-repo").asURL.toString
}
val bnd4sbt = "com.weiglewilczek.bnd4sbt" % "bnd4sbt" % "1.0.0.RC3" // -------------------------------------------------------------------------------------------------------------------
val spdeSbt = "us.technically.spde" % "spde-sbt-plugin" % "0.4.1" // ModuleConfigurations
// Every dependency that cannot be resolved from the built-in repositories (Maven Central and Scala Tools Releases)
// must be resolved from a ModuleConfiguration. This will result in a significant acceleration of the update action.
// Therefore, if repositories are defined, this must happen as def, not as val.
// -------------------------------------------------------------------------------------------------------------------
import Repositories._
lazy val aquteModuleConfig = ModuleConfiguration("biz.aQute", AquteRepo)
lazy val codeFellowModuleConfig = ModuleConfiguration("de.tuxed", EmbeddedRepo)
lazy val spdeModuleConfig = ModuleConfiguration("us.technically.spde", DatabinderRepo)
// -------------------------------------------------------------------------------------------------------------------
// Dependencies
// -------------------------------------------------------------------------------------------------------------------
lazy val bnd4sbt = "com.weiglewilczek.bnd4sbt" % "bnd4sbt" % "1.0.0.RC4"
lazy val codeFellow = "de.tuxed" % "codefellow-plugin" % "0.3" // for code completion and more in VIM
lazy val spdeSbt = "us.technically.spde" % "spde-sbt-plugin" % "0.4.1"
} }