<?xml version="1.0" encoding="UTF-8"?>
<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>

  <groupId>at.gv.zustellung</groupId>
  <artifactId>moa-zs</artifactId>
  <version>2.0.0</version>
  <packaging>war</packaging>

  <name>Moa ZS</name>
  <description>Moa ZS</description>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
  </parent>

  <repositories>
    <repository>
      <id>MOA</id>
      <name>MOA Dependencies</name>
      <releases>
        <enabled>true</enabled>
        <checksumPolicy>ignore</checksumPolicy>
      </releases>
      <layout>default</layout>
      <url>file://${basedir}/repository</url>
    </repository>
  </repositories>

  <properties>
    <java.version>12</java.version>
    <cxf.version>3.3.0</cxf.version>
    <springboot.version>2.1.3.RELEASE</springboot.version>
    <commonspool2.version>2.6.2</commonspool2.version>
    <jaxwsapi.version>2.3.1</jaxwsapi.version>
    <jwsapi.version>1.1</jwsapi.version>
    <jedisclient.version>2.9.3</jedisclient.version>
    <guava.version>27.1-jre</guava.version>
    <immutable-xjc-plugin.version>1.5</immutable-xjc-plugin.version>
    <jacoco.version>0.8.3</jacoco.version>
    <egovutils.version>2.0.7-snapshot</egovutils.version>
    <eaaf-components.version>1.0.7</eaaf-components.version>

    <mzs.ns>http://reference.e-government.gv.at/namespace/zustellung/mzs/app2mzs#</mzs.ns>
    <mzs.p.ns>http://reference.e-government.gv.at/namespace/zustellung/mzs/persondata#</mzs.p.ns>
    <mzs.wsdl.ns>http://reference.e-government.gv.at/namespace/zustellung/mzs/app2mzs.wsdl</mzs.wsdl.ns>
    <msg.ns>http://reference.e-government.gv.at/namespace/zustellung/msg/phase2/20181206#</msg.ns>
    <msg.p.ns>http://reference.e-government.gv.at/namespace/persondata/phase2/20181206#</msg.p.ns>
    <msg.wsdl.ns>http://reference.e-government.gv.at/namespace/zustellung/app2zuse/phase2/20181206#</msg.wsdl.ns>
    <tnvz.ns>http://reference.e-government.gv.at/namespace/zustellung/tnvz/phase2/20181206#</tnvz.ns>
    <tnvz.wsdl.ns>http://reference.e-government.gv.at/namespace/zustellung/tnvz-service/phase2/20181206#</tnvz.wsdl.ns>
    <mzs.package>at.gv.zustellung.app2mzs.xsd</mzs.package>
    <mzs.p.package>at.gv.zustellung.app2mzs.xsd.persondata</mzs.p.package>
    <msg.package>at.gv.zustellung.msg.xsd</msg.package>
    <msg.p.package>at.gv.zustellung.msg.xsd.persondata</msg.p.package>
    <tnvz.package>at.gv.zustellung.tnvz.xsd</tnvz.package>
  </properties>

  <dependencies>
    <!-- spring-boot -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <version>${springboot.version}</version>
      <scope>test</scope>
    </dependency>
    <!-- cxf -->
    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
      <version>${cxf.version}</version>
    </dependency>
    <!-- redis -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
      <version>${springboot.version}</version>
      <exclusions>
        <exclusion>
          <groupId>io.lettuce</groupId>
          <artifactId>lettuce-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
      <version>${commonspool2.version}</version>
    </dependency>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>${jedisclient.version}</version>
    </dependency>
    <!-- guava -->
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${guava.version}</version>
    </dependency>
    <!-- needed by cxf-codegen-plugin's generated code -->
    <dependency>
      <groupId>javax.xml.ws</groupId>
      <artifactId>jaxws-api</artifactId>
      <version>${jaxwsapi.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.jws</groupId>
      <artifactId>javax.jws-api</artifactId>
      <version>${jwsapi.version}</version>
    </dependency>
    <!-- egov utils -->
    <dependency>
      <groupId>at.gv.util</groupId>
      <artifactId>egovutils</artifactId>
      <version>${egovutils.version}</version>
    </dependency>
    <!-- eaaf components. See readme.md for installation -->
     <dependency>
       <groupId>at.gv.egiz.eaaf</groupId>
       <artifactId>eaaf_module_moa-sig</artifactId>
       <version>${eaaf-components.version}</version>
     </dependency>
     <dependency>
        <groupId>at.gv.egiz.eaaf</groupId>
        <artifactId>eaaf-core</artifactId>
        <version>${eaaf-components.version}</version>
     </dependency>
  </dependencies>
  <build>
    <plugins>
      <!-- spring-boot-maven-plugin -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>${springboot.version}</version>
      </plugin>
      <!-- cxf-codegen-plugin -->
      <plugin>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-codegen-plugin</artifactId>
        <version>${cxf.version}</version>
        <dependencies>
          <dependency>
            <groupId>com.github.sabomichal</groupId>
            <artifactId>immutable-xjc-plugin</artifactId>
            <version>${immutable-xjc-plugin.version}</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
              <sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
              <defaultOptions>
                <extraargs>
                  <extraarg>-xjc-immutable</extraarg>
                  <extraarg>-xjc-imm-builder</extraarg>
                  <extraarg>-xjc-imm-cc</extraarg>
                  <extraarg>-p</extraarg><extraarg>${mzs.ns}=${mzs.package}</extraarg>
                  <extraarg>-p</extraarg><extraarg>${mzs.p.ns}=${mzs.p.package}</extraarg>
                  <extraarg>-p</extraarg><extraarg>${mzs.wsdl.ns}=${mzs.package}</extraarg>
                  <extraarg>-p</extraarg><extraarg>${msg.ns}=${msg.package}</extraarg>
                  <extraarg>-p</extraarg><extraarg>${msg.p.ns}=${msg.p.package}</extraarg>
                  <extraarg>-p</extraarg><extraarg>${msg.wsdl.ns}=${msg.package}</extraarg>
                  <extraarg>-p</extraarg><extraarg>${tnvz.ns}=${tnvz.package}</extraarg>
                  <extraarg>-p</extraarg><extraarg>${tnvz.wsdl.ns}=${tnvz.package}</extraarg>
                </extraargs>
              </defaultOptions>
              <wsdlOptions>
                <wsdlOption>
                  <wsdl>${project.basedir}/src/main/resources/mzs/app2mzs.wsdl</wsdl>
                  <wsdlLocation>classpath:mzs/app2mzs.wsdl</wsdlLocation>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${project.basedir}/src/main/resources/zusemsg/app2zuse_p2.wsdl</wsdl>
                  <wsdlLocation>classpath:zusemsg/app2zuse_p2.wsdl</wsdlLocation>
                </wsdlOption>
                <wsdlOption>
                  <wsdl>${project.basedir}/src/main/resources/zusetnvz/zuse2tnvz_p2.wsdl</wsdl>
                  <wsdlLocation>classpath:zusetnvz/app2zuse_p2.wsdl</wsdlLocation>
                </wsdlOption>
              </wsdlOptions>
            </configuration>
            <goals>
              <goal>wsdl2java</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- code coverage -->
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco.version}</version>
        <configuration>
          <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
          <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
        </configuration>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>default-check</id>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>