Integrated OpenAPI and Swagger plugins for comprehensive API documentation. Added new routes, including settings management (`/settings/*`), guild metadata endpoints (`/guilds/*`), and detailed action status handling. Updated database schema to support guild metadata persistence, revised command subcommand handling for better modularity, and enhanced API key-based authentication for all routes.
341 lines
13 KiB
XML
341 lines
13 KiB
XML
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>me.bobert</groupId>
|
|
<artifactId>netneutrality</artifactId>
|
|
<version>3.0.0</version>
|
|
<name>netneutrality-discord-bot</name>
|
|
<description>Discord bot</description>
|
|
<packaging>jar</packaging>
|
|
|
|
<properties>
|
|
<main.class>me.bobert.netneutrality.App</main.class>
|
|
<java.version>25</java.version>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<maven.compiler.source>25</maven.compiler.source>
|
|
<maven.compiler.target>25</maven.compiler.target>
|
|
<mockito.version>5.23.0</mockito.version>
|
|
<testcontainers.version>2.0.5</testcontainers.version>
|
|
</properties>
|
|
|
|
<build>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.14.1</version>
|
|
<configuration>
|
|
<release>${java.version}</release>
|
|
<proc>full</proc>
|
|
<annotationProcessorPaths>
|
|
<path>
|
|
<groupId>org.hibernate.orm</groupId>
|
|
<artifactId>hibernate-processor</artifactId>
|
|
<version>7.1.9.Final</version>
|
|
</path>
|
|
<path>
|
|
<groupId>io.javalin.community.openapi</groupId>
|
|
<artifactId>openapi-annotation-processor</artifactId>
|
|
<version>7.2.3</version>
|
|
</path>
|
|
</annotationProcessorPaths>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>3.5.5</version>
|
|
<configuration>
|
|
<argLine>
|
|
-javaagent:"${settings.localRepository}/org/mockito/mockito-core/${mockito.version}/mockito-core-${mockito.version}.jar"
|
|
</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.flywaydb</groupId>
|
|
<artifactId>flyway-maven-plugin</artifactId>
|
|
<version>11.20.3</version>
|
|
<configuration>
|
|
<!--suppress UnresolvedMavenProperty -->
|
|
<url>${env.FLYWAY_URL}</url>
|
|
<!--suppress UnresolvedMavenProperty -->
|
|
<user>${env.FLYWAY_USER}</user>
|
|
<!--suppress UnresolvedMavenProperty -->
|
|
<password>${env.FLYWAY_PASSWORD}</password>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<version>3.5.0</version>
|
|
<configuration>
|
|
<propertiesEncoding>UTF-8</propertiesEncoding>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>3.5.0</version>
|
|
<configuration>
|
|
<archive>
|
|
<manifest>
|
|
<mainClass>${main.class}</mainClass>
|
|
</manifest>
|
|
</archive>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<version>3.6.2</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
<configuration>
|
|
<finalName>netneutrality</finalName>
|
|
<transformers>
|
|
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
|
<mainClass>${main.class}</mainClass>
|
|
</transformer>
|
|
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
|
|
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
|
<manifestEntries>
|
|
<Multi-Release>true</Multi-Release>
|
|
</manifestEntries>
|
|
</transformer>
|
|
</transformers>
|
|
<createDependencyReducedPom>false</createDependencyReducedPom>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>3.6.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>checkstyle</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<configLocation>checkstyle.xml</configLocation>
|
|
<failOnViolation>true</failOnViolation>
|
|
<linkXRef>false</linkXRef>
|
|
<outputFile>target/checkstyle-result.xml</outputFile>
|
|
<outputFormat>xml</outputFormat>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>central</id>
|
|
<url>https://repo.maven.apache.org/maven2/</url>
|
|
</repository>
|
|
|
|
<repository>
|
|
<id>jitpack</id>
|
|
<url>https://jitpack.io</url>
|
|
</repository>
|
|
|
|
<repository>
|
|
<id>arbjergDev-releases</id>
|
|
<name>Lavalink Repository</name>
|
|
<url>https://maven.lavalink.dev/releases</url>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>net.dv8tion</groupId>
|
|
<artifactId>JDA</artifactId>
|
|
<version>6.4.1</version>
|
|
</dependency>
|
|
<!-- Lavalink v4 client; audio decoding happens on the remote node. -->
|
|
<dependency>
|
|
<groupId>dev.arbjerg</groupId>
|
|
<artifactId>lavalink-client</artifactId>
|
|
<version>3.4.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.squareup.okhttp3</groupId>
|
|
<artifactId>okhttp-jvm</artifactId>
|
|
<version>5.3.2</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>io.javalin</groupId>
|
|
<artifactId>javalin</artifactId>
|
|
<version>7.2.3</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>io.javalin.community.openapi</groupId>
|
|
<artifactId>openapi-specification</artifactId>
|
|
<version>7.2.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.javalin.community.openapi</groupId>
|
|
<artifactId>javalin-openapi-plugin</artifactId>
|
|
<version>7.2.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.javalin.community.openapi</groupId>
|
|
<artifactId>openapi-generator</artifactId>
|
|
<version>7.2.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.javalin.community.openapi</groupId>
|
|
<artifactId>javalin-swagger-plugin</artifactId>
|
|
<version>7.2.3</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.hibernate.orm</groupId>
|
|
<artifactId>hibernate-core</artifactId>
|
|
<version>7.1.9.Final</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.hibernate.orm</groupId>
|
|
<artifactId>hibernate-hikaricp</artifactId>
|
|
<version>7.1.9.Final</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>jakarta.data</groupId>
|
|
<artifactId>jakarta.data-api</artifactId>
|
|
<version>1.0.1</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.mysql</groupId>
|
|
<artifactId>mysql-connector-j</artifactId>
|
|
<version>9.7.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.flywaydb</groupId>
|
|
<artifactId>flyway-core</artifactId>
|
|
<version>11.20.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.flywaydb</groupId>
|
|
<artifactId>flyway-mysql</artifactId>
|
|
<version>11.20.3</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>io.sentry</groupId>
|
|
<artifactId>sentry</artifactId>
|
|
<version>8.41.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.gitlab4j</groupId>
|
|
<artifactId>gitlab4j-api</artifactId>
|
|
<version>6.2.0</version>
|
|
<exclusions>
|
|
<!-- Clashes with the Servlet API used by Javalin's Jetty 12 in the shaded jar. -->
|
|
<exclusion>
|
|
<groupId>jakarta.servlet</groupId>
|
|
<artifactId>jakarta.servlet-api</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>net.fellbaum</groupId>
|
|
<artifactId>jemoji</artifactId>
|
|
<version>1.7.6</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
<version>2.21.2</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.reflections</groupId>
|
|
<artifactId>reflections</artifactId>
|
|
<version>0.10.2</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-api</artifactId>
|
|
<version>2.26.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-core</artifactId>
|
|
<version>2.26.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-slf4j2-impl</artifactId>
|
|
<version>2.26.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-lang3</artifactId>
|
|
<version>3.19.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-io</groupId>
|
|
<artifactId>commons-io</artifactId>
|
|
<version>2.21.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter</artifactId>
|
|
<version>6.0.3</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-core</artifactId>
|
|
<version>${mockito.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-junit-jupiter</artifactId>
|
|
<version>${mockito.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>testcontainers-junit-jupiter</artifactId>
|
|
<version>${testcontainers.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>testcontainers-mysql</artifactId>
|
|
<version>${testcontainers.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
</project> |