<!--
  ~ Copyright (C) 2016-2023 Evolveum
  ~
  ~ 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 https://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>midpoint</artifactId>
        <groupId>com.evolveum.midpoint</groupId>
        <version>4.10</version>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>midpoint-overlay-example</artifactId>
    <version>4.10</version>

    <name>midPoint Overlay Project</name>
    <description>Example midPoint overlay project</description>

    <properties>
        <!-- Checkstyle file is not available in overlay, let's just disable it. -->
        <checkstyle.skip>true</checkstyle.skip>
        <mdep.analyze.skip>true</mdep.analyze.skip>

        <!-- No tests here, but midPoint parent would try to run some, we need to disable it. -->
        <maven.test.skip>true</maven.test.skip>
        <midpoint.version>4.10</midpoint.version>
    </properties>

    <dependencies>
        <!--
        In midpoint-jar this is in runtime scope, because there are no sources,
        but here we have our custom GUI classes, so we need it in default (compile) scope.
        -->
        <dependency>
            <groupId>com.evolveum.midpoint.gui</groupId>
            <artifactId>admin-gui</artifactId>
            <version>${midpoint.version}</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>evolveum</id>
            <name>Evolveum Public Releases</name>
            <url>https://nexus.evolveum.com/nexus/repository/public/</url>
        </repository>
        <repository>
            <id>evolveum-snapshots</id>
            <name>Evolveum Snapshots</name>
            <url>https://nexus.evolveum.com/nexus/repository/snapshots/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>evolveum</id>
            <name>Evolveum Public Releases</name>
            <url>https://nexus.evolveum.com/nexus/repository/public/</url>
        </pluginRepository>
        <pluginRepository>
            <id>evolveum-snapshots</id>
            <name>Evolveum Snapshots</name>
            <url>https://nexus.evolveum.com/nexus/repository/snapshots/</url>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <!-- Base name for JAR file. -->
        <finalName>midpoint</finalName>
        <resources>
            <!--
            By default, we want everything unfiltered, e.g. additional object XML and app-config YAML.
            -->
            <resource>
                <filtering>false</filtering>
                <directory>src/main/resources</directory>
            </resource>
            <!-- We want the following stuff filtered (properties replaced by Maven during build). -->
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
                <includes>
                    <include>banner.txt</include>
                </includes>
            </resource>
            <!--
            This "compiles" HTML files (or any other non-java/properties) to the classpath as well.
            This is Wicket specific, where HTML templates are typically right next to the Java files.
            -->
            <resource>
                <filtering>false</filtering>
                <directory>src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                    <exclude>**/*.properties</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <!--
            Initializes ${git.branch} - can be skipped if it's not used in overlay banner.
            About in midPoint will still use the right information from metadata inside system-init.jar.
            -->
            <plugin>
                <groupId>pl.project13.maven</groupId>
                <artifactId>git-commit-id-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <verbose>false</verbose>
                    <offline>true</offline>
                </configuration>
            </plugin>
            <!--
            gitdescribe-maven-plugin that initializes ${git.describe} works automatically because of the parent POM.
            -->

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.evolveum.midpoint.web.boot.MidPointSpringApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <layoutFactory implementation="com.evolveum.midpoint.launcher.MidPointJarLayoutFactory"/>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>com.evolveum.midpoint.tools</groupId>
                        <artifactId>midpoint-boot-layout</artifactId>
                        <version>${midpoint.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>
