423 lines
17 KiB
XML
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> |