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

  <!-- ** Server 
	     
	     # Start the server with 
	  
	       $ mvn compile exec:java 
	
	     # Or after packaging 
	       
	       $ mvn clean package 
    
         # with 
	       
	       $ java -jar target/Krill-Server.jar
	   
         ** Formatter 
         
         # Format the code with $ mvn java-formatter:format 
         
         ** Indexer 
		 # after packaging (see above) 
		 
		 $ java -jar target/Krill-Indexer.jar -c [configuration file] 
		 -i [input directories] -o [output directory] 
		
         for example:
         
         $ java -jar target/Krill-Indexer.jar -c src/test/resources/krill.properties
		 -i src/test/resources/bzk -o index/ 
		 		
		-->

  <groupId>de.ids_mannheim.korap</groupId>
  <artifactId>Krill</artifactId>
  <version>0.60.2</version>
  <packaging>jar</packaging>

  <name>Krill</name>
  <url>https://korap.ids-mannheim.de/</url>
  
  <organization>
    <name>IDS Mannheim</name>
    <url>https://www.ids-mannheim.de/</url>
  </organization>

  <developers>
    <developer>
      <name>Nils Diewald</name>
      <email>diewald@ids-mannheim.de</email>
      <url>https://www.nils-diewald.de</url>
    </developer>
    <developer>
      <name>Eliza Margaretha</name>
      <email>margaretha@ids-mannheim.de</email>
    </developer>
  </developers>

  <properties>
    <java.version>1.8</java.version>
    <jersey.version>3.0.3</jersey.version>
    <jackson.version>[2.12.4,)</jackson.version>
    <log4j.version>[2.16.0,)</log4j.version>
    <lucene.version>5.0.0</lucene.version>
    <cobertura.version>2.7</cobertura.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
	<groupId>org.glassfish.jersey</groupId>
	<artifactId>jersey-bom</artifactId>
	<version>${jersey.version}</version>
	<type>pom</type>
	<scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- junit dependency -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/jakarta.ws.rs/jakarta.ws.rs-api -->
    <dependency>
      <groupId>jakarta.ws.rs</groupId>
      <artifactId>jakarta.ws.rs-api</artifactId>
      <version>3.0.0</version>
    </dependency>
    
    <!-- log4j dependency -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>1.7.32</version>
    </dependency>
    
    <dependency>
      <groupId>net.sf.ehcache</groupId>
      <artifactId>ehcache</artifactId>
      <version>2.10.9.2</version>
    </dependency>
    
    <!-- SQLite for database connection tests -->
    <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.36.0.1</version>
    </dependency>
    
    <!-- Database Connection Pool Manager -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.5</version>
    </dependency>
    
    <!-- Lucene core dependency -->
    <dependency>
      <artifactId>lucene-core</artifactId>
      <groupId>org.apache.lucene</groupId>
      <type>jar</type>
      <version>${lucene.version}</version>
    </dependency>
    
    <!-- Lucene queryparser dependency -->
    <dependency>
      <artifactId>lucene-queryparser</artifactId>
      <groupId>org.apache.lucene</groupId>
      <type>jar</type>
      <version>${lucene.version}</version>
    </dependency>
    
    <!-- Lucene analyzers dependency -->
    <dependency>
      <artifactId>lucene-analyzers-common</artifactId>
      <groupId>org.apache.lucene</groupId>
      <type>jar</type>
      <version>${lucene.version}</version>
    </dependency>
    
    <!-- JCache -->
    <dependency>
      <groupId>net.sf.jsr107cache</groupId>
      <artifactId>jsr107cache</artifactId>
      <version>1.1</version>
    </dependency>

    <!-- Jersey -->
    <dependency>
      <groupId>org.glassfish.jersey.containers</groupId>
      <artifactId>jersey-container-grizzly2-http</artifactId>
    </dependency>
    
    <!-- JSON support in Jersey -->
    <dependency>
      <groupId>com.fasterxml.jackson.jaxrs</groupId>
      <artifactId>jackson-jaxrs-json-provider</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    
    <dependency>
      <groupId>org.glassfish.jersey.inject</groupId>
      <artifactId>jersey-hk2</artifactId>
      <version>${jersey.version}</version>
    </dependency>
    
    <!-- JSON support using 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>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    
    <!-- JSON-LD support -->
    <!-- <dependency> <groupId>com.github.jsonld-java</groupId> <artifactId>jsonld-java</artifactId> 
	 <version>0.5.2-SNAPSHOT</version> </dependency> Temporarily disable @Experimental 
	 annotation <dependency> <groupId>KorapAnnotationProcessor</groupId> <artifactId>KorapAnnotationProcessor</artifactId> 
	 <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> -->
    
    <!-- Some language extensions like StringUtil, IOUtils ... -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.12.0</version>
    </dependency>
    
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
      <version>1.4</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.11.0</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/cobertura-maven-plugin -->
    <dependency>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>${cobertura.version}</version>
      <scope>test</scope>
      <exclusions>
      	<exclusion>
      		<groupId>com.sun</groupId>
      		<artifactId>tools</artifactId>
      	</exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  
  <build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <outputDirectory>${basedir}/bin</outputDirectory>
    <plugins>
      <plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.8.1</version>
	<inherited>true</inherited>
	<configuration>
	  <showWarnings>true</showWarnings>
	  <source>${java.version}</source>
	  <target>${java.version}</target>
	</configuration>
      </plugin>
      
      <plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-shade-plugin</artifactId>
	<version>3.2.4</version>
	<executions>
	  <execution>
	    <id>indexer</id>
	    <phase>package</phase>
	    <goals>
	      <goal>shade</goal>
	    </goals>
	    <configuration>
	      <transformers>
		<transformer
		    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
		  <mainClass>de.ids_mannheim.korap.index.Indexer</mainClass>
		</transformer>
	      </transformers>
	      <finalName>${project.artifactId}-Indexer</finalName>
	    </configuration>
	  </execution>
	  <execution>
	    <id>server</id>
	    <phase>package</phase>
	    <goals>
	      <goal>shade</goal>
	    </goals>
	    <configuration>
	      <transformers>
		<transformer
		    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
		  <mainClass>de.ids_mannheim.korap.server.Node</mainClass>
		</transformer>
		<transformer
		    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
		  <resource>krill.properties</resource>
		</transformer>
	      </transformers>
	      <finalName>${project.name}-Server</finalName>
	    </configuration>
	  </execution>
	</executions>
      </plugin>

      <plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<version>2.22.2</version>
	<configuration>
          <useSystemClassLoader>false</useSystemClassLoader>
          <argLine>-Xmx512m</argLine>
	  <excludes>
	    <exclude>**/benchmark/*</exclude>
	    <exclude>**/TestWPDIndex.java</exclude>
	    <exclude>**/TestRealIndex.java</exclude>
	    <exclude>**/TestSampleIndex.java</exclude>
	    <exclude>**/TestParallelIndex.java</exclude>
	  </excludes>
	</configuration>
      </plugin>

      <!-- Formatter plugin for Eclipse based coding conventions http://maven-java-formatter-plugin.googlecode.com/svn/site/0.4/usage.html -->
      <plugin>
	<groupId>com.googlecode.maven-java-formatter-plugin</groupId>
	<artifactId>maven-java-formatter-plugin</artifactId>
	<version>0.4</version>
	<configuration>
	  <configFile>${project.basedir}/Format.xml</configFile>
	  <overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
	  <compilerSource>${java.version}</compilerSource>
	  <compilerCompliance>${java.version}</compilerCompliance>
	  <compilerTargetPlatform>${java.version}</compilerTargetPlatform>
	</configuration>
      </plugin>

      <plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>exec-maven-plugin</artifactId>
	<version>3.0.0</version>
	<executions>
	  <execution>
	    <goals>
	      <goal>java</goal>
	    </goals>
	  </execution>
	</executions>
	<configuration>
	  <mainClass>de.ids_mannheim.korap.server.Node</mainClass>
	</configuration>
      </plugin>

      <plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>cobertura-maven-plugin</artifactId>
	<version>${cobertura.version}</version>
	<configuration>
	  <formats>
	    <format>html</format>
	    <format>xml</format>
	  </formats>
	  <check>
	    <branchRate>70</branchRate>
	    <lineRate>70</lineRate>
	    <haltOnFailure>true</haltOnFailure>
	    <totalBranchRate>70</totalBranchRate>
	    <totalLineRate>70</totalLineRate>
	    <packageLineRate>70</packageLineRate>
	    <packageBranchRate>70</packageBranchRate>
	  </check>
	</configuration>
	<executions>
	  <execution>
	    <goals>
	      <goal>clean</goal>
	    </goals>
	  </execution>
	</executions>
      </plugin>
    </plugins>

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

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