<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.krill</groupId>
  <artifactId>Krill</artifactId>
  <version>0.64.4</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>21</java.version>
    <jersey.version>4.0.0</jersey.version>
    <log4j.version>2.25.2</log4j.version>
    <jackson.version>2.18.1</jackson.version>
    <jackson.version>2.19.2</jackson.version>
    <lucene.version>5.0.0</lucene.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>4.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>2.0.17</version>
    </dependency>

    <!-- SQLite for database connection tests -->
    <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.51.0.0</version>
    </dependency>
    
    <!-- Database Connection Pool Manager -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.11.2</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.19.0</version>
    </dependency>
    
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
      <version>1.10.0</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.21.0</version>
    </dependency>
    
    <!-- Apache Commons Compress for tar archive support -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-compress</artifactId>
      <version>1.28.0</version>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <outputDirectory>${basedir}/bin</outputDirectory>
    <plugins>
      <plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.14.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.6.1</version>
	<executions>
	  <execution>
	    <id>indexer</id>
	    <phase>package</phase>
	    <goals>
	      <goal>shade</goal>
	    </goals>
	    <configuration>
            <createDependencyReducedPom>false</createDependencyReducedPom>
	      <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>
            <createDependencyReducedPom>false</createDependencyReducedPom>
	      <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>3.5.4</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.6.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <mainClass>de.ids_mannheim.korap.server.Node</mainClass>
                    </configuration>
                </execution>
                <execution>
                    <id>run-krill-indexer-jar</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                    <configuration>
                        <executable>java</executable>
                        <arguments>
                            <argument>-jar</argument>
                            <argument>${project.build.directory}/Krill-Indexer.jar</argument>
                        </arguments>
                    </configuration>
                </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>
