<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<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>

  <name>Apache Syncope</name>
  <description>Apache Syncope parent POM</description>

  <groupId>org.apache.syncope</groupId>
  <artifactId>syncope</artifactId>
  <version>4.1.1</version>
  <packaging>pom</packaging>

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>38</version>
    <relativePath />
  </parent>

  <url>https://syncope.apache.org/</url>

  <inceptionYear>2010</inceptionYear>

  <licenses>
    <license>
      <name>Apache-2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/syncope.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/syncope.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=syncope.git</url>
    <tag>syncope-4.1.1</tag>
  </scm>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/SYNCOPE</url>
  </issueManagement>

  <ciManagement>
    <system>Jenkins</system>
    <url>https://ci-builds.apache.org./job/Syncope/</url>
  </ciManagement>

  <distributionManagement>
    <site>
      <id>syncope.website</id>
      <name>Apache Syncope website</name>
      <url>${site.deploymentBaseUrl}</url>
    </site>
  </distributionManagement>

  <mailingLists>
    <mailingList>
      <name>Syncope User List</name>
      <subscribe>user-subscribe@syncope.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@syncope.apache.org</unsubscribe>
      <post>user@syncope.apache.org</post>
      <archive>https://lists.apache.org/list.html?user@syncope.apache.org</archive>
      <otherArchives>
        <otherArchive>https://syncope.markmail.org/</otherArchive>
        <otherArchive>http://www.mail-archive.com/user@syncope.apache.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Syncope Developer List</name>
      <subscribe>dev-subscribe@syncope.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@syncope.apache.org</unsubscribe>
      <post>dev@syncope.apache.org</post>
      <archive>https://lists.apache.org/list.html?dev@syncope.apache.org</archive>
      <otherArchives>
        <otherArchive>https://syncope.markmail.org/</otherArchive>
        <otherArchive>http://www.mail-archive.com/dev@syncope.apache.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Syncope Commits List</name>
      <subscribe>commits-subscribe@syncope.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@syncope.apache.org</unsubscribe>
      <post>commits@syncope.apache.org</post>
      <archive>https://lists.apache.org/list.html?commits@syncope.apache.org</archive>
      <otherArchives>
        <otherArchive>https://syncope.markmail.org/</otherArchive>
        <otherArchive>http://www.mail-archive.com/commits@syncope.apache.org/</otherArchive>
      </otherArchives>
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <id>ilgrosso</id>
      <email>ilgrosso@apache.org</email>
      <name>Francesco Chicchiriccò</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>ASF member</role>
        <role>PMC chair</role>
      </roles>
      <url>http://home.apache.org/~ilgrosso/</url>
    </developer>
    <developer>
      <id>fmartelli</id>
      <name>Fabio Martelli</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~fmartelli/</url>
    </developer>
    <developer>
      <id>mdisabatino</id>
      <name>Marco Di Sabatino Di Diodoro</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~mdisabatino/</url>
    </developer>
    <developer>
      <id>massi</id>
      <name>Massimiliano Perrone</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~massi/</url>
    </developer>
    <developer>
      <id>rene</id>
      <name>René Mulder</name>
      <organization>Everett</organization>
      <organizationUrl>http://www.everett.nl/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
      <url>http://people.apache.org/~rene/</url>
    </developer>
    <developer>
      <id>simonetripodi</id>
      <name>Simone Tripodi</name>
      <organization>The Apache Software Foundation</organization>
      <organizationUrl>http://www.apache.org/</organizationUrl>
      <roles>
        <role>ASF member</role>
        <role>Emeritus PMC member</role>
      </roles>
      <url>http://people.apache.org/~simonetripodi/</url>
    </developer>
    <developer>
      <id>elecharny</id>
      <name>Emmanuel Lecharny</name>
      <organization>The Apache Software Foundation</organization>
      <organizationUrl>http://www.apache.org/</organizationUrl>
      <roles>
        <role>ASF member</role>
        <role>Emeritus PMC member</role>
      </roles>
      <url>http://people.apache.org/~elecharny/</url>
    </developer>
    <developer>
      <id>anzelld</id>
      <name>Dino Anzellotti</name>
      <organization>Cambridge Technology Partners</organization>
      <organizationUrl>http://www.ctp.com/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
      <url>http://people.apache.org/~anzelld/</url>
    </developer>
    <developer>
      <id>nscendoni</id>
      <name>Nicola Scendoni</name>
      <organization>The Apache Software Foundation</organization>
      <organizationUrl>http://www.apache.org/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
    </developer>
    <developer>
      <id>coheigea</id>
      <name>Colm O hEigeartaigh</name>
      <organization>Talend</organization>
      <organizationUrl>http://www.talend.com/</organizationUrl>
      <roles>
        <role>ASF member</role>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~coheigea/</url>
    </developer>
    <developer>
      <id>jbonofre</id>
      <name>Jean-Baptiste Onofré</name>
      <organization>Talend</organization>
      <organizationUrl>http://www.talend.com/</organizationUrl>
      <roles>
        <role>ASF member</role>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~jbonofre/</url>
    </developer>
    <developer>
      <id>jbernhardt</id>
      <name>Jan Bernhardt</name>
      <organization>Talend</organization>
      <organizationUrl>http://www.talend.com/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~jbernhardt/</url>
    </developer>
    <developer>
      <id>ashakirin</id>
      <name>Andrei Shakirin</name>
      <organization>Talend</organization>
      <organizationUrl>http://www.talend.com/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
      <url>http://ashakirin.blogspot.de/</url>
    </developer>
    <developer>
      <id>cschneider</id>
      <name>Christian Schneider</name>
      <organization>Talend</organization>
      <organizationUrl>http://www.talend.com/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
      <url>http://www.liquid-reality.de/</url>
      <email>chris@die-schneider.net</email>
    </developer>
    <developer>
      <id>gwimmel</id>
      <name>Guido Wimmel</name>
      <organization>Stadtwerke München Services GmbH</organization>
      <organizationUrl>http://www.swm.de/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~gwimmel/</url>
      <email>gwimmel@apache.org</email>
    </developer>
    <developer>
      <id>andreapatricelli</id>
      <name>Andrea Patricelli</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~andreapatricelli/</url>
      <email>andreapatricelli@apache.org</email>
    </developer>
    <developer>
      <id>giacomolm</id>
      <name>Giacomo Lamonaco</name>
      <organization>Hippo, a BloomReach company</organization>
      <organizationUrl>http://www.onehippo.com/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~giacomolm/</url>
      <email>giacomolm@apache.org</email>
    </developer>
    <developer>
      <id>matteodc</id>
      <name>Matteo Di Carlo</name>
      <roles>
        <role>committer</role>
      </roles>
      <url>http://people.apache.org/~matteodc/</url>
      <email>matteodc@apache.org</email>
    </developer>
    <developer>
      <id>skylark17</id>
      <name>Matteo Alessandroni</name>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~skylark17/</url>
      <email>skylark17@apache.org</email>
    </developer>
    <developer>
      <id>loredicola</id>
      <name>Lorenzo Di Cola</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <url>http://people.apache.org/~loredicola/</url>
      <email>loredicola@apache.org</email>
    </developer>
    <developer>
      <id>dimaayash</id>
      <name>Dima Ayash</name>
      <roles>
        <role>committer</role>
      </roles>
      <email>dimaayash@apache.org</email>
    </developer>
    <developer>
      <id>mmoayyed</id>
      <name>Misagh Moayyed</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
      <email>mmoayyed@apache.org</email>
    </developer>
    <developer>
      <id>sgarofalo</id>
      <name>Samuel Garofalo</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>PMC member</role>
      </roles>
      <email>sgarofalo@apache.org</email>
    </developer>
    <developer>
      <id>matato</id>
      <name>Matteo Tatoni</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
      <email>matato@apache.org</email>
    </developer>
    <developer>
      <id>abogi</id>
      <name>Alberto Bogi</name>
      <organization>Tirasa</organization>
      <organizationUrl>https://www.tirasa.net/</organizationUrl>
      <roles>
        <role>committer</role>
      </roles>
      <email>abogi@apache.org</email>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>Denis Signoretto</name>
      <email>denis.signoretto@intesys.it</email>
      <organization>Intesys</organization>
      <organizationUrl>http://www.intesys.it/</organizationUrl>
    </contributor>
    <contributor>
      <name>Bob Lannoy</name>
      <email>bob.lannoy@smals.be</email>
      <organization>Smals</organization>
      <organizationUrl>http://www.smals.be/</organizationUrl>
      <url>http://blogresearch.smalsrech.be/</url>
    </contributor>
    <contributor>
      <name>Bruno Rogério de Moura</name>
      <email>brunormoura@gmail.com</email>
      <organization>Exprivia</organization>
      <organizationUrl>http://www.exprivia.it/home</organizationUrl>
      <url>http://br.linkedin.com/pub/bruno-moura/1b/2a/806</url>
    </contributor>
    <contributor>
      <name>Nicola Baiocco</name>
      <email>nicola.baiocco@intesys.it</email>
      <organization>Intesys</organization>
      <organizationUrl>http://www.intesys.it/</organizationUrl>
    </contributor>
    <contributor>
      <name>Dmitry Berezkin</name>
      <email>berezkin.dmitriy@gmail.com</email>
      <url>http://securny.com</url>
    </contributor>
    <contributor>
      <name>Tushar Mishra</name>
      <email>tusharm567@gmail.com</email>
      <url>http://tusharmishra.in</url>
    </contributor>
    <contributor>
      <name>Dmitriy Brashevets</name>
      <organization>United Security Providers AG</organization>
      <organizationUrl>https://www.united-security-providers.com/</organizationUrl>
    </contributor>
  </contributors>

  <properties>
    <project.build.outputTimestamp>2026-05-22T07:49:50Z</project.build.outputTimestamp>
    <syncope.version>${project.version}</syncope.version>

    <connid.version>1.6.1.0</connid.version>
    <connid.soap.version>1.5.0</connid.soap.version>
    <connid.rest.version>1.1.1</connid.rest.version>
    <connid.db.version>2.4.1</connid.db.version>
    <connid.csvdir.version>0.8.10</connid.csvdir.version>
    <connid.ldap.version>1.5.10</connid.ldap.version>
    <connid.ad.version>1.4.0</connid.ad.version>
    <connid.googleapps.version>1.4.6</connid.googleapps.version>
    <connid.azure.version>3.0.0</connid.azure.version>
    <connid.scim.version>1.0.5</connid.scim.version>
    <connid.servicenow.version>1.0.4</connid.servicenow.version>
    <connid.okta.version>3.0.8</connid.okta.version>
    <connid.cmd.version>0.5</connid.cmd.version>
    <connid.kafka.version>1.0.0</connid.kafka.version>
    <connid.ldup.version>0.1.0</connid.ldup.version>

    <cxf.version>4.1.6</cxf.version>
    <bouncycastle.version>1.84</bouncycastle.version>
    <nimbus-jose-jwt.version>10.9</nimbus-jose-jwt.version>

    <spring-boot.version>3.5.14</spring-boot.version>
    <spring-cloud-gateway.version>4.3.4</spring-cloud-gateway.version>

    <openjpa.version>4.1.1</openjpa.version>

    <jasypt.version>1.9.3</jasypt.version>

    <zxing.version>3.5.4</zxing.version>

    <groovy.version>5.0.6</groovy.version>

    <flowable.version>7.2.0</flowable.version>
    <flowable-old.version>6.8.1</flowable-old.version>

    <disruptor.version>4.0.0</disruptor.version>

    <elasticsearch.version>9.3.4</elasticsearch.version>
    <opensearch.version>3.6.0</opensearch.version>
    <opensearch-java.version>3.8.0</opensearch-java.version>

    <openfga.version>v1</openfga.version>

    <debezium.version>3.4</debezium.version>

    <commons-lang3.version>3.20.0</commons-lang3.version>
    <commons-jexl.version>3.6.2</commons-jexl.version>
    <commons-text.version>1.15.0</commons-text.version>
    <commons-codec.version>1.22.0</commons-codec.version>

    <pac4j.version>6.3.3</pac4j.version>
    <opensaml.version>5.2.2</opensaml.version>

    <cas.version>7.3.7</cas.version>
    <cas-client.version>4.1.1</cas-client.version>

    <swagger-core.version>2.2.50</swagger-core.version>
    <swagger-ui.version>5.32.5</swagger-ui.version>

    <jquery-slimscroll.version>1.3.8</jquery-slimscroll.version>
    <jquery-cookie.version>1.4.1-1</jquery-cookie.version>

    <bootbox.version>6.0.4</bootbox.version>
    <bootstrap5-toggle.version>5.1.1</bootstrap5-toggle.version>
    <font-awesome.version>6.7.2</font-awesome.version>
    <ionicons.version>2.0.1</ionicons.version>
    <codemirror.version>5.62.2</codemirror.version>
    <googlediffmatchpath.version>20121119-1</googlediffmatchpath.version>
    <jsplumb.version>2.0.7</jsplumb.version>
    <chartjs.version>4.4.3</chartjs.version>

    <wicket.version>10.9.1</wicket.version>
    <wicketstuff.version>10.8.0</wicketstuff.version>
    <wicket-bootstrap.version>7.0.14</wicket-bootstrap.version>
    <wicket-spring-boot.version>4.1.1</wicket-spring-boot.version>

    <antlr4.version>4.13.2</antlr4.version>

    <curator.version>5.9.0</curator.version>
    <zookeeper.version>3.9.5</zookeeper.version>

    <testcontainers.version>2.0.5</testcontainers.version>

    <zonky.embedded-postgres.version>2.2.2</zonky.embedded-postgres.version>
    <zonky.embedded-postgres-binaries.version>18.3.0</zonky.embedded-postgres-binaries.version>

    <testds.rootDn>o=isp</testds.rootDn>
    <testds.bindDn>uid=admin,ou=system</testds.bindDn>
    <testds.password>secret</testds.password>
    <testds.port>1389</testds.port>

    <testdb.driver>org.h2.Driver</testdb.driver>
    <testdb.url>jdbc:h2:tcp://localhost:9092/mem:testdb;DB_CLOSE_DELAY=-1</testdb.url>
    <testdb.username>sa</testdb.username>
    <testdb.password>sa</testdb.password>
    <testdb.webport>9082</testdb.webport>

    <testconnectorserver.port>4554</testconnectorserver.port>
    <testconnectorserver.key>testconnectorserver</testconnectorserver.key>

    <testmail.smtpport>2525</testmail.smtpport>
    <testmail.pop3port>1110</testmail.pop3port>

    <testkafka.port>19092</testkafka.port>
    <testkafka.topics>account-provisioning,group-provisioning</testkafka.topics>

    <test.csvdir.path>${project.build.directory}/test-csvdir</test.csvdir.path>

    <cargo.servlet.port>9080</cargo.servlet.port>
    <cargo.tomcat.ajp.port>9889</cargo.tomcat.ajp.port>
    <cargo.rmi.port>9805</cargo.rmi.port>
    <cargo.deployable.ping.timeout>60000</cargo.deployable.ping.timeout>

    <tomcat.version>10.1.55</tomcat.version>
    <wildfly.version>39.0.1.Final</wildfly.version>
    <payara.version>6.2025.11</payara.version>
    <jakarta.faces.version>4.1.9</jakarta.faces.version>

    <docker.postgresql.version>18-alpine</docker.postgresql.version>
    <docker.mysql.version>9.0</docker.mysql.version>
    <docker.mariadb.version>12</docker.mariadb.version>
    <docker.oracle.version>23-slim-faststart</docker.oracle.version>
    <docker.neo4j.version>5.26</docker.neo4j.version>

    <jdbc.postgresql.version>42.7.11</jdbc.postgresql.version>
    <jdbc.mysql.version>9.7.0</jdbc.mysql.version>
    <jdbc.mariadb.version>3.5.8</jdbc.mariadb.version>
    <jdbc.oracle.version>23.26.2.0.0</jdbc.oracle.version>

    <bundles.directory>${project.build.directory}/bundles</bundles.directory>

    <adminUser>admin</adminUser>
    <anonymousUser>anonymous</anonymousUser>
    <adminPassword>DE088591C00CC98B36F5ADAAF7DA2B004CF7F2FE7BBB45B766B6409876E2F3DB13C7905C6AA59464</adminPassword>
    <!-- static keys, only used for build: generated overlays will override during archetype:generate -->
    <anonymousKey>anonymousKey</anonymousKey>
    <secretKey>1abcdefghilmnopqrstuvz2!</secretKey>
    <jwsKey>ZW7pRixehFuNUtnY5Se47IemgMryTzazPPJ9CGX5LTCmsOJpOgHAQEuPQeV9A28f</jwsKey>

    <!--
    Surefire plugin argLine can be defined as a Maven property to avoid JVM errors on startup with no jacoco-maven-plugin
    https://www.eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html
    -->
    <argLine>-Xms512m -Xmx1024m -Xss256k</argLine>

    <ianal.phase>verify</ianal.phase>
    <sass.skip>false</sass.skip>
    <remote-resources.skip>true</remote-resources.skip>

    <sonar.language>java</sonar.language>
    <sonar.java.source>${targetJdk}</sonar.java.source>
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
    <sonar.junit.reportPaths>${project.build.directory}/surefire-reports</sonar.junit.reportPaths>
    <sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>

    <targetJdk>21</targetJdk>
    <rootpom.basedir>${basedir}</rootpom.basedir>
    <maven.multiModuleProjectDirectory>${rootpom.basedir}</maven.multiModuleProjectDirectory>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencyManagement>

    <dependencies>
      <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>6.0.0</version>
        <scope>provided</scope>
      </dependency>

      <!-- CXF -->
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-extension-search</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-service-description</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-client</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-features-logging</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-features-metrics</artifactId>
        <version>${cxf.version}</version>
      </dependency>
      <!-- /CXF -->

      <!-- Swagger -->
      <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-annotations-jakarta</artifactId>
        <version>${swagger-core.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-jaxrs2-jakarta</artifactId>
        <version>${swagger-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>swagger-ui</artifactId>
        <version>${swagger-ui.version}</version>
      </dependency>
      <!-- /Swagger -->

      <dependency>
        <groupId>co.elastic.clients</groupId>
        <artifactId>elasticsearch-java</artifactId>
        <version>${elasticsearch.version}</version>
      </dependency>

      <dependency>
        <groupId>org.opensearch.client</groupId>
        <artifactId>opensearch-rest-client</artifactId>
        <version>${opensearch.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensearch.client</groupId>
        <artifactId>opensearch-java</artifactId>
        <version>${opensearch-java.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.openjpa</groupId>
        <artifactId>openjpa</artifactId>
        <version>${openjpa.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.uuid</groupId>
        <artifactId>java-uuid-generator</artifactId>
        <version>5.2.0</version>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.woodstox</groupId>
        <artifactId>woodstox-core</artifactId>
        <version>7.2.0</version>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring-boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.hibernate.orm</groupId>
            <artifactId>hibernate-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-neo4j</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-parameter-names</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-parameter-names</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
        <version>${spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-actuator</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-properties-migrator</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-metadata</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>${tomcat.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-el</artifactId>
        <version>${tomcat.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-websocket</artifactId>
        <version>${tomcat.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
        <version>${cxf.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.giffing.wicket.spring.boot.starter</groupId>
        <artifactId>wicket-spring-boot-starter</artifactId>
        <version>${wicket-spring-boot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
        <version>${spring-cloud-gateway.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
        <version>4.3.1</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-jexl3</artifactId>
        <version>${commons-jexl.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>${commons-text.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons-codec.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>3.3.0</version>
      </dependency>

      <dependency>
        <groupId>net.tirasa.connid</groupId>
        <artifactId>connector-framework</artifactId>
        <version>${connid.version}</version>
      </dependency>
      <dependency>
        <groupId>net.tirasa.connid</groupId>
        <artifactId>connector-framework-internal</artifactId>
        <version>${connid.version}</version>
      </dependency>
      <dependency>
        <groupId>net.tirasa.connid</groupId>
        <artifactId>slf4j-logging</artifactId>
        <version>${connid.version}</version>
      </dependency>

      <dependency>
        <groupId>org.jasypt</groupId>
        <artifactId>jasypt</artifactId>
        <version>${jasypt.version}</version>
      </dependency>

      <dependency>
        <groupId>dev.samstevens.totp</groupId>
        <artifactId>totp</artifactId>
        <version>1.7.1</version>
      </dependency>

      <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>core</artifactId>
        <version>${zxing.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>javase</artifactId>
        <version>${zxing.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-templates</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-xml</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-jsr223</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-datetime</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-dateutil</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-sql</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-json</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-yaml</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-groovysh</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.groovy</groupId>
        <artifactId>groovy-nio</artifactId>
        <version>${groovy.version}</version>
      </dependency>

      <dependency>
        <groupId>net.tirasa</groupId>
        <artifactId>groovy-security-sandbox</artifactId>
        <version>1.0.0</version>
      </dependency>

      <!-- Flowable -->
      <dependency>
        <groupId>org.flowable</groupId>
        <artifactId>flowable-engine</artifactId>
        <version>${flowable.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.flowable</groupId>
        <artifactId>flowable-spring</artifactId>
        <version>${flowable.version}</version>
      </dependency>
      <dependency>
        <groupId>org.flowable</groupId>
        <artifactId>flowable-idm-spring-configurator</artifactId>
        <version>${flowable.version}</version>
      </dependency>
      <dependency>
        <groupId>net.tirasa.flowable-leftovers</groupId>
        <artifactId>flowable-json-converter</artifactId>
        <version>${flowable.version}</version>
      </dependency>
      <!-- TODO: SYNCOPE-1718 -->
      <dependency>
        <groupId>org.flowable</groupId>
        <artifactId>flowable-ui-modeler-frontend</artifactId>
        <version>${flowable-old.version}</version>
      </dependency>
      <dependency>
        <groupId>org.flowable</groupId>
        <artifactId>flowable-ui-modeler-logic</artifactId>
        <version>${flowable-old.version}</version>
      </dependency>
      <!-- /Flowable -->

      <!-- PAC4J -->
      <dependency>
        <groupId>org.pac4j</groupId>
        <artifactId>pac4j-saml</artifactId>
        <version>${pac4j.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcpkix-jdk15on</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>findbugs-annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.pac4j</groupId>
        <artifactId>pac4j-oidc</artifactId>
        <version>${pac4j.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>findbugs-annotations</artifactId>
          </exclusion>          
        </exclusions>
      </dependency>
      <!-- PAC4J -->

      <!-- OpenSAML -->
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-core-api</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-saml-api</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-saml-impl</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-soap-api</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-profile-api</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-profile-impl</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-security-api</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-security-impl</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-messaging-api</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-messaging-impl</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-storage-impl</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-xmlsec-api</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.opensaml</groupId>
        <artifactId>opensaml-xmlsec-impl</artifactId>
        <version>${opensaml.version}</version>
      </dependency>
      <!-- OpenSAML -->

      <!-- CAS -->
      <dependency>
        <groupId>org.apereo.cas.client</groupId>
        <artifactId>cas-client-core</artifactId>
        <version>${cas-client.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcpkix-jdk15on</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <!-- /CAS -->

      <!-- Wicket -->
      <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket</artifactId>
        <version>${wicket.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.wicketstuff</groupId>
        <artifactId>wicketstuff-editable-grid</artifactId>
        <version>${wicketstuff.version}</version>
      </dependency>
      <dependency>
        <groupId>org.wicketstuff</groupId>
        <artifactId>wicketstuff-jquery-ui</artifactId>
        <version>${wicketstuff.version}</version>
      </dependency>
      <dependency>
        <groupId>org.wicketstuff</groupId>
        <artifactId>wicketstuff-jquery-ui-theme-base</artifactId>
        <version>${wicketstuff.version}</version>
      </dependency>
      <dependency>
        <groupId>org.wicketstuff</groupId>
        <artifactId>wicketstuff-kendo-ui</artifactId>
        <version>${wicketstuff.version}</version>
      </dependency>
      <dependency>
        <groupId>org.wicketstuff</groupId>
        <artifactId>wicketstuff-kendo-ui-culture</artifactId>
        <version>${wicketstuff.version}</version>
      </dependency>
      <dependency>
        <groupId>org.wicketstuff</groupId>
        <artifactId>wicketstuff-kendo-ui-theme-bootstrap</artifactId>
        <version>${wicketstuff.version}</version>
      </dependency>
      <dependency>
        <groupId>de.agilecoders.wicket</groupId>
        <artifactId>wicket-bootstrap-core</artifactId>
        <version>${wicket-bootstrap.version}</version>
      </dependency>
      <dependency>
        <groupId>de.agilecoders.wicket</groupId>
        <artifactId>wicket-bootstrap-extensions</artifactId>
        <version>${wicket-bootstrap.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.javascript</groupId>
            <artifactId>closure-compiler</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.webjars.bower</groupId>
            <artifactId>summernote</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.webjars</groupId>
            <artifactId>Eonasdan-bootstrap-datetimepicker</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.webjars</groupId>
            <artifactId>momentjs</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <!-- /Wicket -->

      <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>${disruptor.version}</version>
      </dependency>

      <dependency>
        <groupId>org.bitbucket.b_c</groupId>
        <artifactId>jose4j</artifactId>
        <version>0.9.6</version>
      </dependency>

      <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>3.0.7</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jquery-cookie</artifactId>
        <version>${jquery-cookie.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jQuery-slimScroll</artifactId>
        <version>${jquery-slimscroll.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>font-awesome</artifactId>
        <version>${font-awesome.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars.npm</groupId>
        <artifactId>bootbox</artifactId>
        <version>${bootbox.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars.npm</groupId>
        <artifactId>bootstrap5-toggle</artifactId>
        <version>${bootstrap5-toggle.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.webjars.npm</groupId>
            <artifactId>bootstrap</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>ionicons</artifactId>
        <version>${ionicons.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>codemirror</artifactId>
        <version>${codemirror.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>google-diff-match-patch</artifactId>
        <version>${googlediffmatchpath.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jsplumb</artifactId>
        <version>${jsplumb.version}</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>chartjs</artifactId>
        <version>${chartjs.version}</version>
      </dependency>

      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-runtime</artifactId>
        <version>${antlr4.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>${curator.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-client</artifactId>
        <version>${curator.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-x-discovery</artifactId>
        <version>${curator.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
          </exclusion>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
          <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcpkix-jdk18on</artifactId>
        <version>${bouncycastle.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk18on</artifactId>
        <version>${bouncycastle.version}</version>
      </dependency>

      <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>nimbus-jose-jwt</artifactId>
        <version>${nimbus-jose-jwt.version}</version>
      </dependency>

      <dependency>
        <groupId>org.passay</groupId>
        <artifactId>passay</artifactId>
        <version>2.0.0</version>
      </dependency>

      <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <version>7.0.2</version>
      </dependency>

      <dependency>
        <groupId>io.zonky.test</groupId>
        <artifactId>embedded-postgres</artifactId>
        <version>${zonky.embedded-postgres.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.zonky.test.postgres</groupId>
        <artifactId>embedded-postgres-binaries-bom</artifactId>
        <version>${zonky.embedded-postgres-binaries.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.22.2</version>
      </dependency>

      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers-jdbc</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers-database-commons</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers-mysql</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers-mariadb</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers-oracle-free</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers-openfga</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${jdbc.postgresql.version}</version>
      </dependency>
      <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>${jdbc.mysql.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>${jdbc.mariadb.version}</version>
      </dependency>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc11</artifactId>
        <version>${jdbc.oracle.version}</version>
      </dependency>

      <dependency>
        <groupId>com.icegreen</groupId>
        <artifactId>greenmail</artifactId>
        <version>2.1.8</version>
        <exclusions>
          <exclusion>
            <groupId>com.sun.mail</groupId>
            <artifactId>jakarta.mail</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- TEST -->
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-test</artifactId>
        <version>${curator.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-netty-server</artifactId>
        <version>${cxf.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-contract-wiremock</artifactId>
        <version>4.3.3</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <repositories>
    <repository>
      <id>central-portal-snapshots</id>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>shib-release</id>
      <url>https://build.shibboleth.net/maven/releases</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <!-- Excluding useless transitive repositories -->
    <repository>
      <id>sonatype-snapshot</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>s01</id>
      <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>spring-milestone</id>
      <url>https://repo.spring.io/milestone/c</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>couchbase</id>
      <url>https://files.couchbase.com/maven2/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central-portal-snapshots</id>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <defaultGoal>clean verify</defaultGoal>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.15.0</version>
          <configuration>
            <release>${targetJdk}</release>
            <useIncrementalCompilation>false</useIncrementalCompilation>
            <showWarnings>true</showWarnings>
            <showDeprecation>true</showDeprecation>
            <proc>full</proc>
            <compilerArgs>
              <arg>-Xlint:unchecked</arg>
              <arg>-parameters</arg>
            </compilerArgs>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.5.0</version>
          <configuration>
            <propertiesEncoding>${project.build.sourceEncoding}</propertiesEncoding>
            <useDefaultDelimiters>false</useDefaultDelimiters>
            <delimiters>
              <delimiter>${*}</delimiter>
            </delimiters>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>3.6.1</version>
        </plugin>

        <plugin>
          <groupId>io.github.git-commit-id</groupId>
          <artifactId>git-commit-id-maven-plugin</artifactId>
          <version>10.0.0</version>
          <executions>
            <execution>
              <goals>
                <goal>revision</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <verbose>true</verbose>
            <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
            <dateFormatTimeZone>Zulu</dateFormatTimeZone>
            <generateGitPropertiesFile>true</generateGitPropertiesFile>
            <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
            <excludeProperties>
              <excludeProperty>git.build.time</excludeProperty>
              <excludeProperty>git.build.user.*</excludeProperty>
              <excludeProperty>git.build.host</excludeProperty>
              <excludeProperty>git.commit.user.*</excludeProperty>
              <excludeProperty>git.tags</excludeProperty>
              <excludeProperty>git.total.commit.count</excludeProperty>
            </excludeProperties>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.12.0</version>
          <configuration>
            <release>${targetJdk}</release>
            <additionalOptions>
              <additionalOption>--legal-notices</additionalOption>
              <additionalOption>none</additionalOption>
            </additionalOptions>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.openjpa</groupId>
          <artifactId>openjpa-maven-plugin</artifactId>
          <version>${openjpa.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.10.0</version>
          <configuration>
            <outputDirectory>${bundles.directory}</outputDirectory>
            <artifactItems>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles.soap</groupId>
                <artifactId>net.tirasa.connid.bundles.soap</artifactId>
                <version>${connid.soap.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.rest</artifactId>
                <version>${connid.rest.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.csvdir</artifactId>
                <version>${connid.csvdir.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles.db</groupId>
                <artifactId>net.tirasa.connid.bundles.db</artifactId>
                <version>${connid.db.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.ldap</artifactId>
                <version>${connid.ldap.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.ad</artifactId>
                <version>${connid.ad.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles.googleapps</groupId>
                <artifactId>net.tirasa.connid.bundles.googleapps</artifactId>
                <version>${connid.googleapps.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.azure</artifactId>
                <version>${connid.azure.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.scim</artifactId>
                <version>${connid.scim.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.servicenow</artifactId>
                <version>${connid.servicenow.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles.okta</groupId>
                <artifactId>net.tirasa.connid.bundles.okta</artifactId>
                <version>${connid.okta.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.cmd</artifactId>
                <version>${connid.cmd.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.kafka</artifactId>
                <version>${connid.kafka.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
              <artifactItem>
                <groupId>net.tirasa.connid.bundles</groupId>
                <artifactId>net.tirasa.connid.bundles.ldup</artifactId>
                <version>${connid.ldup.version}</version>
                <classifier>bundle</classifier>
              </artifactItem>
            </artifactItems>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.openapitools</groupId>
          <artifactId>openapi-generator-maven-plugin</artifactId>
          <version>7.22.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.5.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.5.1</version>
          <configuration>
            <webResources>
              <resource>
                <directory>${basedir}/src/main/webapp/WEB-INF</directory>
                <filtering>true</filtering>
                <targetPath>WEB-INF</targetPath>
                <includes>
                  <include>web.xml</include>
                </includes>
              </resource>
            </webResources>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>

        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>${spring-boot.version}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven3-plugin</artifactId>
          <version>1.10.27</version>
          <configuration>
            <container>
              <log>${project.build.directory}/log/cargo.log</log>
              <output>${project.build.directory}/log/cargo-output.log</output>
              <systemProperties>
                <syncope.conf.dir>${project.build.directory}/test-classes</syncope.conf.dir>
                <syncope.connid.location>file:${bundles.directory}/</syncope.connid.location>
                <syncope.log.dir>${project.build.directory}/log</syncope.log.dir>
              </systemProperties>
            </container>
            <configuration>
              <type>standalone</type>
              <properties>
                <cargo.servlet.port>${cargo.servlet.port}</cargo.servlet.port>
                <cargo.tomcat.ajp.port>${cargo.tomcat.ajp.port}</cargo.tomcat.ajp.port>
                <cargo.rmi.port>${cargo.rmi.port}</cargo.rmi.port>

                <cargo.jvmargs>-Xmx1024m -Xms512m</cargo.jvmargs>
              </properties>
            </configuration>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.5.5</version>
          <configuration>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
            <encoding>utf-8</encoding>
            <runOrder>alphabetical</runOrder>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>3.5.5</version>
          <configuration>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
            <runOrder>alphabetical</runOrder>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>3.6.0</version>
          <configuration>
            <configLocation>${rootpom.basedir}/src/main/resources/org/apache/syncope/checkstyle.xml</configLocation>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
          </configuration>
        </plugin>

        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>0.48.1</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>3.6.3</version>
        </plugin>

        <plugin>
          <groupId>org.antlr</groupId>
          <artifactId>antlr4-maven-plugin</artifactId>
          <version>${antlr4.version}</version>
        </plugin>

        <plugin>
          <groupId>us.hebi.sass</groupId>
          <artifactId>sass-cli-maven-plugin</artifactId>
          <version>1.0.4</version>
          <configuration>
            <sassVersion>1.62.0</sassVersion>
            <skip>${sass.skip}</skip>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.14</version>
        </plugin>

        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>5.6.0.6792</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.6.3</version>
        <executions>
          <execution>
            <id>default-cli</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireJavaVersion>
                  <version>${targetJdk}</version>
                </requireJavaVersion>
                <requireMavenVersion>
                  <version>3.9.5</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.gaul</groupId>
        <artifactId>modernizer-maven-plugin</artifactId>
        <version>3.4.0</version>
        <configuration>
          <javaVersion>${targetJdk}</javaVersion>
          <ignorePackages>
            <ignorePackage>org.apache.syncope.core.persistence.jpa.entity</ignorePackage>
            <ignorePackage>org.apache.syncope.ext.openfga.client</ignorePackage>
          </ignorePackages>
          <exclusions>
            <exclusion>java/util/Optional.get:()Ljava/lang/Object;</exclusion>
          </exclusions>
        </configuration>
        <executions>
          <execution>
            <id>modernizer-check</id>
            <phase>verify</phase>
            <goals>
              <goal>modernizer</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <resourceExcludes>**/LICENSE,**/NOTICE</resourceExcludes>
        </configuration>
        <executions>
          <execution>
            <id>checkstyle-check</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <configuration>
          <skip>${skipTests}</skip>
        </configuration>
        <executions>
          <execution>
            <id>prepare-jacoco-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>generate-code-coverage-report</id>
            <phase>test</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.gmavenplus</groupId>
        <artifactId>gmavenplus-plugin</artifactId>
        <version>4.3.1</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.groovy</groupId>
            <artifactId>groovy-ant</artifactId>
            <version>${groovy.version}</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <allowSystemExits>true</allowSystemExits>
              <scripts>
                <script><![CDATA[
                import java.util.Date
                import java.text.MessageFormat
                def year = MessageFormat.format("{0,date,yyyy}", new Date())
                project.properties['year'] = year
                project.properties['snapshotOrRelease'] = project.version.endsWith("SNAPSHOT") ? "snapshot" : "release"
                project.properties['licenseUrl'] = project.parent.licenses[0].url
                project.properties['site.deploymentBaseDir'] =
                project.properties['site.deploymentBaseUrl'] == null || !project.properties['site.deploymentBaseUrl'].startsWith('file:') ? project.properties['project.build.directory'] + "/generated-docs" : project.properties['site.deploymentBaseUrl'].substring(7)

                if (!project.properties.containsKey('buildNumber'))
                project.properties['buildNumber'] = ""
                ]]></script>
              </scripts>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/nbactions.xml</exclude>
            <exclude>**/nb-configuration.xml</exclude>
            <exclude>**/META-INF/cxf/**</exclude>
            <exclude>**/META-INF/services/**</exclude>
            <exclude>**/META-INF/MANIFEST.MF</exclude>
            <exclude>**/*.csv</exclude>
            <exclude>**/archetype-resources/**</exclude>
            <exclude>**/adminlte*</exclude>
            <exclude>**/dataTables.bootstrap5.min.css</exclude>
            <exclude>**/goal.txt</exclude>
            <exclude>**/rat.txt</exclude>
            <exclude>**/build-copy-javadoc-files.xml</exclude>
            <exclude>**/maven-eclipse.xml</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>**/*.log</exclude>
            <exclude>**/.externalToolBuilders/**</exclude>
            <exclude>.git/**</exclude>
            <exclude>.idea/**</exclude>
            <exclude>**/.settings/**</exclude>
            <exclude>**/.*</exclude>
            <exclude>**/*.lst</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/*font*awesome*</exclude>
            <exclude>**/banner.txt</exclude>
            <exclude>**/target/**</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <id>rat-check</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <configuration>
          <skip>${remote-resources.skip}</skip>
        </configuration>
      </plugin>

      <!-- Put NOTICE and LICENSE files in all artifacts and javadocs -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.5.0</version>
        <executions>
          <execution>
            <id>copy-artifact-legal-files</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}/META-INF</outputDirectory>
              <resources>
                <resource>
                  <directory>${rootpom.basedir}</directory>
                  <includes>
                    <include>LICENSE</include>
                    <include>NOTICE</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-javadoc-legal-files</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/reports/apidocs/META-INF</outputDirectory>
              <resources>
                <resource>
                  <directory>${rootpom.basedir}</directory>
                  <includes>
                    <include>LICENSE</include>
                    <include>NOTICE</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.geronimo.genesis.plugins</groupId>
        <artifactId>tools-maven-plugin</artifactId>
        <version>1.4</version>
        <configuration>
          <!-- Fail the build if any artifacts are missing legal files -->
          <strict>true</strict>
        </configuration>
        <executions>
          <execution>
            <id>verify-legal-files</id>
            <phase>${ianal.phase}</phase>
            <goals>
              <goal>verify-legal-files</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <mavenExecutorId>forked-path</mavenExecutorId>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <tagNameFormat>syncope-@{project.version}</tagNameFormat>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>3.9.0</version>
        <configuration>
          <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>team</report>
              <report>issue-management</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.12.0</version>
        <configuration>
          <source>${targetJdk}</source>
          <destDir>apidocs/4.1</destDir>
          <isOffline>false</isOffline>
          <detectLinks>true</detectLinks>
          <detectJavaApiLink>true</detectJavaApiLink>
          <dependencySourceExcludes>
            <dependencySourceExclude>org.webjars:*</dependencySourceExclude>
            <dependencySourceExclude>org.webjars.bower:*</dependencySourceExclude>
          </dependencySourceExcludes>
          <links>
            <link>https://docs.oracle.com/en/java/javase/21/docs/api/</link>
            <link>https://jakarta.ee/specifications/platform/10/apidocs/</link>
            <link>https://www.slf4j.org/api/</link>
            <link>https://connid.tirasa.net/apidocs/1.6/</link>
            <link>https://cxf.apache.org/javadoc/latest/</link>
            <link>https://javadoc.io/static/com.fasterxml.jackson.core/jackson-core/2.21.2/</link>
            <link>https://javadoc.io/static/com.fasterxml.jackson.core/jackson-databind/2.21.2/</link>
            <link>https://javadoc.io/static/com.fasterxml.jackson.core/jackson-annotations/2.21.2/</link>
            <link>https://javadoc.io/static/com.fasterxml.jackson.dataformat/jackson-dataformat-csv/2.21.2/</link>
            <link>https://nightlies.apache.org/wicket/apidocs/10.x/</link>
            <link>https://commons.apache.org/proper/commons-lang/javadocs/api-release/</link>
            <link>https://commons.apache.org/proper/commons-jexl/apidocs/</link>
            <link>https://tika.apache.org/3.3.0/api/</link>
            <link>https://docs.spring.io/spring-boot/3.5/api/java/</link>
            <link>https://docs.spring.io/spring-framework/docs/6.2.x/javadoc-api/</link>
            <link>https://docs.spring.io/spring-security/site/docs/6.5.x/api/</link>
            <link>https://developer-docs.flowable.com/javadocs/flowable-oss-javadoc/2025.1/</link>
            <link>https://docs.swagger.io/swagger-core/v2.2.50/apidocs/</link>
          </links>
          <additionalOptions>
            <additionalOption>--legal-notices</additionalOption>
            <additionalOption>none</additionalOption>
          </additionalOptions>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>3.6.0</version>
      </plugin>
    </plugins>
  </reporting>

  <profiles>

    <profile>
      <id>apache-release</id>

      <properties>
        <remote-resources.skip>false</remote-resources.skip>
      </properties>

      <build>
        <plugins>
          <plugin>
            <groupId>org.cyclonedx</groupId>
            <artifactId>cyclonedx-maven-plugin</artifactId>
            <version>2.9.1</version>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>makeAggregateBom</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>3.1.4</version>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>3.2.8</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>

      <modules>
        <module>docker</module>
      </modules>
    </profile>

    <profile>
      <id>site</id>
      <build>
        <defaultGoal>clean generate-resources site-deploy</defaultGoal>

        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-ext-images</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <configuration>
                  <resources>
                    <resource>
                      <directory>${rootpom.basedir}/src/site/resources/images</directory>
                      <includes>
                        <include>apache-syncope-logo-small.jpg</include>
                      </includes>
                    </resource>
                  </resources>
                  <outputDirectory>${rootpom.basedir}/target/generated-docs/images</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctor-maven-plugin</artifactId>
            <version>3.2.0</version>
            <inherited>false</inherited>
            <dependencies>
              <dependency>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctorj-pdf</artifactId>
                <version>2.3.23</version>
              </dependency>
            </dependencies>
            <configuration>
              <doctype>book</doctype>
              <attributes>
                <docVersion>${project.version}</docVersion>
                <snapshotOrRelease>${snapshotOrRelease}</snapshotOrRelease>
                <postgresql>${docker.postgresql.version}</postgresql>
                <mysql>${docker.mysql.version}</mysql>
                <mariadb>${docker.mariadb.version}</mariadb>
                <oracle>${docker.oracle.version}</oracle>
                <neo4j>${docker.neo4j.version}</neo4j>
                <postgresqlJDBC>${jdbc.postgresql.version}</postgresqlJDBC>
                <mysqlJDBC>${jdbc.mysql.version}</mysqlJDBC>
                <mariadbJDBC>${jdbc.mariadb.version}</mariadbJDBC>
                <oracleJDBC>${jdbc.oracle.version}</oracleJDBC>
                <year>${year}</year>
                <numbered>true</numbered>
                <icons>font</icons>
                <pagenums />
                <idprefix />
                <idseparator>-</idseparator>
                <allow-uri-read />
              </attributes>
            </configuration>
            <executions>
              <execution>
                <id>getting-started-html</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>process-asciidoc</goal>
                </goals>
                <configuration>
                  <sourceDocumentName>getting-started/getting-started.adoc</sourceDocumentName>
                  <baseDir>${rootpom.basedir}/src/main/asciidoc/getting-started</baseDir>
                  <backend>html5</backend>
                  <attributes>
                    <title>Apache Syncope ${project.version} - Getting Started</title>
                    <imagesdir>images</imagesdir>
                    <stylesdir>css</stylesdir>
                  </attributes>
                </configuration>
              </execution>
              <execution>
                <id>getting-started-pdf</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>process-asciidoc</goal>
                </goals>
                <configuration>
                  <sourceDocumentName>getting-started/getting-started.adoc</sourceDocumentName>
                  <baseDir>${rootpom.basedir}/src/main/asciidoc/getting-started</baseDir>
                  <backend>pdf</backend>
                  <attributes>
                    <pdf-stylesdir>${basedir}/src/main/asciidoc</pdf-stylesdir>
                    <pdf-style>syncope</pdf-style>
                    <imagesdir>${rootpom.basedir}/target/generated-docs/images</imagesdir>
                  </attributes>
                </configuration>
              </execution>
              <execution>
                <id>reference-guide-html</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>process-asciidoc</goal>
                </goals>
                <configuration>
                  <sourceDocumentName>reference-guide/reference-guide.adoc</sourceDocumentName>
                  <baseDir>${rootpom.basedir}/src/main/asciidoc/reference-guide</baseDir>
                  <backend>html5</backend>
                  <attributes>
                    <title>Apache Syncope ${project.version} - Reference Guide</title>
                    <imagesdir>images</imagesdir>
                    <stylesdir>css</stylesdir>
                  </attributes>
                </configuration>
              </execution>
              <execution>
                <id>reference-guide-pdf</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>process-asciidoc</goal>
                </goals>
                <configuration>
                  <sourceDocumentName>reference-guide/reference-guide.adoc</sourceDocumentName>
                  <baseDir>${rootpom.basedir}/src/main/asciidoc/reference-guide</baseDir>
                  <backend>pdf</backend>
                  <attributes>
                    <pdf-stylesdir>${basedir}/src/main/asciidoc</pdf-stylesdir>
                    <pdf-style>syncope</pdf-style>
                    <imagesdir>${rootpom.basedir}/target/generated-docs/images</imagesdir>
                  </attributes>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.21.0</version>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>skipTests</id>

      <properties>
        <maven.build.cache.skipCache>true</maven.build.cache.skipCache>
        <skipTests>true</skipTests>
        <ianal.phase>none</ianal.phase>
        <modernizer.skip>true</modernizer.skip>
        <rat.skip>true</rat.skip>
        <checkstyle.skip>true</checkstyle.skip>
      </properties>

      <build>
        <defaultGoal>clean install</defaultGoal>

        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <executions>
              <execution>
                <id>checkstyle-check</id>
                <phase>none</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>docker</id>

      <modules>
        <module>docker</module>
      </modules>
    </profile>

    <profile>
      <activation>
        <os>
          <family>Windows</family>
        </os>
      </activation>

      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>windows-connid-location</id>
                <goals>
                  <goal>regex-property</goal>
                </goals>
                <configuration>
                  <name>syncope.connid.location</name>
                  <value>file://${project.build.directory}\bundles/</value>
                  <regex>\\</regex>
                  <replacement>/</replacement>
                  <failIfNoMatch>false</failIfNoMatch>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <modules>
    <module>common</module>
    <module>core</module>
    <module>client</module>
    <module>sra</module>
    <module>wa</module>
    <module>fit</module>
    <module>ext</module>
    <module>archetype</module>
    <module>standalone</module>
  </modules>

</project>
