<?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/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>org.apache.manifoldcf</groupId>
        <artifactId>mcf-connectors</artifactId>
        <version>2.11</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <packaging>jar</packaging>

    <developers>
        <developer>
            <name>Andrew Janowczyk</name>
            <organization>Searchbox</organization>
            <organizationUrl>http://www.searchbox.com</organizationUrl>
            <url>http://www.searchbox.com</url>
        </developer>
    </developers>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <project.http.version>1.14.1-beta</project.http.version>
        <project.oauth.version>1.14.1-beta</project.oauth.version>
    </properties>

    <artifactId>mcf-jira-connector</artifactId>
    <name>ManifoldCF - Connectors - Jira</name>

    <build>
        <defaultGoal>integration-test</defaultGoal>
        <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
        <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
        <resources>
          <resource>
            <directory>${basedir}/connector/src/main/native2ascii</directory>
            <includes>
              <include>**/*.properties</include>
            </includes>
          </resource>
          <resource>
            <directory>${basedir}/connector/src/main/resources</directory>
            <includes>
              <include>**/*.html</include>
              <include>**/*.js</include>
            </includes>
          </resource>
        </resources> 
        <testResources>
          <testResource>
            <directory>${basedir}/connector/src/test/resources</directory>
          </testResource>
        </testResources>

        <plugins>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>native2ascii-maven-plugin</artifactId>
                <version>1.0-beta-1</version>
                <configuration>
                    <workDir>target/classes</workDir>
                </configuration>
                <executions>
                    <execution>
                        <id>native2ascii-utf8</id>
                        <goals>
                            <goal>native2ascii</goal>
                        </goals>
                        <configuration>
                            <encoding>UTF8</encoding>
                            <includes>
                                <include>**/*.properties</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Test plugin configuration -->
            <plugin>
              <artifactId>maven-dependency-plugin</artifactId>
              <executions>
                 <execution>
                  <id>copy-war</id>
                  <phase>generate-resources</phase>
                  <goals>
                    <goal>copy</goal>
                  </goals>
                  <configuration>
                    <outputDirectory>target/dependency</outputDirectory>
                    <artifactItems>
                      <artifactItem>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>mcf-api-service</artifactId>
                        <version>${project.version}</version>
                        <type>war</type>
                        <overWrite>false</overWrite>
                        <destFileName>mcf-api-service.war</destFileName>
                      </artifactItem>
                      <artifactItem>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>mcf-authority-service</artifactId>
                        <version>${project.version}</version>
                        <type>war</type>
                        <overWrite>false</overWrite>
                        <destFileName>mcf-authority-service.war</destFileName>
                      </artifactItem>
                      <artifactItem>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>mcf-crawler-ui</artifactId>
                        <version>${project.version}</version>
                        <type>war</type>
                        <overWrite>false</overWrite>
                        <destFileName>mcf-crawler-ui.war</destFileName>
                      </artifactItem>
                    </artifactItems>
                  </configuration>
                </execution>
              </executions>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <excludes>
                  <exclude>**/*Postgresql*.java</exclude>
                  <exclude>**/*MySQL*.java</exclude>
                </excludes>
                <forkCount>1</forkCount>
                <reuseForks>false</reuseForks>
                <workingDirectory>target/test-output</workingDirectory>
              </configuration>
            </plugin>

            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-failsafe-plugin</artifactId>
              <version>2.18.1</version>
              <configuration>
                <skipTests>${skipITs}</skipTests>
                <systemPropertyVariables>
                  <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
                  <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
                  <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
                </systemPropertyVariables>
                <excludes>
                  <exclude>**/*Postgresql*.java</exclude>
                  <exclude>**/*MySQL*.java</exclude>
                </excludes>
                <forkCount>1</forkCount>
                <reuseForks>false</reuseForks>
                <workingDirectory>target/test-output</workingDirectory>
              </configuration>
              <executions>
                <execution>
                  <id>integration-test</id>
                  <goals>
                    <goal>integration-test</goal>
                  </goals>
                </execution>
                <execution>
                  <id>verify</id>
                  <goals>
                    <goal>verify</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>

        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>mcf-core</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>mcf-connector-common</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>mcf-pull-agent</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>mcf-agents</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>mcf-ui-core</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>${commons-lang.version}</version>
            <type>jar</type>
        </dependency>

        <!-- Testing dependencies -->
        
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>${junit.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>mcf-core</artifactId>
          <version>${project.version}</version>
          <type>test-jar</type>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>mcf-agents</artifactId>
          <version>${project.version}</version>
          <type>test-jar</type>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>mcf-pull-agent</artifactId>
          <version>${project.version}</version>
          <type>test-jar</type>
          <scope>test</scope>
        </dependency>

        <dependency>
          <groupId>org.postgresql</groupId>
          <artifactId>postgresql</artifactId>
          <version>${postgresql.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.hsqldb</groupId>
          <artifactId>hsqldb</artifactId>
          <version>${hsqldb.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>${mysql.version}</version>
          <scope>test</scope>
        </dependency>

        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>mcf-api-service</artifactId>
          <version>${project.version}</version>
          <type>war</type>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>mcf-authority-service</artifactId>
          <version>${project.version}</version>
          <type>war</type>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>mcf-crawler-ui</artifactId>
          <version>${project.version}</version>
          <type>war</type>
          <scope>test</scope>
        </dependency>

        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-server</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-util</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-webapp</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-servlet</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-http</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-io</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-security</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-continuation</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-xml</artifactId>
          <version>${jetty.version}</version>
          <scope>test</scope>
        </dependency>

        <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jsp-api-2.1-glassfish</artifactId>
          <version>${glassfish.version}</version>
          <scope>test</scope>
        </dependency>    
        <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jsp-2.1-glassfish</artifactId>
          <version>${glassfish.version}</version>
          <scope>test</scope>
        </dependency>
        
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>${slf4j.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-simple</artifactId>
          <version>${slf4j.version}</version>
          <scope>test</scope>
        </dependency>
    </dependencies>
</project>
