<?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">

  <!-- POM file generated with GWT webAppCreator -->
  <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.3.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>

    <!-- TODO: DataNucleus trash -->
    <datanucleus.version>1.1.5</datanucleus.version>
  </properties>

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

    <!-- TODO: DataNucleus trash -->
    <repository>
      <id>DataNucleus_2</id>
      <url>http://www.datanucleus.org/downloads/maven2/</url>
      <name>DataNucleus</name>
    </repository>
    <repository>
      <id>JBoss Repo</id>
      <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
      <name>JBoss Repo</name>
    </repository>
  </repositories>

  <!-- TODO: DataNucleus trash -->
  <pluginRepositories>
    <pluginRepository>
      <id>DataNucleus_2</id>
      <url>http://www.datanucleus.org/downloads/maven2/</url>
    </pluginRepository>
  </pluginRepositories>

  <dependencies>
    <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>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-dev</artifactId>
      <version>${gwtVersion}</version>
    </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> -->

    <!-- Who is this for? What is it? -->

    <dependency>
      <groupId>net.sf.jsr107cache</groupId>
      <artifactId>jsr107cache</artifactId>
      <version>1.1</version>
      <type>jar</type>
      <scope>compile</scope>
    </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>

    <!-- TODO: Who is using this? Is it just cruft from listwidget? -->

    <dependency>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- TODO: Who is using this? Just GAE? Is anyone, really? -->

    <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>
    
    <!-- The stuff needed by data nucleus until we can rip it out -->

    <dependency>
      <groupId>org.datanucleus</groupId>
      <artifactId>datanucleus-core</artifactId>
      <version>${datanucleus.version}</version>
      <exclusions>
        <exclusion>
          <groupId>javax.transaction</groupId>
          <artifactId>transaction-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.datanucleus</groupId>
      <artifactId>datanucleus-jpa</artifactId>
      <version>1.1.5</version>
    </dependency>
    <dependency>
      <groupId>org.datanucleus</groupId>
      <artifactId>datanucleus-rdbms</artifactId>
      <version>${datanucleus.version}</version>
    </dependency>
    <dependency>
      <groupId>org.datanucleus</groupId>
      <artifactId>datanucleus-enhancer</artifactId>
      <version>1.1.4</version>
    </dependency>
    <dependency>
      <groupId>javax.jdo</groupId>
      <artifactId>jdo2-api</artifactId>
      <version>2.3-eb</version>
      <exclusions>
        <exclusion>
          <groupId>javax.transaction</groupId>
          <artifactId>transaction-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.google.appengine.orm</groupId>
      <artifactId>datanucleus-appengine</artifactId>
      <version>1.0.8</version>
    </dependency>
    <!-- must be in main dependencies as well as plugin dependencies below -->
    <!-- <dependency>
      <groupId>org.datanucleus</groupId>
      <artifactId>datanucleus-core</artifactId>
      <version>${datanucleus.version}</version>
      <exclusions>
        <exclusion>
          <groupId>javax.transaction</groupId>
          <artifactId>transaction-api</artifactId>
        </exclusion>
      </exclusions>
    </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.7</version>  <!--  Note 2.8 does not work with AspectJ aspect path -->
	<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>

    </plugins>
  </build>
</project>
