Refactor RolePlay application structure and enhance configuration

- Remove the RolePlayApplication class as part of the restructuring.
- Update pom.xml to include new dependencies for YAML configuration and H2 database support.
- Modify API package imports in ModelResource, SessionResource, and TurnResource to use the generated API package.
- Update application.yml to configure H2 datasource and enable Liquibase migrations at startup.
This commit is contained in:
Konrad Neitzel 2026-02-20 20:01:19 +01:00
parent f91604aea6
commit ffb97f6b8e
6 changed files with 35 additions and 38 deletions

21
pom.xml
View File

@ -56,6 +56,14 @@
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-validator</artifactId> <artifactId>quarkus-hibernate-validator</artifactId>
</dependency> </dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-config-yaml</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-h2</artifactId>
</dependency>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-liquibase</artifactId> <artifactId>quarkus-liquibase</artifactId>
@ -92,6 +100,17 @@
<artifactId>quarkus-maven-plugin</artifactId> <artifactId>quarkus-maven-plugin</artifactId>
<version>${quarkus.plugin.version}</version> <version>${quarkus.plugin.version}</version>
<extensions>true</extensions> <extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<phase>package</phase>
<configuration>
<skip>${quarkus.package.skip}</skip>
</configuration>
</execution>
</executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.codehaus.mojo</groupId> <groupId>org.codehaus.mojo</groupId>
@ -126,7 +145,7 @@
<inputSpec>${project.basedir}/src/main/resources/openapi-roleplay-public-v1.yml</inputSpec> <inputSpec>${project.basedir}/src/main/resources/openapi-roleplay-public-v1.yml</inputSpec>
<generatorName>jaxrs-spec</generatorName> <generatorName>jaxrs-spec</generatorName>
<output>${project.build.directory}/generated-sources/openapi</output> <output>${project.build.directory}/generated-sources/openapi</output>
<apiPackage>de.neitzel.roleplay.fascade.api</apiPackage> <apiPackage>de.neitzel.roleplay.generated.api</apiPackage>
<modelPackage>de.neitzel.roleplay.fascade.model</modelPackage> <modelPackage>de.neitzel.roleplay.fascade.model</modelPackage>
<configOptions> <configOptions>
<interfaceOnly>true</interfaceOnly> <interfaceOnly>true</interfaceOnly>

View File

@ -1,33 +0,0 @@
package de.neitzel.roleplay;
import io.quarkus.runtime.Quarkus;
import io.quarkus.runtime.QuarkusApplication;
import io.quarkus.runtime.annotations.QuarkusMain;
/**
* Application entry point for the RolePlay service.
*/
@QuarkusMain
public final class RolePlayApplication implements QuarkusApplication {
/**
* Starts the Quarkus application.
*
* @param args command-line arguments
*/
public static void main(final String[] args) {
Quarkus.run(RolePlayApplication.class, args);
}
/**
* Runs after the Quarkus runtime starts.
*
* @param args command-line arguments
* @return the process exit code
*/
@Override
public int run(final String... args) {
return 0;
}
}

View File

@ -1,8 +1,8 @@
package de.neitzel.roleplay.fascade; package de.neitzel.roleplay.fascade;
import de.neitzel.roleplay.business.ModelService; import de.neitzel.roleplay.business.ModelService;
import de.neitzel.roleplay.fascade.api.ModelsApi;
import de.neitzel.roleplay.fascade.model.ModelListResponse; import de.neitzel.roleplay.fascade.model.ModelListResponse;
import de.neitzel.roleplay.generated.api.ModelsApi;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;

View File

@ -1,9 +1,9 @@
package de.neitzel.roleplay.fascade; package de.neitzel.roleplay.fascade;
import de.neitzel.roleplay.business.SessionService; import de.neitzel.roleplay.business.SessionService;
import de.neitzel.roleplay.fascade.api.SessionsApi;
import de.neitzel.roleplay.fascade.model.CreateSessionRequest; import de.neitzel.roleplay.fascade.model.CreateSessionRequest;
import de.neitzel.roleplay.fascade.model.SessionResponse; import de.neitzel.roleplay.fascade.model.SessionResponse;
import de.neitzel.roleplay.generated.api.SessionsApi;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.NotFoundException; import jakarta.ws.rs.NotFoundException;

View File

@ -1,9 +1,9 @@
package de.neitzel.roleplay.fascade; package de.neitzel.roleplay.fascade;
import de.neitzel.roleplay.business.SessionService; import de.neitzel.roleplay.business.SessionService;
import de.neitzel.roleplay.fascade.api.TurnsApi;
import de.neitzel.roleplay.fascade.model.TurnRequest; import de.neitzel.roleplay.fascade.model.TurnRequest;
import de.neitzel.roleplay.fascade.model.TurnResponse; import de.neitzel.roleplay.fascade.model.TurnResponse;
import de.neitzel.roleplay.generated.api.TurnsApi;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.NotFoundException; import jakarta.ws.rs.NotFoundException;

View File

@ -1,9 +1,20 @@
quarkus: quarkus:
application: application:
name: roleplay name: roleplay
resteasy-reactive:
scan:
paths: de.neitzel.roleplay.fascade,de.neitzel.roleplay.business,de.neitzel.roleplay.common,de.neitzel.roleplay.data
http:
root-path: /
datasource:
db-kind: h2
jdbc:
url: jdbc:h2:mem:roleplay;DB_CLOSE_DELAY=-1
username: sa
password: ""
liquibase: liquibase:
change-log: db/migration/changelog.xml change-log: db/migration/changelog.xml
migrate-at-start: false migrate-at-start: true
rest-client: rest-client:
ollama-api: ollama-api:
url: http://debian:11434 url: http://debian:11434