<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         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>

    <url>https://github.com/jeap-admin-ch/jeap-spring-boot-parent/tree/main</url>
    <scm>
        <url>https://github.com/jeap-admin-ch/jeap-spring-boot-parent.git</url>
        <connection>scm:git:git://github.com/jeap-admin-ch/jeap-spring-boot-parent.git</connection>
        <developerConnection>scm:git:ssh://github.com:jeap-admin-ch/jeap-spring-boot-parent.git</developerConnection>
    </scm>
    <developers>
        <developer>
            <name>BIT</name>
            <email>jeap-community@bit.admin.ch</email>
            <organization>Federal Office of Information Technology, Systems and Telecommunication FOITT</organization>
            <organizationUrl>https://www.bit.admin.ch/</organizationUrl>
        </developer>
    </developers>

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

    <artifactId>jeap-spring-boot-parent</artifactId>
    <version>33.9.0</version>
    <name>jeap-spring-boot-parent</name>
    <description>A common parent project</description>
    <packaging>pom</packaging>

    <parent>
        <artifactId>jeap-internal-spring-boot-parent</artifactId>
        <groupId>ch.admin.bit.jeap</groupId>
        <version>6.0.5</version>
    </parent>

    <properties>
        <!-- jEAP Libraries -->
        <jeap-starter.version>21.6.0</jeap-starter.version>
        <jeap-db-migration-starter.version>17.65.0</jeap-db-migration-starter.version>
        <jeap-config-aws-starter.version>17.65.0</jeap-config-aws-starter.version>
        <jeap-tls-starter.version>17.65.0</jeap-tls-starter.version>
        <jeap-messaging.version>13.9.0</jeap-messaging.version>
        <jeap-messaging-outbox.version>13.9.0</jeap-messaging-outbox.version>
        <jeap-messaging-sequential-inbox.version>16.9.0</jeap-messaging-sequential-inbox.version>
        <jeap-reaction-observer.version>6.9.0</jeap-reaction-observer.version>
        <jeap-crypto.version>7.6.0</jeap-crypto.version>
        <jeap-server-sent-events.version>8.9.0</jeap-server-sent-events.version>
        <jeap-db-schema-publisher.version>1.29.0</jeap-db-schema-publisher.version>
        <jeap-open-api-publisher.version>4.6.0</jeap-open-api-publisher.version>
        <jeap-spring-boot-roles-anywhere-starter.version>1.29.0</jeap-spring-boot-roles-anywhere-starter.version>
        <jeap-audit.version>6.9.0</jeap-audit.version>
        <!-- Maven Plugins -->
        <jeap-truststore-maven-plugin.version>1.44.0</jeap-truststore-maven-plugin.version>
        <jib-maven-plugin.version>3.5.1</jib-maven-plugin.version>
    </properties>

    <profiles>
        <!-- Profile for spring application. By default, this profile is enabled, but you can disable it by activating
             the profile no-spring, e.g using a settings block -->
        <profile>
            <id>spring</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>ch.admin.bit.jeap</groupId>
                    <artifactId>jeap-spring-boot-application-starter</artifactId>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>no-spring</id>
        </profile>
        <profile>
            <id>parent-build-only</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <!-- Check third-party license compliance -->
                    <plugin>
                        <groupId>org.honton.chas</groupId>
                        <artifactId>license-maven-plugin</artifactId>
                    </plugin>
                    <!-- Generate third-party license list -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>license-maven-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <dependencyManagement>
        <dependencies>
            <!-- jEAP Starters -->
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-application-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-logging-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-security-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-db-migration-starter</artifactId>
                <version>${jeap-db-migration-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-security-starter-test</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-vault-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-monitoring-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-object-storage-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-postgresql-aws-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-tx</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-swagger-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-web-config-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-config-aws-starter</artifactId>
                <version>${jeap-config-aws-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-tls-starter</artifactId>
                <version>${jeap-tls-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-featureflag-starter</artifactId>
                <version>${jeap-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-roles-anywhere-starter</artifactId>
                <version>${jeap-spring-boot-roles-anywhere-starter.version}</version>
            </dependency>

            <!-- jEAP Crypto -->
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-crypto-core</artifactId>
                <version>${jeap-crypto.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-crypto-db</artifactId>
                <version>${jeap-crypto.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-crypto-s3</artifactId>
                <version>${jeap-crypto.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-crypto-vault</artifactId>
                <version>${jeap-crypto.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-crypto-vault-starter</artifactId>
                <version>${jeap-crypto.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-crypto-aws-kms-starter</artifactId>
                <version>${jeap-crypto.version}</version>
            </dependency>

            <!-- jEAP Reaction Observer -->
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-reaction-observer-starter</artifactId>
                <version>${jeap-reaction-observer.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-reaction-observer-core</artifactId>
                <version>${jeap-reaction-observer.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-reaction-observer-events</artifactId>
                <version>${jeap-reaction-observer.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-reaction-observer-messaging</artifactId>
                <version>${jeap-reaction-observer.version}</version>
            </dependency>

            <!-- jEAP Messaging -->
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-messaging</artifactId>
                <version>${jeap-messaging.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-messaging-outbox</artifactId>
                <version>${jeap-messaging-outbox.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-messaging-sequential-inbox</artifactId>
                <version>${jeap-messaging-sequential-inbox.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-messaging-sequential-inbox-rest-api</artifactId>
                <version>${jeap-messaging-sequential-inbox.version}</version>
            </dependency>

            <!-- jeap-server-sent-events -->
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-server-sent-events-core</artifactId>
                <version>${jeap-server-sent-events.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-server-sent-events-messaging</artifactId>
                <version>${jeap-server-sent-events.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-server-sent-events-web</artifactId>
                <version>${jeap-server-sent-events.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-server-sent-events-starter</artifactId>
                <version>${jeap-server-sent-events.version}</version>
            </dependency>

            <!-- jEAP DB Schema Publisher -->
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-db-schema-publisher-starter</artifactId>
                <version>${jeap-db-schema-publisher.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-db-schema-publisher-model-reader</artifactId>
                <version>${jeap-db-schema-publisher.version}</version>
            </dependency>

            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-open-api-publisher-starter</artifactId>
                <version>${jeap-open-api-publisher.version}</version>
            </dependency>

            <!-- jEAP Audit -->
             <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-audit-command-builder</artifactId>
                <version>${jeap-audit.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-audit-command-consumer</artifactId>
                <version>${jeap-audit.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.admin.bit.jeap</groupId>
                <artifactId>jeap-spring-boot-audit-starter-transactional-outbox</artifactId>
                <version>${jeap-audit.version}</version>
            </dependency>
        </dependencies>


    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>ch.admin.bit.jeap</groupId>
                    <artifactId>jeap-messaging-avro-maven-plugin</artifactId>
                    <version>${jeap-messaging.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>idl</goal>
                                <goal>schema</goal>
                                <goal>protocol</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>ch.admin.bit.jeap</groupId>
                    <artifactId>truststore-maven-plugin</artifactId>
                    <version>${jeap-truststore-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>ch.admin.bit.jeap</groupId>
                    <artifactId>jeap-messaging-contract-maven-plugin</artifactId>
                    <version>${jeap-messaging.version}</version>
                    <configuration>
                        <messageContractServiceBaseUri>${messageContractServiceBaseUri}</messageContractServiceBaseUri>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.google.cloud.tools</groupId>
                    <artifactId>jib-maven-plugin</artifactId>
                    <version>${jib-maven-plugin.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>
