<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.59.3</version>
	<packaging>jar</packaging>

	<name>Krill</name>
	<url>https://korap.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>
		<developer>
			<name>Eliza Margaretha</name>
			<email>margaretha@ids-mannheim.de</email>
		</developer>
	</developers>

	<properties>
	    <java.version>1.8</java.version>
		<jersey.version>2.15</jersey.version>
		<jackson.version>[2.9.5,)</jackson.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.1</version>
			<scope>test</scope>
		</dependency>

		<!-- log4j dependency -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.13.2</version>
		</dependency>
    <dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.13.2</version>
		</dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>2.13.2</version>
    </dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jul-to-slf4j</artifactId>
			<version>1.7.30</version>
		</dependency>
		
		<dependency>
		    <groupId>net.sf.ehcache</groupId>
		    <artifactId>ehcache</artifactId>
		    <version>2.10.5</version>
		</dependency>

		<!-- SQLite for database connection tests -->
		<dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<version>3.7.2</version>
		</dependency>

		<!-- Database Connection Pool Manager -->
		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.1.2</version>
		</dependency>

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

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

		<!-- Lucene analyzers dependency -->
		<dependency>
			<artifactId>lucene-analyzers-common</artifactId>
			<groupId>org.apache.lucene</groupId>
			<type>jar</type>
			<version>5.0.0</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>

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

		<!-- 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>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</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.6</version>
		</dependency>

    <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/cobertura-maven-plugin -->
    <dependency>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>2.7</version>
      <scope>test</scope>
    </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>
				    <argLine>-Xms512m</argLine>
					<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.1</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>1.6.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>2.7</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>
