Merge branch 'snapshots'
[aquarium] / pom.xml
diff --git a/pom.xml b/pom.xml
index e30cf02..fc3a906 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,19 +1,51 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<!--
+  ~ Copyright 2011 GRNET S.A. All rights reserved.
+  ~
+  ~ Redistribution and use in source and binary forms, with or
+  ~ without modification, are permitted provided that the following
+  ~ conditions are met:
+  ~
+  ~   1. Redistributions of source code must retain the above
+  ~      copyright notice, this list of conditions and the following
+  ~      disclaimer.
+  ~
+  ~   2. Redistributions in binary form must reproduce the above
+  ~      copyright notice, this list of conditions and the following
+  ~      disclaimer in the documentation and/or other materials
+  ~      provided with the distribution.
+  ~
+  ~ THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
+  ~ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  ~ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  ~ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
+  ~ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  ~ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  ~ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+  ~ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+  ~ AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  ~ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ~ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  ~ POSSIBILITY OF SUCH DAMAGE.
+  ~
+  ~ The views and conclusions contained in the software and
+  ~ documentation are those of the authors and should not be
+  ~ interpreted as representing official policies, either expressed
+  ~ or implied, of GRNET S.A.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
 
   <modelVersion>4.0.0</modelVersion>
   <groupId>gr.grnet</groupId>
   <artifactId>aquarium</artifactId>
-  <version>0.0.1-SNAPSHOT</version>
-  <packaging>pom</packaging>
+  <version>0.2.0-SNAPSHOT</version>
 
   <!-- Project details-->
   <name>Aquarium</name>
   <description>
-    Account handling, sharing and charging services for the Okeanos cloud
+    Charging services for the Okeanos cloud
   </description>
   <url>http://code.grnet.gr/projects/aquarium</url>
   <inceptionYear>2011</inceptionYear>
       <name>Georgios Gousios</name>
       <email>gousiosg@grnet.gr</email>
     </developer>
+    <developer>
+      <id>loverdos</id>
+      <name>Christos KK Loverdos</name>
+      <email>loverdos@grnet.gr</email>
+    </developer>
+    <developer>
+      <id>pgerakios</id>
+      <name>Prodromos Gerakios</name>
+      <email>pgerakios@grnet.gr</email>
+    </developer>
   </developers>
 
   <scm>
     <url>http://code.grnet.gr/projects/aquarium/repository</url>
     <connection>scm:git:https://code.grnet.gr/git/aquarium</connection>
+    <developerConnection>scm:git:https://code.grnet.gr/git/aquarium</developerConnection>
   </scm>
 
   <issueManagement>
     <system>redmine</system>
-    <url>http://code.grnet.gr/projects/aquarium/issuses</url>
+    <url>http://code.grnet.gr/projects/aquarium/issues</url>
   </issueManagement>
 
+  <distributionManagement>
+    <repository>
+      <id>aq-release</id>
+      <name>Aquarium releases repo</name>
+      <url>http://aquarium.dev.grnet.gr:8081/nexus/content/repositories/releases</url>
+    </repository>
+    <snapshotRepository>
+      <id>aq-snapshot</id>
+      <name>Aquarium snapshots repo</name>
+      <url>http://aquarium.dev.grnet.gr:8081/nexus/content/repositories/snapshots</url>
+    </snapshotRepository>
+  </distributionManagement>
+
   <!--Common project settings-->
   <properties>
     <scala.version>2.9.1</scala.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputEncoding>${project.build.sourceEncoding}
-    </project.reporting.outputEncoding>
+    <project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding>
   </properties>
 
   <!-- Lib and plugin repositories -->
   <repositories>
-    <repository>
-      <id>scala-tools.releases</id>
-      <name>Scala-Tools Dependencies Repository for Releases</name>
-      <url>http://scala-tools.org/repo-releases</url>
-    </repository>
+
     <repository>
       <id>java.net.maven2</id>
       <name>java.net Maven2 Repository</name>
       <url>http://download.java.net/maven/2/</url>
     </repository>
