<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>de.cook-industries</groupId>
	<artifactId>lib-spring-gui</artifactId>
	<version>3.6.4</version>	
    <packaging>jar</packaging>

	<name>${project.groupId}:${project.artifactId}</name>
	<description>Library in Spring Boot context for remote GUI creation and GUI interaction.</description>

	<licenses>
		<license>
			<name>MIT License</name>
			<url>http://www.opensource.org/licenses/mit-license.php</url>
		</license>
	</licenses>

	<developers>
		<developer>
			<name>Sebastian Koch</name>
			<email>development@cook-industries.de</email>
			<organization>Cook Industries</organization>
			<organizationUrl>https://www.cook-industries.de/development</organizationUrl>
		</developer>
	</developers>

	<url>https://github.com/Cook-Industries/ci-lib-spring-gui</url>

	<scm>
		<url>https://github.com/Cook-Industries/ci-lib-spring-gui</url>
		<connection>scm:git:https://github.com/Cook-Industries/ci-lib-spring-gui.git</connection>
		<developerConnection>scm:git:git@github.com:Cook-Industries/ci-lib-spring-gui.git</developerConnection>
	</scm>

	<properties>
		<java.version>17</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	 <dependencyManagement>
        <dependencies>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>3.5.14</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>5.13.2</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

        </dependencies>
    </dependencyManagement>

    <dependencies>

        <!-- Spring Boot core modules (no starters) -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>


        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-websocket</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-core</artifactId>
        </dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-validation</artifactId>
		</dependency>

		<dependency>
			<groupId>jakarta.annotation</groupId>
			<artifactId>jakarta.annotation-api</artifactId>
			<version>3.0.0</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-text</artifactId>
			<version>1.14.0</version>
		</dependency>

        <!-- Webjars and JS resources -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>webjars-locator</artifactId>
            <version>0.50</version>
        </dependency>

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.7.1</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>5.3.2</version>
            <scope>runtime</scope>
        </dependency>

		<dependency>
			<groupId>org.webjars.npm</groupId>
			<artifactId>bootstrap-icons</artifactId>
			<version>1.13.1</version>
		</dependency>

		<dependency>
			<groupId>org.webjars.npm</groupId>
			<artifactId>yaireo__tagify</artifactId>
			<version>4.34.0</version>
            <scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.webjars.npm</groupId>
			<artifactId>stomp__stompjs</artifactId>
			<version>7.2.0</version>
		</dependency>

        <!-- YAML support -->
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>2.2</version>
        </dependency>

        <!-- Logging API only -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>

        <!-- Lombok for development -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Test dependencies -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-params</artifactId>
			<scope>test</scope>
		</dependency>

    </dependencies>

	<build>

		<plugins>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.11.0</version>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>					
					 <compilerArgs>
						<arg>-Xlint:-options</arg>
						<!--<arg>-proc:full</arg> activate for Java 21+ -->
					</compilerArgs>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.2.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.9.1</version>
				<configuration>
					<additionalJOption>-Xdoclint:missing,reference,syntax</additionalJOption>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>1.5</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			 <plugin>
			<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>0.8.0</version>
				<extensions>true</extensions>
				<configuration>
					<publishingServerId>central</publishingServerId>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.5.3</version>
			</plugin>

			<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-toolchains-plugin</artifactId>
			<version>3.1.0</version>
			<executions>
				<execution>
				<goals>
					<goal>toolchain</goal>
				</goals>
				</execution>
			</executions>
			<configuration>
				<toolchains>
				<jdk>
					<version>${java.version}</version>
				</jdk>
				</toolchains>
			</configuration>
			</plugin>

		</plugins>

		<resources>
			<resource>
				<directory>${project.basedir}</directory>
				<includes>
					<include>LICENSE</include>
				</includes>
				<targetPath>.</targetPath>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/**</include>
				</includes>
			</resource>
		</resources>

	</build>

</project>
