<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.neo4j</groupId>
  <artifactId>parent</artifactId>
  <version>4.0.1</version>
  <packaging>pom</packaging>
  <name>Neo4j</name>
  <description>Neo4j Graph Database</description>
  <inceptionYear>2002</inceptionYear>
  <url>http://neo4j.com/</url>

  <organization>
    <name>The Neo4j Graph Database Project</name>
    <url>https://neo4j.com/</url>
  </organization>

  <scm>
    <connection>scm:git:git://github.com/neo4j/neo4j.git</connection>
    <developerConnection>scm:git:git@github.com:neo4j/neo4j.git</developerConnection>
    <url>https://github.com/neo4j/neo4j</url>
  </scm>

  <licenses>
    <license>
      <name>GNU Affero General Public License, Version 3 with the Commons Clause</name>
      <url>http://www.gnu.org/licenses/agpl-3.0-standalone.html</url>
    </license>
  </licenses>

  <developers>
    <developer>
      <id>neo4j</id>
      <name>The Neo4j Team</name>
      <url>https://neo4j.com/</url>
      <organization>Neo4j Inc.</organization>
      <organizationUrl>https://neo4j.com/</organizationUrl>
    </developer>
  </developers>

  <mailingLists>
    <mailingList>
      <name>Neo4j Community Discussions</name>
      <subscribe>https://groups.google.com/forum/#!forum/neo4j</subscribe>
    </mailingList>
  </mailingLists>

  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/neo4j/neo4j/issues</url>
  </issueManagement>

  <distributionManagement>
    <repository>
      <id>sonatype-nexus-staging</id>
      <name>Nexus Release Repository</name>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
  </distributionManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <licensing.prepend.text>licensing/notice-agpl-prefix.txt</licensing.prepend.text>
    <lucene.version>8.2.0</lucene.version>
    <bouncycastle.version>1.64</bouncycastle.version>
    <ThreadLeakageGuardExtension.PRINT_ONLY>false</ThreadLeakageGuardExtension.PRINT_ONLY>
    <generate-config-docs-phase>prepare-package</generate-config-docs-phase>
    <test.runner.jvm/>
    <test.runner.jvm.settings.additional/>
    <test.runner.jvm.settings>-Xmx2G -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError
      -Djdk.nio.maxCachedBufferSize=262144
      -Dio.netty.tryReflectionSetAccessible=true
      "-XX:HeapDumpPath=target/test data" -Dorg.neo4j.internal.unsafe.UnsafeUtil.DIRTY_MEMORY=true
      -Dorg.neo4j.test.extension.ThreadLeakageGuardExtension.PRINT_ONLY=${ThreadLeakageGuardExtension.PRINT_ONLY}
      -Dorg.neo4j.internal.unsafe.UnsafeUtil.CHECK_NATIVE_ACCESS=true
      -Dorg.neo4j.io.pagecache.impl.muninn.usePreciseCursorErrorStackTraces=true
      -Dorg.neo4j.kernel.impl.api.KernelStatement.trackStatements=true
      -Dorg.neo4j.kernel.impl.newapi.DefaultCursors.trackCursors=true
      -Dorg.neo4j.codegen.bytecode.ByteCodeExpressionVisitor.checkByteCode=false
      -Dorg.neo4j.bolt.transport.NettyServer.shutdownQuietPeriod=0 -Dorg.neo4j.bolt.transport.NettyServer.shutdownTimeout=3
      -Djunit.jupiter.extensions.autodetection.enabled=true
      -Djunit.jupiter.execution.parallel.enabled=true
      -Djunit.jupiter.execution.timeout.default=${default.jupiter.test.timeout}
      -Djunit.jupiter.execution.parallel.mode.classes.default=${default.jupiter.test.mode}
      -XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields ${test.runner.jvm.settings.additional}
    </test.runner.jvm.settings>
    <default.jupiter.test.timeout>20m</default.jupiter.test.timeout>
    <default.jupiter.test.mode>same_thread</default.jupiter.test.mode>
    <jetty.version>9.4.17.v20190418</jetty.version>
    <findbugs.version>3.0.1</findbugs.version>
    <git.commit>unknown-commit</git.commit>
    <forkCounts>0</forkCounts>
    <maven.build.timestamp.format>yyMMddHHmmssSSS</maven.build.timestamp.format>

    <license-text.header>headers/AGPL-3-header.txt</license-text.header>

    <scala-maven-plugin.version>4.0.1</scala-maven-plugin.version>
    <scala.version>2.12.7</scala.version>
    <scala.binary.version>2.12</scala.binary.version>
    <asm.version>7.2</asm.version>
    <metrics.version>4.1.0</metrics.version>
    <scala.target.vm>1.8</scala.target.vm>
    <jersey.version>2.29</jersey.version>
    <junit.version>5.5.2</junit.version>
    <junit.platform.version>1.5.2</junit.platform.version>
    <currentYear>2020</currentYear>
    <opencypher.version>1.0.0-M15</opencypher.version>
    <caffeine.version>2.8.0</caffeine.version>
    <required.maven.version>3.5.4</required.maven.version>
    <jackson.version>2.10.0</jackson.version>
	<amazon-sdk.version>1.11.524</amazon-sdk.version>
    <guava.version>28.1-jre</guava.version>
  </properties>

  <modules>
    <module>annotations</module>
    <module>build-resources</module>
    <module>community</module>
    <module>packaging</module>
  </modules>

  <build>
    <!-- Define project structure -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>${basedir}/src/main/resources/META-INF/</directory>
        <targetPath>META-INF</targetPath>
      </resource>
      <resource>
        <directory>${basedir}</directory>
        <targetPath>META-INF</targetPath>
        <includes>
          <include>COPYRIGHT.txt</include>
          <include>NOTICE.txt</include>
          <include>LICENSE.txt</include>
          <include>LICENSES.txt</include>
          <include>README*</include>
          <include>CHANGES.txt</include>
        </includes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
      <testResource>
        <directory>${basedir}</directory>
        <targetPath>META-INF</targetPath>
        <includes>
          <include>COPYRIGHT.txt</include>
          <include>NOTICE.txt</include>
          <include>LICENSE.txt</include>
          <include>LICENSES.txt</include>
          <include>README*</include>
          <include>CHANGES.txt</include>
        </includes>
      </testResource>
    </testResources>

    <!-- Plugin definitions -->
    <pluginManagement>
      <plugins>

        <!-- Here we define our public API, it should be kept in sync with revapi settings below -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.1.1</version>
          <executions>
            <execution>
              <id>generate-javadocs</id>
              <goals>
                <goal>javadoc-no-fork</goal>
              </goals>
              <phase>prepare-package</phase>
            </execution>
          </executions>
          <configuration>
            <additionalJOption>-J--add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED</additionalJOption>
            <doclet>org.neo4j.annotations.api.PublicApiDoclet</doclet>
            <docletArtifact>
              <groupId>org.neo4j</groupId>
              <artifactId>annotations</artifactId>
              <version>${project.version}</version>
            </docletArtifact>

            <header>Neo4j</header>
            <doctitle>Neo4j ${project.version} API</doctitle>
            <windowtitle>Neo4j ${project.version} API</windowtitle>
            <show>public</show>

            <quiet>true</quiet>
            <reportOutputDirectory>${project.build.directory}/apidocs</reportOutputDirectory>
            <links>
              <link>https://docs.oracle.com/en/java/javase/${maven.compiler.source}/docs/api</link>
            </links>

            <!-- Defines grouping for overview -->
            <groups>
              <group>
                <title>Graph database</title>
                <packages>org.neo4j.graphdb:org.neo4j.dbms.api</packages>
              </group>
              <group>
                <title>Graph algorithms</title>
                <packages>org.neo4j.graphalgo:org.neo4j.graphalgo.*</packages>
              </group>
              <group>
                <title>Logging</title>
                <packages>org.neo4j.logging:org.neo4j.logging.*</packages>
              </group>
              <group>
                <title>Import</title>
                <packages>org.neo4j.batchinsert</packages>
              </group>
              <group>
                <title>Procedures</title>
                <packages>org.neo4j.procedure</packages>
              </group>
              <group>
                <title>Server Plugin API</title>
                <packages>org.neo4j.server:org.neo4j.server.*</packages>
              </group>
              <group>
                <title>Test Harness</title>
                <packages>org.neo4j.harness.junit*</packages>
              </group>
            </groups>

            <!-- Include the following packages... (yes, has to be one line) -->
            <subpackages>
              org.neo4j.graphalgo:org.neo4j.graphdb:org.neo4j.dbms.api:org.neo4j.server.helpers:org.neo4j.server.rest.repr:org.neo4j.server.rest.web:org.neo4j.batchinsert:org.neo4j.logging:org.neo4j.procedure:org.neo4j.harness.junit:org.neo4j.configuration
            </subpackages>
            <!-- ...unless the package contains -->
            <excludePackageNames>
              *.impl.*:*.internal.*
            </excludePackageNames>
          </configuration>
        </plugin>

        <!-- Define what packages to treat as public API, it should be kept in sync with javadoc settings above -->
        <plugin>
          <groupId>org.revapi</groupId>
          <artifactId>revapi-maven-plugin</artifactId>
          <version>0.11.1</version>
          <configuration>
            <skip>true</skip>
            <versionFormat>^\d+\.\d+\.\d+$</versionFormat>
            <analysisConfiguration>
              <revapi.java>
                <reportUsesFor>all-differences</reportUsesFor>
                <missing-classes>
                  <behavior>report</behavior>
                  <ignoreMissingAnnotations>false</ignoreMissingAnnotations>
                </missing-classes>
              </revapi.java>
              <revapi.java.filter.annotated>
                <regex>true</regex>
                <include>
                  <item>@org\.neo4j\.annotations\.api\.PublicApi</item>
                </include>
              </revapi.java.filter.annotated>
              <revapi.reclassify>
                <item>
                  <code>java.class.added</code>
                  <classify>
                    <BINARY>BREAKING</BINARY>
                    <SOURCE>BREAKING</SOURCE>
                  </classify>
                </item>
              </revapi.reclassify>
              <revapi.semver.ignore>
                <enabled>true</enabled>
                <versionIncreaseAllows>
                  <major>breaking</major>
                  <minor>nonBreaking</minor>
                  <patch>equivalent</patch>
                </versionIncreaseAllows>
              </revapi.semver.ignore>
            </analysisConfiguration>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.revapi</groupId>
              <artifactId>revapi-java</artifactId>
              <version>0.19.1</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <!-- Testing setup -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.2</version>
          <configuration>
            <forkCount>${forkCounts}</forkCount>
            <trimStackTrace>false</trimStackTrace>
            <reuseForks>true</reuseForks>
            <argLine>${test.runner.jvm.settings}</argLine>
            <runOrder>random</runOrder>
            <systemPropertyVariables>
              <dbms.pagecache.memory.default.override>8m</dbms.pagecache.memory.default.override>
              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            </systemPropertyVariables>
            <jvm>${test.runner.jvm}</jvm>
            <excludes>
              <exclude>**/*$*.class</exclude>
              <exclude>**/*IntegrationTest.class</exclude>
            </excludes>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.junit.platform</groupId>
              <artifactId>junit-platform-launcher</artifactId>
              <version>${junit.platform.version}</version>
            </dependency>
            <dependency>
              <groupId>org.junit.jupiter</groupId>
              <artifactId>junit-jupiter-engine</artifactId>
              <version>${junit.version}</version>
            </dependency>
            <dependency>
              <groupId>org.junit.vintage</groupId>
              <artifactId>junit-vintage-engine</artifactId>
              <version>${junit.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.22.2</version>
          <configuration>
            <argLine>${test.runner.jvm.settings}</argLine>
            <forkCount>${forkCounts}</forkCount>
            <trimStackTrace>false</trimStackTrace>
            <reuseForks>true</reuseForks>
            <runOrder>random</runOrder>
            <includes>
              <include>**/IT*.class</include>
              <include>**/*IT.class</include>
              <include>**/*ITCase.class</include>
              <include>**/*IntegrationTest.class</include>
            </includes>
            <systemPropertyVariables>
              <dbms.pagecache.memory.default.override>8m</dbms.pagecache.memory.default.override>
              <port.authority.directory>${user.dir}/target/port-authority-${maven.build.timestamp}</port.authority.directory>
              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            </systemPropertyVariables>
            <jvm>${test.runner.jvm}</jvm>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.junit.platform</groupId>
              <artifactId>junit-platform-launcher</artifactId>
              <version>${junit.platform.version}</version>
            </dependency>
            <dependency>
              <groupId>org.junit.jupiter</groupId>
              <artifactId>junit-jupiter-engine</artifactId>
              <version>${junit.version}</version>
            </dependency>
            <dependency>
              <groupId>org.junit.vintage</groupId>
              <artifactId>junit-vintage-engine</artifactId>
              <version>${junit.version}</version>
            </dependency>
          </dependencies>
          <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>

        <!-- Jar file packaging settings -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.1.2</version>
          <executions>
            <!-- Augment default jar with url -->
            <execution>
              <id>default-jar</id>
              <configuration>
                <archive>
                  <manifest>
                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                  </manifest>
                  <manifestEntries>
                    <Url>${project.organization.url}</Url>
                    <!--suppress UnresolvedMavenProperty -->
                    <Automatic-Module-Name>${moduleName}</Automatic-Module-Name>
                  </manifestEntries>
                </archive>
              </configuration>
            </execution>
            <!-- Create test jar -->
            <execution>
              <id>create-test-jar</id>
              <goals>
                <goal>test-jar</goal>
              </goals>
            </execution>
            <!-- Create javadoc jar, will be empty if javadoc generation is skipped -->
            <execution>
              <id>create-javadoc-jar</id>
              <phase>package</phase>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <classifier>javadoc</classifier>
                <classesDirectory>${project.build.directory}/apidocs/</classesDirectory>
                <includes>
                  <include>**/**</include>
                </includes>
                <excludes>
                  <exclude>javadoc.sh</exclude>
                  <exclude>javadoc.bat</exclude>
                  <exclude>options</exclude>
                  <exclude>packages</exclude>
                  <exclude>argfile</exclude>
                  <exclude>files</exclude>
                </excludes>
              </configuration>
            </execution>
          </executions>
        </plugin>

        <!-- Licensing settings -->
        <plugin>
          <groupId>org.neo4j.build.plugins</groupId>
          <artifactId>licensing-maven-plugin</artifactId>
          <version>1.7.8</version>
          <configuration>
            <failIfDisliked>true</failIfDisliked>
            <failIfMissing>true</failIfMissing>
            <plainTextReport>true</plainTextReport>
            <prependText>${licensing.prepend.text}</prependText>
            <excludedGroups>
              ^((org.neo4j){1}|(org.neo4j.community){1}|(org.neo4j.app){1}|(org.neo4j.server.plugin){1}|(org.neo4j.assembly){1}|(org.neo4j.bolt){1}|(org.neo4j.build){1}|(org.neo4j.test){1})$
            </excludedGroups>
            <excludedArtifacts>^((neo4j-browser))$</excludedArtifacts>
            <includedScopes>compile</includedScopes>
          </configuration>
          <executions>
            <execution>
              <id>list-all-licenses</id>
              <phase>compile</phase>
              <goals>
                <goal>check</goal>
              </goals>
              <configuration>
                <licensingRequirementFiles>
                  <licensingRequirementFile>licensing/licensing-requirements-base.xml</licensingRequirementFile>
                </licensingRequirementFiles>
                <thirdPartyLicensingFilename>${project.artifactId}-${project.version}-NOTICE.txt
                </thirdPartyLicensingFilename>
                <checkExistingNoticeFile>${project.build.directory}/../NOTICE.txt</checkExistingNoticeFile>
                <listPrependText>licensing/list-prefix.txt</listPrependText>
                <listReport>${project.artifactId}-${project.version}-LICENSES.txt</listReport>
                <checkExistingLicensesFile>${project.build.directory}/../LICENSES.txt</checkExistingLicensesFile>
              </configuration>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.neo4j.build</groupId>
              <artifactId>build-resources</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>3.0</version>
          <executions>
            <execution>
              <id>check-licenses</id>
              <!-- fail as early as possible -->
              <phase>initialize</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <strictCheck>true</strictCheck>
            <header>${license-text.header}</header>
            <includes>
              <include>src/**/*.java</include>
              <include>src/**/*.js</include>
              <include>src/**/*.scala</include>
              <include>src/**/*.xml</include>
              <include>src/**/*.feature</include>
              <include>src/**/*.g4</include>
            </includes>
            <excludes>
              <exclude>**/cypher-shell/*</exclude>
            </excludes>
            <mapping>
              <java>SLASHSTAR_STYLE</java>
              <scala>SLASHSTAR_STYLE</scala>
              <feature>SCRIPT_STYLE</feature>
              <g4>SLASHSTAR_STYLE</g4>
            </mapping>
            <properties>
              <currentYear>${currentYear}</currentYear>
            </properties>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.neo4j.build</groupId>
              <artifactId>build-resources</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <!-- Default scala compile settings -->
        <plugin>
          <groupId>net.alchim31.maven</groupId>
          <artifactId>scala-maven-plugin</artifactId>
          <version>${scala-maven-plugin.version}</version>

          <configuration>
            <scalaVersion>${scala.version}</scalaVersion>
            <scalaCompatVersion>${scala.binary.version}</scalaCompatVersion>
            <args>
              <arg>-Xmax-classfile-name</arg>
              <arg>100</arg>
              <arg>-Xlint</arg>
              <arg>-target:jvm-${scala.target.vm}</arg>
              <arg>-nobootcp</arg>
            </args>
            <jvmArgs>
              <jvmArg>-Xms256m</jvmArg>
              <jvmArg>-Xmx1024m</jvmArg>
            </jvmArgs>
          </configuration>

          <!-- This is needed to mix scala and java code in the same module -->
          <executions>
            <execution>
              <id>scala-compile</id>
              <phase>process-resources</phase>
              <goals>
                <goal>add-source</goal>
                <goal>compile</goal>
              </goals>
            </execution>
            <execution>
              <id>scala-test-compile</id>
              <phase>process-test-resources</phase>
              <goals>
                <goal>testCompile</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <!-- Enforce naming if packages -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.0.0-M2</version>
          <configuration>
            <rules>
              <dependencyConvergence/>
              <evaluateBeanshell>
                <message>Maven module has to be in a "groupId" beginning with "org.neo4j"</message>
                <condition>{String s = "${project.groupId}"; s.startsWith("org.neo4j");}</condition>
              </evaluateBeanshell>
              <requireFilesDontExist>
                <message>You are not allowed to have classes in "com" package</message>
                <files>
                  <file>${project.build.sourceDirectory}/com</file>
                  <file>${project.build.testSourceDirectory}/com</file>
                </files>
              </requireFilesDontExist>
              <requireFilesDontExist>
                <files>
                  <file>enterprise</file>
                </files>
              </requireFilesDontExist>
              <requireMavenVersion>
                <version>${required.maven.version}</version>
              </requireMavenVersion>
            </rules>
            <fail>true</fail>
          </configuration>
        </plugin>

        <!-- Plugin version management -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <showDeprecation>true</showDeprecation>
            <showWarnings>true</showWarnings>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.1.1</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.shared</groupId>
              <artifactId>maven-dependency-analyzer</artifactId>
              <version>1.11.1</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.1.1</version>
          <configuration>
            <tarLongFileMode>gnu</tarLongFileMode>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.6.0</version>
        </plugin>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>3.3.1</version>
          <dependencies>
            <!-- https://mvnrepository.com/artifact/org.owasp/dependency-check-maven -->
            <dependency>
              <groupId>org.owasp</groupId>
              <artifactId>dependency-check-maven</artifactId>
              <version>3.3.1</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <goals>
                <goal>aggregate</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

      </plugins>
    </pluginManagement>

    <!-- Default plugins -->
    <plugins>

      <!-- Execute integration tests by default -->
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
      </plugin>

      <!-- Checkstyle is always validated -->
      <plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <configLocation>checkstyle/checkstyle.xml</configLocation>
          <consoleOutput>true</consoleOutput>
          <logViolationsToConsole>true</logViolationsToConsole>
          <failsOnError>true</failsOnError>
          <failOnViolation>true</failOnViolation>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>8.26</version>
          </dependency>
          <dependency>
            <groupId>org.neo4j.build</groupId>
            <artifactId>build-resources</artifactId>
            <version>${project.version}</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>validate</id>
            <phase>validate</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- Creates source jar if source exits -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- Always enforce -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>enforce</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <profiles>
    <profile>
      <id>errorprone</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <compilerArgs>
                <arg>-XDcompilePolicy=simple</arg>
                <arg>-Xplugin:ErrorProne
                  -Xep:ReturnValueIgnored:WARN
                  -Xep:InvalidZoneId:WARN
                </arg>
              </compilerArgs>
              <annotationProcessorPaths>
                <path>
                  <groupId>com.google.errorprone</groupId>
                  <artifactId>error_prone_core</artifactId>
                  <version>2.3.3</version>
                </path>
              </annotationProcessorPaths>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Only generate NOTICE and LICENSES files for projects with src/ directory -->
    <profile>
      <id>has-sources</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <file>
          <exists>src</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.neo4j.build.plugins</groupId>
            <artifactId>licensing-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>com.mycila</groupId>
            <artifactId>license-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Disable parallel execution with "-DsequentialTests" -->
    <profile>
      <id>parallelTestExecution</id>
      <activation>
        <property>
          <name>!sequentialTests</name>
        </property>
      </activation>
      <properties>
        <forkCounts>1C</forkCounts>
      </properties>
    </profile>

    <profile>
      <id>testCoverage</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>testCoverage</name>
        </property>
      </activation>
      <properties>
        <test.runner.jvm.settings.additional>@{argLine}</test.runner.jvm.settings.additional>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.3</version>
            <executions>
              <execution>
                <id>default-prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
              <execution>
                <id>default-prepare-agent-integration</id>
                <goals>
                  <goal>prepare-agent-integration</goal>
                </goals>
              </execution>
              <execution>
                <id>merge</id>
                <phase>verify</phase>
                <goals>
                  <goal>merge</goal>
                </goals>
                <configuration>
                  <destFile>${project.build.directory}/jacoco-aggregated.exec</destFile>
                  <fileSets>
                    <fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
                      <directory>${project.build.directory}</directory>
                      <includes>
                        <include>*.exec</include>
                      </includes>
                    </fileSet>
                  </fileSets>
                </configuration>
              </execution>
              <execution>
                <id>default-report</id>
                <phase>verify</phase>
                <goals>
                  <goal>report</goal>
                </goals>
                <configuration>
                  <dataFile>${project.build.directory}/jacoco-aggregated.exec</dataFile>
                </configuration>
              </execution>
              <execution>
                <id>report-aggregate</id>
                <phase>verify</phase>
                <goals>
                  <goal>report-aggregate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
     Git information extraction profiles.
     Activate by adding the required Git information to the environment, e.g. on *nix:

     export GIT_COMMIT
     GIT_COMMIT=$(git rev-parse HEAD)
    -->
    <profile>
      <id>attach-git-info-commit</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>env.GIT_COMMIT</name>
        </property>
      </activation>
      <properties>
        <git.commit>${env.GIT_COMMIT}</git.commit>
      </properties>
    </profile>

    <profile>
      <id>zinc</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>net.alchim31.maven</groupId>
              <artifactId>scala-maven-plugin</artifactId>
              <version>${scala-maven-plugin.version}</version>
              <configuration>
                <recompileMode>incremental</recompileMode>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>5.4.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-analyzers-common</artifactId>
        <version>${lucene.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>${lucene.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-codecs</artifactId>
        <version>${lucene.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>${lucene.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-queries</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-sandbox</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-core</artifactId>
        <version>1.4.2</version>
      </dependency>
      <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>${caffeine.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.checkerframework</groupId>
            <artifactId>checker-qual</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.errorprone</groupId>
            <artifactId>error_prone_annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.25</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
      </dependency>
      <dependency>
        <groupId>io.airlift</groupId>
        <artifactId>airline</artifactId>
        <version>0.8</version>
      </dependency>

      <!-- testing -->
      <dependency>
        <groupId>org.neo4j.driver</groupId>
        <artifactId>neo4j-java-driver</artifactId>
        <version>4.0.0</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.directory.server</groupId>
        <artifactId>apacheds-server-integ</artifactId>
        <version>2.0.0-M21</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava-testlib</artifactId>
        <version>${guava.version}</version>
        <scope>test</scope>
      </dependency>
	  <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.25</version>
        <scope>test</scope>
      </dependency>

      <!-- The JUnit-Hamcrest-Mockito combo -->
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-testkit</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>org.junit.platform</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.13.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest</artifactId>
        <version>2.1</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>co.unruly</groupId>
        <artifactId>java-8-matchers</artifactId>
        <version>1.6</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>3.0.0</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.13</version>
        <scope>test</scope>
      </dependency>

      <!-- scala -->
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>${scala.version}</version>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-reflect</artifactId>
        <version>${scala.version}</version>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scalap</artifactId>
        <version>${scala.version}</version>
      </dependency>

      <!-- scala test dependencies -->
      <dependency>
        <groupId>org.scalatest</groupId>
        <artifactId>scalatest_${scala.binary.version}</artifactId>
        <version>3.0.5</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <artifactId>scala-library</artifactId>
            <groupId>org.scala-lang</groupId>
          </exclusion>
          <exclusion>
            <artifactId>scala-reflect</artifactId>
            <groupId>org.scala-lang</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.scalautils</groupId>
        <artifactId>scalautils_${scala.binary.version}</artifactId>
        <version>2.1.7</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <artifactId>scala-library</artifactId>
            <groupId>org.scala-lang</groupId>
          </exclusion>
          <exclusion>
            <artifactId>scala-reflect</artifactId>
            <groupId>org.scala-lang</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.scalacheck</groupId>
        <artifactId>scalacheck_${scala.binary.version}</artifactId>
        <version>1.14.0</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.json4s</groupId>
        <artifactId>json4s-native_2.12</artifactId>
        <version>3.6.5</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.github.salat</groupId>
        <artifactId>salat-core_${scala.binary.version}</artifactId>
        <version>1.11.2</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
          </exclusion>
          <exclusion>
            <artifactId>scalap</artifactId>
            <groupId>org.scala-lang</groupId>
          </exclusion>
          <exclusion>
            <groupId>org.scala-lang.modules</groupId>
            <artifactId>scala-xml_${scala.binary.version}</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.lihaoyi</groupId>
        <artifactId>pprint_${scala.binary.version}</artifactId>
        <version>0.5.3</version>
        <scope>test</scope>
      </dependency>

      <!-- other -->
      <dependency>
        <groupId>org.eclipse.collections</groupId>
        <artifactId>eclipse-collections</artifactId>
        <version>10.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.jctools</groupId>
        <artifactId>jctools-core</artifactId>
        <version>2.1.2</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <scope>test</scope>
        <version>3.6.1</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.10</version>
        <type>jar</type>
        <scope>compile</scope>
        <exclusions>
          <exclusion>
            <groupId>commons-digester</groupId>
            <artifactId>commons-digester</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.4</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.9</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.19</version>
      </dependency>
      <dependency>
        <groupId>com.github.luben</groupId>
        <artifactId>zstd-jni</artifactId>
        <version>1.4.3-1</version>
      </dependency>

      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>4.1.43.Final</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-tcnative-boringssl-static</artifactId>
        <version>2.0.27.Final</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.glassfish.hk2</groupId>
            <artifactId>osgi-resource-locator</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.glassfish.hk2.external</groupId>
            <artifactId>javax.inject</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>${jersey.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.glassfish.hk2.external</groupId>
            <artifactId>javax.inject</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
        <version>${jersey.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.glassfish.hk2.external</groupId>
            <artifactId>aopalliance-repackaged</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.glassfish.hk2.external</groupId>
            <artifactId>javax.inject</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.1.1</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-webapp</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.websocket</groupId>
        <artifactId>websocket-client</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>${bouncycastle.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcpkix-jdk15on</artifactId>
        <version>${bouncycastle.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>${metrics.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-jmx</artifactId>
        <version>${metrics.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-graphite</artifactId>
        <version>${metrics.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jprocesses</groupId>
        <artifactId>jProcesses</artifactId>
        <version>1.6.5</version>
      </dependency>

      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>annotations</artifactId>
        <version>${findbugs.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>provided</scope>
        <exclusions>
          <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.google.testing.compile</groupId>
        <artifactId>compile-testing</artifactId>
        <version>0.18</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>com.google.truth</groupId>
            <artifactId>truth</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.truth.extensions</groupId>
            <artifactId>truth-java8-extension</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.auto</groupId>
            <artifactId>auto-common</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.google.auto.service</groupId>
        <artifactId>auto-service</artifactId>
        <version>1.0-rc6</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.auto</groupId>
            <artifactId>auto-common</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.google.auto</groupId>
        <artifactId>auto-common</artifactId>
        <version>0.10</version>
      </dependency>
      <dependency>
        <groupId>com.google.truth</groupId>
        <artifactId>truth</artifactId>
        <version>1.0</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.checkerframework</groupId>
            <artifactId>checker-qual</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.errorprone</groupId>
            <artifactId>error_prone_annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.2</version>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
      </dependency>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
      </dependency>
      <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>annotations</artifactId>
        <version>${project.version}</version>
      </dependency>
      <!-- used by benchmark-infra module -->
      <dependency>
      	<groupId>com.amazonaws</groupId>
      	<artifactId>aws-java-sdk-batch</artifactId>
      	<version>${amazon-sdk.version}</version>
      </dependency>
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-cloudformation</artifactId>
        <version>${amazon-sdk.version}</version>
      </dependency>
      <dependency>
      	<groupId>com.amazonaws</groupId>
      	<artifactId>aws-java-sdk-s3</artifactId>
      	<version>${amazon-sdk.version}</version>
      </dependency>
      <dependency>
      	<groupId>com.amazonaws</groupId>
      	<artifactId>aws-java-sdk-secretsmanager</artifactId>
      	<version>${amazon-sdk.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>
