<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2009 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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>

  <parent>
    <groupId>com.google.gerrit</groupId>
    <artifactId>gerrit-parent</artifactId>
    <version>2.6-SNAPSHOT</version>
  </parent>

  <artifactId>gerrit-gwtui</artifactId>
  <name>Gerrit Code Review - GWT UI</name>
  <packaging>war</packaging>

  <description>
    Web interface built on top of Google Web Toolkit
  </description>

  <dependencies>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
    </dependency>

    <dependency>
      <groupId>gwtexpui</groupId>
      <artifactId>gwtexpui</artifactId>
    </dependency>
    <dependency>
      <groupId>gwtexpui</groupId>
      <artifactId>gwtexpui</artifactId>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <dependency>
      <groupId>gwtjsonrpc</groupId>
      <artifactId>gwtjsonrpc</artifactId>
    </dependency>
    <dependency>
      <groupId>gwtjsonrpc</groupId>
      <artifactId>gwtjsonrpc</artifactId>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <dependency>
      <groupId>gwtorm</groupId>
      <artifactId>gwtorm</artifactId>
    </dependency>
    <dependency>
      <groupId>gwtorm</groupId>
      <artifactId>gwtorm</artifactId>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-reviewdb</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-reviewdb</artifactId>
      <version>${project.version}</version>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-common</artifactId>
      <version>${project.version}</version>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-patch-jgit</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-patch-jgit</artifactId>
      <version>${project.version}</version>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <dependency>
      <groupId>org.eclipse.jgit</groupId>
      <artifactId>org.eclipse.jgit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jgit</groupId>
      <artifactId>org.eclipse.jgit</artifactId>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-prettify</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.gerrit</groupId>
      <artifactId>gerrit-prettify</artifactId>
      <version>${project.version}</version>
      <classifier>sources</classifier>
      <type>jar</type>
    </dependency>

    <!-- GWT should require these itself, but doesn't. -->
    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <classifier>sources</classifier>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>all</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <GerritGwtUI.browserType>com.google.gerrit.GerritGwtUI</GerritGwtUI.browserType>
        <GerritGwtUI.draftCompile>false</GerritGwtUI.draftCompile>
      </properties>
    </profile>
    <profile>
      <id>safari</id>
      <properties>
        <GerritGwtUI.browserType>com.google.gerrit.GerritGwtUIsafari</GerritGwtUI.browserType>
        <GerritGwtUI.draftCompile>true</GerritGwtUI.draftCompile>
      </properties>
    </profile>
    <profile>
      <id>chrome</id>
      <properties>
        <GerritGwtUI.browserType>com.google.gerrit.GerritGwtUIsafari</GerritGwtUI.browserType>
        <GerritGwtUI.draftCompile>true</GerritGwtUI.draftCompile>
      </properties>
    </profile>
    <profile>
      <id>webkit</id>
      <properties>
        <GerritGwtUI.browserType>com.google.gerrit.GerritGwtUIsafari</GerritGwtUI.browserType>
        <GerritGwtUI.draftCompile>true</GerritGwtUI.draftCompile>
      </properties>
    </profile>
    <profile>
      <id>gecko1_8</id>
      <properties>
        <GerritGwtUI.browserType>com.google.gerrit.GerritGwtUIgecko1_8</GerritGwtUI.browserType>
        <GerritGwtUI.draftCompile>true</GerritGwtUI.draftCompile>
      </properties>
    </profile>
    <profile>
      <id>firefox</id>
      <properties>
        <GerritGwtUI.browserType>com.google.gerrit.GerritGwtUIgecko1_8</GerritGwtUI.browserType>
        <GerritGwtUI.draftCompile>true</GerritGwtUI.draftCompile>
      </properties>
    </profile>
  </profiles>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>optimized</id>
            <configuration>
              <module>${GerritGwtUI.browserType}</module>
              <extraJvmArgs>-Xmx512m</extraJvmArgs>
              <compileReport>${gwt.compileReport}</compileReport>
              <disableClassMetadata>true</disableClassMetadata>
              <disableCastChecking>true</disableCastChecking>
              <draftCompile>${GerritGwtUI.draftCompile}</draftCompile>
            </configuration>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
          <execution>
            <id>debug</id>
            <configuration>
              <style>PRETTY</style>
              <module>${GerritGwtUI.browserType}</module>
              <extraJvmArgs>-Xmx512m</extraJvmArgs>
              <disableClassMetadata>true</disableClassMetadata>
              <disableRunAsync>true</disableRunAsync>
              <draftCompile>true</draftCompile>
              <webappDirectory>${project.build.directory}/${project.build.finalName}_dbg</webappDirectory>
            </configuration>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>compress-html</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <property name="dst" location="${project.build.directory}/${project.build.finalName}"/>
                <property name="dbg" location="${project.build.directory}/${project.build.finalName}_dbg"/>
                <property name="app" location="${dst}/gerrit_ui"/>

                <mkdir dir="${app}"/>
                <apply executable="gzip" addsourcefile="false">
                  <arg value="-9"/>
                  <fileset dir="${app}">
                    <include name="**/*.html"/>
                    <include name="**/*.css"/>
                    <include name="deferredjs/**/*.js"/>
                  </fileset>
                  <redirector>
                    <inputmapper type="glob" from="*" to="${app}/*"/>
                    <outputmapper type="glob" from="*" to="${app}/*.gz"/>
                  </redirector>
                </apply>

                <copy file="${dbg}/gerrit_ui/gerrit_ui.nocache.js"
                      tofile="${app}/gerrit_dbg.nocache.js"/>
                <copy todir="${app}" overwrite="false">
                  <fileset dir="${dbg}/gerrit_ui">
                    <include name="**/*.html"/>
                    <include name="**/*.css"/>
                    <include name="deferredjs/**/*.js"/>
                  </fileset>
                </copy>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <packagingExcludes>WEB-INF/classes/**,WEB-INF/deploy/**,WEB-INF/lib/**</packagingExcludes>
          <attachClasses>true</attachClasses>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