-    <repository>
-      <id>EclipseLink Repo</id>
-      <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url>
-    </repository>
+    
     <repository>
       <name>JBoss</name>
       <id>jboss</id>
       <url>http://repository.jboss.org/nexus/content/groups/public/</url>
     </repository>
-  </repositories>
 
-  <pluginRepositories>
-    <pluginRepository>
-      <id>scala-tools.releases</id>
-      <name>Scala-Tools Plugins Repository for Releases</name>
-      <url>http://scala-tools.org/repo-releases</url>
-    </pluginRepository>
-  </pluginRepositories>
+    <repository>
+      <name>JBoss Scala-Tools</name>
+      <id>jboss-scala-tools</id>
+      <url>https://repository.jboss.org/nexus/content/repositories/scala-tools-releases</url>
+    </repository>
+
+    <repository>
+      <name>jcrontab</name>
+      <id>jcrontab</id>
+      <url>http://kenai.com/projects/crontab-parser/sources/maven-repo/content/</url>
+    </repository>
+
+    <repository>
+      <name>Typesafe</name>
+      <id>typesafe</id>
+      <url>http://repo.typesafe.com/typesafe/releases/</url>
+    </repository>
+
+    <repository>
+      <name>Twitter</name>
+      <id>twitter</id>
+      <url>http://maven.twttr.com/</url>
+    </repository>
+  </repositories>
 
   <!-- Master properties (inherited by modules) -->
   <dependencies>
       <artifactId>scala-library</artifactId>
       <version>${scala.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.6.1</version>
     </dependency>
+
+    <dependency>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>0.9.29</version>
+    </dependency>
+
     <dependency>
       <groupId>org.scala-lang</groupId>
       <artifactId>scala-compiler</artifactId>
       <version>${scala.version}</version>
-      <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.7</version>
+      <version>4.10</version>
       <scope>test</scope>
     </dependency>
+
     <dependency>
-      <groupId>org.eclipse.persistence</groupId>
-      <artifactId>eclipselink</artifactId>
-      <version>2.2.0</version>
+      <groupId>net.liftweb</groupId>
+      <artifactId>lift-json_2.9.1</artifactId>
+      <version>2.4</version>
     </dependency>
+
     <dependency>
-      <groupId>com.h2database</groupId>
-      <artifactId>h2</artifactId>
-      <version>1.3.160</version>
+      <groupId>net.liftweb</groupId>
+      <artifactId>lift-json-ext_2.9.1</artifactId>
+      <version>2.4</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>joda-time</artifactId>
+          <groupId>joda-time</groupId>
+        </exclusion>
+      </exclusions>
     </dependency>
+
     <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>5.1.17</version>
+      <groupId>org.yaml</groupId>
+      <artifactId>snakeyaml</artifactId>
+      <version>1.9</version>
     </dependency>
+
     <dependency>
-      <groupId>org.scala-libs</groupId>
-      <artifactId>scalajpa_2.9.1</artifactId>
-      <version>1.4</version>
+      <groupId>com.kenai.crontab-parser</groupId>
+      <artifactId>crontab-parser</artifactId>
+      <version>1.0.1</version>
     </dependency>
-    <!--<dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-entitymanager</artifactId>
-      <version>3.6.7.Final</version>
+
+    <dependency>
+      <groupId>com.rabbitmq</groupId>
+      <artifactId>amqp-client</artifactId>
+      <version>2.8.4</version>
     </dependency>
+
     <dependency>
-      <groupId>org.apache.openjpa</groupId>
-      <artifactId>openjpa-all</artifactId>
-      <version>2.1.1</version>
-    </dependency>-->
+      <groupId>com.ckkloverdos</groupId>
+      <artifactId>jbootstrap</artifactId>
+      <version>3.0.0</version>
+    </dependency>
+
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>1.6.1</version>
+      <groupId>com.ckkloverdos</groupId>
+      <artifactId>streamresource</artifactId>
+      <version>0.5.1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.ckkloverdos</groupId>
+      <artifactId>maybe</artifactId>
+      <version>0.5.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.ckkloverdos</groupId>
+      <artifactId>converter</artifactId>
+      <version>0.5.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>scala-library</artifactId>
+          <groupId>org.scala-lang</groupId>
+        </exclusion>
+        <exclusion>
+          <artifactId>logback-classic</artifactId>
+          <groupId>ch.qos.logback</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>com.ckkloverdos</groupId>
+      <artifactId>sysprop</artifactId>
+      <version>0.5.1</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>scala-library</artifactId>
+          <groupId>org.scala-lang</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>com.ckkloverdos</groupId>
+      <artifactId>typedkey</artifactId>
+      <version>0.5.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>scala-library</artifactId>
+          <groupId>org.scala-lang</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>com.thoughtworks.xstream</groupId>
+      <artifactId>xstream</artifactId>
+      <version>1.4.1</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mongodb</groupId>
+      <artifactId>mongo-java-driver</artifactId>
+      <version>2.7.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.typesafe.akka</groupId>
+      <artifactId>akka-actor</artifactId>
+      <version>2.0.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.typesafe.akka</groupId>
+      <artifactId>akka-remote</artifactId>
+      <version>2.0.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.typesafe.akka</groupId>
+      <artifactId>akka-slf4j</artifactId>
+      <version>2.0.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.twitter</groupId>
+      <artifactId>finagle-core_2.9.1</artifactId>
+      <version>4.0.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.twitter</groupId>
+      <artifactId>finagle-http_2.9.1</artifactId>
+      <version>4.0.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <version>12.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>joda-time</groupId>
+      <artifactId>joda-time</artifactId>
+      <version>2.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.joda</groupId>
+      <artifactId>joda-convert</artifactId>
+      <version>1.1</version>
+    </dependency>
+
+    <dependency> <!-- quartz stuff  -->
+      <groupId>org.quartz-scheduler</groupId>
+      <artifactId>quartz</artifactId>
+      <version>2.1.5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.quartz-scheduler</groupId>
+      <artifactId>quartz-oracle</artifactId>
+      <version>2.1.5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.quartz-scheduler</groupId>
+      <artifactId>quartz-weblogic</artifactId>
+      <version>2.1.5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.quartz-scheduler</groupId>
+      <artifactId>quartz-jboss</artifactId>
+      <version>2.1.5</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.avro</groupId>
+      <artifactId>avro</artifactId>
+      <version>1.7.2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.avro</groupId>
+      <artifactId>avro-ipc</artifactId>
+      <version>1.7.2</version>
     </dependency>
   </dependencies>
 
-  <!--Configuration shared with subprojects-->
+  <!--Build configuration-->
   <build>
     <sourceDirectory>src/main/scala</sourceDirectory>
     <testSourceDirectory>src/test/scala</testSourceDirectory>
     <resources>
       <resource>
         <directory>${basedir}/src/main/resources</directory>
+        <excludes>
+          <exclude>aquarium.properties</exclude>
+        </excludes>
       </resource>
       <resource>
         <directory>${project.build.directory}/generated-resources</directory>
     </testResources>
     <plugins>
       <plugin>
-        <groupId>org.scala-tools</groupId>
-        <artifactId>maven-scala-plugin</artifactId>
-        <version>2.15.2</version>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.5.1</version>
+        <configuration>
+          <source>1.6</source>
+          <target>1.6</target>
+          <encoding>${project.build.sourceEncoding}</encoding>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>net.alchim31.maven</groupId>
+        <artifactId>scala-maven-plugin</artifactId>
+        <version>3.1.0</version>
         <configuration>
+          <recompileMode>incremental</recompileMode>
+          <javacArgs>
+            <!--<javacArg>-Xlint:unchecked</javacArg>-->
+            <javacArg>-Xlint:deprecation</javacArg>
+          </javacArgs>
+
           <charset>${project.build.sourceEncoding}</charset>
+
           <jvmArgs>
             <jvmArg>-Xmx1024m</jvmArg>
             <jvmArg>
               -DpackageLinkDefs=file://${project.build.directory}/packageLinkDefs.properties
             </jvmArg>
           </jvmArgs>
+
           <args>
             <arg>-deprecation</arg>
+            <arg>-unchecked</arg>
+            <arg>-explaintypes</arg>
           </args>
         </configuration>
         <executions>
           </execution>
         </executions>
       </plugin>
+
+      <!-- Make sure tests display failures at the console-->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <useFile>false</useFile>
+          <reportFormat>plain</reportFormat>
+        </configuration>
+      </plugin>
+
+      <!-- Bundle up source code on release/snapshot -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>2.5</version>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.2</version>
         <executions>
           <execution>
-            <id>default-copy-resources</id>
-            <phase>process-resources</phase>
+            <id>attach-sources</id>
             <goals>
-              <goal>copy-resources</goal>
+              <goal>jar-no-fork</goal>
             </goals>
-            <configuration>
-              <overwrite>true</overwrite>
-              <outputDirectory>${project.build.directory}</outputDirectory>
-              <resources>
-                <resource>
-                  <directory>${project.basedir}/src</directory>
-                  <includes>
-                    <include>packageLinkDefs.properties</include>
-                  </includes>
-                  <filtering>true</filtering>
-                </resource>
-              </resources>
-            </configuration>
           </execution>
         </executions>
       </plugin>
+
+      <!-- Release plug-in configuration -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-release-plugin</artifactId>
         <version>2.2.1</version>
         <configuration>
-          <scmCommentPrefix/>
+          <preparationGoals>clean verify</preparationGoals>
         </configuration>
       </plugin>
-      <!-- Redmine maven plugin -->
-      <plugin>
-        <groupId>org.nuiton.jredmine</groupId>
-        <artifactId>maven-jredmine-plugin</artifactId>
-        <version>1.2.2</version>
-      </plugin>
-      <!-- Produces configuration files for Intellij Idea -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-idea-plugin</artifactId>
-        <version>2.2</version>
-        <configuration>
-          <downloadSources>true</downloadSources>
-          <downloadJavadocs>true</downloadJavadocs>
-        </configuration>
-      </plugin>
-      <!-- Make sure tests display results in console and not in files-->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.9</version>
-        <configuration>
-          <useFile>false</useFile>
-          <reportFormat>plain</reportFormat>
-        </configuration>
-      </plugin>
-      <!-- Shared resources -->
+
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
+        <groupId>org.apache.avro</groupId>
+        <artifactId>avro-maven-plugin</artifactId>
+        <version>1.7.2</version>
         <executions>
           <execution>
-            <id>unpack-shared-resources</id>
+            <id>schemas</id>
+            <phase>generate-sources</phase>
             <goals>
-              <goal>unpack-dependencies</goal>
+              <goal>schema</goal>
+              <goal>protocol</goal>
+              <goal>idl-protocol</goal>
             </goals>
-            <phase>generate-resources</phase>
             <configuration>
-              <outputDirectory>${project.build.directory}/generated-resources
-              </outputDirectory>
-              <includeArtifactIds>shared</includeArtifactIds>
-              <includeGroupIds>gr.grnet.aquarium</includeGroupIds>
-              <excludeTransitive>true</excludeTransitive>
+              <excludes>
+                <exclude>**/mapred/tether/**</exclude>
+              </excludes>
+              <stringType>String</stringType>
+              <sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
+              <outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
+              <!--<outputDirectory>${project.build.directory}/generated-sources/java</outputDirectory>-->
+              <testSourceDirectory>${project.basedir}/src/test/avro/</testSourceDirectory>
+              <testOutputDirectory>${project.basedir}/src/test/java/</testOutputDirectory>
             </configuration>
           </execution>
         </executions>
       </plugin>
     </plugins>
   </build>
-  <!--Sub projects-->
-  <modules>
-    <module>model</module>
-    <module>logic</module>
-    <module>shared</module>
-  </modules>
 </project>