evomaster
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster</artifactId>
<version>5.0.2</version>
</dependency><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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.evomaster</groupId>
<artifactId>evomaster</artifactId>
<!--
To change version in all modules, use:
mvn versions:set -DnewVersion=a.b.c
-->
<version>5.0.2</version>
<inceptionYear>2016</inceptionYear>
<name>EvoMaster</name>
<description>A tool for automatically generating system-level test cases</description>
<url>www.evomaster.org</url>
<packaging>pom</packaging>
<!-- <modules>-->
<!-- <module>core-parent</module>-->
<!-- <module>core</module>-->
<!-- <module>core-extra</module>-->
<!-- <module>core-tests</module>-->
<!-- <module>client-java</module>-->
<!-- <module>test-utils</module>-->
<!-- </modules>-->
<issueManagement>
<system>Github</system>
<url>https://github.com/WebFuzzing/evomaster/issues</url>
</issueManagement>
<scm>
<connection>scm:git:https://github.com/WebFuzzing/evomaster.git</connection>
<developerConnection>scm:git:https://github.com/WebFuzzing/evomaster.git</developerConnection>
<url>https://github.com/WebFuzzing/evomaster/tree/master</url>
</scm>
<profiles>
<profile>
<id>default-build</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>core-parent</module>
<module>core</module>
<module>core-extra</module>
<module>core-tests</module>
<module>client-java</module>
<module>test-utils</module>
</modules>
</profile>
<profile>
<!--
This profile is needed when making a deployment to Maven Central.
Note: we upload only the client library, not the whole EvoMaster.
However, we also need this root pom.xml. So,
On the root:
mvn -N -Pdeployment -DskipTests deploy
On "client-java":
mvn clean -Pdeployment -DskipTests deploy
-->
<id>deployment</id>
<modules>
<module>client-java</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<developers>
<developer>
<id>arcuri82</id>
<name>Andrea Arcuri</name>
<email>arcuri82@gmail.com</email>
<url>http://www.arcuriandrea.org</url>
<timezone>2</timezone>
<roles>
<role>Architect/Developer</role>
</roles>
</developer>
</developers>
<licenses>
<license>
<name>GNU Lesser General Public License (LGPL), version 3</name>
<url>http://www.gnu.org/licenses/lgpl-3.0.en.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<properties>
<addOpens> --add-opens java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.https=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.logging/java.util.logging=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.regex=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED</addOpens>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Current version of Kotlin Maven Plugin does not support 25 yet -->
<!-- SpringBoot 2.x does not like JDK 21 -->
<java.version>17</java.version>
<kotlin.version>2.2.20</kotlin.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<wfc.version>0.2.0</wfc.version>
<junit.jupiter.version>5.14.2</junit.jupiter.version>
<junit.platform.version>1.14.2</junit.platform.version>
<springboot3.version>3.1.5</springboot3.version>
<springfox.version>3.0.0</springfox.version>
<jetty.version>9.4.29.v20200521</jetty.version>
<slf4j.version>1.7.24</slf4j.version>
<jersey.version>2.33</jersey.version>
<javax.el.version>2.2.5</javax.el.version>
<!--
Using latest, eg 2.16.0, breaks build, as Maven Shade Plugin
still does not support multi-release JARs
https://github.com/apache/maven-shade-plugin/pull/202
recent versions of Jackson are multi-release.
More info at:
https://www.logicbig.com/tutorials/core-java-tutorial/java-9-changes/multi-release-jars.html
-->
<jackson.version>2.14.3</jackson.version>
<asm.version>9.9</asm.version>
<testcontainers.version>1.21.0</testcontainers.version>
<testcontainers.mockerserver.version>1.17.2</testcontainers.mockerserver.version>
<mockserver.client.version>5.13.2</mockserver.client.version>
<!-- <selenium.version>4.31.0</selenium.version>-->
<!-- TODO 4.11 latest version supporting JDK 8. now on 11. update once update EM-->
<selenium.version>4.11.0</selenium.version>
<jetbrains.annotations.version>20.1.0</jetbrains.annotations.version>
<antlr.version>4.9.2</antlr.version>
<nlp.version>4.3.1</nlp.version>
<dk.brics.automaton.version>1.11-8</dk.brics.automaton.version>
<jgrapht.version>0.8.3</jgrapht.version>
<version.graphql-spring>11.1.0</version.graphql-spring>
<mysql.connector.java.version>8.0.27</mysql.connector.java.version>
<mariadb.java.client.version>2.7.2</mariadb.java.client.version>
<mssql.jdbc.version>9.2.1.jre8</mssql.jdbc.version>
<org.mybatis.spring.boot.version>2.2.0</org.mybatis.spring.boot.version>
<thrift.libthrift.version>0.15.0</thrift.libthrift.version>
<io.grpc.version>1.57.2</io.grpc.version>
<org.xolsticeprotobuf.version>0.6.1</org.xolsticeprotobuf.version>
<com.google.protobuf.protoc.version>3.17.3</com.google.protobuf.protoc.version>
<kr.motd.maven.version>1.6.2</kr.motd.maven.version>
<wiremock.version>2.32.0</wiremock.version>
<apache.http.client.version>4.5.13</apache.http.client.version>
<okhttp3.client.version>4.9.3</okhttp3.client.version>
<okhttp.client.version>2.4.0</okhttp.client.version>
<dns.cache.manipulator.version>1.8.2</dns.cache.manipulator.version>
<jakarta.annotation.version>2.0.0</jakarta.annotation.version>
<jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
<jakarta.persistence-api.version>3.1.0</jakarta.persistence-api.version>
<jakarta.ws.rs-api.version>3.1.0</jakarta.ws.rs-api.version>
<org.mongodb.version>4.2.3</org.mongodb.version>
<org.locationtech.jts.version>1.19.0</org.locationtech.jts.version>
<org.opensearch.version>3.1.0</org.opensearch.version>
<org.opensearch.testcontainers.version>1.0.0</org.opensearch.testcontainers.version>
<org.springframework.data.version>2.6.6</org.springframework.data.version>
<io.lettuce.core.version>6.1.4.RELEASE</io.lettuce.core.version>
</properties>
<dependencyManagement>
<!--
Use
mvn versions:display-dependency-updates -DprocessDependencyManagement=false
for plugins, use:
mvn versions:display-plugin-updates
-->
<dependencies>
<!-- Internal Modules -->
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-core</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Note: adding here also the one for <type>test-jar</type> gives a lot of problems -->
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-dbconstraint</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-controller</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-controller-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-instrumentation</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-instrumentation</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-instrumentation-shared</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-sql</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-sql-dto</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-distance-heuristics</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>solver</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-test-utils-java</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-test-utils-js</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-test-utils-py</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-client-java-dependencies</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.webfuzzing</groupId>
<artifactId>commons</artifactId>
<version>${wfc.version}</version>
</dependency>
<!-- Kotlin -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-compiler-embeddable</artifactId>
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
<!-- Javax -->
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>${javax.el.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>${javax.el.version}</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<!-- JVM -->
<dependency> <!-- For bytecode instrumentation -->
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency> <!-- For bytecode instrumentation -->
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency> <!-- To attach instrumenting JavaAgent at runtime -->
<groupId>com.ea.agentloader</groupId>
<artifactId>ea-agent-loader</artifactId>
<version>1.0.3</version>
</dependency>
<!-- Misc -->
<dependency>
<!--
it brought in transitively by few
different libraries, we force a specific version here to avoid conflicts (which for
example happened when updating Guice)
-->
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
<dependency>
<!--
So dependencies bring this one here transitively... but old version of this one before
3.11 do not play well with JDK 17+. So we force this version here
-->
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<dependency> <!-- Used to handle terminal/console inputs -->
<groupId>net.sf.jopt-simple</groupId>
<artifactId>jopt-simple</artifactId>
<version>6.0-alpha-3</version>
</dependency>
<dependency> <!-- Used for parsers -->
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>${antlr.version}</version>
</dependency>
<dependency><!-- Used for Java Regex distances -->
<!-- BSD -->
<groupId>dk.brics.automaton</groupId>
<artifactId>automaton</artifactId>
<version>${dk.brics.automaton.version}</version>
</dependency>
<dependency><!-- Used for Java Regex distances -->
<!-- LGPL -->
<groupId>net.sf.jgrapht</groupId>
<artifactId>jgrapht</artifactId>
<version>${jgrapht.version}</version>
</dependency>
<dependency>
<!-- Needed to avoid issues with Docker on Mac -->
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.17.0</version>
</dependency>
<!-- <dependency> <!– Needed for Process handling in Windows for JDK 8–>-->
<!-- <groupId>net.java.dev.jna</groupId>-->
<!-- <artifactId>jna-platform</artifactId>-->
<!-- <version>5.11.0</version>-->
<!-- </dependency>-->
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>auth0</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<!--
As of version of 2.0.0, they moved to JDK 11
https://opennlp.apache.org/news/release-200.html
-->
<version>1.9.4</version>
</dependency>
<!-- Jetty -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
<!-- Jersey -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>${jersey.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-toml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-base</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.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- databases -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.212</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.9</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.3.1</version>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>7.14.1</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>${mariadb.java.client.version}</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>${mssql.jdbc.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.java.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${org.mybatis.spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>${org.mongodb.version}</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>${org.mongodb.version}</version>
</dependency>
<!-- Redis/Lettuce -->
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
<version>${io.lettuce.core.version}</version>
</dependency>
<!-- OpenSearch -->
<dependency>
<groupId>org.opensearch.client</groupId>
<artifactId>opensearch-java</artifactId>
<version>${org.opensearch.version}</version>
</dependency>
<dependency>
<groupId>org.opensearch</groupId>
<artifactId>opensearch-testcontainers</artifactId>
<version>${org.opensearch.testcontainers.version}</version>
<scope>test</scope>
</dependency>
<!-- XML -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.1</version>
</dependency>
<!-- HTML -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
<!-- GraphQL -->
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>${version.graphql-spring}</version>
</dependency>
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>${version.graphql-spring}</version>
</dependency>
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>voyager-spring-boot-starter</artifactId>
<version>${version.graphql-spring}</version>
</dependency>
<!-- test dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>${junit.platform.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>4.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Mocking for Java. To use with great care (ie, only sporadically) -->
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Mocking for Kotlin. To use with great care (ie, only sporadically) -->
<groupId>io.mockk</groupId>
<artifactId>mockk</artifactId>
<version>1.12.3</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- To use Docker from tests -->
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>selenium</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>${selenium.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>${selenium.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>${selenium.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Used in SqlHandlerInDBTest class -->
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>${jetbrains.annotations.version}</version>
<scope>test</scope>
</dependency>
<!-- RPC-->
<!-- Thrift-->
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>${thrift.libthrift.version}</version>
</dependency>
<!-- gRPC-->
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<!-- Wiremock -->
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8-standalone</artifactId>
<version>${wiremock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${apache.http.client.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp3.client.version}</version>
</dependency>
<!-- the version used in catwatch -->
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp.client.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp-urlconnection</artifactId>
<version>${okhttp.client.version}</version>
</dependency>
<!-- https://jmaven.com/maven/com.alibaba/dns-cache-manipulator -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dns-cache-manipulator</artifactId>
<version>${dns.cache.manipulator.version}</version>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mockserver</artifactId>
<version>${testcontainers.mockerserver.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-client-java-no-dependencies</artifactId>
<version>${mockserver.client.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- To deal with RFC3339 dateTime -->
<groupId>com.ethlo.time</groupId>
<artifactId>itu</artifactId>
<version>1.10.2</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.59</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<!--
We shouldn't use Lombok in EM, but some E2E from external contributors do
-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<!--
Due to possible issues with CI not having latest version, good
to stay bit behind (but not too much)
-->
<version>3.6.3</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- To run unit tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.4</version>
<configuration>
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<forkCount>1</forkCount>
<redirectTestOutputToFile>${redirectTestOutputToFile}</redirectTestOutputToFile>
<rerunFailingTestsCount>2</rerunFailingTestsCount>
<trimStackTrace>false</trimStackTrace>
<!--
@{argLine} is needed for JaCoCo
-Djdk.attach.allowAttachSelf=true is needed for Java 9+
TODO might not needed when using workaround like in ByteBuddy
of creating an external process to do the Agent attachment
https://github.com/raphw/byte-buddy/issues/295
Fucking JDK 17!!! And fuck you JEP 403!!!
https://bugs.openjdk.java.net/browse/JDK-8266851
-->
<argLine>@{argLine} -ea -Xms1024m -Xmx4096m -Xss4m -Dfile.encoding=UTF-8 -Djdk.attach.allowAttachSelf=true -Duser.language=en -Duser.country=GB ${addOpens}</argLine>
<runOrder>alphabetical</runOrder>
<excludes>
<!-- Do NOT run integration tests with surefire... use failsafe!!!-->
<exclude>**/*IT.java</exclude>
<exclude>**/*IT.kt</exclude>
</excludes>
</configuration>
</plugin>
<!-- To run integration tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.4</version>
<configuration>
<forkCount>1</forkCount>
<redirectTestOutputToFile>${redirectTestOutputToFile}</redirectTestOutputToFile>
<rerunFailingTestsCount>2</rerunFailingTestsCount>
<trimStackTrace>false</trimStackTrace>
<argLine>@{argLine} -ea -Xms1024m -Xmx4096m -Djdk.attach.allowAttachSelf=true -Duser.language=en -Duser.country=GB ${addOpens}</argLine>
<runOrder>alphabetical</runOrder>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- To compile Kotlin code -->
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<configuration>
<jvmTarget>${java.version}</jvmTarget>
<args>
<!-- This seems wrong, as args to compiler but not the JVM itself -->
<!-- <arg>--add-opens=java.base/java.io=ALL-UNNAMED</arg>-->
<!-- <arg>--add-opens=java.base/java.lang=ALL-UNNAMED</arg>-->
</args>
</configuration>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/main/java</sourceDir>
<sourceDir>${project.basedir}/target/generated-sources/antlr4</sourceDir>
</sourceDirs>
</configuration>
</execution>
<execution>
<id>test-compile</id>
<goals>
<goal>test-compile</goal>
</goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/test/java</sourceDir>
</sourceDirs>
</configuration>
</execution>
</executions>
</plugin>
<!-- To compile Java code -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.1</version>
<configuration>
<release>${java.version}</release>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
<executions>
<!-- Replacing default-compile as it is treated specially by maven -->
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
<!-- Replacing default-testCompile as it is treated specially by maven -->
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
<execution>
<id>java-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>java-test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- To create Jar files for tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- To create self-executable uber/fat jars -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<!-- To create self-executable uber/fat jars with shaded packages-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
</plugin>
<!-- To sign Jar files before uploading them to Maven Central -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>deploy</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- To deploy to Maven Central
https://central.sonatype.com/account
https://central.sonatype.org/publish/publish-portal-maven/
-->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
</configuration>
</plugin>
<!-- Needed to be able to run on CircleCI -->
<plugin>
<groupId>de.qaware.maven</groupId>
<artifactId>go-offline-maven-plugin</artifactId>
<version>1.1.0</version>
</plugin>
<!--
Used to calculate code-coverage of the tests.
Note: Kotlin still has problems, as its compiler not marking
yet the automatically generated/added functions
-->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
<configuration>
<excludes>
<!-- Prevent SUTs in E2E to be part of coverage report -->
<exclude>com/foo/**/*</exclude>
<exclude>com/thrift/example/**/*</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<!--
To publish JaCoCo results to Coveralls.
Should be run only on Travis, by adding "coveralls:report"
WARN: unfortunately, does not seem to work well with Kotlin :(
So, rather use CodeCov, which is setup directly Travis
-->
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>4.3.0</version>
<configuration>
<sourceDirectories>
<param>src/main/java</param>
<param>src/main/kotlin</param>
</sourceDirectories>
</configuration>
</plugin>
<!-- Used for parsers. Eg, to analyze regex -->
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>${antlr.version}</version>
<configuration>
<listener>false</listener>
<visitor>true</visitor>
</configuration>
<executions>
<execution>
<goals>
<goal>antlr4</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Need to create self-executable uber/fat jars for Spring-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>${org.xolsticeprotobuf.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<!-- Executed JaCoCo in all the modules. Default binding is on "verify" -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>