<?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/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>atlassian-connect-parent</artifactId>
        <groupId>com.atlassian.plugins</groupId>
        <version>1.1.65-bitbucket-02</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>atlassian-connect-jsapi</artifactId>
    <name>Atlassian Connect - JavaScript API</name>

    <build>
        <plugins>
            <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <version>${frontend.plugin.version}</version>
                <executions>
                    <execution>
                        <id>install node and npm for plugin</id>
                        <goals>
                            <goal>install-node-and-npm</goal>
                        </goals>
                        <phase>generate-resources</phase>
                        <configuration>
                            <nodeVersion>${node.version}</nodeVersion>
                            <npmVersion>${npm.version}</npmVersion>
                            <nodeDownloadRoot>${node.download.root}</nodeDownloadRoot>
                            <npmDownloadRoot>${npm.download.root}</npmDownloadRoot>
                        </configuration>
                    </execution>
                    <execution>
                        <id>npm connect-js plugin install</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <phase>generate-resources</phase>
                        <configuration>
                            <arguments>install ${atlassian.connect-js.path}</arguments>
                        </configuration>
                    </execution>
                    <execution>
                        <id>install connect npm</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <phase>generate-resources</phase>
                        <configuration>
                            <arguments>install</arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>yuicompressor-maven-plugin</artifactId>
                <version>1.3.0</version>
                <executions>
                    <execution>
                        <id>all-min-css</id>
                        <goals>
                            <goal>compress</goal>
                        </goals>
                        <configuration>
                            <gzip>false</gzip>
                            <excludeResources>true</excludeResources>
                            <sourceDirectory>${project.build.outputDirectory}/css/iframe</sourceDirectory>
                            <outputDirectory>${project.build.outputDirectory}/css/iframe-min</outputDirectory>
                            <aggregations>
                                <aggregation>
                                    <removeIncluded>false</removeIncluded>
                                    <insertNewLine>true</insertNewLine>
                                    <output>${project.build.outputDirectory}/all.css</output>
                                    <includes>
                                        <include>css/iframe-min/*.css</include>
                                    </includes>
                                </aggregation>
                            </aggregations>
                        </configuration>
                    </execution>
                    <execution>
                        <id>all-debug-css</id>
                        <goals>
                            <goal>compress</goal>
                        </goals>
                        <configuration>
                            <gzip>false</gzip>
                            <nocompress>true</nocompress>
                            <excludeResources>true</excludeResources>
                            <aggregations>
                                <aggregation>
                                    <removeIncluded>false</removeIncluded>
                                    <insertNewLine>true</insertNewLine>
                                    <output>${project.build.outputDirectory}/all-debug.css</output>
                                    <includes>
                                        <include>css/iframe/core.css</include>
                                        <include>css/iframe/dialog2.css</include>
                                    </includes>
                                </aggregation>
                            </aggregations>
                        </configuration>
                    </execution>
                    <execution>
                        <id>all-min-js</id>
                        <goals>
                            <goal>compress</goal>
                        </goals>
                        <configuration>
                            <gzip>false</gzip>
                            <jswarn>false</jswarn>
                            <excludeResources>true</excludeResources>
                            <sourceDirectory>${project.build.outputDirectory}/js</sourceDirectory>
                            <outputDirectory>${project.build.outputDirectory}/js-min</outputDirectory>
                            <aggregations>
                                <aggregation>
                                    <removeIncluded>false</removeIncluded>
                                    <insertNewLine>true</insertNewLine>
                                    <output>${project.build.outputDirectory}/all.js</output>
                                    <includes>
                                        <!-- note: any changes here must also be made in StaticResourcesFilter.java -->
                                        <include>js/core/all.js</include>
                                        <include>js-min/iframe/plugin/user-min.js</include>
                                        <!-- product-specific inclusions are temporary until made more dynamic -->
                                        <include>js-min/iframe/plugin/jira-min.js</include>
                                        <include>js-min/iframe/plugin/confluence-min.js</include>
                                        <include>js-min/iframe/plugin/_init-min.js</include>
                                    </includes>
                                </aggregation>
                            </aggregations>
                        </configuration>
                    </execution>
                    <execution>
                        <id>host-min-js</id>
                        <goals>
                            <goal>compress</goal>
                        </goals>
                        <configuration>
                            <gzip>false</gzip>
                            <jswarn>false</jswarn>
                            <excludeResources>true</excludeResources>
                            <sourceDirectory>${project.build.outputDirectory}/js</sourceDirectory>
                            <outputDirectory>${project.build.outputDirectory}/js</outputDirectory>
                            <excludes>
                                <exclude>${project.build.outputDirectory}/js/iframe</exclude>
                                <exclude>${project.build.outputDirectory}&gt;/js/**/*-min.js</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>karma-tests</id>
            <activation>
                <property>
                    <name>runKarma</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <!-- unpack lib dependencies to make available to qunit -->
                    <plugin>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>extract-qunit-dependencies</id>
                                <phase>generate-test-resources</phase>
                                <goals>
                                    <goal>unpack-dependencies</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${project.build.directory}/qunit/dependencies</outputDirectory>
                                    <includeGroupIds>com.atlassian.aui</includeGroupIds>
                                    <includeArtifactIds>auiplugin</includeArtifactIds>
                                    <includes>**/*.js</includes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- karma testrunner plugin for iframe code -->
                    <plugin>
                        <groupId>com.kelveden</groupId>
                        <artifactId>maven-karma-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <!-- test plugin-side code -->
                            <execution>
                                <id>karma-iframe-tests</id>
                                <goals>
                                    <goal>start</goal>
                                </goals>
                                <configuration>
                                    <skipTests>false</skipTests>
                                    <configFile>karma.iframe.conf.js</configFile>
                                </configuration>
                            </execution>
                            <!-- test host-side code -->
                            <execution>
                                <id>karma-host-tests</id>
                                <goals>
                                    <goal>start</goal>
                                </goals>
                                <configuration>
                                    <skipTests>false</skipTests>
                                    <configFile>karma.conf.js</configFile>
                                </configuration>
                            </execution>
                        </executions>
                        <configuration>
                            <browsers>PhantomJS</browsers>
                            <karmaExecutable>node_modules/karma/bin/karma</karmaExecutable>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <properties>
        <runKarma>false</runKarma>
    </properties>
</project>
