Upgrade Akka to 1.3 and refactor SBT build file
[aquarium] / project / build / Aquarium.scala
1 /*
2  * Copyright 2011 GRNET S.A. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or
5  * without modification, are permitted provided that the following
6  * conditions are met:
7  *
8  *   1. Redistributions of source code must retain the above
9  *      copyright notice, this list of conditions and the following
10  *      disclaimer.
11  *
12  *   2. Redistributions in binary form must reproduce the above
13  *      copyright notice, this list of conditions and the following
14  *      disclaimer in the documentation and/or other materials
15  *      provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT l TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  *
30  * The views and conclusions contained in the software and
31  * documentation are those of the authors and should not be
32  * interpreted as representing official policies, either expressed
33  * or implied, of GRNET S.A.
34  */
35
36 import sbt._
37
38 class Aquarium(info: ProjectInfo) extends DefaultProject(info) {
39   object Versions {
40     final val akka  = "1.3"
41     final val lift  = "2.4"
42     final val maybe = "0.3.0"
43   }
44
45   def akkaModule(what: String): String = "akka-%s".format(what)
46
47   def liftModule(what: String): String = "lift-%s".format(what)
48
49   object Deps {
50     def akka(what: String) = "se.scalablesolutions.akka" % akkaModule(what) % Versions.akka
51
52     def lift(what: String) = "net.liftweb" %% liftModule(what) % Versions.lift
53   }
54
55   override def compileOptions = super.compileOptions ++
56     Seq("-deprecation",
57       "-Xmigration",
58       "-Xcheckinit",
59       "-optimise",
60       "-explaintypes",
61       "-unchecked",
62       "-encoding", "utf8")
63       .map(CompileOption(_))
64
65   override def testOptions =
66     super.testOptions ++
67       Seq(TestArgument(TestFrameworks.JUnit, "-q", "-v"))
68
69   override def packageDocsJar = defaultJarPath("-javadoc.jar")
70
71   override def packageSrcJar = defaultJarPath("-sources.jar")
72
73   val sourceArtifact = Artifact.sources(artifactID)
74   val docsArtifact = Artifact.javadoc(artifactID)
75
76   override def packageToPublishActions = super.packageToPublishActions ++ Seq(packageDocs, packageSrc)
77
78   override def packageAction = super.packageAction dependsOn test
79
80   override def managedStyle = ManagedStyle.Maven
81
82   val localDestRepo = Resolver.file("maven-local", Path.userHome / ".m2" / "repository" asFile)
83
84   override def parallelExecution = false
85
86   val repo0 = "aquarium nexus" at "http://aquarium.dev.grnet.gr:8081/nexus/content/groups/public"
87   val repo1 = "java.net.maven2" at "http://download.java.net/maven/2/"
88   val repo2 = "EclipseLink Repo" at "http://download.eclipse.org/rt/eclipselink/maven.repo"
89   val repo3 = "jboss" at "http://repository.jboss.org/nexus/content/groups/public/"
90   val repo4 = "sonatype" at "http://oss.sonatype.org/content/groups/public/"
91   val repo5 = "jcrontab" at "http://kenai.com/projects/crontab-parser/sources/maven-repo/content/"
92   val repo6 = "typsafe" at "http://repo.typesafe.com/typesafe/releases/"
93   val repo7 = "akka" at "http://akka.io/repository/"
94   val repo8 = "twitter" at "http://maven.twttr.com"
95   val repo9 = "tools-snapshots" at "http://scala-tools.org/repo-snapshots"
96   val repoA = "tools-releases" at "http://scala-tools.org/repo-releases"
97   val repoB = "sonatype-snapshots" at "http://oss.sonatype.org/content/repositories/snapshots"
98   val repoC = "jboss scala-tools" at "https://repository.jboss.org/nexus/content/repositories/scala-tools-releases"
99
100   val lib_slf4j = "org.slf4j" % "slf4j-api" % "1.6.1" withSources()
101
102   val lib_liftjson  = Deps.lift("json")     withSources()
103   val lib_liftjsonX = Deps.lift("json-ext") withSources()
104
105   val lib_akka_actor  = Deps.akka("actor")            withSources()
106   val lib_akka_remote = Deps.akka("remote")           withSources()
107   val lib_akka_test   = Deps.akka("testkit") % "test" withSources()
108   val lib_akka_amqp   = Deps.akka("amqp")             withSources()
109
110   val lib_yaml = "org.yaml" % "snakeyaml" % "1.9" withSources()
111   val lib_jcrontab = "com.kenai.crontab-parser" % "crontab-parser" % "1.0.1" withSources()
112   val lib_xstream = "com.thoughtworks.xstream" % "xstream" % "1.4.1" withSources()
113   val lib_rabbit = "com.rabbitmq" % "amqp-client" % "2.5.0" withSources()
114   val lib_mongo = "org.mongodb" % "mongo-java-driver" % "2.7.2" withSources()
115
116
117 //  val lib_javaxrs = "javax.ws.rs" % "jsr311-api" % "1.1.1" withSources()
118   val lib_spray_can = "cc.spray.can" % "spray-can" % "0.9.2-SNAPSHOT" withSources()
119
120   val lib_maybe = "com.ckkloverdos" %% "maybe" % Versions.maybe withSources()
121   val lib_converter = "com.ckkloverdos" %% "converter" % "0.3.0" withSources()
122   val lib_sysprop = "com.ckkloverdos" %% "sysprop" % "0.1.0" withSources()
123   val lib_streamresource = "com.ckkloverdos" %% "streamresource" % "0.2.0" withSources()
124
125   val lib_lucene_core = "org.apache.lucene" % "lucene-core" % "3.5.0" withSources()
126   val lib_solr_core = "org.apache.solr" % "solr-core" % "3.5.0" withSources()
127
128   val lib_scopt = "com.github.scopt" %% "scopt" % "1.1.2" withSources()
129
130   val lib_joda = "joda-time" % "joda-time" % "2.0" withSources()
131   val lib_joda_conv = "org.joda" % "joda-convert" % "1.1" withSources()
132
133   val lib_test = "com.novocode" % "junit-interface" % "0.7" % "test->default"
134 }