<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you 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>
    <groupId>org.apache.guacamole</groupId>
    <artifactId>guacamole</artifactId>
    <packaging>war</packaging>
    <version>1.0.0</version>
    <name>guacamole</name>
    <url>http://guacamole.apache.org/</url>

    <description>
        The Guacamole web application, providing authentication and an HTML5
        remote desktop client.
    </description>

    <!-- All applicable licenses -->
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <!-- Git repository -->
    <scm>
        <url>https://github.com/apache/guacamole-client</url>
        <connection>scm:git:https://git.wip-us.apache.org/repos/asf/guacamole-client.git</connection>
    </scm>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>

            <!-- Written for 1.6 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArgs>
                        <arg>-Xlint:all</arg>
                        <arg>-Werror</arg>
                    </compilerArgs>
                    <fork>true</fork>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>

                    <webResources>

                        <!-- Filter translation strings -->
                        <resource>
                            <directory>src/main/webapp</directory>
                            <filtering>true</filtering>
                            <includes>
                                <include>translations/*.json</include>
                                <include>index.html</include>
                            </includes>
                        </resource>

                        <!-- Include all licenses within META-INF -->
                        <resource>
                            <directory>src/licenses</directory>
                            <targetPath>META-INF</targetPath>
                        </resource>

                    </webResources>

                    <!-- Add files from guacamole-common-js -->
                    <overlays>
                        <overlay>
                            <groupId>org.apache.guacamole</groupId>
                            <artifactId>guacamole-common-js</artifactId>
                            <type>zip</type>
                        </overlay>
                    </overlays>
            
                </configuration>
                <executions>
                    <execution>
                        <id>default-cli</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>exploded</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Pre-cache Angular templates with maven-angular-plugin -->
            <plugin>
                <groupId>com.keithbranton.mojo</groupId>
                <artifactId>angular-maven-plugin</artifactId>
                <version>0.3.2</version>
                <executions>
                    <execution>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>html2js</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <sourceDir>${basedir}/src/main/webapp/app/</sourceDir>
                    <include>**/*.html</include>
                    <target>${basedir}/src/main/webapp/generated/templates-main/templates.js</target>
                    <prefix>app</prefix>
                </configuration>
            </plugin>

            <!-- JS/CSS Minification Plugin -->
            <plugin>
                <groupId>com.samaxes.maven</groupId>
                <artifactId>minify-maven-plugin</artifactId>
                <version>1.7.5</version>
                <executions>
                    <execution>
                        <id>default-cli</id>
                        <configuration>
                            <charset>UTF-8</charset>

                            <webappSourceDir>${project.build.directory}/${project.build.finalName}</webappSourceDir>

                            <cssSourceDir>/</cssSourceDir>
                            <cssTargetDir>/</cssTargetDir>
                            <cssFinalFile>guacamole.css</cssFinalFile>

                            <cssSourceFiles>
                                <cssSourceFile>license.txt</cssSourceFile>
                            </cssSourceFiles>
                            
                            <cssSourceIncludes>
                                <cssSourceInclude>app/**/*.css</cssSourceInclude>
                            </cssSourceIncludes>

                            <jsSourceDir>/</jsSourceDir>
                            <jsTargetDir>/</jsTargetDir>
                            <jsFinalFile>guacamole.js</jsFinalFile>
                            
                            <jsSourceFiles>
                                <jsSourceFile>license.txt</jsSourceFile>
                                <jsSourceFile>guacamole-common-js/all.js</jsSourceFile>
                            </jsSourceFiles>

                            <jsSourceIncludes>
                                <jsSourceInclude>app/**/*.js</jsSourceInclude>
                                <jsSourceInclude>generated/**/*.js</jsSourceInclude>
                            </jsSourceIncludes>

                            <!-- Do not minify and include tests -->
                            <jsSourceExcludes>
                                <jsSourceExclude>**/*.test.js</jsSourceExclude>
                            </jsSourceExcludes>
                            <jsEngine>CLOSURE</jsEngine>

                            <!-- Disable warnings for JSDoc annotations -->
                            <closureWarningLevels>
                                <misplacedTypeAnnotation>OFF</misplacedTypeAnnotation>
                                <nonStandardJsDocs>OFF</nonStandardJsDocs>
                            </closureWarningLevels>

                        </configuration>
                        <goals>
                            <goal>minify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Verify format using Apache RAT -->
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.12</version>

                <configuration>
                    <excludes>
                        <exclude>src/main/webapp/app/*/templates/*.html</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>src/licenses/**/*</exclude>
                    </excludes>
                </configuration>

                <!-- Bind RAT to validate phase -->
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>

            </plugin>

        </plugins>
    </build>

    <dependencies>

        <!-- Java servlet API -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <!-- JSR 356 WebSocket API -->
        <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.7</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.2</version>
        </dependency>
        
        <!-- Guacamole Java API -->
        <dependency>
            <groupId>org.apache.guacamole</groupId>
            <artifactId>guacamole-common</artifactId>
            <version>1.0.0</version>
        </dependency>

        <!-- Guacamole Extension API -->
        <dependency>
            <groupId>org.apache.guacamole</groupId>
            <artifactId>guacamole-ext</artifactId>
            <version>1.0.0</version>
        </dependency>

        <!-- Guacamole JavaScript API -->
        <dependency>
            <groupId>org.apache.guacamole</groupId>
            <artifactId>guacamole-common-js</artifactId>
            <version>1.0.0</version>
            <type>zip</type>
            <scope>runtime</scope>
        </dependency>

        <!-- WebJars servlet (for serving org.webjars.* resources) -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>webjars-servlet-2.x</artifactId>
            <version>1.5</version>
        </dependency>

        <!-- Polyfills for the Blob and FileSaver APIs -->
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>blob-polyfill</artifactId>
            <version>1.0.20150320</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>filesaver</artifactId>
            <version>1.3.3</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Lodash -->
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>lodash</artifactId>
            <version>2.4.1</version>
            <scope>runtime</scope>
        </dependency>

        <!-- jQuery -->
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>jquery</artifactId>
            <version>2.1.3</version>
            <scope>runtime</scope>
        </dependency>

        <!-- AngularJS -->
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular</artifactId>
            <version>1.6.9</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular-route</artifactId>
            <version>1.6.9</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular-touch</artifactId>
            <version>1.6.9</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Shim allowing arbitrary retrieval/creation order for AngularJS modules -->
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular-module-shim</artifactId>
            <version>0.0.4</version>
            <scope>runtime</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.webjars.bower</groupId>
                    <artifactId>angular</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Translation support for AngularJS -->
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular-translate</artifactId>
            <version>2.16.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular-translate-interpolation-messageformat</artifactId>
            <version>2.16.0</version>
            <scope>runtime</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.webjars.bower</groupId>
                    <artifactId>messageformat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>messageformat</artifactId>
            <version>1.0.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>angular-translate-loader-static-files</artifactId>
            <version>2.16.0</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Polyfill for <datalist> element support -->
        <dependency>
            <groupId>org.webjars.npm</groupId>
            <artifactId>datalist-polyfill</artifactId>
            <version>1.14.0</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Jetty 8 servlet API (websocket)  -->
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-websocket</artifactId>
            <version>8.1.1.v20120215</version>
            <scope>provided</scope>
        </dependency>

        <!-- Jetty 9.0 servlet API (websocket)  -->
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-parent</artifactId>
            <version>20</version>
            <scope>provided</scope>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-api</artifactId>
            <version>9.0.7.v20131107</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-servlet</artifactId>
            <version>9.0.7.v20131107</version>
            <scope>provided</scope>
        </dependency>

        <!-- Tomcat servlet API (websocket)  -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-catalina</artifactId>
            <version>7.0.37</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-coyote</artifactId>
            <version>7.0.37</version>
            <scope>provided</scope>
        </dependency>

        <!-- Guice - Dependency Injection -->
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.inject.extensions</groupId>
            <artifactId>guice-assistedinject</artifactId>
            <version>3.0</version>
        </dependency>
        
        <!-- Guice Servlet -->
        <dependency>
            <groupId>com.google.inject.extensions</groupId>
            <artifactId>guice-servlet</artifactId>
            <version>3.0</version>
        </dependency>
        
        <!-- Jersey - JAX-RS Implementation -->
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.17.1</version>
        </dependency>

        <!-- Jersey - Guice extension -->
        <dependency>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-guice</artifactId>
            <version>1.17.1</version>
        </dependency> 
        
        <!-- JSR-250 annotations -->
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>jsr250-api</artifactId>
            <version>1.0</version>
        </dependency>
        
        <!-- Jackson for JSON support -->
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
            <version>1.17.1</version>

            <!-- Exclude StAX API, which is part of Java 6 -->
            <exclusions>
                <exclusion>
                    <groupId>javax.xml.stream</groupId>
                    <artifactId>stax-api</artifactId>
                </exclusion>
            </exclusions>

        </dependency>

    </dependencies>

</project>
