ipatini 8212cd655d EMS: Applied changes from main repo
Change-Id: I91c7cd475c0a1139f73ff76b71b90ab3aae1445b
2024-03-20 13:46:22 +00:00

423 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (C) 2023-2025 Institute of Communication and Computer Systems (imu.iccs.gr)
~
~ This Source Code Form is subject to the terms of the Mozilla Public License, v2.0.
~ If a copy of the MPL was not distributed with this file, you can obtain one at
~ https://www.mozilla.org/en-US/MPL/2.0/
-->
<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>
<groupId>eu.nebulous.ems</groupId>
<artifactId>ems-nebulous-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Nebulous EMS plugin</name>
<description>Nebulous EMS plugin providing the metric model translator and MVV service</description>
<properties>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- EMS versions -->
<ems.version>7.0.0-SNAPSHOT</ems.version>
<!-- Spring Boot versions -->
<spring.version>6.1.4</spring.version>
<spring-boot.version>3.2.3</spring-boot.version>
<snakeyaml.version>2.2</snakeyaml.version>
<lombok.version>1.18.30</lombok.version>
<!-- Nebulous-EMS extension dependency versions -->
<jackson.version>2.16.2</jackson.version>
<json-path.version>2.9.0</json-path.version>
<thymeleaf.version>3.1.2.RELEASE</thymeleaf.version>
<schematron.version>8.0.0</schematron.version>
<!-- io.fabricat8 docker-maven-plugin properties -->
<docker-maven-plugin.version>0.43.2</docker-maven-plugin.version>
<!-- EMS Nebulous Docker image properties -->
<docker-image-properties-file>docker-image.properties</docker-image-properties-file>
<docker.image.tag-nebulous>${docker.image.tag}-nebulous</docker.image.tag-nebulous>
<build.description>EMS Nebulous Docker Image is based on the EMS Core Docker Image</build.description>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Compile time dependencies - Will be provided by EMS at runtime -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<!-- Spring Boot dependencies - Will be provided by EMS -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<version>${spring-boot.version}</version>
<scope>provided</scope>
</dependency>
<!-- If omitted the Nebulous EMS extension will not be used by EMS server -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-indexer</artifactId>
<version>${spring.version}</version>
<optional>true</optional>
</dependency>
<!-- EMS dependencies - At runtime they will be provided by EMS -->
<dependency>
<groupId>gr.iccs.imu.ems</groupId>
<artifactId>util</artifactId>
<version>${ems.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>gr.iccs.imu.ems</groupId>
<artifactId>broker-cep</artifactId>
<version>${ems.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>gr.iccs.imu.ems</groupId>
<artifactId>translator</artifactId>
<version>${ems.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>gr.iccs.imu.ems</groupId>
<artifactId>control-service</artifactId>
<version>${ems.version}</version>
<classifier>original</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>eu.nebulouscloud</groupId>
<artifactId>exn-connector-java</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- ===================================================================== -->
<!-- Compile time dependencies - Specific to Nebulous EMS extension -->
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>${json-path.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- ANTLR4 dependency -->
<!--XXX: Using version 4.7 required by Esper 7.1.0 (used in Broker-CEP)
XXX: Using latest ANTLR4 version results in conflict!
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.13.1</version>
</dependency>-->
<!-- Thymeleaf dependencies -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring6</artifactId>
<version>${thymeleaf.version}</version>
</dependency>
<!-- Schematron dependencies -->
<dependency>
<groupId>com.helger.schematron</groupId>
<artifactId>ph-schematron-api</artifactId>
<version>${schematron.version}</version>
</dependency>
<dependency>
<groupId>com.helger.schematron</groupId>
<artifactId>ph-schematron-xslt</artifactId>
<version>${schematron.version}</version>
</dependency>
<dependency>
<groupId>com.helger.schematron</groupId>
<artifactId>ph-schematron-pure</artifactId>
<version>${schematron.version}</version>
</dependency>
<dependency>
<groupId>com.helger.schematron</groupId>
<artifactId>ph-schematron-validator</artifactId>
<version>${schematron.version}</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>nexus-nebulous</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}</targetPath>
<filtering>true</filtering>
<includes>
<include>banner.txt</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>*</include>
</includes>
<excludes>
<exclude>banner.txt</exclude>
</excludes>
</resource>
</resources>
<plugins>
<!-- Plugins for getting Buildnumber and Git info -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>buildnumber-create</id>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
<execution>
<id>buildnumber-create-metadata</id>
<phase>validate</phase>
<goals>
<goal>create-metadata</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<!--<format>{0,number,integer}</format>-->
<timestampFormat>yyyy-MM-dd HH:mm:ss.SSSZ</timestampFormat>
<revisionOnScmFailure>${project.version}</revisionOnScmFailure>
<!--<revisionOnScmFailure>unknownbuild</revisionOnScmFailure>-->
<items>
<item>buildNumber</item>
</items>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
</plugin>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>7.0.0</version>
<executions>
<execution>
<id>get-git-info</id>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
<configuration>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>${project.build.directory}/git.properties</generateGitPropertiesFilename>
<commitIdGenerationMode>full</commitIdGenerationMode>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<!--<version>4.13.1</version>-->
<version>4.7</version>
<executions>
<execution>
<goals>
<goal>antlr4</goal>
</goals>
</execution>
</executions>
<configuration>
<listener>true</listener>
<visitor>true</visitor>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>remove-slf4j-files-from-jar-with-dependencies</id>
<phase>package</phase>
<configuration>
<target>
<jar destfile="${project.build.directory}/temp.jar">
<zipfileset src="${project.build.directory}/${project.artifactId}-${project.version}-jar-with-dependencies.jar"
excludes="org/slf4j/**" />
</jar>
<move file="${project.build.directory}/temp.jar"
tofile="${project.build.directory}/${project.artifactId}-${project.version}-jar-with-dependencies.jar"
force="true"/>
<delete file="${project.build.directory}/temp-jar-with-dependencies.jar" />
<!--XXX:TODO: Used during development -->
<!--<copy file="${project.build.directory}/${project.artifactId}-${project.version}-jar-with-dependencies.jar"
todir="${project.basedir}/../../tests/plugins/"
force="true"/>-->
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>get-ems-core-docker-image-properties</id>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>gr.iccs.imu.ems</groupId>
<artifactId>control-service</artifactId>
<version>${ems.version}</version>
<classifier>docker-image</classifier>
<type>properties</type>
<outputDirectory>${project.build.directory}</outputDirectory>
<destFileName>${docker-image-properties-file}</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<!-- Read docker image properties from file -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>read-docker-image-properties</id>
<phase>validate</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
</execution>
</executions>
<configuration>
<!--<keyPrefix>dev-</keyPrefix>-->
<files>
<file>${project.build.directory}/${docker-image-properties-file}</file>
</files>
<outputFile/>
<properties/>
</configuration>
</plugin>
<!--<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>delete-old-docker-context</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo>Print Docker image dev properties</echo>
<echo>Image name: "${docker.image.name}"</echo>
<echo> Image Tag: "${docker.image.tag}"</echo>
</target>
</configuration>
</execution>
</executions>
</plugin>-->
</plugins>
</build>
<scm>
<connection>scm:git:http://127.0.0.1/dummy</connection>
<developerConnection>scm:git:https://127.0.0.1/dummy</developerConnection>
<tag>HEAD</tag>
<url>http://127.0.0.1/dummy</url>
</scm>
</project>