Introduce the REST module.
[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 LIMITED 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 ParentProject(info) {
39         override def parallelExecution = false
40
41         val repo0 = "aquarium nexus" at "http://aquarium.dev.grnet.gr:8081/nexus/content/groups/public"
42         //val repo1 = "java.net.maven2" at "http://download.java.net/maven/2/"
43         //val repo2 = "EclipseLink Repo" at "http://download.eclipse.org/rt/eclipselink/maven.repo"
44         //val repo3 = "jboss" at "http://repository.jboss.org/nexus/content/groups/public/"
45         //val repo4 = "sonatype" at "http://oss.sonatype.org/content/groups/public/"
46         //val repo5 = "jcrontab" at "http://kenai.com/projects/crontab-parser/sources/maven-repo/content/"
47         // val repo6 = "typsafe" at "http://repo.typesafe.com/typesafe/releases/"
48         // val repo7 = "akka" at "http://akka.io/repository/"
49         // repo8 = "twitter" at "http://maven.twttr.com"
50
51         val lib_slf4j     = "org.slf4j"      % "slf4j-api"            % "1.6.1"   withSources()
52         val lib_h2        = "com.h2database" % "h2"                   % "1.3.160" withSources()
53         val lib_mysql     = "mysql"          % "mysql-connector-java" % "5.1.17"  
54         val lib_scalajpa  = "org.scala-libs" % "scalajpa_2.9.1"       % "1.4"     withSources()
55         val lib_elink     = "org.eclipse.persistence"  % "eclipselink" % "2.2.0"   withSources()
56
57         lazy val logic = project("logic", "logic", new Logic(_), model)
58         lazy val model = project("model", "model", new Model(_))
59         lazy val shared = project("shared", "shared", new Shared(_))
60
61         class Logic(info: ProjectInfo) extends DefaultProject(info) {
62                 val lib_scalajpa  = "org.scala-libs" % "scalajpa_2.9.1"  % "1.4"            withSources()
63                 val lib_liftjson  = "net.liftweb"    % "lift-json_2.9.1" % "2.4-M5"         withSources()
64                 val lib_liftjsonX = "net.liftweb"    % "lift-json-ext_2.9.1" % "2.4-M5"         withSources()
65                 val lib_yaml      = "org.yaml"       % "snakeyaml"       % "1.9"  withSources()
66                 val lib_jcrontab  = "com.kenai.crontab-parser" % "crontab-parser" % "1.0.1" withSources()
67                 val lib_xstream   = "com.thoughtworks.xstream" % "xstream"     % "1.4.1" withSources()
68                 val lib_rabbit    = "com.rabbitmq"   % "amqp-client"       % "2.7.0" withSources()
69                 val lib_mongo     = "org.mongodb"    % "mongo-java-driver" % "2.7.2" withSources()
70         //val lib_casbah    = "com.mongodb.casbah" % "casbah-core_2.9.1"  % "2.1.5-1" withSources()
71         val lib_akka_actor  = "se.scalablesolutions.akka" % "akka-actor" % "1.3-RC1" withSources()
72         val lib_akka_remote = "se.scalablesolutions.akka" % "akka-remote" % "1.3-RC1" withSources()
73         val lib_akka_test   = "se.scalablesolutions.akka" % "akka-testkit" % "1.3-RC1" % "test" withSources()
74
75         val lib_javaxrs     = "javax.ws.rs" % "jsr311-api" % "1.1.1" withSources()
76         val lib_spray_can   = "cc.spray.can" % "spray-can" % "0.9.2-SNAPSHOT" withSources()
77
78                 val lib_converter      = "com.ckkloverdos" % "converter_2.9.1"      % "0.3.0" withSources()
79                 val lib_streamresource = "com.ckkloverdos" % "streamresource_2.9.1" % "0.2.0" withSources()
80
81
82                 // val model = project(Path.fromFile("../model"), "model", new Model(_))
83         }
84
85         class Model(info: ProjectInfo) extends DefaultProject(info) {
86                 val lib_scalajpa  = "org.scala-libs" % "scalajpa_2.9.1"  % "1.4"            withSources()
87                 val lib_persist = "org.eclipse.persistence" % "javax.persistence" % "2.0.3" withSources()
88
89                 val lib_junit     = "junit" % "junit" % "4.10" % "test" withSources()
90         }
91
92         class Shared(info: ProjectInfo) extends DefaultProject(info) {
93                 // dummy, to avoid looking at pom.xml
94                 val lib_persist = "org.eclipse.persistence" % "javax.persistence" % "2.0.3" withSources()
95         }
96 }