<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>
    <packaging>war</packaging>

    <artifactId>brooklyn-jsgui</artifactId>

    <name>Brooklyn REST JavaScript Web GUI</name>

    <description>
        JavaScript+HTML GUI for interacting with Brooklyn, using the REST API
    </description>

    <parent>
        <groupId>io.brooklyn</groupId>
        <artifactId>brooklyn-parent</artifactId>
        <version>0.6.0-rc.4</version><!-- BROOKLYN_VERSION -->
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <properties>
        <maven-replacer-plugin.version>1.5.2</maven-replacer-plugin.version>
        <nodejs-maven-plugin.version>1.0.3</nodejs-maven-plugin.version>
        <jasmine-maven-plugin.version>1.2.0.0</jasmine-maven-plugin.version>
<!-- see comment about fixtures below
        <jasmine-maven-plugin.version>1.3.1.2</jasmine-maven-plugin.version>
-->
        <requirejs-maven-plugin.version>2.0.0</requirejs-maven-plugin.version>

        <!-- The maven-war-plugin 2.1+ and the replacer plugin don't work well together. -->
        <maven-war-plugin.version>2.0.2</maven-war-plugin.version>

        <project.build.webapp>
            ${project.build.directory}/${project.build.finalName}
        </project.build.webapp>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.brooklyn</groupId>
            <artifactId>brooklyn-rest-server</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.brooklyn</groupId>
            <artifactId>brooklyn-rest-server</artifactId>
            <version>${project.version}</version>
            <classifier>tests</classifier>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>brooklyn-test-support</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.brooklyn</groupId>
            <artifactId>brooklyn-policy</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.brooklyn</groupId>
            <artifactId>brooklyn-locations-jclouds</artifactId>
            <version>${brooklyn.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.brooklyn</groupId>
            <artifactId>brooklyn-software-webapp</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.brooklyn</groupId>
            <artifactId>brooklyn-software-database</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.brooklyn</groupId>
            <artifactId>brooklyn-software-nosql</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>${project.basedir}/src/test/resources/fixtures</directory>
                <targetPath>${project.build.directory}/jasmine/fixtures</targetPath>
            </resource>
        </resources>        
        <plugins>
            <!-- run js tests with: $ mvn clean process-resources jasmine:test -->
            <!--
                 The Jasmine Maven plugin is now on version 1.3.1.0. It has several improvements,
                 but we're unable to upgrade to it because of a change to the way it handles our
                 fixtures. In 1.2 it serves target/fixtures at /fixtures.  This no longer happens
                 in 1.3.1. Ideally, the plugin would have a configuration option to include other
                 directories for Jetty to serve. If this were added we would also be able to use
                 mvn jasmine:bdd.
            -->
            <plugin>
                <groupId>com.github.searls</groupId>
                <artifactId>jasmine-maven-plugin</artifactId>
                <version>${jasmine-maven-plugin.version}</version>
                <!-- avoid double phase executions https://github.com/searls/jasmine-maven-plugin/pull/54 -->
                <extensions>true</extensions>
                <executions>
                    <execution>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--Uses the require.js test spec-->
                    <specRunnerTemplate>REQUIRE_JS</specRunnerTemplate>
                    <scriptLoaderPath>js/libs/require.js</scriptLoaderPath>

                    <!--Sources-->
                    <jsSrcDir>${project.basedir}/src/main/webapp/assets</jsSrcDir>
                    <jsTestSrcDir>${project.basedir}/src/test/javascript/specs</jsTestSrcDir>
                    <customRunnerConfiguration>
                        ${project.basedir}/src/test/javascript/config.txt
                    </customRunnerConfiguration>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <execution>
                        <id>prep-server</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>brooklyn-rest-api</artifactId>
                                    <classifier>tests</classifier>
                                    <version>${brooklyn.version}</version>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/jasmine</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                            <includes>fixtures/*</includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>Optimise resources</id>
            <activation>
                <property>
                    <name>!skipOptimization</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <!-- Installs node.js in target/. Means we get the benefits of node's speed
                         (compared to Rhino) without having to install it manually. -->
                    <plugin>
                        <groupId>com.github.skwakman.nodejs-maven-plugin</groupId>
                        <artifactId>nodejs-maven-plugin</artifactId>
                        <version>${nodejs-maven-plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>extract</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <!-- target directory for node binaries -->
                            <targetDirectory>${project.basedir}/target/nodejs/</targetDirectory>
                        </configuration>
                    </plugin>

                    <!-- Runs the require.js optimiser with node to produce a single artifact. -->
                    <plugin>
                        <groupId>com.github.mcheely</groupId>
                        <artifactId>requirejs-maven-plugin</artifactId>
                        <version>${requirejs-maven-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>Optimise javascript</id>
                                <goals>
                                    <goal>optimize</goal>
                                </goals>
                                <configuration>
                                    <configFile>${project.basedir}/src/main/resources/optimise-javascript.build.js</configFile>
                                </configuration>
                            </execution>
                            <execution>
                                <id>Concatenate CSS files</id>
                                <goals>
                                    <goal>optimize</goal>
                                </goals>
                                <configuration>
                                    <configFile>${project.basedir}/src/main/resources/optimise-css.build.js</configFile>
                                </configuration>
                            </execution>
                        </executions>
                        <configuration>
                            <nodeExecutable>${project.basedir}/target/nodejs/node</nodeExecutable>
                            <optimizerFile>${project.basedir}/src/main/resources/r.js</optimizerFile>
                            <!-- Replaces Maven tokens in the build file with their values -->
                            <filterConfig>true</filterConfig>
                        </configuration>
                    </plugin>

                    <!-- Including the exploded goal means sources are in place ready for the replacer plugin. -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>${maven-war-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>prepare-war</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>exploded</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>com.google.code.maven-replacer-plugin</groupId>
                        <artifactId>replacer</artifactId>
                        <version>${maven-replacer-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>Use optimised resources in index.html</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>replace</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <file>${project.build.webapp}/index.html</file>
                            <replacements>
                                <replacement>
                                    <token>assets/js/config.js</token>
                                    <value>assets/js/gui.min.js</value>
                                </replacement>
                                <replacement>
                                    <token>assets/css/styles.css</token>
                                    <value>assets/css/styles.min.css</value>
                                </replacement>
                            </replacements>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>

