<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.openksavi.sponge</groupId>
    <artifactId>sponge-parent</artifactId>
    <version>1.16.3</version>
    <name>Sponge - Parent</name>
    <description>Sponge Parent POM</description>
    <url>https://sponge.openksavi.org</url>
    <inceptionYear>2016</inceptionYear>
    <packaging>pom</packaging>

    <organization>
        <name>Softelnet</name>
        <url>https://www.softelnet.com</url>
    </organization>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <developers>
        <developer>
            <name>Marcin Paś</name>
            <email>marcin.pas@softelnet.com</email>
            <organization>Softelnet</organization>
            <organizationUrl>https://www.softelnet.com</organizationUrl>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:git://github.com/softelnet/sponge.git</connection>
        <developerConnection>scm:git:git@github.com:softelnet/sponge.git</developerConnection>
        <url>https://github.com/softelnet/sponge/tree/master</url>
    </scm>

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

    <issueManagement>
        <system>Github</system>
        <url>https://github.com/softelnet/sponge/issues</url>
    </issueManagement>

    <properties>
        <release.version>1.16.3</release.version>
        <release.date>2020-10-21</release.date>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
        <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>

        <development.tools.version>1</development.tools.version>
        <shade.subpackage>shaded</shade.subpackage>

        <sponge.root>${basedir}</sponge.root>

        <javax.inject.version>1</javax.inject.version>

        <jython.version>2.7.2</jython.version>
        <jruby.version>9.2.13.0</jruby.version>
        <groovy.version>3.0.6</groovy.version>
        <kotlin.version>1.4.10</kotlin.version>

        <commons-lang3.version>3.11</commons-lang3.version>
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
        <commons-collections4.version>4.4</commons-collections4.version>
        <commons-configuration2.version>2.7</commons-configuration2.version>
        <commons-io.version>2.8.0</commons-io.version>
        <commons-cli.version>1.4</commons-cli.version>
        <commons-codec.version>1.15</commons-codec.version>
        <commons-crypto.version>1.1.0</commons-crypto.version>
        <commons-email.version>1.5</commons-email.version>
        <commons-compress.version>1.20</commons-compress.version>
        <quartz.version>2.3.2</quartz.version>
        <guava.version>29.0-jre</guava.version>
        <caffeine.version>2.8.5</caffeine.version>
        <spring.version>5.2.9.RELEASE</spring.version>
        <spring-integration.version>5.3.2.RELEASE</spring-integration.version>
        <spring-security.version>5.4.1</spring-security.version>
        <camel.version>3.5.0</camel.version>
        <awaitility.version>4.0.3</awaitility.version>
        <jline.version>3.16.0</jline.version>
        <py4j.version>0.10.9.1</py4j.version>
        <grovepi.version>0.1.0-SNAPSHOT</grovepi.version>
        <pi4j.version>1.2</pi4j.version>
        <rxjava2.version>2.2.20</rxjava2.version>
        <okhttp.version>4.9.0</okhttp.version>
        <reflections.version>0.9.12</reflections.version>
        <jackson.version>2.10.5</jackson.version>
        <swagger.version>1.6.2</swagger.version>
        <jjwt.version>0.9.1</jjwt.version>
        <jserialcomm.version>2.6.2</jserialcomm.version>
        <telecom-charsets.version>1.0.1</telecom-charsets.version>
        <jaxb.version>2.3.1</jaxb.version>
        <grpc.version>1.32.1</grpc.version>
        <protobuf.version>3.12.4</protobuf.version>
        <protoc.version>3.12.4</protoc.version>
        <netty-tcnative.version>2.0.33.Final</netty-tcnative.version>
        <jmdns.version>3.5.5</jmdns.version>

        <activemq.version>5.14.5</activemq.version>
        <bitronix.version>2.1.4</bitronix.version>
        <atomikos.version>4.0.4</atomikos.version>

        <jetty.version>9.4.31.v20200723</jetty.version>

        <slf4j.version>1.7.30</slf4j.version>
        <logback.version>1.2.3</logback.version>
        <junit-jupiter.version>5.7.0</junit-jupiter.version>
        <junit-platform.version>5.7.0</junit-platform.version>
        <mockito.version>3.5.13</mockito.version>
        <jcip.version>1.0-1</jcip.version>

        <log4j2.version>2.13.3</log4j2.version>
    </properties>

    <prerequisites>
        <maven>3.5.4</maven>
    </prerequisites>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>animal-sniffer-maven-plugin</artifactId>
                <configuration>
                    <signature>
                        <groupId>org.codehaus.mojo.signature</groupId>
                        <artifactId>java18</artifactId>
                        <version>1.0</version>
                    </signature>
                    <ignores>
                        <ignore>jdk.nashorn.*</ignore>
                        <ignore>javax.script.*</ignore>
                    </ignores>
                </configuration>
                <executions>
                    <execution>
                        <id>check-java-compatibility</id>
                        <phase>test</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <groupId>org.asciidoctor</groupId>
                    <artifactId>asciidoctor-maven-plugin</artifactId>
                    <version>1.6.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.asciidoctor</groupId>
                            <artifactId>asciidoctorj-pdf</artifactId>
                            <version>1.5.3</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.6</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>2.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.2</version>
                    <configuration>
                        <argLine>-Xmx1536m -XX:+UseG1GC -XX:+UseStringDeduplication -Dlogback.configurationFile=${sponge.root}/sponge-test/src/main/resources/logback-quiet.xml</argLine>
                        <excludes>
                            <exclude>*/sponge/integration/tests/performance/*</exclude>
                            <exclude>*/sponge/integration/tests/stability/*</exclude>
                            <exclude>*/sponge/kotlin/script/test/*</exclude>
                            <exclude>*/sponge/app/demoservice/test/stability/*</exclude>
                        </excludes>
                        <parallel>classesAndMethods</parallel>
                        <threadCount>2</threadCount>
                        <!-- <redirectTestOutputToFile>true</redirectTestOutputToFile> -->
                        <properties>
                            <configurationParameters>
                                junit.jupiter.execution.parallel.enabled = true
                                junit.jupiter.execution.parallel.mode.default = concurrent
                            </configurationParameters>
                        </properties>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.5</version>
                    <configuration>
                        <failOnError>true</failOnError>
                        <effort>Max</effort>
                        <threshold>Default</threshold>
                        <xmlOutput>true</xmlOutput>
                        <excludeFilterFile>${project.parent.basedir}/sponge-development-tools/src/main/resources/findbugs/findbugs-exclude-filter.xml</excludeFilterFile>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.5</version>
                    <configuration>
                        <rulesUri>file://${sponge.root}/sponge-development-tools/src/main/resources/maven/versions-maven-plugin-rules.xml</rulesUri>
                        <allowSnapshots>false</allowSnapshots>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.9</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>1.6</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>animal-sniffer-maven-plugin</artifactId>
                    <version>1.16</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.3</version>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <pushChanges>false</pushChanges>
                        <releaseProfiles>release</releaseProfiles>
                        <tagNameFormat>v@{project.version}</tagNameFormat>
                        <localCheckout>true</localCheckout>
                        <pushChanges>false</pushChanges>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.sonatype.plugins</groupId>
                    <artifactId>nexus-staging-maven-plugin</artifactId>
                    <version>1.6.8</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.6.0</version>
                </plugin>
                <plugin>
                    <groupId>com.googlecode.maven-download-plugin</groupId>
                    <artifactId>download-maven-plugin</artifactId>
                    <version>1.4.1</version>
                </plugin>
                <plugin>
                    <groupId>io.github.swagger2markup</groupId>
                    <artifactId>swagger2markup-maven-plugin</artifactId>
                    <version>1.3.7</version>
                </plugin>
                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>dockerfile-maven-plugin</artifactId>
                    <version>1.4.10</version>
                </plugin>
                <plugin>
                    <groupId>kr.motd.maven</groupId>
                    <artifactId>os-maven-plugin</artifactId>
                    <version>1.6.2</version>
                </plugin>
                <plugin>
                    <groupId>org.xolstice.maven.plugins</groupId>
                    <artifactId>protobuf-maven-plugin</artifactId>
                    <version>0.5.1</version>
                </plugin>
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.asciidoctor</groupId>
                                        <artifactId>asciidoctor-maven-plugin</artifactId>
                                        <versionRange>[1,)</versionRange>
                                        <goals>
                                            <goal>process-asciidoc</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>license-maven-plugin</artifactId>
                                        <versionRange>[1,)</versionRange>
                                        <goals>
                                            <goal>download-licenses</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>license-maven-plugin</artifactId>
                                        <versionRange>[1,)</versionRange>
                                        <goals>
                                            <goal>add-third-party</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>findbugs-maven-plugin</artifactId>
                                        <versionRange>[3,)</versionRange>
                                        <goals>
                                            <goal>check</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-checkstyle-plugin</artifactId>
                                        <versionRange>[2,)</versionRange>
                                        <goals>
                                            <goal>check</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.jacoco</groupId>
                                        <artifactId>jacoco-maven-plugin</artifactId>
                                        <versionRange>[0,)</versionRange>
                                        <goals>
                                            <goal>prepare-agent</goal>
                                            <goal>report</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-antrun-plugin</artifactId>
                                        <versionRange>[1,)</versionRange>
                                        <goals>
                                            <goal>run</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-gpg-plugin</artifactId>
                                        <versionRange>[1,)</versionRange>
                                        <goals>
                                            <goal>sign</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.sonatype.plugins</groupId>
                                        <artifactId>nexus-staging-maven-plugin</artifactId>
                                        <versionRange>[1,)</versionRange>
                                        <goals>
                                            <goal>sign</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>animal-sniffer-maven-plugin</artifactId>
                                        <versionRange>[1,)</versionRange>
                                        <goals>
                                            <goal>check</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-shade-plugin</artifactId>
                                        <versionRange>[3,)</versionRange>
                                        <goals>
                                            <goal>shade</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-dependency-plugin</artifactId>
                                        <versionRange>[3,)</versionRange>
                                        <goals>
                                            <goal>unpack</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.jetbrains.kotlin</groupId>
                                        <artifactId>kotlin-maven-plugin</artifactId>
                                        <versionRange>[1.3.0,)</versionRange>
                                        <goals>
                                            <goal>compile</goal>
                                            <goal>test-compile</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute>
                                            <runOnIncremental />
                                        </execute>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
                <version>${javax.inject.version}</version>
            </dependency>

            <dependency>
                <groupId>org.python</groupId>
                <artifactId>jython-slim</artifactId>
                <version>${jython.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jruby</groupId>
                <artifactId>jruby</artifactId>
                <version>${jruby.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib-jdk8</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-script-runtime</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-compiler-embeddable</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-script-util</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-scripting-compiler</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-reflect</artifactId>
                <version>${kotlin.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons-beanutils.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons-collections4.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-configuration2</artifactId>
                <version>${commons-configuration2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${commons-cli.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-crypto</artifactId>
                <version>${commons-crypto.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-email</artifactId>
                <version>${commons-email.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons-compress.version}</version>
            </dependency>
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>${quartz.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${caffeine.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>${spring.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.integration</groupId>
                <artifactId>spring-integration-bom</artifactId>
                <version>${spring-integration.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-bom</artifactId>
                <version>${spring-security.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-bom</artifactId>
                <version>${camel.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-grape</artifactId>
                <version>${camel.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.py4j</groupId>
                <artifactId>py4j</artifactId>
                <version>${py4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.pi4j</groupId>
                <artifactId>pi4j-core</artifactId>
                <version>${pi4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.iot.raspberry</groupId>
                <artifactId>GrovePi-pi4j</artifactId>
                <version>${grovepi.version}</version>
            </dependency>
            <dependency>
                <groupId>io.reactivex.rxjava2</groupId>
                <artifactId>rxjava</artifactId>
                <version>${rxjava2.version}</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp-bom</artifactId>
                <version>${okhttp.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>${reflections.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${jackson.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>${jjwt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fazecast</groupId>
                <artifactId>jSerialComm</artifactId>
                <version>${jserialcomm.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.brake.threegpp</groupId>
                <artifactId>telecom-charsets</artifactId>
                <version>${telecom-charsets.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.version}</version>
            </dependency>

            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlet</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-bom</artifactId>
                <version>${grpc.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-tcnative-boringssl-static</artifactId>
                <version>${netty-tcnative.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jmdns</groupId>
                <artifactId>jmdns</artifactId>
                <version>${jmdns.version}</version>
            </dependency>

            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${junit-jupiter.version}</version>
            </dependency>
            <dependency>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
                <version>${junit-jupiter.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-junit-jupiter</artifactId>
                <version>${mockito.version}</version>
            </dependency>
            <dependency>
                <groupId>org.awaitility</groupId>
                <artifactId>awaitility</artifactId>
                <version>${awaitility.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.stephenc.jcip</groupId>
                <artifactId>jcip-annotations</artifactId>
                <version>${jcip.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-to-slf4j</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <repository>
            <id>eclipse-paho</id>
            <url>https://repo.eclipse.org/content/repositories/paho-releases</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>jcenter-snapshots</id>
            <name>jcenter</name>
            <url>https://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
        </pluginRepository>
        <pluginRepository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>jcenter-releases</id>
            <name>jcenter</name>
            <url>https://jcenter.bintray.com</url>
        </pluginRepository>
    </pluginRepositories>

    <profiles>
        <profile>
            <id>all</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>sponge-development-tools</module>
                <module>sponge-api</module>
                <module>sponge-core</module>
                <module>sponge-logging</module>
                <module>sponge-examples-base</module>
                <module>sponge-test</module>
                <module>sponge-jython</module>
                <module>sponge-jython-shaded</module>
                <module>sponge-jruby</module>
                <module>sponge-nashorn</module>
                <module>sponge-groovy</module>
                <module>sponge-kotlin</module>
                <module>sponge-kotlin-script</module>
                <module>sponge-spring</module>
                <module>sponge-camel</module>
                <module>sponge-py4j</module>
                <module>sponge-midi</module>
                <module>sponge-rpi-pi4j</module>
                <module>sponge-rpi-grovepi</module>
                <module>sponge-reactivex</module>
                <module>sponge-signal</module>
                <module>sponge-features</module>
                <module>sponge-remote-api-common</module>
                <module>sponge-remote-api-client</module>
                <module>sponge-remote-api-server</module>
                <module>sponge-remote-api-tools</module>
                <module>sponge-remote-api-test-base</module>
                <module>sponge-grpc-api-common</module>
                <module>sponge-grpc-api-client</module>
                <module>sponge-grpc-api-server</module>
                <module>sponge-remote-api-integration-tests</module>
                <module>sponge-tensorflow</module>
                <module>sponge-gsm-modem</module>
                <module>sponge-kb</module>
                <module>sponge-integration-tests</module>
                <module>sponge-standalone</module>
                <module>sponge-standalone-app</module>
                <module>sponge-bom</module>
                <module>sponge-standalone-extensions</module>
                <module>sponge-distribution</module>
                <module>sponge-examples-projects</module>
                <module>sponge-app</module>
            </modules>
        </profile>
        <profile>
            <id>review</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>findbugs</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <dependencies>
                            <!-- <dependency> -->
                            <!-- <groupId>com.puppycrawl.tools</groupId> -->
                            <!-- <artifactId>checkstyle</artifactId> -->
                            <!-- <version>7.6</version> -->
                            <!-- </dependency> -->
                            <dependency>
                                <groupId>org.openksavi.sponge</groupId>
                                <artifactId>sponge-development-tools</artifactId>
                                <version>${development.tools.version}</version>
                            </dependency>
                        </dependencies>
                        <configuration>
                            <failsOnError>true</failsOnError>
                            <encoding>UTF-8</encoding>
                            <consoleOutput>true</consoleOutput>
                            <configLocation>checkstyle/sponge-checkstyle.xml</configLocation>
                            <suppressionsLocation>checkstyle/sponge-checkstyle-suppressions.xml</suppressionsLocation>
                            <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
                            <!-- <headerLocation>checkstyle/LICENSE.txt</headerLocation> -->
                        </configuration>
                        <executions>
                            <execution>
                                <id>checkstyle</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>jacoco</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <configuration>
                        </configuration>
                        <executions>
                            <execution>
                                <id>default-prepare-agent</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>release</id>
            <modules>
                <module>sponge-api</module>
                <module>sponge-core</module>
                <module>sponge-logging</module>
                <module>sponge-examples-base</module>
                <module>sponge-test</module>
                <module>sponge-jython</module>
                <module>sponge-jython-shaded</module>
                <module>sponge-jruby</module>
                <module>sponge-nashorn</module>
                <module>sponge-groovy</module>
                <module>sponge-kotlin</module>
                <module>sponge-spring</module>
                <module>sponge-camel</module>
                <module>sponge-py4j</module>
                <module>sponge-midi</module>
                <module>sponge-signal</module>
                <module>sponge-rpi-pi4j</module>
                <module>sponge-reactivex</module>
                <module>sponge-features</module>
                <module>sponge-remote-api-common</module>
                <module>sponge-remote-api-client</module>
                <module>sponge-remote-api-server</module>
                <module>sponge-remote-api-tools</module>
                <module>sponge-grpc-api-common</module>
                <module>sponge-grpc-api-client</module>
                <module>sponge-grpc-api-server</module>
                <module>sponge-tensorflow</module>
                <module>sponge-gsm-modem</module>
                <module>sponge-kb</module>
                <module>sponge-standalone</module>
                <module>sponge-bom</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                    <!-- <goal>test-jar-no-fork</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>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <keyname>${gpg.keyname}</keyname>
                                    <passphraseServerId>${gpg.keyname}</passphraseServerId>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- <plugin> -->
                    <!-- <groupId>org.sonatype.plugins</groupId> -->
                    <!-- <artifactId>nexus-staging-maven-plugin</artifactId> -->
                    <!-- <extensions>true</extensions> -->
                    <!-- <configuration> -->
                    <!-- <serverId>ossrh</serverId> -->
                    <!-- <nexusUrl>https://oss.sonatype.org/</nexusUrl> -->
                    <!-- <autoReleaseAfterClose>false</autoReleaseAfterClose> -->
                    <!-- </configuration> -->
                    <!-- </plugin> -->
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
