connect website with eureka

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2024-10-01 01:30:31 +02:00
parent f8836fb5b5
commit e39ccf3a91
4 changed files with 298 additions and 233 deletions

482
pom.xml
View File

@@ -1,246 +1,268 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.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"> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<modelVersion>4.0.0</modelVersion> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- Project from https://start.vaadin.com/project/5dcf3df5-dbcb-4a18-897d-eb1a8285558c --> <modelVersion>4.0.0</modelVersion>
<groupId>dev.mars3142.fhq</groupId> <!-- Project from https://start.vaadin.com/project/5dcf3df5-dbcb-4a18-897d-eb1a8285558c -->
<artifactId>website</artifactId> <groupId>dev.mars3142.fhq</groupId>
<name>website</name> <artifactId>website</artifactId>
<version>1.0-SNAPSHOT</version> <name>website</name>
<packaging>jar</packaging> <version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties> <properties>
<java.version>21</java.version> <java.version>21</java.version>
<vaadin.version>24.5.0.beta3</vaadin.version> <vaadin.version>24.5.0.beta3</vaadin.version>
<spring-cloud.version>2023.0.1</spring-cloud.version> <spring-cloud.version>2023.0.3</spring-cloud.version>
<spring-cloud-gcp.version>5.4.1</spring-cloud-gcp.version> <spring-cloud-gcp.version>5.4.1</spring-cloud-gcp.version>
<spring-modulith.version>1.2.4</spring-modulith.version> <spring-modulith.version>1.2.4</spring-modulith.version>
</properties> </properties>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version> <version>3.3.4</version>
</parent> </parent>
<repositories> <repositories>
<repository> <repository>
<id>vaadin-prereleases</id> <id>vaadin-prereleases</id>
<url>https://maven.vaadin.com/vaadin-prereleases</url> <url>https://maven.vaadin.com/vaadin-prereleases</url>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
</snapshots> </snapshots>
</repository> </repository>
<repository> <repository>
<id>Vaadin Directory</id> <id>Vaadin Directory</id>
<url>https://maven.vaadin.com/vaadin-addons</url> <url>https://maven.vaadin.com/vaadin-addons</url>
<snapshots> <snapshots>
<enabled>false</enabled> <enabled>false</enabled>
</snapshots> </snapshots>
</repository> </repository>
</repositories> </repositories>
<pluginRepositories> <pluginRepositories>
<pluginRepository> <pluginRepository>
<id>vaadin-prereleases</id> <id>vaadin-prereleases</id>
<url>https://maven.vaadin.com/vaadin-prereleases</url> <url>https://maven.vaadin.com/vaadin-prereleases</url>
<snapshots> <snapshots>
<enabled>true</enabled> <enabled>true</enabled>
</snapshots> </snapshots>
</pluginRepository> </pluginRepository>
</pluginRepositories> </pluginRepositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-bom</artifactId>
<version>${spring-modulith.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.vaadin</groupId> <groupId>com.vaadin</groupId>
<!-- Replace artifactId with vaadin-core to use only free components --> <artifactId>vaadin-bom</artifactId>
<artifactId>vaadin</artifactId> <version>${vaadin.version}</version>
</dependency> <type>pom</type>
<dependency> <scope>import</scope>
<groupId>com.vaadin</groupId> </dependency>
<artifactId>vaadin-spring-boot-starter</artifactId> <dependency>
</dependency> <groupId>org.springframework.cloud</groupId>
<dependency> <artifactId>spring-cloud-dependencies</artifactId>
<groupId>org.parttio</groupId> <version>${spring-cloud.version}</version>
<artifactId>line-awesome</artifactId> <type>pom</type>
<version>2.0.0</version> <scope>import</scope>
</dependency> </dependency>
<dependency>
<dependency> <groupId>org.springframework.modulith</groupId>
<groupId>org.springframework.boot</groupId> <artifactId>spring-modulith-bom</artifactId>
<artifactId>spring-boot-devtools</artifactId> <version>${spring-modulith.version}</version>
<optional>true</optional> <type>pom</type>
</dependency> <scope>import</scope>
<dependency> </dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-testbench-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>annotationProcessor</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-starter-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-actuator</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-observability</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies> </dependencies>
</dependencyManagement>
<build> <dependencies>
<defaultGoal>spring-boot:run</defaultGoal> <dependency>
<groupId>com.vaadin</groupId>
<!-- Replace artifactId with vaadin-core to use only free components -->
<artifactId>vaadin</artifactId>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.parttio</groupId>
<artifactId>line-awesome</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-testbench-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>annotationProcessor</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-starter-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-actuator</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.modulith</groupId>
<artifactId>spring-modulith-observability</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
<build>
<defaultGoal>spring-boot:run</defaultGoal>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-frontend</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.sentry</groupId>
<artifactId>sentry-maven-plugin</artifactId>
<version>0.0.8</version>
<!-- Required to allow auto-install of Sentry SDK and Integrations -->
<extensions>true</extensions>
<executions>
<execution>
<goals>
<!-- Generates a source bundle and uploads it to Sentry. -->
<!-- This enables source context, allowing you to see your source -->
<!-- code as part of your stack traces in Sentry. -->
<goal>uploadSourceBundle</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!-- Production mode is activated using -Pproduction -->
<id>production</id>
<dependencies>
<!-- Exclude development dependencies from production -->
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-core</artifactId>
<exclusions>
<exclusion>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-dev</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>com.vaadin</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>vaadin-maven-plugin</artifactId>
</plugin> <version>${vaadin.version}</version>
<executions>
<plugin> <execution>
<groupId>com.vaadin</groupId> <goals>
<artifactId>vaadin-maven-plugin</artifactId> <goal>build-frontend</goal>
<version>${vaadin.version}</version> </goals>
<executions> <phase>compile</phase>
<execution> </execution>
<goals> </executions>
<goal>prepare-frontend</goal> </plugin>
</goals>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>
</profile>
<profiles> <profile>
<profile> <id>it</id>
<!-- Production mode is activated using -Pproduction --> <build>
<id>production</id> <plugins>
<dependencies> <plugin>
<!-- Exclude development dependencies from production --> <groupId>org.springframework.boot</groupId>
<dependency> <artifactId>spring-boot-maven-plugin</artifactId>
<groupId>com.vaadin</groupId> <executions>
<artifactId>vaadin-core</artifactId> <execution>
<exclusions> <id>start-spring-boot</id>
<exclusion> <phase>pre-integration-test</phase>
<groupId>com.vaadin</groupId> <goals>
<artifactId>vaadin-dev</artifactId> <goal>start</goal>
</exclusion> </goals>
</exclusions> </execution>
</dependency> <execution>
</dependencies> <id>stop-spring-boot</id>
<build> <phase>post-integration-test</phase>
<plugins> <goals>
<plugin> <goal>stop</goal>
<groupId>com.vaadin</groupId> </goals>
<artifactId>vaadin-maven-plugin</artifactId> </execution>
<version>${vaadin.version}</version> </executions>
<executions> </plugin>
<execution>
<goals>
<goal>build-frontend</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile> <!-- Runs the integration tests (*IT) after the server is started -->
<id>it</id> <plugin>
<build> <groupId>org.apache.maven.plugins</groupId>
<plugins> <artifactId>maven-failsafe-plugin</artifactId>
<plugin> <executions>
<groupId>org.springframework.boot</groupId> <execution>
<artifactId>spring-boot-maven-plugin</artifactId> <goals>
<executions> <goal>integration-test</goal>
<execution> <goal>verify</goal>
<id>start-spring-boot</id> </goals>
<phase>pre-integration-test</phase> </execution>
<goals> </executions>
<goal>start</goal> <configuration>
</goals> <trimStackTrace>false</trimStackTrace>
</execution> <enableAssertions>true</enableAssertions>
<execution> </configuration>
<id>stop-spring-boot</id> </plugin>
<phase>post-integration-test</phase> </plugins>
<goals> </build>
<goal>stop</goal> </profile>
</goals>
</execution>
</executions>
</plugin>
<!-- Runs the integration tests (*IT) after the server is started --> </profiles>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<trimStackTrace>false</trimStackTrace>
<enableAssertions>true</enableAssertions>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project> </project>

View File

@@ -8,3 +8,8 @@ vaadin:
backend: backend:
uri: http://localhost:8091/v1 uri: http://localhost:8091/v1
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka

View File

@@ -1,11 +1,10 @@
server:
port: ${PORT:8080}
logging: logging:
level: level:
org:atmosphere: warn org:atmosphere: warn
spring: spring:
application:
name: website
mustache: mustache:
check-template-location: false check-template-location: false
jpa: jpa:
@@ -13,3 +12,41 @@ spring:
backend: backend:
uri: https://api.firmware-hq.dev/v1 uri: https://api.firmware-hq.dev/v1
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eureka-service.web:8761/eureka
instance:
instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
info:
application:
name: ${spring.application.name}
version: '@project.version@'
spring-cloud-version: '@spring-cloud.version@'
spring-boot-version: '@project.parent.version@'
management:
endpoint:
health:
probes:
enabled: true
server:
port: ${PORT:8080}
shutdown: graceful
error:
include-message: on_param
include-stacktrace: on_param
sentry:
dsn: https://354321d371291036cffcdb5b1a72fd6e@o394865.ingest.us.sentry.io/4507718826262528
environment: edge-service
# Set traces_sample_rate to 1.0 to capture 100%
# of transactions for tracing.
# We recommend adjusting this value in production.
tracesSampleRate: 1.0

View File

@@ -0,0 +1 @@
584830D0-AEAE-453F-92F7-0E52346A3674