<?xml version="1.0"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>nl.vpro.shared</groupId>
  <artifactId>vpro-shared-parent</artifactId>
  <version>5.0.0</version>
  <packaging>pom</packaging>

  <name>vpro-shared-parent</name>
  <description>Description These are various shared utility modules which are used on several places in VPRO artifacts.</description>
  <url>https://github.com/vpro/vpro-shared</url>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <skipITs>true</skipITs>
    <java.version>17</java.version>

    <spring.version>6.1.5</spring.version>
    <spring-security.version>6.2.3</spring-security.version>
    <jackson2.version>2.17.0</jackson2.version>

    <junit.version>5.10.2</junit.version>
    <mockito.version>5.11.0</mockito.version>
    <assertj.version>3.25.3</assertj.version>
    <resteasy.version>6.2.7.Final</resteasy.version>
    <bytebuddy.version>1.14.13</bytebuddy.version>
    <slf4j.version>2.0.11</slf4j.version>
    <log4j2.version>2.22.1</log4j2.version>
    <guava.version>33.1.0-jre</guava.version>
    <javassist.version>3.30.2-GA</javassist.version>
    <wss4j.version>2.3.2</wss4j.version>
    <xmlunit.version>2.9.1</xmlunit.version>
    <hamcrest.version>2.2</hamcrest.version>
    <theories.version>0.12.0</theories.version>

    <httpcomponents.version>4.5.14</httpcomponents.version>
    <httpcomponentscore.version>4.4.16</httpcomponentscore.version>

    <hibernate.version>5.6.15.Final</hibernate.version>

    <hibernate.search6.version>6.2.3.Final</hibernate.search6.version>

    <!-- jakarta versions -->
    <servlet.api.version>6.0.0</servlet.api.version>
    <validation.api.version>3.0.2</validation.api.version>
    <persistence.api.version>3.1.0</persistence.api.version>
    <annotation.api.version>2.1.1</annotation.api.version>
    <xml-bind.api.version>4.0.2</xml-bind.api.version>

    <hibernate.validator.version>8.0.1.Final</hibernate.validator.version>
    <camel.version>3.20.9</camel.version>

    <swagger.version>2.2.21</swagger.version>

    <lombok.version>1.18.32</lombok.version>
    <delombok.output>${project.build.directory}/delombok</delombok.output>


    <!-- https://github.com/elastic/elasticsearch-py/issues/1639 -->

    <!-- elasticsearch client version must be < 7.14 -->
    <elasticsearch7.version>7.13.4</elasticsearch7.version>
    <lucene.elasticsearch7.version>8.8.2</lucene.elasticsearch7.version>

    <micrometer.version>1.12.4</micrometer.version>
    <flyway.version>10.11.0</flyway.version>


    <EXTRA_TEST_OPTS>--add-opens java.base/java.lang=ALL-UNNAMED</EXTRA_TEST_OPTS>
    <vpro.shared.module.postfix>OVERRIDE</vpro.shared.module.postfix>
  </properties>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
    </license>
  </licenses>

  <developers>
    <developer>
      <id>mihxil</id>
      <name>Michiel Meeuwissen</name>
      <email>michiel.meeuwissen+github@gmail.com</email>
      <url>https://meeuw.org</url>
      <roles>
        <role>architect</role>
        <role>developer</role>
      </roles>
      <timezone>Europe/Amsterdam</timezone>
    </developer>
    <developer>
      <id>rico</id>
      <name>Rico Jansen</name>
      <timezone>Europe/Amsterdam</timezone>
    </developer>
  </developers>

  <ciManagement>
    <system>GitHub Workflow</system>
    <url>https://github.com/vpro/vpro-shared/actions</url>
  </ciManagement>
  <scm>
    <connection>scm:git:${project.scm.url}</connection>
    <developerConnection>scm:git:${project.scm.url}</developerConnection>
    <url>https://github.com/vpro/vpro-shared</url>
    <tag>REL-5.0.0</tag>
  </scm>

  <modules>
    <module>vpro-shared-rs-client</module>
    <module>vpro-shared-client-resteasy</module>
    <module>vpro-shared-configuration</module>

    <module>vpro-shared-elasticsearch</module>
    <module>vpro-shared-elasticsearch-client</module>
    <module>vpro-shared-elasticsearch-high-level-client</module>

    <module>vpro-shared-hibernate</module>
    <!--
    <module>vpro-shared-hibernate-search</module>
    -->
    <module>vpro-shared-hibernate-search6</module>

    <module>vpro-shared-jackson2</module>
    <module>vpro-shared-logging</module>
    <module>vpro-shared-log4j2</module>
    <module>vpro-shared-monitoring</module>
    <module>vpro-shared-persistence</module>
    <module>vpro-shared-rs</module>
    <module>vpro-shared-swagger3</module>

    <module>vpro-shared-test</module>
    <module>vpro-shared-util</module>
    <module>vpro-shared-validation</module>
    <module>vpro-shared-web</module>
    <module>vpro-shared-xml</module>
    <module>vpro-shared-guice</module>
    <module>vpro-shared-i18n</module>
    <module>vpro-shared-jcache</module>
    <module>vpro-shared-bom</module>

    <!--
        <module>vpro-shared-swagger</module>
        <module>vpro-shared-client-resteasy3</module> - the other resteasy module as made compatibe with 3 too
         <module>vpro-shared-resteasy</module>
        <module>vpro-shared-camel</module>
        <module>vpro-shared-ws</module>
    <module>vpro-shared-newrelic</module>
    <module>vpro-shared-services</module>
    <module>vpro-shared-avro</module>
    <module>vpro-shared-transfer</module>
    <module>vpro-shared-elasticsearch1</module>
      <module>vpro-shared-elasticsearch7</module>

    <module>vpro-shared-ektorp</module>
    <module>vpro-shared-couchdb-util</module>
   -->
  </modules>

  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
          <branchName>REL-${project.version}</branchName>
          <tagNameFormat>REL-@{project.version}</tagNameFormat>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.4.1</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.3.9</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.11</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>pre-integration-test</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>post-integration-test</id>
            <phase>post-integration-test</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.2.5</version>
        <configuration>
          <argLine>${EXTRA_TEST_OPTS}</argLine>
          <systemPropertyVariables>
            <projectArtifactId>${project.artifactId}</projectArtifactId>
          </systemPropertyVariables>
          <includes>
            <include>**/*Test.java</include>
            <include>**/*Spec.java</include>
          </includes>
          <excludes>
            <exclude>**/*ITest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>3.2.5</version>
        <configuration>
          <skipITs>${skipITs}</skipITs>
          <includes>
            <include>**/*ITest.java</include>
          </includes>
        </configuration>
        <executions>
          <execution>
            <id>integration-test</id>
            <goals>
              <goal>integration-test</goal>
            </goals>
          </execution>
          <execution>
            <id>verify</id>
            <goals>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.4.1</version>
          <configuration>
            <!-- javadoc met java 8 is anders een absolute ramp, zeker met de oude zooi in dit project -->
            <doclint>none</doclint>
            <failOnError>false</failOnError>
            <notimestamp>true</notimestamp>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.12.1</version>
          <inherited>true</inherited>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <encoding>UTF-8</encoding>
            <annotationProcessorPaths>
              <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
              </path>
            </annotationProcessorPaths>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifestEntries>
                <Automatic-Module-Name>nl.vpro.shared.${vpro.shared.module.postfix}</Automatic-Module-Name>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.5.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.3.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>properties-maven-plugin</artifactId>
          <version>1.1.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>


  <dependencyManagement>
    <dependencies>
         <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-rs-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-client-resteasy</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-configuration</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-elasticsearch</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-elasticsearch-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-elasticsearch-high-level-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-guice</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-hibernate</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-hibernate-search6</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-i18n</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-jackson2</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-logging</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-log4j2</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-monitoring</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-persistence</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-rs</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-test</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-util</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-validation</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-web</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-xml</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-swagger3</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>nl.vpro.shared</groupId>
        <artifactId>vpro-shared-jcache</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-annotations-jakarta</artifactId>
        <version>${swagger.version}</version>
      </dependency>
      <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-jaxrs2-jakarta</artifactId>
        <version>${swagger.version}</version>
      </dependency>
      <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-core-jakarta</artifactId>
         <version>${swagger.version}</version>
      </dependency>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <type>pom</type>
        <version>${junit.version}</version>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-bom</artifactId>
        <type>pom</type>
        <scope>import</scope>
        <version>${log4j2.version}</version>
      </dependency>
      <dependency>
        <!-- used for asynchronous logging in log4j2 -->
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.4.4</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core-jakarta</artifactId>
        <version>${hibernate.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-micrometer</artifactId>
        <version>${hibernate.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-mapper-orm-jakarta</artifactId>
        <version>${hibernate.search6.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-mapper-orm</artifactId>
        <version>${hibernate.search6.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.search</groupId>
        <artifactId>hibernate-search-backend-lucene</artifactId>
        <version>${hibernate.search6.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>${hibernate.validator.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-micrometer</artifactId>
        <version>${camel.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-bom</artifactId>
        <version>${resteasy.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>


      <dependency>
        <groupId>jakarta.ws.rs</groupId>
        <artifactId>jakarta.ws.rs-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
      </dependency>


      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.16.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.14.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.11.0</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.10</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-configuration2</artifactId>
        <version>2.10.1</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-ext</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${assertj.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path-assert</artifactId>
        <version>2.9.0</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>${servlet.api.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.validation</groupId>
        <artifactId>jakarta.validation-api</artifactId>
        <version>${validation.api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.xmlunit</groupId>
        <artifactId>xmlunit-core</artifactId>
        <version>${xmlunit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.xmlunit</groupId>
        <artifactId>xmlunit-assertj</artifactId>
        <version>${xmlunit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson2.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${httpcomponents.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>${httpcomponents.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${httpcomponentscore.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.persistence</groupId>
        <artifactId>jakarta.persistence-api</artifactId>
        <version>${persistence.api.version}</version>
        <scope>provided</scope> <!-- hibernate provides it as javax.xml -->
      </dependency>
      <dependency>
        <groupId>org.meeuw.math</groupId>
        <artifactId>mihxil-theories</artifactId>
        <version>${theories.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.skyscreamer</groupId>
        <artifactId>jsonassert</artifactId>
        <version>1.5.1</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>${hamcrest.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>${hamcrest.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.17.2</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>${mockito.version}</version>
      </dependency>
      <!--
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20190722</version>
      </dependency>
      -->
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>${bytebuddy.version}</version>
      </dependency>
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-agent</artifactId>
        <version>${bytebuddy.version}</version>
      </dependency>
      <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-dep</artifactId>
        <version>${bytebuddy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.wss4j</groupId>
        <artifactId>wss4j-ws-security-dom</artifactId>
        <version>${wss4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring-security.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>javax.cache</groupId>
        <artifactId>cache-api</artifactId>
        <version>1.1.1</version>
      </dependency>
      <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>${xml-bind.api.version}</version>
        <scope>compile</scope> <!--look out,  hibernate provides it as javax.xml -->
      </dependency>
      <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>${annotation.api.version}</version>
        <!-- java 11 compliancy -->
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.wiremock</groupId>
        <artifactId>wiremock</artifactId>
        <version>3.5.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.meeuw.i18n</groupId>
        <artifactId>i18n-regions-bom</artifactId>
        <version>2.1.0</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.meeuw.i18n</groupId>
        <artifactId>i18n-iso-639</artifactId>
        <version>3.2</version>
      </dependency>
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-bom</artifactId>
        <version>${micrometer.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy</artifactId>
        <version>4.0.18</version>
      </dependency>
      <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>${javassist.version}</version>
      </dependency>

      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>4.0.5</version>
      </dependency>
      <dependency>
        <groupId>info.picocli</groupId>
        <artifactId>picocli</artifactId>
        <version>4.7.5</version>
      </dependency>
      <dependency>
        <groupId>io.github.java-diff-utils</groupId>
        <artifactId>java-diff-utils</artifactId>
        <version>4.12</version>
      </dependency>
      <dependency>
        <groupId>net.jqwik</groupId>
        <artifactId>jqwik</artifactId>
        <version>1.7.4</version> <!-- 1.8.0 requires some work ('net.jqwik.api.CannotFindArbitraryException's -->
      </dependency>

      <dependency>
        <groupId>org.meeuw</groupId>
        <artifactId>mihxil-json-grep</artifactId>
        <version>0.10</version>
      </dependency>
      <dependency>
        <groupId>org.ehcache</groupId>
        <artifactId>ehcache</artifactId>
        <version>3.10.8</version>
      </dependency>
      <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
        <version>${flyway.version}</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <scope>test</scope>
    </dependency>
    <!--<dependency>-->
      <!--<groupId>org.hamcrest</groupId>-->
      <!--<artifactId>hamcrest-all</artifactId>-->
      <!--<scope>test</scope>-->
    <!--</dependency>-->
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.checkerframework</groupId>
      <artifactId>checker-qual</artifactId>
      <version>3.42.0</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j2-impl</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jul</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <distributionManagement>
    <snapshotRepository>
      <id>vpro-ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
    <repository>
      <id>vpro-ossrh-release</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
  </distributionManagement>

  <profiles>
    <profile>
      <id>sonatype</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <repositories>
        <repository>
          <id>sonatype_snapshot</id>
          <url>https://oss.sonatype.org/content/repositories/snapshots</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>vpro-nexus</id>
      <distributionManagement>
        <repository>
          <id>nexus</id>
          <name>Nexus releases</name>
          <url>https://nexus.vpro.nl/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
          <id>nexus</id>
          <name>Nexus snapshots</name>
          <url>https://nexus.vpro.nl/content/repositories/snapshots</url>
        </snapshotRepository>
      </distributionManagement>
      <repositories>
        <repository>
          <id>nexus</id>
          <url>https://nexus.vpro.nl/content/groups/public</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>deploy</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.13</version>
            <extensions>true</extensions>
            <configuration>
              <serverId>vpro-ossrh</serverId>
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <autoReleaseAfterClose>true</autoReleaseAfterClose>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.2.1</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>3.0.1</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <gpgArguments>
                <arg>--pinentry-mode</arg>
                <arg>loopback</arg>
              </gpgArguments>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok-maven-plugin</artifactId>
            <version>1.18.20.0</version>
            <dependencies>
              <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
              </dependency>
            </dependencies>
            <configuration>
              <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
              <outputDirectory>${delombok.output}</outputDirectory>
              <addOutputDirectory>false</addOutputDirectory>
              <encoding>UTF-8</encoding>
            </configuration>
            <executions>
              <execution>
                <phase>generate-sources</phase>
                <goals>
                  <goal>delombok</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <sourcepath>
                ${delombok.output};
                ${project.build.directory}/generated-sources/apt
              </sourcepath>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
