<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>org.jenkins-ci.plugins</groupId>
        <artifactId>plugin</artifactId>
        <version>1.532</version>
    </parent>

    <groupId>org.jenkins-ci.plugins</groupId>
    <artifactId>vanadium-build-monitor-plugin</artifactId>
    <version>0.35</version>
    <packaging>hpi</packaging>

    <name>Vanadium Build Monitor</name>
    <description>
        Provides a highly visible view of the status of selected Jenkins jobs.
        It easily accommodates different computer screen sizes and is ideal as an Extreme Feedback Device to be
        displayed on a screen on your office wall.
    </description>

    <licenses>
        <license>
            <name>MIT license</name>
            <comments>All source code is under the MIT license.</comments>
        </license>
    </licenses>

    <url>http://wiki.jenkins-ci.org/display/JENKINS/Build+Monitor+Plugin</url>

    <developers>
        <developer>
            <id>jan-molak</id>
            <name>Jan Molak</name>
            <email>jan.molak+build.monitor@smartcodeltd.co.uk</email>
            <organization>smartcode ltd</organization>
            <organizationUrl>http://smartcodeltd.co.uk</organizationUrl>
            <timezone>Europe/London</timezone>
        </developer>
    </developers>

    <!-- If you have contributed to the project, please feel free to add your details below! -->
    <contributors>

    </contributors>

    <scm>
        <connection>scm:git:ssh://github.com/jan-molak/jenkins-build-monitor-plugin.git</connection>
        <developerConnection>scm:git:ssh://git@github.com/jan-molak/jenkins-build-monitor-plugin.git</developerConnection>
        <url>https://github.com/jan-molak/jenkins-build-monitor-plugin</url>
    </scm>

    <properties>
        <!--
            Build Monitor has an optional dependency on the Build Failure Analyzer (BFA) plugin:
            https://wiki.jenkins-ci.org/display/JENKINS/Build+Failure+Analyzer

            Since BFA doesn't specify its dependency on the git plugin correctly:
            https://issues.jenkins-ci.org/browse/JENKINS-18544,
            the automatically generated test fails with NPE...

            To work around this issue Build Monitor comes with other integration tests
            you can find in com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptancetest package
        -->
        <maven-hpi-plugin.disabledTestInjection>true</maven-hpi-plugin.disabledTestInjection>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <npm-executable>npm</npm-executable>
        <selenium.version>2.37.0</selenium.version>
    </properties>

    <profiles>
        <profile>
            <id>windows</id>
            <activation>
                <os>
                    <family>Windows</family>
                </os>
            </activation>
            <properties>
                <npm-executable>npm.cmd</npm-executable>
            </properties>
        </profile>
    </profiles>

    <!-- get every artifact through repo.jenkins-ci.org, which proxies all the artifacts that we need -->
    <repositories>
        <repository>
            <id>repo.jenkins-ci.org</id>
            <url>http://repo.jenkins-ci.org/public/</url>
        </repository>
        <repository>
            <id>saucelabs-repository</id>
            <url>http://repository-saucelabs.forge.cloudbees.com/release</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>repo.jenkins-ci.org</id>
            <url>http://repo.jenkins-ci.org/public/</url>
        </pluginRepository>
    </pluginRepositories>

    <distributionManagement>
        <repository>
            <id>maven.jenkins-ci.org</id>
            <url>http://maven.jenkins-ci.org:8081/content/repositories/releases/</url>
        </repository>
    </distributionManagement>

    <dependencies>
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>

        <dependency>
            <groupId>com.github.sommeri</groupId>
            <artifactId>less4j</artifactId>
            <version>1.8.0</version>
        </dependency>

        <!-- Jenkins CI plugins supported by the Build Monitor -->
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>cloudbees-folder</artifactId>
            <version>4.2.3</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>credentials</artifactId>
            <version>1.14</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.sonyericsson.jenkins.plugins.bfa</groupId>
            <artifactId>build-failure-analyzer</artifactId>
            <version>1.9.0</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>claim</artifactId>
            <version>2.1</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>view-job-filters</artifactId>
            <version>1.26</version>
            <optional>true</optional>
        </dependency>
        <!-- /Jenkins CI plugins supported by the Build Monitor -->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <version>1.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.9.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.github.detro.ghostdriver</groupId>
            <artifactId>phantomjsdriver</artifactId>
            <version>1.1.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.3.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.saucelabs</groupId>
            <artifactId>sauce_junit</artifactId>
            <version>1.0.19</version>
            <scope>test</scope>
        </dependency>
        <!-- similar issue to https://code.google.com/p/selenium/issues/detail?id=5245 -->
        <dependency>
            <groupId>org.jenkins-ci.main</groupId>
            <artifactId>jenkins-test-harness</artifactId>
            <version>${project.parent.version}</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <artifactId>xml-apis</artifactId>
                    <groupId>xml-apis</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
            <version>1.4.01</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jenkins-ci.tools</groupId>
                <artifactId>maven-hpi-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <disabledTestInjection>true</disabledTestInjection>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>generate-test-resources</phase>
                    </execution>
                </executions>
                <configuration>
                    <executable>${npm-executable}</executable>
                    <arguments>
                        <argument>install</argument>
                    </arguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.kelveden</groupId>
                <artifactId>maven-karma-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>start</goal>
                        </goals>
                        <phase>test</phase>
                    </execution>
                </executions>
                <configuration>
                    <karmaExecutable>${project.basedir}/node_modules/karma/bin/karma</karmaExecutable>
                    <configFile>src/test/resources/karma.conf.js</configFile>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>2.1</version>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.6.4.201312101107</version>
                <configuration>
                    <destFile>${project.build.directory}/coverage/jacoco-unit.exec</destFile>
                    <dataFile>${project.build.directory}/coverage/jacoco-unit.exec</dataFile>
                </configuration>
                <executions>
                    <execution>
                        <id>jacoco-initialize</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>jacoco-site</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
