<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>de.thm.arsnova</groupId> <artifactId>arsnova-backend</artifactId> <version>3.0.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <spring-boot-version>2.1.7.RELEASE</spring-boot-version> <commons-lang-version>2.6</commons-lang-version> <guava-version>28.1-jre</guava-version> <directory-server-version>1.5.5</directory-server-version> <io.netty-version>4.1.39.Final</io.netty-version> <org.aspectj-version>1.9.4</org.aspectj-version> <javax-jaxb.version>2.3.1</javax-jaxb.version> <graalvm.version>19.1.1</graalvm.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <timestamp>${maven.build.timestamp}</timestamp> <sonar.language>java</sonar.language> <checkstyle.missing-javadoc.severity>warning</checkstyle.missing-javadoc.severity> </properties> <developers> <developer> <name>Klaus Quibeldey-Cirkel</name> <organization>Technische Hochschule Mittelhessen</organization> <organizationUrl>https://www.thm.de</organizationUrl> </developer> <developer> <name>Daniel Gerhardt</name> <organization>Technische Hochschule Mittelhessen</organization> <organizationUrl>https://www.thm.de</organizationUrl> <email>daniel.gerhardt@mni.thm.de</email> </developer> <developer> <name>Tom Käsler</name> <organization>Technische Hochschule Mittelhessen</organization> <organizationUrl>https://www.thm.de</organizationUrl> <email>tom.kaesler@mni.thm.de</email> </developer> </developers> <issueManagement> <system>GitLab</system> <url>https://git.thm.de/arsnova/arsnova/issues</url> </issueManagement> <ciManagement> <system>GitLab CI</system> <url>https://git.thm.de/arsnova/arsnova-backend/pipelines</url> </ciManagement> <scm> <url>https://github.com/thm-projects/arsnova-backend</url> <connection>scm:git:https://github.com/thm-projects/arsnova-backend.git</connection> <developerConnection>scm:git:ssh://git@git.thm.de/arsnova/arsnova-backend.git</developerConnection> </scm> <licenses> <license> <name>GNU General Public License v3.0 or later</name> <url>https://www.gnu.org/licenses/gpl.txt</url> </license> </licenses> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> <configuration> <dependencyDetailsEnabled>false</dependencyDetailsEnabled> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.1.1</version> <configuration></configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </reporting> <repositories> <repository> <id>thm-releases</id> <name>THM Maven Release Repository</name> <url>https://repo.mni.thm.de/repository/releases</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>thm-snapshots</id> <name>THM Maven Snapshot Repository</name> <url>https://repo.mni.thm.de/repository/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>thm-mirror</id> <name>THM Maven Mirror</name> <url>https://repo.mni.thm.de/repository/maven-public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>spring-snapshots</id> <name>Spring libs-snapshot</name> <url>http://repo.spring.io/libs-snapshot</url> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <!-- Import dependency management from Spring Boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot-version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> <version>${io.netty-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>${commons-lang-version}</version> </dependency> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-commons</artifactId> </dependency> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mail</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>io.projectreactor.netty</groupId> <artifactId>reactor-netty</artifactId> </dependency> <!-- Security --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-aspects</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-cas</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-ldap</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator-autoconfigure</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-jmx</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </dependency> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator-annotation-processor</artifactId> </dependency> <!-- A javax.el (Unified Expression Language) implementation is needed for bean validation. --> <dependency> <groupId>org.mortbay.jasper</groupId> <artifactId>apache-el</artifactId> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava-version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> </dependency> <dependency> <groupId>org.ektorp</groupId> <artifactId>org.ektorp</artifactId> <version>1.5.0</version> </dependency> <dependency> <groupId>org.ektorp</groupId> <artifactId>org.ektorp.spring</artifactId> <version>1.5.0</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.13.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.8.2</version> </dependency> <dependency> <groupId>org.pac4j</groupId> <artifactId>pac4j-oauth</artifactId> <version>3.8.0</version> </dependency> <dependency> <groupId>org.pac4j</groupId> <artifactId>pac4j-oidc</artifactId> <version>3.8.0</version> </dependency> <dependency> <groupId>com.corundumstudio.socketio</groupId> <artifactId>netty-socketio</artifactId> <version>1.7.17</version> </dependency> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</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.yaml</groupId> <artifactId>snakeyaml</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${org.aspectj-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.graalvm.js</groupId> <artifactId>js</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.graalvm.js</groupId> <artifactId>js-scriptengine</artifactId> <version>${graalvm.version}</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>de.thm.arsnova.connector</groupId> <artifactId>connector-client</artifactId> <version>0.73.0</version> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path-assert</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-core</artifactId> <version>${directory-server-version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-server-jndi</artifactId> <version>${directory-server-version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.23</version> </dependency> <dependency> <groupId>org.checkerframework</groupId> <artifactId>checker-qual</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <excludes> <exclude>version.properties</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>version.properties</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.11</version> <configuration> <complianceLevel>1.8</complianceLevel> <source>1.8</source> <target>1.8</target> <aspectLibraries> <!-- Disabled for now, see https://github.com/micrometer-metrics/micrometer/issues/1149. <aspectLibrary> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> </aspectLibrary> --> <aspectLibrary> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </aspectLibrary> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-aspects</artifactId> </dependency> </aspectLibraries> <showWeaveInfo>true</showWeaveInfo> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${org.aspectj-version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>${org.aspectj-version}</version> </dependency> <!-- Workaround: Override unnecessary dependency which causes compatibility issues. --> <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>${java.version}</version> <scope>system</scope> <systemPath>${project.basedir}/pom.xml</systemPath> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.19.v20190610</version> <configuration> <scanIntervalSeconds>0</scanIntervalSeconds> <webApp> <webInfIncludeJarPattern>.*/spring-[^/]*\.jar$</webInfIncludeJarPattern> </webApp> <systemProperties> <systemProperty> <name>arsnova.log.level</name> <value>DEBUG</value> </systemProperty> <systemProperty> <name>org.eclipse.jetty.util.log.class</name> <value>org.eclipse.jetty.util.log.Slf4JLog</value> </systemProperty> </systemProperties> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.8.2</version> <configuration> <locales>en</locales> </configuration> </plugin> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.6.1.1688</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.4</version> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>default-report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>3.1.0</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>8.21</version> </dependency> </dependencies> <configuration> <configLocation>checkstyle.xml</configLocation> <violationSeverity>warning</violationSeverity> <propertyExpansion> checkstyle.missing-javadoc.severity=${checkstyle.missing-javadoc.severity} </propertyExpansion> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>arsnova</server> <path>/api</path> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.3</version> </plugin> <plugin> <groupId>com.github.kongchen</groupId> <artifactId>swagger-maven-plugin</artifactId> <version>3.1.8</version> <configuration> <apiSources> <apiSource> <springmvc>true</springmvc> <locations> <location>de.thm.arsnova.controller.v2</location> <location>de.thm.arsnova.model.v2</location> </locations> <schemes> <scheme>http</scheme> <scheme>https</scheme> </schemes> <basePath>/api</basePath> <info> <title>ARSnova API Documentation</title> <version>${project.version}</version> <description>This is the documentation of the ARSnova API</description> <contact> <email>info@arsnova.eu</email> </contact> </info> <swaggerDirectory>${project.build.directory}/classes</swaggerDirectory> <outputFormats>json</outputFormats> </apiSource> </apiSources> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>${javax-jaxb.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <goals> <goal>revision</goal> </goals> </execution> </executions> </plugin> </plugins> <!-- Workaround for JDK 11 support. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=539791 --> <extensions> <extension> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> </extension> <extension> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> </extension> </extensions> </build> <name>ARSnova Backend</name> <description>ARSnova is a great audience response system</description> <url>https://arsnova.github.io</url> <organization> <name>Technische Hochschule Mittelhessen</name> <url>https://www.thm.de</url> </organization> </project>