<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2016 Red Hat, Inc.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

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

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.basepom</groupId>
    <artifactId>basepom-oss</artifactId>
    <version>28</version>
  </parent>

  <groupId>io.syndesis</groupId>
  <artifactId>syndesis-parent</artifactId>
  <version>1.7.8</version>
  <packaging>pom</packaging>

  <name>Syndesis</name>
  <description>Syndesis :: ${project.name}</description>

  <properties>
    <!-- Global Syndesis version -->
    <syndesis.version>${project.version}</syndesis.version>

    <!-- Atlasmap version -->
    <atlasmap.version>1.40.0</atlasmap.version>

    <!-- Image names -->
    <image.s2i>syndesis/syndesis-s2i:%l</image.s2i>
    <image.server>syndesis/syndesis-server:%l</image.server>
    <image.meta>syndesis/syndesis-meta:%l</image.meta>
    <image.ui>syndesis/syndesis-ui:%l</image.ui>

    <fabric8.maven.plugin.version>3.5.38</fabric8.maven.plugin.version>
    <maven.exec.plugin.version>1.2.1</maven.exec.plugin.version>
    <dep.plugin.deploy.version>2.8.2</dep.plugin.deploy.version>
    <clean-maven-plugin-version>2.4.1</clean-maven-plugin-version>
    <frontend-maven-plugin-version>1.6</frontend-maven-plugin-version>
    <node.version>v10.15.1</node.version>
    <yarn.version>v1.13.0</yarn.version>

    <hibernate.validator.version>6.0.16.Final</hibernate.validator.version>

    <jackson.version>2.9.9</jackson.version>
    <json-patch.version>1.9</json-patch.version>
    <kubernetes.client.version>3.1.12.fuse-730022</kubernetes.client.version>

    <spring.version>4.3.18.RELEASE</spring.version>
    <spring-boot.version>1.5.16.RELEASE</spring-boot.version>
    <spring-cloud.version>Dalston.SR5</spring-cloud.version>

    <swagger.version>1.5.22</swagger.version>
    <swagger-maven-plugin.version>3.1.8</swagger-maven-plugin.version>

    <activemq.version>5.15.9</activemq.version>

    <arquillian.version>1.4.0.Final</arquillian.version>
    <arquillian.cube.version>1.15.2</arquillian.cube.version>

    <maven.version>3.5.4</maven.version>

    <errorprone.version>2.3.2</errorprone.version>
    <commons.compress.version>1.18</commons.compress.version>

    <!-- Global camel version used everywhere -->
    <camel.version>2.21.0.fuse-740028</camel.version>
    <camel-k-runtime.version>0.3.4.fuse-740007</camel-k-runtime.version>

    <!-- Don't fork based on cores, doesn't work nicely in the cloud -->
    <basepom.test.fork-count>1</basepom.test.fork-count>
    <basepom.failsafe.fork-count>1</basepom.failsafe.fork-count>
    <basepom.failsafe.reuse-vm>true</basepom.failsafe.reuse-vm>
    <!-- takes a really long time -->
    <basepom.check.skip-dependency-versions-check>true</basepom.check.skip-dependency-versions-check>
    <basepom.it.memory>1024m</basepom.it.memory>

    <!-- Plugin versions -->
    <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>

    <!-- Maven versions -->
    <maven-archetype-packaging.version>2.0</maven-archetype-packaging.version>
    <archetype-packaging.version>2.2</archetype-packaging.version>
    <maven-archetype-plugin.version>2.2</maven-archetype-plugin.version>
    <maven-resolver-api.version>1.1.1</maven-resolver-api.version>

    <maven-common-artifact-filters.version>1.4</maven-common-artifact-filters.version>
    <maven-shared-utils.version>3.1.0</maven-shared-utils.version>

    <!-- Common dependencies -->
    <assertj-core.version>3.11.1</assertj-core.version>
    <shrinkwrap.version>2.2.6</shrinkwrap.version>

    <mailapi.version>1.4.3</mailapi.version>
    <json-schema-core.version>1.2.8</json-schema-core.version>
    <json-schema-validator.version>2.2.8</json-schema-validator.version>
    <junit.version>4.12</junit.version>
    <powermock.version>2.0.0</powermock.version>
    <testcontainers.version>1.10.6</testcontainers.version>

    <spring-security.version>4.2.12.RELEASE</spring-security.version>
    <resteasy.version>3.6.1.Final</resteasy.version>
    <resteasy-spring-boot-starter.version>1.0.1.Final</resteasy-spring-boot-starter.version>

    <immutables.version>2.7.5</immutables.version>

    <jdbi.version>2.78</jdbi.version>
    <postgresql.version>9.1-901-1.jdbc4</postgresql.version>
    <logback.version>1.2.3</logback.version>
    <micrometer.version>1.1.2</micrometer.version>
  </properties>

  <modules>
    <module>common</module>
    <module>extension</module>
    <module>integration</module>
    <module>connector</module>
    <module>server</module>
    <module>s2i</module>
    <module>meta</module>
    <module>ui-angular</module>
    <module>ui-react</module>
    <module>../doc</module>
  </modules>

  <profiles>

    <!--
    =========================================================================
    Profiles (which can and should be combined)
    =========================================================================
    -->

    <!-- Profile for building Docker images -->
    <profile>
      <id>image</id>
      <activation>
        <property>
          <name>::image</name>
        </property>
      </activation>

      <modules>
        <module>server</module>
        <module>meta</module>
        <module>ui-angular</module>
        <module>ui-react</module>
      </modules>

      <build>
        <defaultGoal>install</defaultGoal>
      </build>
    </profile>

    <!-- No checks enabled -->
    <profile>
      <id>skip-checks</id>
      <properties>
        <basepom.check.skip-all>true</basepom.check.skip-all>
      </properties>
    </profile>

    <!-- All checks enabled -->
    <profile>
      <id>checks</id>
      <properties>
        <basepom.check.skip-all>false</basepom.check.skip-all>
      </properties>
    </profile>

    <!-- System tests enabled -->
    <profile>
      <id>system-tests</id>
      <modules>
        <module>test</module>
      </modules>
    </profile>

    <!-- Build Docker images directly -->
    <profile>
      <id>docker</id>
      <properties>
        <fabric8.mode>kubernetes</fabric8.mode>
      </properties>
    </profile>

    <!-- Build with OpenShift S2I -->
    <profile>
      <id>s2i</id>
      <properties>
        <fabric8.mode>openshift</fabric8.mode>
      </properties>
    </profile>

    <!-- Release profile -->
    <profile>
      <id>release</id>
      <build>
        <plugins>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.8</version>
            <executions>
              <execution>
                <id>default-deploy</id>
                <phase>deploy</phase>
                <goals>
                  <goal>deploy</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <serverId>oss-sonatype-staging</serverId>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.6</version>
            <configuration>
              <skip>false</skip>
            </configuration>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <configuration>
              <skipSource>false</skipSource>
            </configuration>
            <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>
            <configuration>
              <skip>false</skip>
              <additionalparam>-Xdoclint:none</additionalparam>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Like 'no-checks' but even more aggresive (like even no tests)  -->
    <profile>
      <id>flash</id>
      <activation>
        <property>
          <name>deploy</name>
        </property>
      </activation>
      <properties>
        <basepom.check.skip-all>true</basepom.check.skip-all>
        <basepom.it.skip>true</basepom.it.skip>
      </properties>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <execution>
                <id>default-testResources</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <executions>
              <execution>
                <id>default-testCompile</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.basepom.maven</groupId>
            <artifactId>property-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
              <execution>
                <id>basepom.default-it</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
              <execution>
                <id>basepom.default-it</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
              <execution>
                <id>attach-javadocs</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.ning.maven.plugins</groupId>
            <artifactId>maven-dependency-versions-check-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.hubspot.maven.plugins</groupId>
            <artifactId>dependency-management-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.basepom.maven</groupId>
            <artifactId>duplicate-finder-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-pmd-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.mycila</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <executions>
              <execution>
                <id>default-test</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>${exec-maven-plugin.version}</version>
            <executions>
              <execution>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <executions>
              <execution>
                <id>default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
              <execution>
                <id>spotbugs</id>
                <phase />
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.hubspot.maven.plugins</groupId>
            <artifactId>dependency-scope-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>basepom.default</id>
                <phase />
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>non-m2e</id>
      <activation>
        <property>
          <name>!m2e.version</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <compilerId>javac-with-errorprone</compilerId>
              <forceJavacCompilerUse>true</forceJavacCompilerUse>
              <compilerArgs>
                <arg>-Xlint:all</arg>
                <arg>-Xlint:-deprecation</arg>
                <arg>-Xlint:-processing</arg>
                <arg>-Xlint:-serial</arg>
                <arg>-Werror</arg>
                <arg>-XepDisableWarningsInGeneratedCode</arg>
                <arg>-XepExcludedPaths:.*/generated-sources/.*</arg>
                <arg>-implicit:none</arg>
                <!-- temporary disable until https://github.com/google/error-prone/issues/780 is resolved -->
                <arg>-Xep:ParameterName:OFF</arg>
              </compilerArgs>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-javac-errorprone</artifactId>
                <version>2.8.5</version>
              </dependency>
            <!-- override plexus-compiler-javac-errorprone's dependency on
             Error Prone with the latest version -->
              <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_core</artifactId>
                <version>${errorprone.version}</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>autofix</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <compilerId>javac-with-errorprone</compilerId>
              <forceJavacCompilerUse>true</forceJavacCompilerUse>
              <compilerArgs>
                <!-- partialy duplicated from above, no way to combine.self not helping here -->
                <arg>-XepDisableWarningsInGeneratedCode</arg>
                <arg>-XepExcludedPaths:.*/generated-sources/.*</arg>
                <!-- temporary disable until https://github.com/google/error-prone/issues/780 is resolved -->
                <arg>-Xep:ParameterName:OFF</arg>
                <!-- configuration to patch in fixes -->
                <arg>-XepPatchChecks:BadImport,DeadException,DefaultCharset,MissingOverride,UnnecessaryParentheses</arg>
                <arg>-XepPatchLocation:IN_PLACE</arg>
              </compilerArgs>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <inherited>false</inherited>
          <configuration>
            <header>license/syndesis-license.txt</header>
            <skipExistingHeaders>false</skipExistingHeaders>
            <!-- Reduce this even further. Vote for https://github.com/mycila/license-maven-plugin/pull/133
                 to make this a fixed thread number value -->
            <concurrencyFactor>1</concurrencyFactor>
            <mapping combine.children="append">
              <provides>SCRIPT_STYLE</provides>
              <assemble>SCRIPT_STYLE</assemble>
              <xsd>XML_PREFIX</xsd>
            </mapping>
            <includes>
              <include>**/src/**</include>
              <include>**/pom.xml</include>
            </includes>
            <excludes>
              <exclude>**/node_modules/**</exclude>
              <exclude>.editorconfig</exclude>
              <exclude>license.txt</exclude>
              <exclude>.mention-bot</exclude>
              <exclude>.mvn/wrapper/maven-wrapper.properties</exclude>
              <exclude>mvnw*</exclude>
              <exclude>**/resources/**/test-*</exclude>
              <exclude>**/*.mustache</exclude>
              <exclude>**/test/resources/**</exclude>
              <exclude>**/spring.factories</exclude>
              <exclude>**/*.adoc</exclude>
              <exclude>**/archetypes/**/src/main/resources/archetype-resources/**</exclude>
              <exclude>**/s2i/src/main/docker/project/**</exclude>
              <exclude>**/Dockerfile</exclude>
              <exclude>**/*.ts</exclude>
              <exclude>**/*.tsx</exclude>
              <exclude>**/*.css</exclude>
              <exclude>**/*.scss</exclude>
              <exclude>**/setupProxy.js</exclude>
              <exclude>**/ui-react/packages/**</exclude>
              <exclude>**/*.html</exclude>
              <exclude>**/config.json*</exclude>
              <exclude>**/.gitkeep</exclude>
              <exclude>**/*.webapp</exclude>
              <exclude>**/browserconfig.xml</exclude>
              <exclude>connector/**/META-INF/syndesis/connector/verifier/*</exclude>
              <exclude>connector/**/META-INF/syndesis/connector/meta/*</exclude>
              <exclude>connector/**/springboot/*Configuration.java</exclude><!-- auto generated without headers -->
              <exclude>connector/**/springboot/*Common.java </exclude><!-- auto generated without headers -->
              <exclude>connector/fhir/**/META-INF/syndesis/schemas/**</exclude><!-- HL7 license -->
              <exclude>meta/**/run-env.sh</exclude>
              <exclude>server/syndesis-builder-image-generator/image/**</exclude><!-- auto generated without headers -->
              <exclude>**/src/main/resources/banner.txt</exclude>
              <exclude>extension/**/src/it/**/verify.groovy</exclude>
              <!-- excludes as it is copied from upstream camel component and nneds to be moved back to caml -->
              <exclude>connector/servicenow/src/main/java/io/syndesis/connector/servicenow/ServiceNowMetaDataExtension.java</exclude>
              <exclude>integration/runtime-camelk/src/main/resources/META-INF/catalog/**</exclude>
            </excludes>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>io.syndesis</groupId>
              <artifactId>syndesis-parent</artifactId>
              <classifier>tools</classifier>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <configuration>
            <configLocation>/syndesis/checkstyle.xml</configLocation>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>io.syndesis</groupId>
              <artifactId>syndesis-parent</artifactId>
              <classifier>tools</classifier>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <artifactId>maven-pmd-plugin</artifactId>
          <configuration>
            <analysisCache>false</analysisCache>
            <printFailingErrors>true</printFailingErrors>
            <rulesets>
              <ruleset>/syndesis/ruleset.xml</ruleset>
            </rulesets>
            <excludeRoots combine.children="append">
              <excludeRoot>target/generated-sources</excludeRoot>
            </excludeRoots>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>io.syndesis</groupId>
              <artifactId>syndesis-parent</artifactId>
              <classifier>tools</classifier>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.basepom.maven</groupId>
          <artifactId>duplicate-finder-maven-plugin</artifactId>
          <version>1.3.0</version>
          <configuration>
            <ignoredResourcePatterns combine.children="append">
              <ignoredResourcePattern>resources/catalog.cat</ignoredResourcePattern>
              <ignoredResourcePattern>mozilla/public-suffix-list.txt</ignoredResourcePattern>
              <ignoredResourcePattern>draftv3/schema</ignoredResourcePattern>
              <ignoredResourcePattern>draftv4/schema</ignoredResourcePattern>
              <ignoredResourcePattern>git.properties</ignoredResourcePattern>
              <ignoredResourcePattern>mockito-extensions/org\.mockito\.plugins\.MockMaker</ignoredResourcePattern>
            </ignoredResourcePatterns>
            <exceptions>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-core</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-catalog</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>org.apache.camel.json.simple</package>
                </packages>
              </exception>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-core</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>spi-annotations</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>org.apache.camel.spi</package>
                </packages>
              </exception>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>xmlpull</groupId>
                    <artifactId>xmlpull</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>xpp3</groupId>
                    <artifactId>xpp3_min</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>org.xmlpull</package>
                </packages>
              </exception>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>net.minidev</groupId>
                    <artifactId>accessors-smart</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>org.objectweb.asm</package>
                </packages>
              </exception>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>org.springframework.security</groupId>
                    <artifactId>spring-security-core</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.springframework.security</groupId>
                    <artifactId>spring-security-crypto</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>org.springframework.security.crypto</package>
                </packages>
              </exception>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>javax.ws.rs</groupId>
                    <artifactId>javax.ws.rs-api</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>org.jboss.spec.javax.ws.rs</groupId>
                    <artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
                  </dependency>
                  <dependency>
                    <!-- This comes from jira connector jira-rest-java-client-core artifact -->
                    <groupId>javax.ws.rs</groupId>
                    <artifactId>jsr311-api</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>javax.ws.rs</package>
                </packages>
              </exception>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>io.fabric8</groupId>
                    <artifactId>kubernetes-client</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>io.fabric8</groupId>
                    <artifactId>openshift-client</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>io.fabric8.kubernetes.client</package>
                </packages>
              </exception>
              <exception>
                <conflictingDependencies>
                  <dependency>
                    <groupId>io.zipkin.java</groupId>
                    <artifactId>zipkin</artifactId>
                  </dependency>
                  <dependency>
                    <groupId>io.zipkin.zipkin2</groupId>
                    <artifactId>zipkin</artifactId>
                  </dependency>
                </conflictingDependencies>
                <packages>
                  <package>zipkin2</package>
                </packages>
              </exception>
            </exceptions>
            <ignoredDependencies>
              <!-- spring-cloud-starter BOM excludes all wiremock dependencies, so we bring in
                   wiremock-standalone, which packages duplicate classes/resources already
                   present in other dependencies. It's used only in tests so let's ignore it
                   completely -->
              <dependency>
                <groupId>com.github.tomakehurst</groupId>
                <artifactId>wiremock-standalone</artifactId>
              </dependency>
            </ignoredDependencies>
          </configuration>
        </plugin>

        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>fabric8-maven-plugin</artifactId>
          <version>${fabric8.maven.plugin.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.4</version>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <additionalparam>-Xdoclint:none</additionalparam>
              </configuration>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
             <!-- Fix "There was a timeout or other error in the fork" errors -->
            <forkedProcessTimeoutInSeconds>120</forkedProcessTimeoutInSeconds>
          </configuration>
        </plugin>

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

        <plugin>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>3.5</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>templating-maven-plugin</artifactId>
          <version>1.0.0</version>
        </plugin>

        <plugin>
          <groupId>io.syndesis.connector</groupId>
          <artifactId>connector-support-maven-plugin</artifactId>
          <version>${project.version}</version>
        </plugin>

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

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

        <plugin>
          <groupId>io.github.swagger2markup</groupId>
          <artifactId>swagger2markup-maven-plugin</artifactId>
          <version>1.3.7</version>
        </plugin>

        <plugin>
          <groupId>com.github.kongchen</groupId>
          <artifactId>swagger-maven-plugin</artifactId>
          <version>${swagger-maven-plugin.version}</version>
        </plugin>

        <plugin>
          <groupId>org.asciidoctor</groupId>
          <artifactId>asciidoctor-maven-plugin</artifactId>
          <version>1.5.7.1</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>truezip-maven-plugin</artifactId>
          <version>1.2</version>
        </plugin>

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

        <plugin>
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <version>1.6</version>
        </plugin>

      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>create-tool-jar</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <inherited>false</inherited>
            <configuration>
              <descriptors>
                <descriptor>tools.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <configuration>
          <rules combine.children="append">
            <evaluateBeanshell>
              <message>Your JVM has limited cryptography, please upgrade
                to 1.8.0_162 or newer or install Unlimited Strength
                Jurisdiction Policy Files to this
                JVM.</message>
              <condition>javax.crypto.Cipher.getMaxAllowedKeyLength("AES")
                > 128</condition>
            </evaluateBeanshell>
          </rules>
        </configuration>
      </plugin>

      <plugin>
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <inherited>false</inherited>
      </plugin>

    </plugins>


  </build>

  <!-- Common dependencies -->
  <dependencyManagement>

    <dependencies>

      <!-- BOMs -->
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring-boot-dependencies</artifactId>
        <version>${camel.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>

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

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

      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-bom</artifactId>
        <version>${resteasy.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-client-bom-with-deps</artifactId>
        <version>${kubernetes.client.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>

      <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>kubernetes-model</artifactId>
        <version>2.0.10</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-bom</artifactId>
        <version>${shrinkwrap.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.jboss.arquillian</groupId>
        <artifactId>arquillian-bom</artifactId>
        <version>${arquillian.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- ============================================================== -->
      <!-- === Internal Dependencies -->

      <!-- ::::::::::: common :::::::::::: -->

      <dependency>
        <groupId>io.syndesis.common</groupId>
        <artifactId>common-util</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.common</groupId>
        <artifactId>common-model</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.common</groupId>
        <artifactId>jaeger-spring-boot-starter</artifactId>
        <version>${project.version}</version>
        <scope>runtime</scope>
      </dependency>

      <!-- ::::::::::: rest :::::::::::: -->

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-api-generator</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-controller</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-credential</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-dao</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-update-controller</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-logging-jsondb</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-logging-jaeger</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-monitoring</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-metrics-prometheus</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-filestore</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-inspector</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-jsondb</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-metrics-jsondb</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-openshift</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-endpoint</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-runtime</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-runtime-springboot</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.server</groupId>
        <artifactId>server-verifier</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- ::::::::::: integration :::::::::::: -->

      <dependency>
        <groupId>io.syndesis.integration</groupId>
        <artifactId>integration-api</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.integration</groupId>
        <artifactId>integration-project-generator</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.integration</groupId>
        <artifactId>integration-component-proxy</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.integration</groupId>
        <artifactId>integration-runtime</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.integration</groupId>
        <artifactId>integration-runtime-springboot</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- ::::::::::: extension :::::::::::: -->

      <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-annotation-processor</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-api</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-bom</artifactId>
        <type>pom</type>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-converter</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- ::::::::::: connector :::::::::::: -->

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-support-catalog</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-support-processor</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-support-verifier</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-support-test</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-http</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-twitter</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-sql</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-mqtt</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-kafka</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-activemq</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-amqp</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-aws-s3</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-aws-sns</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-aws-sqs</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-box</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-ftp</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-fhir</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-gmail</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-sftp</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-dropbox</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-slack</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-salesforce</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-servicenow</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-concur</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-timer</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-webhook</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-log</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-telegram</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-irc</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-api-provider</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-google-calendar</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-google-sheets</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-kudu</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-odata</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-knative</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-flow</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-rest-swagger</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-email</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.syndesis.connector</groupId>
        <artifactId>connector-jira</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- ============================================== -->

      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-spring</artifactId>
        <version>${resteasy.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jettison-provider</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-multipart-provider</artifactId>
        <version>${resteasy.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>${resteasy.version}</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-spring-boot-starter</artifactId>
        <version>${resteasy-spring-boot-starter.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.json</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-validator-provider-11</artifactId>
        <version>${resteasy.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.undertow</groupId>
        <artifactId>undertow-servlet</artifactId>
        <version>1.4.26.Final</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss.spec.javax.servlet</groupId>
            <artifactId>jboss-servlet-api_3.1_spec</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- TODO: Maybe import BOM ? -->
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${camel.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-catalog-maven</artifactId>
        <version>${camel.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </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>
          <exclusion>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring-security.version}</version>
        <exclusions>
          <exclusion>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring-security.version}</version>
        <exclusions>
          <exclusion>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring-security.version}</version>
        <exclusions>
          <exclusion>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${spring-boot.version}</version>
        <scope>runtime</scope>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
        <version>1.2.6.RELEASE</version>
        <scope>runtime</scope>
        <exclusions>
          <exclusion>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.github.mikegirard</groupId>
        <artifactId>spring-social-salesforce</artifactId>
        <version>1.3.0</version>
        <exclusions>
          <exclusion>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-twitter</artifactId>
        <version>1.1.2.RELEASE</version>
        <scope>runtime</scope>
        <exclusions>
          <exclusion>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-web</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</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.datatype</groupId>
        <artifactId>jackson-datatype-jdk8</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jsonSchema</artifactId>
        <version>${jackson.version}</version>
      </dependency>

      <dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>stax2-api</artifactId>
        <version>4.1</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>me.andrz.jackson</groupId>
        <artifactId>jackson-json-reference-core</artifactId>
        <version>0.2.1</version>
      </dependency>

      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>${hibernate.validator.version}</version>
      </dependency>

      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <version>${hibernate.validator.version}</version>
      </dependency>

      <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
      </dependency>

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

      <dependency>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_annotations</artifactId>
        <version>${errorprone.version}</version>
      </dependency>

      <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>0.9.11</version>
      </dependency>

      <!-- ActiveMQ deps to override Spring Boot imported pom -->
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-client</artifactId>
        <version>${activemq.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-openwire-legacy</artifactId>
        <version>${activemq.version}</version>
      </dependency>

      <!-- Maven Stuff -->
      <dependency>
        <groupId>org.apache.maven.shared</groupId>
        <artifactId>maven-common-artifact-filters</artifactId>
        <version>${maven-common-artifact-filters.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.shared</groupId>
        <artifactId>maven-shared-utils</artifactId>
        <version>${maven-shared-utils.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.resolver</groupId>
        <artifactId>maven-resolver-api</artifactId>
        <version>${maven-resolver-api.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-model</artifactId>
        <version>${maven.version}</version>
        <exclusions>
          <exclusion>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-model-builder</artifactId>
        <version>${maven.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>${maven.version}</version>
        <exclusions>
          <exclusion>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${maven.version}</version>
        <exclusions>
          <exclusion>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-artifact</artifactId>
        <version>${maven.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>3.5.2</version>
      </dependency>

      <!-- Misc -->

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>27.0.1-jre</version>
      </dependency>

      <dependency>
        <groupId>com.github.spullara.mustache.java</groupId>
        <artifactId>compiler</artifactId>
        <version>0.9.2</version>
      </dependency>

      <dependency>
        <groupId>net.iharder</groupId>
        <artifactId>base64</artifactId>
        <version>2.3.8</version>
      </dependency>

      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>3.0.2</version>
      </dependency>

      <dependency>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-annotations</artifactId>
        <version>${dep.plugin.spotbugs.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>com.github.java-json-tools</groupId>
        <artifactId>json-schema-validator</artifactId>
        <version>${json-schema-validator.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.mail</groupId>
            <artifactId>mailapi</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-core</artifactId>
        <version>${swagger.version}</version>
      </dependency>

      <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-parser</artifactId>
        <version>1.0.34</version>
      </dependency>

      <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-models</artifactId>
        <version>${swagger.version}</version>
      </dependency>

      <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>${swagger.version}</version>
      </dependency>

      <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-jaxrs</artifactId>
        <version>${swagger.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mailapi</artifactId>
        <version>${mailapi.version}</version>
      </dependency>

      <dependency>
        <groupId>com.github.java-json-tools</groupId>
        <artifactId>json-schema-core</artifactId>
        <version>${json-schema-core.version}</version>
      </dependency>

      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.2.12</version>
      </dependency>

      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.1</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.spec.javax.ws.rs</groupId>
        <artifactId>jboss-jaxrs-api_2.1_spec</artifactId>
        <version>1.0.0.Final</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.jboss.spec.javax.annotation</groupId>
        <artifactId>jboss-annotations-api_1.2_spec</artifactId>
        <version>1.0.2.Final</version>
      </dependency>

      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.2.1</version>
      </dependency>

      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
      </dependency>

      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
        <scope>runtime</scope>
      </dependency>

      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback.version}</version>
        <scope>runtime</scope>
      </dependency>

      <dependency>
        <groupId>org.immutables</groupId>
        <artifactId>value</artifactId>
        <version>${immutables.version}</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.jolokia</groupId>
        <artifactId>jolokia-client-java</artifactId>
        <version>1.4.0</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient-osgi</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.github.fge</groupId>
        <artifactId>json-patch</artifactId>
        <version>${json-patch.version}</version>
      </dependency>

      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${assertj-core.version}</version>
        <scope>test</scope>
      </dependency>

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

      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito2</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-core</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>

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

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

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

      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>mariadb</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>
      <!-- ========================================== -->

      <!-- === Atlasmap -->

      <dependency>
        <groupId>io.syndesis</groupId>
        <artifactId>sydnesis-annotation-processor</artifactId>
        <version>${project.version}</version>
      </dependency>


      <dependency>
        <groupId>io.syndesis</groupId>
        <artifactId>project-generator</artifactId>
        <version>${project.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-api</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-core</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-java-model</artifactId>
        <version>${atlasmap.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-java-core</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-java-module</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-java-service</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-xml-model</artifactId>
        <version>${atlasmap.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-xml-core</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-json-module</artifactId>
        <version>${atlasmap.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-json-service</artifactId>
        <version>${atlasmap.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-xml-module</artifactId>
        <version>${atlasmap.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-xml-service</artifactId>
        <version>${atlasmap.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-service</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-model</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>camel-atlasmap</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlasmap-maven-plugin</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>

      <dependency>
        <groupId>com.vaadin.external.google</groupId>
        <artifactId>android-json</artifactId>
        <version>0.0.20131108.vaadin1</version>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>mockwebserver</artifactId>
        <version>0.1.0</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>io.sundr</groupId>
            <artifactId>builder-annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.xmlunit</groupId>
        <artifactId>xmlunit-core</artifactId>
        <version>2.5.1</version>
        <scope>test</scope>
      </dependency>

    <!-- Micrometer -->

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-core</artifactId>
      <version>${micrometer.version}</version>
    </dependency>

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
      <version>${micrometer.version}</version>
    </dependency>

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-spring-legacy</artifactId>
      <version>${micrometer.version}</version>
      <scope>runtime</scope>
    </dependency>

      <!-- ::::::::::: test :::::::::::: -->

      <dependency>
        <groupId>org.arquillian.cube</groupId>
        <artifactId>arquillian-cube-requirement</artifactId>
        <version>${arquillian.cube.version}</version>
      </dependency>

      <dependency>
        <groupId>org.arquillian.cube</groupId>
        <artifactId>arquillian-cube-kubernetes</artifactId>
        <version>${arquillian.cube.version}</version>
      </dependency>

      <dependency>
        <groupId>org.arquillian.cube</groupId>
        <artifactId>arquillian-cube-openshift</artifactId>
        <version>${arquillian.cube.version}</version>
      </dependency>
    </dependencies>

  </dependencyManagement>

  <!-- Metadata need to publish to central -->
  <url>https://syndesis.io/</url>
  <inceptionYear>2016</inceptionYear>

  <organization>
    <name>Red Hat</name>
    <url>https://redhat.com</url>
  </organization>

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

  <developers>
    <developer>
      <name>Syndesis committers</name>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:https://github.com/syndesisio/syndesis.git</connection>
    <developerConnection>scm:git:ssh://git@github.com:syndesisio/syndesis.git</developerConnection>
    <url>http://github.com/syndesisio/syndesis</url>
  </scm>

  <distributionManagement>
    <snapshotRepository>
      <id>oss-sonatype-staging</id>
      <name>oss-sonatype-staging</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
    <repository>
      <id>oss-sonatype-staging</id>
      <name>Sonatype Staging Repository</name>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
    </repository>
  </distributionManagement>

  <issueManagement>
    <system>github</system>
    <url>https://github.com/syndesisio/syndesis.io/issues</url>
  </issueManagement>

  <repositories>
    <repository>
      <id>central</id>
      <name>Maven Central</name>
      <url>https://repo.maven.apache.org/maven2/</url>
    </repository>
    <repository>
      <id>jboss-ea</id>
      <name>JBoss Early Access</name>
      <url>https://repository.jboss.org/nexus/content/groups/ea/</url>
    </repository>
    <repository>
      <id>redhat-ga</id>
      <name>Red Hat General Availability Repository</name>
      <url>https://maven.repository.redhat.com/ga/</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Maven Central</name>
      <url>https://repo.maven.apache.org/maven2/</url>
    </pluginRepository>
    <pluginRepository>
      <id>jboss-ea</id>
      <name>JBoss Early Access</name>
      <url>https://repository.jboss.org/nexus/content/groups/ea/</url>
    </pluginRepository>
    <pluginRepository>
      <id>redhat-ga</id>
      <name>Red Hat General Availability Repository</name>
      <url>https://maven.repository.redhat.com/ga/</url>
    </pluginRepository>
  </pluginRepositories>

</project>
