<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>c8y.agents.lpwan.backend</groupId>
  <artifactId>lpwan-backend</artifactId>
  <version>2025.0.17</version>
  <name>Cumulocity :: LPWAN Backend</name>
  <inceptionYear>2021</inceptionYear>
  <organization>
    <name>(C) Cumulocity GmbH</name>
  </organization>
  <distributionManagement>
    <repository>
      <id>release</id>
      <url>${nexus.url}${nexus.basePath}/releases</url>
    </repository>
    <snapshotRepository>
      <id>snapshot</id>
      <url>${nexus.url}${nexus.basePath}/snapshots</url>
    </snapshotRepository>
  </distributionManagement>
  <properties>
    <nexus.basePath>/nexus/content/repositories</nexus.basePath>
    <java.version>17</java.version>
    <changelist></changelist>
    <commons-text.version>1.12.0</commons-text.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <nexus.url>http://localhost:8080</nexus.url>
    <revision>2025.0.17</revision>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.nsn.cumulocity.clients-java</groupId>
        <artifactId>microservice-dependencies</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-text</artifactId>
      <version>${commons-text.version}</version>
    </dependency>
    <dependency>
      <groupId>com.nsn.cumulocity.clients-java</groupId>
      <artifactId>lpwan-custom-codec</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-security</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jakarta.validation</groupId>
      <artifactId>jakarta.validation-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.nsn.cumulocity.clients-java</groupId>
      <artifactId>java-client</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.nsn.cumulocity.clients-java</groupId>
      <artifactId>microservice-autoconfigure</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-webflux</artifactId>
      <exclusions>
        <exclusion>
          <groupId>io.netty</groupId>
          <artifactId>netty-resolver-dns-native-macos</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.nsn.cumulocity.model</groupId>
      <artifactId>device-capability-model</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-csv</artifactId>
      <version>1.9.0</version>
    </dependency>
    <dependency>
      <groupId>org.skyscreamer</groupId>
      <artifactId>jsonassert</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.5.0</version>
          <executions>
            <execution>
              <id>enforce-rules</id>
              <goals>
                <goal>enforce</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <rules>
              <requireMavenVersion>
                <version>3.9</version>
              </requireMavenVersion>
              <requireJavaVersion>
                <version>${java.version}</version>
              </requireJavaVersion>
              <dependencyConvergence />
              <bannedDependencies>
                <excludes>
                  <exclude>commons-logging:commons-logging</exclude>
                </excludes>
                <message>Dependency to commons-logging:commons-logging was replaced by org.slf4j:jcl-over-slf4j</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.activation</exclude>
                </excludes>
                <message>Dependency to javax.activation was replaced by jakarta.activation</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.annotation</exclude>
                </excludes>
                <message>Dependency to javax.annotation was replaced by jakarta.annotation</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.el</exclude>
                </excludes>
                <message>Dependency to javax.el was replaced by jakarta.el</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.mail</exclude>
                </excludes>
                <message>Dependency to javax.mail was replaced by jakarta.mail</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.servlet</exclude>
                </excludes>
                <message>Dependency to javax.servlet was replaced by jakarta.servlet</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.validation</exclude>
                </excludes>
                <message>Dependency to javax.validation was replaced by jakarta.validation</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.ws.rs</exclude>
                </excludes>
                <message>Dependency to javax.ws.rs was replaced by jakarta.ws.rs</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>javax.xml.bind</exclude>
                </excludes>
                <message>Dependency to javax.xml.bind was replaced by jakarta.xml.bind</message>
              </bannedDependencies>
              <bannedDependencies>
                <excludes>
                  <exclude>org.bouncycastle:*-jdk15on</exclude>
                </excludes>
                <message>Dependency to org.bouncycastle:*-jdk15on was replaced by org.bouncycastle:*-jdk18on</message>
              </bannedDependencies>
            </rules>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>flatten-maven-plugin</artifactId>
          <version>1.6.0</version>
          <executions>
            <execution>
              <id>flatten</id>
              <phase>process-resources</phase>
              <goals>
                <goal>flatten</goal>
              </goals>
            </execution>
            <execution>
              <id>flatten.clean</id>
              <phase>clean</phase>
              <goals>
                <goal>clean</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <updatePomFile>true</updatePomFile>
            <flattenMode>resolveCiFriendliesOnly</flattenMode>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>3.3.0</version>
          <executions>
            <execution>
              <goals>
                <goal>process</goal>
              </goals>
              <configuration>
                <resourceBundles>
                  <resourceBundle>com.nsn.cumulocity.clients-java:resource-bundle:2025.0.17</resourceBundle>
                </resourceBundles>
              </configuration>
            </execution>
          </executions>
          <configuration>
            <properties>
              <thirdPartiesLink>https://third-parties.c8y.io/sboms/java-sdk/third_parties_java-sdk_2025.0.17.html</thirdPartiesLink>
            </properties>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.13.0</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <parameters>true</parameters>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.5.2</version>
          <configuration>
            <argLine>-Xms256m -Xmx512m -XX:MetaspaceSize=96m -XX:MaxMetaspaceSize=128m</argLine>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.4.2</version>
          <configuration>
            <archive>
              <manifestEntries>
                <Dependencies>https://third-parties.c8y.io/sboms/java-sdk/third_parties_java-sdk_${project.version}.html</Dependencies>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.11.1</version>
          <executions>
            <execution>
              <goals>
                <goal>aggregate-jar</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <doctitle>Cumulocity lpwan backend shared component</doctitle>
            <windowtitle>Cumulocity lpwan backend shared component</windowtitle>
            <overview>${project.basedir}/javadoc/overview.html</overview>
            <source>${java.version}</source>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>pre-merge</id>
      <distributionManagement>
        <repository>
          <id>pre-merge</id>
          <url>${nexus.url}${nexus.basePath}/pre-merge</url>
        </repository>
        <snapshotRepository>
          <id>pre-merge</id>
          <url>${nexus.url}${nexus.basePath}/pre-merge</url>
        </snapshotRepository>
      </distributionManagement>
    </profile>
  </profiles>
</project>
