<?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">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
  </parent>
  <groupId>com.goodow.realtime</groupId>
  <artifactId>realtime-parent</artifactId>
  <version>0.3.0</version>
  <packaging>pom</packaging>
  <url>https://github.com/goodow/realtime/</url>
  <inceptionYear>2013</inceptionYear>
  <properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
    
    <!-- Don't let your Mac use a crazy non-standard encoding -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    
    <!--Vertx module name-->
    <vertx.module.name>${project.groupId}~${project.artifactId}~${project.version}</vertx.module.name>
    <vertx.version>2.1M1</vertx.version>

    <guice.version>4.0-beta</guice.version>
    <gwt.version>2.5.1</gwt.version>
    <gae.version>1.8.3</gae.version>
    <android.platform.version>4.1.1.4</android.platform.version>
    <google.apis.version>1.17.0-rc</google.apis.version>
  </properties>
  
  <dependencyManagement>
    <dependencies>
      <!-- Vert.x -->
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-core</artifactId>
        <version>${vertx.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-platform</artifactId>
        <version>${vertx.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>mod-web-server</artifactId>
        <version>2.0.0-final</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>testtools</artifactId>
        <version>2.0.2-final</version>
        <scope>test</scope>
      </dependency>
      <dependency>
      <!-- ElasticSearch -->
      <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>1.0.0.Beta1</version>
      </dependency>
      <!-- Redis -->
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>mod-redis</artifactId>
        <version>1.1.3</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>mod-redis-client</artifactId>
        <version>1.1.3</version>
      </dependency>
      <!-- RxJava -->
      <dependency>
        <groupId>com.netflix.rxjava</groupId>
        <artifactId>rxjava-core</artifactId>
        <version>0.14.9</version>
      </dependency>
      
      <!-- Google Web Toolkit (GWT) -->
      <dependency>
        <groupId>com.goodow.gwt</groupId>
        <artifactId>gwt-elemental</artifactId>
        <version>${gwt.version}-SNAPSHOT</version>
      </dependency>
      <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-user</artifactId>
        <version>${gwt.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-codeserver</artifactId>
        <version>${gwt.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>com.goodow.gwt</groupId>
        <artifactId>gwt-exporter</artifactId>
        <version>${gwt.version}-SNAPSHOT</version>
        <scope>provided</scope>
      </dependency>
      
      <!-- Guice -->
      <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>${guice.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>${guice.version}</version>
        <classifier>no_aop</classifier>
      </dependency>
      <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-servlet</artifactId>
        <version>${guice.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-multibindings</artifactId>
        <version>${guice.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-assistedinject</artifactId>
        <version>${guice.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-persist</artifactId>
        <version>${guice.version}</version>
      </dependency>
      
      <!-- Google App Engine Compile/runtime dependencies -->
      <dependency>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-api-1.0-sdk</artifactId>
        <version>${gae.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-api-labs</artifactId>
        <version>${gae.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-endpoints</artifactId>
        <version>${gae.version}</version>
      </dependency>
      <!-- Google App Engine Test Dependencies -->
      <dependency>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-testing</artifactId>
        <version>${gae.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-api-stubs</artifactId>
        <version>${gae.version}</version>
        <scope>test</scope>
      </dependency>
      
      <!-- Other google libs -->
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>14.0.1</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.2</version>
      </dependency>
      <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>${google.apis.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>${google.apis.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.javascript</groupId>
        <artifactId>closure-compiler</artifactId>
        <version>v20130603</version>
        <scope>provided</scope>
      </dependency>
      
      <!-- Servlet -->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
      </dependency>
      
      <!-- Apache commons -->
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.7</version>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.2</version>
      </dependency>
      
      <!-- Miscellaneous -->
      <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.1</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>2.0.1</version>
      </dependency>
      
      <!-- Android -->
      <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>${android.platform.version}</version>
        <scope>provided</scope>
        <exclusions>
          <exclusion>
            <groupId>xpp3</groupId>
            <artifactId>xpp3</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      
      <!-- Unit tests -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>1.9.5-rc1</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <includePom>true</includePom>
          </configuration>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>verify</phase>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.6</version>
        </plugin>
        <plugin>
          <groupId>com.jayway.maven.plugins.android.generation2</groupId>
          <artifactId>android-maven-plugin</artifactId>
          <version>3.6.1</version>
          <extensions>true</extensions>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>2.3</version>
        </plugin>
        <!-- The vert.x Maven plugin -->
        <plugin>
          <groupId>io.vertx</groupId>
          <artifactId>vertx-maven-plugin</artifactId>
          <version>2.0.1-final</version>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.7</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.4</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  
  <modules>
    <module>realtime-operation</module>
    <module>realtime-channel</module>
    <module>realtime-api</module>
    <module>realtime-android</module>
    <module>realtime-server</module>
    <module>realtime-web-playground</module>
    <module>realtime-android-playground</module>
    <module>realtime-server-appengine</module>
  </modules>
</project>
