ogham-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-parent</artifactId>
<version>3.0.0</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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-parent</artifactId>
<version>3.0.0</version>
<packaging>pom</packaging>
<name>ogham</name>
<description>
The message is important, not how you send it
</description>
<url>${project.url}</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Java version -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- Dependencies -->
<ogham.version>${project.version}</ogham.version>
<commons-io.version>2.8.0</commons-io.version>
<commons-beanutils.version>1.9.4</commons-beanutils.version>
<thymeleaf-v2.version>2.1.6.RELEASE</thymeleaf-v2.version>
<thymeleaf-v3.version>3.0.11.RELEASE</thymeleaf-v3.version> <!-- TODO: Thymeleaf 3.0.12 introduced a restriction to call static methods.
There is no simple way to enable/disable it (hard coded). -->
<thymeleaf.version>${thymeleaf-v3.version}</thymeleaf.version>
<ognl.version>3.1.28</ognl.version> <!-- TODO: ognl 3.2.x not supported by Thymeleaf (https://github.com/thymeleaf/thymeleaf/issues/727) -->
<freemarker.version>2.3.30</freemarker.version>
<javamail.version>1.6.2</javamail.version>
<jakarta-mail.version>1.6.5</jakarta-mail.version> <!-- TODO: jakarta.mail 2.0.0 changes the base package from javax.mail to
jakarta.mail. Just updating the packages will not work with Spring Boot integration.
Need to provide another module with auto-adaptation (like thymeleaf or sendgrid) -->
<slf4j.version>1.7.30</slf4j.version>
<logback.version>1.2.3</logback.version>
<commons-lang.version>3.11</commons-lang.version>
<cloudhopper.version>5.0.9</cloudhopper.version>
<cloudhopper-fizzed.version>5.0.9</cloudhopper-fizzed.version>
<cloudhopper-gsm.version>3.0.0</cloudhopper-gsm.version>
<cloudhopper-commons-util.version>6.0.2</cloudhopper-commons-util.version>
<cloudhopper-commons-charset.version>3.0.2</cloudhopper-commons-charset.version>
<jsoup.version>1.13.1</jsoup.version>
<commons-codec.version>1.15</commons-codec.version>
<sendgrid-java-v4.version>4.7.1</sendgrid-java-v4.version>
<sendgrid-java-v2.version>2.2.2</sendgrid-java-v2.version>
<sendgrid-java.version>${sendgrid-java-v4.version}</sendgrid-java.version>
<commons-logging.version>1.2</commons-logging.version>
<libphonenumber.version>8.3.2</libphonenumber.version>
<tika.version>1.24.1</tika.version>
<javax-activation.version>1.2.0</javax-activation.version>
<jakarta-activation.version>1.2.2</jakarta-activation.version> <!-- TODO: as for jakarta.mail, jakarta.activation 2.0.0 changes the base
package. -->
<jackson.version>2.12.0</jackson.version>
<reflections.version>0.9.11</reflections.version> <!-- TODO: 0.9.12 has issues with Spring Fat JARs (https://github.com/ronmamo/reflections/issues/273,
https://github.com/ronmamo/reflections/issues/277) -->
<guava.version>30.1-jre</guava.version>
<httpcore.version>4.4.14</httpcore.version>
<httpclient.version>4.5.13</httpclient.version>
<httpmime.version>4.5.13</httpmime.version>
<spring-boot-v1.version>1.5.22.RELEASE</spring-boot-v1.version>
<spring-boot-v2.version>2.4.1</spring-boot-v2.version>
<spring-boot.version>${spring-boot-v2.version}</spring-boot.version>
<joda-time.version>2.10.9</joda-time.version>
<!-- Dependencies - tests -->
<junit.version>4.13.1</junit.version>
<junit-jupiter.version>5.7.0</junit-jupiter.version>
<xmlunit.version>2.8.2</xmlunit.version>
<mockito-junit-jupiter.version>3.6.28</mockito-junit-jupiter.version>
<mockito.version>${mockito-junit-jupiter.version}</mockito.version>
<byte-buddy.version>1.10.19</byte-buddy.version>
<objenesis.version>3.1</objenesis.version>
<cloning.version>1.9.12</cloning.version>
<greenmail.version>1.6.1</greenmail.version>
<jsmpp.version>2.3.11</jsmpp.version>
<equalsverifier.version>3.5</equalsverifier.version>
<wiremock.version>2.27.2</wiremock.version>
<hamcrest.version>2.2</hamcrest.version>
<spock.version>1.3-groovy-2.5</spock.version>
<groovy.version>2.5.12</groovy.version> <!-- TODO: Spock is not compatible with 2.5.14... There are compilation failures -->
<groovy-eclipse-compiler.version>3.6.0-03</groovy-eclipse-compiler.version>
<groovy-eclipse-batch.version>2.5.8-03</groovy-eclipse-batch.version>
<awaitility.version>4.0.3</awaitility.version>
<!-- Dependencies - documentation -->
<asciidoctorj-diagram.version>2.0.2</asciidoctorj-diagram.version>
<asciidoctorj.version>2.3.0</asciidoctorj.version>
<asciidoctorj-monotree.version>0.0.1</asciidoctorj-monotree.version>
<asciidoctorj-revealjs.version>4.0.1</asciidoctorj-revealjs.version>
<bootstrap.version>4.3.1</bootstrap.version>
<bootswatch.version>4.2.1</bootswatch.version>
<!-- Fix dependency convergence -->
<asm.version>7.0</asm.version>
<javassist.version>3.26.0-GA</javassist.version>
<opentest4j.version>1.2.0</opentest4j.version>
<conscrypt-openjdk-uber.version>2.4.0</conscrypt-openjdk-uber.version>
<!-- Tests -->
<skip.integration.tests>false</skip.integration.tests>
<skip.unit.tests>false</skip.unit.tests>
<!-- Mutation testing -->
<pit.report.path>${project.basedir}/../target/site/pit-reports</pit.report.path>
<pit.mutation-engine>descartes</pit.mutation-engine>
<pit.history.dir>${java.io.tmpdir}</pit.history.dir>
<pit.history.file>${pit.history.dir}/${project.groupId}.${project.artifactId}.${project.version}_pitest_history.bin</pit.history.file>
<!-- Code coverage -->
<jacoco.it.execution.data.file>${project.basedir}/../target/coverage-reports/jacoco-it.exec</jacoco.it.execution.data.file>
<jacoco.ut.execution.data.file>${project.basedir}/../target/coverage-reports/jacoco-ut.exec</jacoco.ut.execution.data.file>
<jacoco.all.execution.data.file>${project.basedir}/../target/coverage-reports/jacoco-all.exec</jacoco.all.execution.data.file>
<jacoco.report.path>${project.basedir}/../target/site/jacoco-aggregate</jacoco.report.path>
<!-- Sonar properties -->
<sonar.junit.reportPaths>${project.build.directory}/surefire-reports,${project.build.directory}/failsafe-reports</sonar.junit.reportPaths>
<sonar.language>java</sonar.language>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.coverage.jacoco.xmlReportPaths>${jacoco.report.path}/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
<!-- URL -->
<github.url>https://github.com/groupe-sii/ogham</github.url>
<git.branch>master</git.branch>
<github.code.url>${github.url}/blob/${git.branch}</github.code.url>
<project.url>https://groupe-sii.github.io/ogham/</project.url>
<scm.url>git@github.com:groupe-sii/ogham.git</scm.url>
<site.url>https://groupe-sii.github.io/ogham</site.url>
<site.deploy.url>gitsite:git@github.com/groupe-sii/ogham.git</site.deploy.url>
<!-- Documentation -->
<docOghamVersion>${project.version}</docOghamVersion>
<dependency.locations.enabled>false</dependency.locations.enabled>
<site.staging.dir>${project.build.directory}/staging</site.staging.dir>
<site.output.version-dir>v${docOghamVersion}</site.output.version-dir>
<site.output.dir>${site.staging.dir}/${site.output.version-dir}</site.output.dir>
<site.showcase-video.output.dir>${site.output.dir}/presentation</site.showcase-video.output.dir>
<doc-theme>cerulean</doc-theme>
<asciidoctor.skip>${maven.site.skip}</asciidoctor.skip>
<asciidoctor.resources.skip>${asciidoctor.skip}</asciidoctor.resources.skip>
<readme.skip>true</readme.skip>
<site.resources.skip>${maven.site.skip}</site.resources.skip>
<sass.skip>${maven.site.skip}</sass.skip>
<site.showcase-video.skip>true</site.showcase-video.skip>
<asciidoctor.resources.output-directory>target/generated-docs</asciidoctor.resources.output-directory>
<!-- Plugins -->
<maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-source-plugin.version>3.1.0</maven-source-plugin.version>
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
<!-- Plugins - tests -->
<jacoco-maven-plugin.version>0.8.4</jacoco-maven-plugin.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<maven-failsafe-plugin.version>2.22.2</maven-failsafe-plugin.version>
<!-- Plugins - mutation testing -->
<pit.version>OGHAM</pit.version>
<pitest-maven.version>${pit.version}</pitest-maven.version>
<pitest-junit5-plugin.version>0.7</pitest-junit5-plugin.version>
<pitmp-maven-plugin.version>1.3.7</pitmp-maven-plugin.version>
<descartes.version>1.2.6</descartes.version> <!-- TODO: 1.3 not compatible with pitmp 1.3.7 -->
<!-- Plugins - documentation -->
<maven-site-plugin.version>3.9.0</maven-site-plugin.version>
<maven-project-info-reports-plugin.version>3.0.0</maven-project-info-reports-plugin.version>
<reflow-skin.version>2.3.0</reflow-skin.version>
<velocity.version>1.7</velocity.version>
<asciidoctor-plugin.version>2.0.0</asciidoctor-plugin.version>
<sass-maven-plugin.version>3.7.2</sass-maven-plugin.version>
<maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
<!-- Plugins - code quality -->
<sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
<!-- Plugins - release -->
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
<gmavenplus-plugin.version>1.7.0</gmavenplus-plugin.version>
<maven-scm-provider-gitexe.version>1.11.2</maven-scm-provider-gitexe.version>
<maven-scm-manager-plexus.version>1.11.2</maven-scm-manager-plexus.version>
<wagon-gitsite.version>0.5</wagon-gitsite.version>
<maven-replacer-plugin.version>1.5.2</maven-replacer-plugin.version>
<exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
<!-- Plugins - others -->
<maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
</properties>
<modules>
<module>ogham-core</module>
<module>ogham-template-thymeleaf-common</module>
<module>ogham-template-thymeleaf-v2</module>
<module>ogham-template-thymeleaf-v3</module>
<module>ogham-template-thymeleaf</module>
<module>ogham-template-freemarker</module>
<module>ogham-email-javamail</module>
<module>ogham-email-sendgrid-common</module>
<module>ogham-email-sendgrid-v2</module>
<module>ogham-email-sendgrid-v4</module>
<module>ogham-email-sendgrid-v430-compat</module>
<module>ogham-email-sendgrid</module>
<module>ogham-sms-cloudhopper</module>
<module>ogham-sms-ovh</module>
<module>ogham-sms-smsglobal</module>
<module>ogham-all</module>
<module>ogham-spring-boot-common-autoconfigure</module>
<module>ogham-spring-boot-v1-autoconfigure</module>
<module>ogham-spring-boot-v2-autoconfigure</module>
<module>ogham-spring-boot-autoconfigure</module>
<module>ogham-spring-boot-starter-all</module>
<module>ogham-spring-boot-starter-email</module>
<module>ogham-spring-boot-starter-sms</module>
<module>ogham-test-utils</module>
<module>ogham-test-utils-internal</module>
<module>ogham-test-classpath-runtime</module>
<module>ogham-test-classpath</module>
<module>reporting</module>
<module>build-tools</module>
</modules>
<dependencyManagement>
<dependencies>
<!-- Ogham -->
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-core</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-all</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-email-javamail</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-email-sendgrid</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-email-sendgrid-common</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-email-sendgrid-v2</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-email-sendgrid-v4</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-email-sendgrid-v430-compat</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-sms-cloudhopper</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-sms-ovh</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-sms-smsglobal</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-spring-boot-autoconfigure</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-spring-boot-common-autoconfigure</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-spring-boot-starter-all</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-spring-boot-starter-email</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-spring-boot-starter-sms</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-spring-boot-v1-autoconfigure</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-spring-boot-v2-autoconfigure</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-template-freemarker</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-template-thymeleaf</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-template-thymeleaf-common</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-template-thymeleaf-v2</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-template-thymeleaf-v3</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham.internal</groupId>
<artifactId>ogham-test-classpath</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham.internal</groupId>
<artifactId>ogham-test-classpath-runtime</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham</groupId>
<artifactId>ogham-test-utils</artifactId>
<version>${ogham.version}</version>
</dependency>
<dependency>
<groupId>fr.sii.ogham.internal</groupId>
<artifactId>ogham-test-utils-internal</artifactId>
<version>${ogham.version}</version>
</dependency>
<!-- Mail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>${javamail.version}</version>
<exclusions>
<exclusion>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>${javamail.version}</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>${jakarta-mail.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<version>${jakarta-mail.version}</version>
</dependency>
<dependency>
<groupId>com.sendgrid</groupId>
<artifactId>sendgrid-java</artifactId>
<version>${sendgrid-java.version}</version>
<exclusions>
<!-- http-client imports mockito-core with compile scope... -->
<exclusion>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- SMS -->
<dependency>
<groupId>com.fizzed</groupId>
<artifactId>ch-smpp</artifactId>
<version>${cloudhopper-fizzed.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.cloudhopper</groupId>
<artifactId>ch-smpp</artifactId>
<version>${cloudhopper.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.cloudhopper</groupId>
<artifactId>ch-commons-gsm</artifactId>
<version>${cloudhopper-gsm.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.cloudhopper</groupId>
<artifactId>ch-commons-util</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.cloudhopper</groupId>
<artifactId>ch-commons-util</artifactId>
<version>${cloudhopper-commons-util.version}</version>
</dependency>
<dependency>
<groupId>com.cloudhopper</groupId>
<artifactId>ch-commons-charset</artifactId>
<version>${cloudhopper-commons-charset.version}</version>
</dependency>
<dependency>
<groupId>org.jsmpp</groupId>
<artifactId>jsmpp</artifactId>
<version>${jsmpp.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Utility -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons-beanutils.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging.version}</version>
</dependency>
<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>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>${reflections.version}</version>
<exclusions>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${httpcore.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>${httpmime.version}</version>
</dependency>
<!-- Template parsers -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>${thymeleaf.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>${thymeleaf-v2.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>${ognl.version}</version>
<exclusions>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
<!-- MimeType detection -->
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>${tika.version}</version>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>${javax-activation.version}</version>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
<version>${jakarta-activation.version}</version>
</dependency>
<!-- CSS inliners -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>${jsoup.version}</version>
</dependency>
<!-- Logs -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Tests -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit-jupiter.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit-jupiter.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<exclusions>
<exclusion>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito-junit-jupiter.version}</version>
<exclusions>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>${byte-buddy.version}</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>${byte-buddy.version}</version>
</dependency>
<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>${objenesis.version}</version>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>${greenmail.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail-junit4</artifactId>
<version>${greenmail.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail-junit5</artifactId>
<version>${greenmail.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>${equalsverifier.version}</version>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>${xmlunit.version}</version>
</dependency>
<dependency>
<groupId>uk.com.robust-it</groupId>
<artifactId>cloning</artifactId>
<version>${cloning.version}</version>
<exclusions>
<exclusion>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8</artifactId>
<version>${wiremock.version}</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>org.conscrypt</groupId>
<artifactId>conscrypt-openjdk-uber</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>org.opentest4j</groupId>
<artifactId>opentest4j</artifactId>
</exclusion>
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
<exclusion>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>${spock.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-json</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-nio</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-macro</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-templates</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-test</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-sql</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Fix dependency convergence -->
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist.version}</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
<dependency>
<groupId>org.opentest4j</groupId>
<artifactId>opentest4j</artifactId>
<version>${opentest4j.version}</version>
</dependency>
<dependency>
<groupId>org.conscrypt</groupId>
<artifactId>conscrypt-openjdk-uber</artifactId>
<version>${conscrypt-openjdk-uber.version}</version>
</dependency>
<!-- Must be at the end to avoid overriding versions explicitly set -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<!-- IDE -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>${maven-eclipse-plugin.version}</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<!-- The gmavenplus plugin is used to compile Groovy code used by Spock
framework -->
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>${gmavenplus-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>addSources</goal>
<goal>compile</goal>
<goal>addTestSources</goal>
<goal>compileTests</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!-- Generate sources and javadoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Code coverage -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<execution>
<id>generate-xml-report</id>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>failsafeArgLine</propertyName>
</configuration>
</execution>
<execution>
<id>generate-xml-integration-report</id>
<goals>
<goal>report-integration</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Used for unit tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>${surefireArgLine}</argLine>
<reuseForks>false</reuseForks>
<useSystemClassLoader>false</useSystemClassLoader>
<skipTests>${skip.unit.tests}</skipTests>
<includes>
<include>**/ut/**/*.java</include>
<include>**/ut/**/*.groovy</include>
</includes>
</configuration>
</plugin>
<!-- Used for integration tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<argLine>${failsafeArgLine}</argLine>
<reuseForks>false</reuseForks>
<useSystemClassLoader>false</useSystemClassLoader>
<skipTests>${skip.integration.tests}</skipTests>
<includes>
<include>**/it/**/*.java</include>
<include>**/it/**/*.groovy</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<!-- Generate Asciidoctor documentation -->
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>${asciidoctor-plugin.version}</version>
<inherited>false</inherited>
<dependencies>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>${asciidoctorj.version}</version>
</dependency>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-diagram</artifactId>
<version>${asciidoctorj-diagram.version}</version>
</dependency>
<dependency>
<groupId>com.github.allati.asciidoctor.monotree</groupId>
<artifactId>asciidoctor-extension-monotree</artifactId>
<version>${asciidoctorj-monotree.version}</version>
</dependency>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-revealjs</artifactId>
<version>${asciidoctorj-revealjs.version}</version>
</dependency>
</dependencies>
<configuration>
<sourceDirectory>${basedir}/src/docs/asciidoc</sourceDirectory>
<preserveDirectories>true</preserveDirectories>
<imagesDir />
<embedAssets>false</embedAssets>
<templateDir>${basedir}/src/docs/resources/templates</templateDir>
<requires>
<require>asciidoctor-diagram</require>
</requires>
<attributes>
<toc>left</toc>
<icons>font</icons>
<linkcss>true</linkcss>
<sectanchors>true</sectanchors>
<docinfo2>true</docinfo2>
<experimental>true</experimental>
<tabsize>2</tabsize>
<imagesdir />
<ogham-version>${docOghamVersion}</ogham-version>
<docdir>${basedir}/src/docs/asciidoc</docdir>
<templatesdir>${basedir}/src/docs/resources/templates</templatesdir>
<sourcedir-url>${github.code.url}</sourcedir-url>
<sourcedir>${basedir}</sourcedir>
<resourcesdir>${basedir}/src/docs/resources</resourcesdir>
<site-url>${site.url}</site-url>
</attributes>
</configuration>
<executions>
<execution>
<id>generate-docs</id>
<phase>post-site</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<sourceDirectory>${basedir}/src/docs/asciidoc</sourceDirectory>
<backend>html</backend>
<doctype>book</doctype>
<sourceHighlighter>coderay</sourceHighlighter>
<attributes>
<source-highlighter>coderay</source-highlighter>
</attributes>
</configuration>
</execution>
<execution>
<id>generate-showcase</id>
<phase>post-site</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<sourceDocumentName>presentation/showcase-slides.adoc</sourceDocumentName>
<outputFile>showcase-slides.html</outputFile>
<backend>revealjs</backend>
<sourceHighlighter>highlight.js</sourceHighlighter>
<requires>
<require>asciidoctor-diagram</require>
<require>asciidoctor-revealjs</require>
</requires>
<attributes>
<revealjsdir>https://cdn.jsdelivr.net/npm/reveal.js@3.9.2</revealjsdir>
<source-highlighter>highlight.js</source-highlighter>
<mode>slides</mode>
</attributes>
</configuration>
</execution>
<execution>
<id>generate-showcase-video-mode</id>
<phase>post-site</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<sourceDocumentName>presentation/showcase-slides.adoc</sourceDocumentName>
<outputFile>showcase-video-recording.html</outputFile>
<backend>revealjs</backend>
<sourceHighlighter>highlight.js</sourceHighlighter>
<requires>
<require>asciidoctor-diagram</require>
<require>asciidoctor-revealjs</require>
</requires>
<attributes>
<revealjsdir>https://cdn.jsdelivr.net/npm/reveal.js@3.9.2</revealjsdir>
<source-highlighter>highlight.js</source-highlighter>
<mode>video</mode>
</attributes>
</configuration>
</execution>
</executions>
</plugin>
<!-- Copy doc resources (images, styles, js) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<inherited>false</inherited>
<executions>
<execution>
<id>copy-asciidoc-resources</id>
<phase>post-site</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<skip>${asciidoctor.resources.skip}</skip>
<resources>
<resource>
<directory>src/docs/resources</directory>
</resource>
</resources>
<outputDirectory>${asciidoctor.resources.output-directory}</outputDirectory>
</configuration>
</execution>
<execution>
<id>copy-asciidoc-resources-for-site</id>
<phase>post-site</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<skip>${site.resources.skip}</skip>
<resources>
<resource>
<directory>target/generated-docs</directory>
</resource>
</resources>
<outputDirectory>target/site</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- Site generation -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
<dependencies>
<dependency>
<groupId>io.github.devacfr.maven.skins</groupId>
<artifactId>reflow-velocity-tools</artifactId>
<version>${reflow-skin.version}</version>
</dependency>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>${asciidoctor-plugin.version}</version>
</dependency>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-diagram</artifactId>
<version>${asciidoctorj-diagram.version}</version>
</dependency>
</dependencies>
<configuration>
<generateReports>true</generateReports>
<inputEncoding>UTF-8</inputEncoding>
<outputEncoding>UTF-8</outputEncoding>
<stagingDirectory>${site.output.dir}</stagingDirectory>
<asciidoc>
<baseDir>${basedir}/src/docs/asciidoc</baseDir>
<preserveDirectories>true</preserveDirectories>
<imagesDir />
<sourceHighlighter>coderay</sourceHighlighter>
<embedAssets>false</embedAssets>
<requires>
<require>asciidoctor-diagram</require>
</requires>
<attributes>
<source-highlighter>coderay</source-highlighter>
<nofooter>true</nofooter>
<toc>left</toc>
<icons>font</icons>
<linkcss>true</linkcss>
<sectanchors>true</sectanchors>
<docinfo2>true</docinfo2>
<experimental>true</experimental>
<tabsize>2</tabsize>
<imagesdir />
<ogham-version>${docOghamVersion}</ogham-version>
<docdir>${basedir}/src/docs/asciidoc</docdir>
<templatesdir>${basedir}/src/docs/resources/templates</templatesdir>
<sourcedir-url>${github.code.url}</sourcedir-url>
<sourcedir>${basedir}</sourcedir>
<resourcesdir>${basedir}/src/docs/resources</resourcesdir>
<site-url>${site.url}</site-url>
</attributes>
</asciidoc>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version><!--$NO-MVN-MAN-VER$ -->
<executions>
<execution>
<id>unpack</id>
<inherited>false</inherited>
<phase>pre-site</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<skip>${maven.site.skip}</skip>
<artifactItems>
<artifactItem>
<groupId>io.github.devacfr.maven.skins</groupId>
<artifactId>reflow-default-webdeps</artifactId>
<version>${reflow-skin.version}</version>
<type>jar</type>
<overWrite>false</overWrite>
<includes>
**/css/fontawesome/**/*,
**/css/themes/${doc-theme}/*.css,
**/js/*.js,
**/js/languages/*,
**/js/styles/github.min.css
</includes>
<outputDirectory>${session.executionRootDirectory}/target/site</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>${asciidoctorj.version}</version>
<type>jar</type>
<overWrite>false</overWrite>
<includes>
/gems/asciidoctor-*/data/stylesheets/*,
</includes>
<outputDirectory>${session.executionRootDirectory}/target/unpacked</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>${bootstrap.version}</version>
<type>jar</type>
<overWrite>false</overWrite>
<includes>
**/*.scss
</includes>
<outputDirectory>${session.executionRootDirectory}/target/unpacked</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.webjars</groupId>
<artifactId>bootswatch-${doc-theme}</artifactId>
<version>${bootswatch.version}</version>
<type>jar</type>
<overWrite>false</overWrite>
<includes>
**/*.scss
</includes>
<outputDirectory>${session.executionRootDirectory}/target/unpacked</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven-antrun-plugin.version}</version><!--$NO-MVN-MAN-VER$ -->
<inherited>false</inherited>
<executions>
<execution>
<id>copy-scss-dependencies</id>
<inherited>false</inherited>
<phase>pre-site</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${maven.site.skip}</skip>
<target>
<copy todir="target/generated-scss/asciidoctor">
<fileset dir="target/unpacked/gems">
<include name="**/*.css" />
</fileset>
<regexpmapper from="^.*/(.+)\.css$$" to="_\1.scss" />
</copy>
<copy todir="target/generated-scss/bootstrap">
<fileset dir="target/unpacked">
<include name="**/bootstrap/**/*.scss" />
</fileset>
<regexpmapper from="^.*/scss/(.+/)*_?(.+\.scss)$$"
to="\1_\2" />
</copy>
<copy todir="target/generated-scss/bootswatch-${doc-theme}">
<fileset dir="target/unpacked">
<include name="**/bootswatch-${doc-theme}/**/*.scss" />
</fileset>
<regexpmapper from="^.*/(.+\.scss)$$" to="\1" />
</copy>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>nl.geodienstencentrum.maven</groupId>
<artifactId>sass-maven-plugin</artifactId>
<version>${sass-maven-plugin.version}</version>
<inherited>false</inherited>
<executions>
<execution>
<id>compile-sass</id>
<phase>pre-site</phase>
<goals>
<goal>update-stylesheets</goal>
</goals>
</execution>
</executions>
<configuration>
<skip>${sass.skip}</skip>
<!-- Add resources in order to import files like it was in same source
folder -->
<resources>
<resource>
<source>
<directory>src/docs/resources</directory>
</source>
<destination>${project.build.directory}/ignored</destination>
</resource>
<resource>
<source>
<directory>target/generated-scss</directory>
</source>
<destination>${project.build.directory}/ignored</destination>
</resource>
<resource>
<source>
<directory>src/docs/scss</directory>
</source>
<destination>${project.build.directory}/generated-docs/styles</destination>
</resource>
<resource>
<source>
<directory>src/site/scss</directory>
</source>
<destination>${project.build.directory}/site/css</destination>
</resource>
</resources>
</configuration>
</plugin>
<!-- Release -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version><!--$NO-MVN-MAN-VER$ -->
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release,mutation-testing</releaseProfiles>
<goals>deploy</goals>
<tagNameFormat>v@{project.version}</tagNameFormat>
<preparationGoals><![CDATA[com.google.code.maven-replacer-plugin:replacer:replace clean verify]]></preparationGoals>
<completionGoals><![CDATA[com.google.code.maven-replacer-plugin:replacer:replace]]></completionGoals>
<arguments><![CDATA[-Dmaven.test.redirectTestOutputToFile=true -Dsurefire.useSystemClassLoader=false -Dfailsafe.useSystemClassLoader=false]]></arguments>
</configuration>
</plugin>
<!-- Others -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<dependencyConvergence />
</rules>
</configuration>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>${maven-scm-provider-gitexe.version}</version>
</extension>
<extension>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-manager-plexus</artifactId>
<version>${maven-scm-manager-plexus.version}</version>
</extension>
<extension>
<groupId>com.github.stephenc.wagon</groupId>
<artifactId>wagon-gitsite</artifactId>
<version>${wagon-gitsite.version}</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven-project-info-reports-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<source>${maven.compiler.source}</source>
<doclint>all</doclint>
<!-- This is needed since JUnit 5 allows default visibility, Sonar
warns about unnecessary public declaration and Maven Javadoc plugin fails
when aggregating due to missing public/protected test classes... -->
<show>package</show>
<additionalDependencies>
<additionalDependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring-boot.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring-boot.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring-boot.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring-boot-v1.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${spring-boot-v1.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring-boot-v1.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring-boot-v1.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>com.sendgrid</groupId>
<artifactId>sendgrid-java</artifactId>
<version>${sendgrid-java-v2.version}</version>
</additionalDependency>
<additionalDependency>
<groupId>com.sendgrid</groupId>
<artifactId>sendgrid-java</artifactId>
<version>4.3.0</version>
</additionalDependency>
<additionalDependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>${thymeleaf-v2.version}</version>
</additionalDependency>
</additionalDependencies>
</configuration>
</plugin>
<!-- Version update in samples too -->
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>${maven-replacer-plugin.version}</version>
<inherited>false</inherited>
<configuration>
<includes>
<include>*/pom.xml</include>
</includes>
<regex>true</regex>
<token><ogham\.version>[^$<]+</ogham\.version></token>
<value><ogham.version>${project.version}</ogham.version></value>
</configuration>
</plugin>
<!-- Mutation testing -->
<plugin>
<groupId>eu.stamp-project</groupId>
<artifactId>pitmp-maven-plugin</artifactId>
<version>${pitmp-maven-plugin.version}</version>
<executions>
<execution>
<id>run-mutation-testing</id>
<phase>site</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<mutationEngine>${pit.mutation-engine}</mutationEngine>
<skippedModules>
<param>ogham-spring-boot-autoconfigure</param>
<param>ogham-spring-boot-starter-all</param>
<param>ogham-spring-boot-starter-email</param>
<param>ogham-spring-boot-starter-sms</param>
<param>ogham-spring-boot-common-autoconfigure</param>
<param>ogham-test-utils-internal</param>
<param>ogham-test-classpath</param>
<param>reporting</param>
</skippedModules>
<excludedTestClasses>
<excludedClasse>*.SpockLoggingExtensionSpec</excludedClasse>
<excludedClasse>*.SendGridHttpTest</excludedClasse>
</excludedTestClasses>
<outputFormats>
<outputFormat>HTML</outputFormat>
<outputFormat>XML</outputFormat>
</outputFormats>
<exportLineCoverage>true</exportLineCoverage>
<historyOutputFile>${pit.history.file}</historyOutputFile>
<historyInputFile>${pit.history.file}</historyInputFile>
<avoidCallsTo>
<avoidCallsTo>java.util.logging</avoidCallsTo>
<avoidCallsTo>org.apache.log4j</avoidCallsTo>
<avoidCallsTo>org.slf4j</avoidCallsTo>
<avoidCallsTo>org.apache.commons.logging</avoidCallsTo>
<avoidCallsTo>com.github.tomakehurst.wiremock</avoidCallsTo>
</avoidCallsTo>
<excludedClasses>
<excludedClasse>com.github.tomakehurst.wiremock.*</excludedClasse>
</excludedClasses>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pit.version}</version>
</dependency>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-entry</artifactId>
<version>${pit.version}</version>
</dependency>
<dependency>
<groupId>eu.stamp-project</groupId>
<artifactId>descartes</artifactId>
<version>${descartes.version}</version>
</dependency>
<!-- FIXME: restore when JUnit 5 is fully supported by PIT and Spock
<dependency> <groupId>org.pitest</groupId> <artifactId>pitest-junit5-plugin</artifactId>
<version>${pitest-junit5-plugin.version}</version> </dependency> -->
</dependencies>
</plugin>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest-maven.version}</version>
<!-- FIXME: restore when JUnit 5 is fully supported by PIT and Spock
<dependencies> <dependency> <groupId>org.pitest</groupId> <artifactId>pitest-junit5-plugin</artifactId>
<version>${pitest-junit5-plugin.version}</version> </dependency> </dependencies> -->
</plugin>
<!-- Generate readme/showcase -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec-maven-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<!-- Javadoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<!-- Tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
<report>failsafe-report-only</report>
</reports>
</reportSet>
</reportSets>
<aggregate>true</aggregate>
</configuration>
</plugin>
<!-- Coverage -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>report</report>
<report>report-integration</report>
</reports>
</reportSet>
<reportSet>
<reports>
<report>report-aggregate</report>
</reports>
<inherited>false</inherited>
</reportSet>
</reportSets>
</plugin>
<!-- Project info -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>summary</report>
<report>licenses</report>
<report>modules</report>
<report>team</report>
<report>scm</report>
<report>issue-management</report>
<report>dependencies</report>
<report>dependency-info</report>
<report>dependency-convergence</report>
<report>dependency-management</report>
<report>plugins</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<site>
<id>gh-pages</id>
<name>Deployment on Github</name>
<url>${site.deploy.url}</url>
</site>
</distributionManagement>
<pluginRepositories>
<pluginRepository>
<id>jcenter</id>
<name>JCenter</name>
<url>https://jcenter.bintray.com</url>
</pluginRepository>
</pluginRepositories>
<profiles>
<profile>
<id>skip-tests</id>
<activation>
<property>
<name>skipTests</name>
</property>
</activation>
<properties>
<skip.integration.tests>true</skip.integration.tests>
<skip.unit.tests>true</skip.unit.tests>
</properties>
</profile>
<profile>
<id>release</id>
<properties>
<docOghamVersion>${releaseVersion}</docOghamVersion>
<git.branch>v${releaseVersion}</git.branch>
<readme.skip>false</readme.skip>
<site.showcase-video.skip>false</site.showcase-video.skip>
</properties>
<build>
<plugins>
<!-- Deployment on maven central -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${nexus-staging-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
<keepStagingRepositoryOnFailure>true</keepStagingRepositoryOnFailure>
<keepStagingRepositoryOnCloseRuleFailure>true</keepStagingRepositoryOnCloseRuleFailure>
<stagingProgressTimeoutMinutes>30</stagingProgressTimeoutMinutes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>build-jdk9+</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<maven.compiler.release>8</maven.compiler.release>
</properties>
</profile>
<profile>
<!-- Enable mutation testing with other tasks -->
<id>mutation-testing</id>
<build>
<plugins>
<!-- Run mutation testing -->
<plugin>
<groupId>eu.stamp-project</groupId>
<artifactId>pitmp-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Run mutation testing and report generation (disable tests, javadoc,
site) -->
<id>mutation-testing-only</id>
<properties>
<skip.integration.tests>true</skip.integration.tests>
<skip.unit.tests>true</skip.unit.tests>
<sass.skip>true</sass.skip>
<asciidoctor.skip>true</asciidoctor.skip>
<generateProjectInfo>false</generateProjectInfo>
<generateReports>false</generateReports>
<generateSitemap>false</generateSitemap>
<maven.javadoc.skip>true</maven.javadoc.skip>
<mpir.skip>true</mpir.skip>
</properties>
<build>
<plugins>
<!-- Run mutation testing -->
<plugin>
<groupId>eu.stamp-project</groupId>
<artifactId>pitmp-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Run only mutation report generation -->
<id>mutation-testing-aggregate-report-only</id>
<properties>
<skip.integration.tests>true</skip.integration.tests>
<skip.unit.tests>true</skip.unit.tests>
<sass.skip>true</sass.skip>
<asciidoctor.skip>true</asciidoctor.skip>
<generateProjectInfo>false</generateProjectInfo>
<generateReports>false</generateReports>
<generateSitemap>false</generateSitemap>
<maven.javadoc.skip>true</maven.javadoc.skip>
<mpir.skip>true</mpir.skip>
</properties>
</profile>
<profile>
<id>eclipse</id>
<build>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself. -->
<!-- FIXME: This is required since Eclipse 4.11 as GGTS is not supported.
Groovy Eclipse plugin doesn't work with maven test dependencies: https://github.com/groovy/groovy-eclipse/issues/900.
For now, Eclipse m2e Groovy plugin should not be installed. With this configuration,
everything works fine even with JUnit in Eclipse except that Eclipse Groovy
reports compilation errors. These errors can be ignored -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>${lifecycle-mapping.version}</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.codehaus.gmavenplus
</groupId>
<artifactId>
gmavenplus-plugin
</artifactId>
<versionRange>
[0.0,)
</versionRange>
<goals>
<goal>addSources</goal>
<goal>compile</goal>
<goal>addTestSources</goal>
<goal>compileTests</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<!-- Needed by Eclipse -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>add-test-source</id>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/test/groovy</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<!-- main compile options -->
</configuration>
</execution>
<!-- Compilation for Groovy Eclipse -->
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>${groovy-eclipse-compiler.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<version>${groovy-eclipse-batch.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Aurélien Baudet</name>
<email>aurelien.baudet@gmail.com</email>
<url>https://github.com/aurelien-baudet</url>
<organization>Groupe SII</organization>
<organizationUrl>http://www.groupe-sii.com</organizationUrl>
</developer>
</developers>
<scm>
<url>${github.url}</url>
<connection>scm:git:${scm.url}</connection>
<developerConnection>scm:git:${scm.url}</developerConnection>
<tag>HEAD</tag>
</scm>
<issueManagement>
<url>${github.url}/issues</url>
<system>GitHub</system>
</issueManagement>
</project>