<?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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.google.gwt.sample.mobilewebapp</groupId>
  <artifactId>MobileWebApp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>com.google.gwt.sample.mobilewebapp.MobileWebApp</name>

  <properties>
    <!-- Convenience property to set the GWT version -->
    <gwtVersion>2.4.0</gwtVersion>

    <!-- GWT needs at least java 1.6 -->
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>

    <!-- GAE properties -->
    <gae.version>1.5.0.1</gae.version>
    <gae.home>${user.home}/.m2/repository/com/google/appengine/appengine-java-sdk/${gae.version}/appengine-java-sdk-${gae.version}</gae.home>
    <gae.application.version>1</gae.application.version>

  </properties>

  <repositories>
    <repository>
      <id>objectify-appengine</id>
      <url>http://objectify-appengine.googlecode.com/svn/maven</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- Google Web Toolkit (GWT) itself -->

    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-servlet</artifactId>
      <version>${gwtVersion}</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <version>${gwtVersion}</version>
      <scope>provided</scope>
    </dependency>

    <!-- GWT projects do not usually need a dependency on gwt-dev, but MobileWebApp
         contains a GWTC Linker (AppCacheLinker) which in turn depends on internals
         of the GWT compiler.

         This dependency has a scope of "provided" so that it only gets used as a
         compiler dependecy. The Maven GWT Plugin does not seem to honor this scoping,
         though. For that reason we explicitly remove gwt-dev-*.jar from the produced
         artifacts later on.
    -->
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-dev</artifactId>
      <version>${gwtVersion}</version>
      <scope>provided</scope>
    </dependency>

    <!-- GWT RequestFactory will use JSR 303 javax.validation if you let it -->
    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>1.0.0.GA</version>
      <classifier>sources</classifier>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>4.0.2.GA</version>
      <exclusions>
        <exclusion>
          <groupId>javax.xml.bind</groupId>
          <artifactId>jaxb-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.sun.xml.bind</groupId>
          <artifactId>jaxb-impl</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- GWT RequestFactory requires org.json -->
    <!-- TODO: can we declare the json and validation dependencies somewhere for the world to pick up,
    rather than requiring everyone to know about them? -->
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20090211</version>
    </dependency>

    <!-- Google App Engine (GAE) itself -->

    <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-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>
    <dependency>
      <groupId>com.google.appengine</groupId>
      <artifactId>appengine-api-labs</artifactId>
      <version>${gae.version}</version>
    </dependency>
    <!-- uncomment for testing <dependency> <groupId>com.google.appengine</groupId> 
      <artifactId>appengine-local-runtime</artifactId> <version>${gae.version}</version> 
      <scope>system</scope> <systemPath>${gae.home}/lib/impl/appengine-local-runtime.jar</systemPath> 
      </dependency> <dependency> <groupId>com.google.appengine</groupId> <artifactId>appengine-tools-api</artifactId> 
      <version>${gae.version}</version> <scope>system</scope> <systemPath>${gae.home}/lib/appengine-tools-api.jar</systemPath> 
      </dependency> -->

    <!-- Objectify for persistence. It uses the stock javax.persistence annotations -->

    <dependency>
      <groupId>com.googlecode.objectify</groupId>
      <artifactId>objectify</artifactId>
      <version>3.0</version>
    </dependency>
    <dependency>
      <groupId>javax.persistence</groupId>
      <artifactId>persistence-api</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- GIN and Guice for IoC / DI -->

    <dependency>
      <groupId>com.google.inject</groupId>
      <artifactId>guice</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.gwt.inject</groupId>
      <artifactId>gin</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- GAE does not seem to have these as dependencies, but
         running locally (i.e. 'mvn gae:run') seems to
         require them.
     -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.6.1</version>
    </dependency>
  </dependencies>
  
  <build>
    <!-- Generate compiled stuff in the folder used for developing mode --> 
    <outputDirectory>target/www/WEB-INF/classes</outputDirectory>
    
    <plugins>
      <!-- GWT Maven Plugin-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
	<version>2.2.0</version>
	<dependencies>
          <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <version>${gwtVersion}</version>
          </dependency>
          <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-dev</artifactId>
            <version>${gwtVersion}</version>
          </dependency>
          <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-servlet</artifactId>
            <version>${gwtVersion}</version>
          </dependency>
	</dependencies>
        <!-- JS is only needed in the package phase, this speeds up testing --> 
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
        <!-- Plugin configuration. There are many available options, 
             see gwt-maven-plugin documentation at codehaus.org --> 
        <configuration>
          <!-- URL that should be automatically opened in the GWT shell (gwt:run). -->
          <runTarget>MobileWebApp.html</runTarget>
          <!-- Location of the develop-mode web application structure (gwt:run). -->
          <hostedWebapp>target/www</hostedWebapp>
          <!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) -->
          <compileReport>true</compileReport>
	  <module>com.google.gwt.sample.mobilewebapp.MobileWebApp</module>

          <appEngineVersion>${gae.version}</appEngineVersion>
          <appEngineHome>${gae.home}</appEngineHome>
          <logLevel>INFO</logLevel>
          <style>${gwt.style}</style>

          <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
          <server>com.google.appengine.tools.development.gwt.AppEngineLauncher</server>
          <copyWebapp>true</copyWebapp>
        </configuration>
      </plugin>

      <!-- Google App Engine plugin -->
      <plugin>
        <groupId>net.kindleit</groupId>
        <artifactId>maven-gae-plugin</artifactId>
        <version>0.8.0</version>
        <executions>
          <execution>
            <id />
            <phase>validate</phase>
            <goals>
              <goal>unpack</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- Add source folders to test classpath in order to run gwt-tests as normal junit-tests -->
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
	<version>2.5</version>
        <configuration>
          <additionalClasspathElements>
            <additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement>
            <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement>
          </additionalClasspathElements>
          <useManifestOnlyJar>false</useManifestOnlyJar>
          <forkMode>always</forkMode>

          <!-- Folder for generated testing stuff --> 
          <systemProperties>
            <property>
              <name>gwt.args</name>
              <value>-out target/www</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
      
      <!-- Copy static web files before executing gwt:run -->
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.2</version>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>target/www</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/webapp</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
	<artifactId>maven-eclipse-plugin</artifactId>
	<version>2.8</version>
	<configuration>
          <downloadSources>true</downloadSources>
          <downloadJavadocs>false</downloadJavadocs>
          <wtpversion>2.0</wtpversion>
          <additionalBuildcommands>
            <buildCommand>
              <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
            </buildCommand>
          </additionalBuildcommands>
          <additionalProjectnatures>
            <projectnature>com.google.gwt.eclipse.core.gwtNature</projectnature>
            <projectnature>com.google.appengine.eclipse.core.gaeNature</projectnature>
          </additionalProjectnatures>
	</configuration>
      </plugin>

      <plugin>
        <!-- Don't deploy gwt-user nor gwt-dev jars to GAE.
             These jars are needed to compile the
             project and for DevMode, but not in AppEngine.
        -->
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.3</version>
        <executions>
          <execution>
            <id>default-clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
          <execution>
            <id>remove-gwt-dev-jar</id>
            <phase>process-classes</phase>
            <goals>
              <goal>clean</goal>
            </goals>
            <configuration>
              <excludeDefaultDirectories>true</excludeDefaultDirectories>
              <filesets>
                <fileset>
                  <directory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</directory>
                  <includes>
                    <include>gwt-dev*jar</include>
                    <include>gwt-user*jar</include>
                  </includes>
                </fileset>
              </filesets>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
