<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>

<!--
  <parent>
    <groupId>KorAP-modules</groupId>
    <artifactId>KorAP-core-modules</artifactId>
    <version>LATEST</version>
  </parent>
-->
  <groupId>KorAP-modules</groupId>
  <artifactId>KorAP-lucene-index</artifactId>
  <version>0.30.4</version>
  <packaging>jar</packaging>

  <name>KorAP-lucene-index</name>
  <url>http://www.ids-mannheim.de/</url>

  <organization>
    <name>IDS Mannheim</name>
    <url>http://www.ids-mannheim.de/</url>
  </organization>

  <developers>
    <developer>
      <name>Nils Diewald</name>
      <email>diewald@ids-mannheim.de</email>
      <url>http://nils-diewald.de</url>
    </developer>
  </developers>

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

  <dependencies>

    <!-- junit dependency -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- log4j dependency -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.5</version>
    </dependency>

    <!-- Lucene core dependency -->
    <dependency>
      <artifactId>lucene-core</artifactId>
      <groupId>org.apache.lucene</groupId>
      <type>jar</type>
      <version>4.3.1</version>
    </dependency>

    <!-- Lucene queryparser dependency -->
    <dependency>
      <artifactId>lucene-queryparser</artifactId>
      <groupId>org.apache.lucene</groupId>
      <type>jar</type>
      <version>4.3.1</version>
    </dependency>

    <!-- Lucene analyzers dependency -->
    <dependency>
      <artifactId>lucene-analyzers-common</artifactId>
      <groupId>org.apache.lucene</groupId>
      <type>jar</type>
      <version>4.3.1</version>
    </dependency>

    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-core</artifactId>
      <version>1.3</version>
    </dependency>

    <!-- JCache -->
    <dependency>
      <groupId>net.sf.jsr107cache</groupId>
      <artifactId>jsr107cache</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- among others Base4 support -->
    <!--
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.4</version>
    </dependency>
    -->

    <!-- Jackson -->
    <!-- see https://github.com/FasterXML/jackson-core -->
    <!-- https://github.com/FasterXML/jackson-databind -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.2.2</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.2.2</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.2.2</version>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <outputDirectory>${basedir}/bin</outputDirectory>
    <plugins>
      <plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>2.3.2</version>
	<configuration>
	  <source>1.7</source>
	  <target>1.7</target>
	</configuration>
      </plugin>

      <!--
	  install the indexer and the performancetests
	  $ mvn clean compile assembly:single
	  Then run e.g.
	  $ java -jar target/KorAP-lucene-index-0.30.2-jar-with-dependencies.jar src/main/resources/korap.conf /data/hdd/lucene-new/WPD/
      -->

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2-beta-5</version>
        <configuration>
	  <!--
              <finalName>KorapTools</finalName>
	      -->
	    
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>de.ids_mannheim.korap.KorapIndexer</mainClass>
            </manifest>
          </archive>
        
          <appendAssemblyId>false</appendAssemblyId>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
	  
          <execution>
            <id>KorapIndexer</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <finalName>KorapIndexer</finalName>
              <archive>
                <manifest>
		  <mainClass>de.ids_mannheim.korap.KorapIndexer</mainClass>
                </manifest>
              </archive>
            </configuration>
          </execution>
	</executions>
      </plugin>
      
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.16</version>
        <configuration>
          <excludes>
            <exclude>**/TestRealIndex.java</exclude>
            <exclude>**/benchmark/*</exclude>
            <exclude>**/TestWPDIndex.java</exclude>
	  </excludes>
        </configuration>
      </plugin> 
    </plugins>

    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
	<includes>
	  <include>index.properties</include>
	</includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
	<excludes>
	  <exclude>index.properties</exclude>
	</excludes>
      </resource>
    </resources> 

    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
	<includes>
	  <include>index.properties</include>
	</includes>
      </testResource>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>false</filtering>
	<excludes>
	  <exclude>index.properties</exclude>
	</excludes>
      </testResource>
    </testResources> 

  </build>
</project>
