This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git
The following commit(s) were added to refs/heads/dev by this push:
new f9cda208eb chore(deps): Bump Spring Boot to v4 (#4136)
f9cda208eb is described below
commit f9cda208ebb2da4d53c1e66e450257d71b4f2826
Author: Dominik Riemer <[email protected]>
AuthorDate: Mon Feb 2 12:36:30 2026 +0100
chore(deps): Bump Spring Boot to v4 (#4136)
---
.github/workflows/build.yml | 4 +-
.github/workflows/cypress-test.yml | 4 +-
.github/workflows/extensions-docs.yml | 4 +-
.github/workflows/go-client-e2e-test.yml | 6 +-
.github/workflows/mvn-integration-test.yml | 4 +-
.github/workflows/pr-validation.yml | 8 +-
pom.xml | 906 +++++++--------------
streampipes-connect-transformer-groovy/pom.xml | 1 -
streampipes-connect-transformer-js/pom.xml | 2 -
streampipes-extensions-management/pom.xml | 4 -
.../streampipes-connect-adapters/pom.xml | 4 -
.../streampipes-connectors-opcua/pom.xml | 5 +
.../streampipes-connectors-plc/pom.xml | 3 -
.../streampipes-connectors-pulsar/pom.xml | 3 +
.../streampipes-extensions-all-iiot/Dockerfile | 4 +-
.../streampipes-extensions-all-iiot/pom.xml | 33 +-
.../streampipes-extensions-all-jvm/Dockerfile | 6 +-
.../streampipes-extensions-all-jvm/pom.xml | 42 -
.../streampipes-extensions-iiot-minimal/Dockerfile | 4 +-
.../streampipes-extensions-iiot-minimal/pom.xml | 38 -
.../streampipes-processors-enricher-jvm/pom.xml | 2 -
.../streampipes-sinks-brokers-jvm/pom.xml | 4 -
.../streampipes-sinks-databases-jvm/pom.xml | 20 -
.../messaging/jms/ActiveMQConnectionProvider.java | 5 +-
.../messaging/jms/ActiveMQConsumer.java | 8 +-
.../messaging/jms/ActiveMQPublisher.java | 14 +-
.../kafka/config/ConsumerConfigFactory.java | 2 -
streampipes-messaging-mqtt/pom.xml | 4 -
streampipes-messaging-pulsar/pom.xml | 5 -
.../svcdiscovery/SpServiceRegistration.java | 2 +
.../shared/serializer/JacksonConfiguration.java | 40 +
.../rest/security/SpPermissionEvaluator.java | 4 +-
streampipes-service-base/pom.xml | 11 +-
streampipes-service-core-minimal/Dockerfile | 4 +-
streampipes-service-core/Dockerfile | 4 +-
streampipes-service-core/pom.xml | 49 +-
.../service/core/StreamPipesCoreApplication.java | 3 +-
.../service/core/WebSecurityConfig.java | 130 +--
streampipes-service-extensions/pom.xml | 6 -
.../StreamPipesExtensionsServiceBase.java | 4 +-
.../extensions/security/WebSecurityConfig.java | 48 +-
41 files changed, 525 insertions(+), 929 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index e04b052ec3..2e663feace 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,11 +28,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '25'
cache: 'maven'
- name: Set up Node
diff --git a/.github/workflows/cypress-test.yml
b/.github/workflows/cypress-test.yml
index 5119d3d57e..ac65d79956 100644
--- a/.github/workflows/cypress-test.yml
+++ b/.github/workflows/cypress-test.yml
@@ -27,11 +27,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '25'
cache: 'maven'
- name: Set up Node
diff --git a/.github/workflows/extensions-docs.yml
b/.github/workflows/extensions-docs.yml
index 9d427f04c2..dcf881a6dc 100644
--- a/.github/workflows/extensions-docs.yml
+++ b/.github/workflows/extensions-docs.yml
@@ -33,11 +33,11 @@ jobs:
git config user.name 'github-actions[bot]'
git config user.email 'github-actions[bot]@users.noreply.github.com'
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: "temurin"
- java-version: "17"
+ java-version: "25"
cache: "maven"
- name: Build with Maven
diff --git a/.github/workflows/go-client-e2e-test.yml
b/.github/workflows/go-client-e2e-test.yml
index 420c15cd9e..b3d3db0803 100644
--- a/.github/workflows/go-client-e2e-test.yml
+++ b/.github/workflows/go-client-e2e-test.yml
@@ -41,11 +41,11 @@ jobs:
with:
go-version: '1.21'
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '25'
cache: 'maven'
- name: Build with Maven
@@ -65,4 +65,4 @@ jobs:
run: |
cd ./streampipes-client-e2e/tool
chmod +x ./start-streampipes-client-e2e.sh
- ./start-streampipes-client-e2e.sh -t go-client-e2e.sh
\ No newline at end of file
+ ./start-streampipes-client-e2e.sh -t go-client-e2e.sh
diff --git a/.github/workflows/mvn-integration-test.yml
b/.github/workflows/mvn-integration-test.yml
index 049eee7f95..f62f0c9f30 100644
--- a/.github/workflows/mvn-integration-test.yml
+++ b/.github/workflows/mvn-integration-test.yml
@@ -26,11 +26,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '25'
cache: 'maven'
- name: Set up Docker
uses: docker/setup-buildx-action@v2
diff --git a/.github/workflows/pr-validation.yml
b/.github/workflows/pr-validation.yml
index d5de6c9ec0..b9e443ce75 100644
--- a/.github/workflows/pr-validation.yml
+++ b/.github/workflows/pr-validation.yml
@@ -25,11 +25,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '25'
cache: 'maven'
- name: Validate java code
@@ -78,11 +78,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- - name: Set up JDK 17
+ - name: Set up JDK 25
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '25'
cache: 'maven'
- name: Set up Node
diff --git a/pom.xml b/pom.xml
index bb4369da70..3f6c4bc17f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
- <version>32</version>
+ <version>37</version>
</parent>
<groupId>org.apache.streampipes</groupId>
@@ -39,116 +39,94 @@
<url>https://streampipes.apache.org</url>
<properties>
- <activemq-client.version>5.18.7</activemq-client.version>
- <antlr4.version>4.11.1</antlr4.version>
- <amqp-client.version>5.21.0</amqp-client.version>
+ <spring-boot.version>4.0.2</spring-boot.version>
+ <plc4x.version>0.13.1</plc4x.version>
+
<apache-sis-referencing.version>1.2</apache-sis-referencing.version>
- <boofcv.version>1.1.0</boofcv.version>
+ <antlr4.version>4.11.1</antlr4.version>
<bcprov-jdk18on.version>1.78.1</bcprov-jdk18on.version>
+ <boofcv.version>1.1.0</boofcv.version>
<classindex.version>3.9</classindex.version>
- <checker-qual.version>3.43.0</checker-qual.version>
- <commons-codec.version>1.17.0</commons-codec.version>
- <commons-csv.version>1.14.1</commons-csv.version>
<commons-collections.version>3.2.2</commons-collections.version>
+ <commoms-collection4.version>4.4</commoms-collection4.version>
<commons-compress.version>1.27.1</commons-compress.version>
+ <commons-configuration2.version>2.12.0</commons-configuration2.version>
+ <commons-csv.version>1.14.1</commons-csv.version>
<commons-io.version>2.17.0</commons-io.version>
- <commons-lang3.version>3.18.0</commons-lang3.version>
- <commons-logging.version>1.3.2</commons-logging.version>
- <commons-pool2.version>2.12.0</commons-pool2.version>
+ <commons-jexl.version>3.4.0</commons-jexl.version>
<commons-text.version>1.12.0</commons-text.version>
- <commoms-collection4.version>4.4</commoms-collection4.version>
<ditto-client.version>1.0.0</ditto-client.version>
- <eclipse.milo.version>0.6.16</eclipse.milo.version>
<error-prone.version>2.10.0</error-prone.version>
- <file-management.version>3.1.0</file-management.version>
- <findbugs.version>3.0.2</findbugs.version>
- <fogsy-qudt.version>1.0</fogsy-qudt.version>
- <geojson-jackson.version>1.14</geojson-jackson.version>
<google-maps-services.version>2.2.0</google-maps-services.version>
- <graalvm.js.version>25.0.0</graalvm.js.version>
+ <graalvm.js.version>25.0.2</graalvm.js.version>
<groovy.version>5.0.3</groovy.version>
- <gson.version>2.12.1</gson.version>
- <guava.version>33.4.0-jre</guava.version>
<grpc.version>1.76.0</grpc.version>
- <httpclient.version>4.5.13</httpclient.version>
- <httpcore.version>4.4.9</httpcore.version>
+ <guava.version>33.5.0-jre</guava.version>
<hadoop.version>3.4.1</hadoop.version>
<hadoop-mapreduce-client-core.version>3.4.1</hadoop-mapreduce-client-core.version>
+ <jgrapht.version>1.5.1</jgrapht.version>
+ <jjwt.version>0.11.2</jjwt.version>
+ <lightcouch.version>0.2.0</lightcouch.version>
+ <eclipse.milo.version>0.6.16</eclipse.milo.version>
+ <fogsy-qudt.version>1.0</fogsy-qudt.version>
+ <httpclient.version>4.5.13</httpclient.version>
+ <httpcore.version>4.4.9</httpcore.version>
<influxdb.version>2.24</influxdb.version>
<inlong.version>1.13.0</inlong.version>
<iotdb.version>1.3.0</iotdb.version>
- <jackson.version>2.18.3</jackson.version>
- <jackson.databind.version>2.18.3</jackson.databind.version>
- <jakarta-annotation.version>3.0.0</jakarta-annotation.version>
- <jakarta-activation-api.version>2.1.3</jakarta-activation-api.version>
- <jakarta-inject-api.version>2.0.1</jakarta-inject-api.version>
- <jakarta-servlet-api.version>6.0.0</jakarta-servlet-api.version>
- <jakarta-xml-bind-api.version>4.0.0</jakarta-xml-bind-api.version>
- <javax.xml.bind.version>2.4.0-b180725.0427</javax.xml.bind.version>
- <java-websocket.version>1.6.0</java-websocket.version>
- <jaxb-runtime.version>2.3.2</jaxb-runtime.version>
- <javax-websocket-api.version>1.1</javax-websocket-api.version>
-
<jakarta-persistence-api.version>3.0.1</jakarta-persistence-api.version>
- <javassist.version>3.30.1-GA</javassist.version>
- <jboss-logging.version>3.5.2.Final</jboss-logging.version>
- <jedis.version>5.1.4</jedis.version>
- <jetbrains.version> 16.0.3</jetbrains.version>
- <jetty-client.version>12.0.19</jetty-client.version>
- <jersey.version>3.1.3</jersey.version>
- <jgrapht.version>1.5.1</jgrapht.version>
- <json-smart.version>2.4.10</json-smart.version>
- <jsrosbridge.version>0.2.0</jsrosbridge.version>
- <jjwt.version>0.11.2</jjwt.version>
<jts-core.version>1.19.0</jts-core.version>
- <kafka.version>3.9.1</kafka.version>
- <lightcouch.version>0.2.0</lightcouch.version>
-
<maven-plugin-annotations.version>3.13.0</maven-plugin-annotations.version>
- <mailapi.version>1.4.3</mailapi.version>
- <micrometer-prometheus.version>1.14.3</micrometer-prometheus.version>
- <micrometer-observation.version>1.14.3</micrometer-observation.version>
- <reactive-streams.version>1.0.4</reactive-streams.version>
- <mqtt-client.version>1.3.0</mqtt-client.version>
<milvus-sdk-java.version>2.5.10</milvus-sdk-java.version>
+ <mqtt-client.version>1.3.0</mqtt-client.version>
<nats.version>2.19.1</nats.version>
- <netty.version>4.2.0.Final</netty.version>
<okhttp.version>3.13.1</okhttp.version>
<opencsv.version>5.9</opencsv.version>
<opennlp.version>2.3.1</opennlp.version>
- <plc4x.version>0.13.1</plc4x.version>
-
<plexus-component-annotations.version>2.2.0</plexus-component-annotations.version>
-
<plexus-interactivity-api.version>1.1</plexus-interactivity-api.version>
- <plexus-utils.version>4.0.0</plexus-utils.version>
- <postgresql.version>42.7.2</postgresql.version>
- <protobuf.version>4.28.2</protobuf.version>
- <pulsar.version>3.2.2</pulsar.version>
<parquet.version>1.16.0</parquet.version>
- <quartz.version>2.3.2</quartz.version>
+ <protobuf.version>4.28.2</protobuf.version>
+ <qdrant-java-client.version>1.14.0</qdrant-java-client.version>
+ <plc4x.version>0.13.1</plc4x.version>
+
<!-- needs to be lower than 4.x.x, see
https://github.com/apache/streampipes/issues/1495 -->
<rdf4j.version>3.7.7</rdf4j.version>
+
<rendersnake.version>1.9.0</rendersnake.version>
<rocketmq.version>5.0.2</rocketmq.version>
+ <jsrosbridge.version>0.2.0</jsrosbridge.version>
<s3.version>2.25.14</s3.version>
<siddhi.version>5.1.27</siddhi.version>
<simple-java-mail.version>8.10.0</simple-java-mail.version>
<slack-api.version>1.4.0</slack-api.version>
- <slf4j.version>2.0.6</slf4j.version>
- <slf4j-simple.version>2.0.6</slf4j-simple.version>
- <snakeyaml.version>2.2</snakeyaml.version>
- <springdoc.version>2.8.4</springdoc.version>
- <spring.version>6.2.2</spring.version>
- <spring-boot.version>3.4.2</spring-boot.version>
- <spring-security.version>6.5.5</spring-security.version>
- <swagger.version>2.2.19</swagger.version>
- <type-parser.version>0.8.1</type-parser.version>
+ <springdoc.version>3.0.1</springdoc.version>
+ <swagger.version>2.2.42</swagger.version>
<tsfile.version>1.1.0</tsfile.version>
- <hawtbuf.version>1.11</hawtbuf.version>
- <woodstox.version>7.0.0</woodstox.version>
+ <type-parser.version>0.8.1</type-parser.version>
<xz.version>1.10</xz.version>
- <qdrant-java-client.version>1.14.0</qdrant-java-client.version>
- <!-- Test dependencies -->
- <junit.version>5.11.4</junit.version>
- <mockito.version>5.12.0</mockito.version>
+ <!-- streampipes-maven-plugin -->
+ <file-management.version>3.1.0</file-management.version>
+ <maven.version>3.8.7</maven.version>
+
<maven-plugin-annotations.version>3.13.0</maven-plugin-annotations.version>
+
<plexus-component-annotations.version>2.2.0</plexus-component-annotations.version>
+
<plexus-interactivity-api.version>1.1</plexus-interactivity-api.version>
+ <plexus-utils.version>4.0.0</plexus-utils.version>
+
+
+ <!-- dependency convergence -->
+ <javassist.version>3.30.1-GA</javassist.version>
+ <woodstox.version>7.0.0</woodstox.version>
+ <istack-runtime.version>4.1.2</istack-runtime.version>
+ <javax.xml.bind.version>2.3.1</javax.xml.bind.version>
+ <jaxb-runtime.version>2.3.9</jaxb-runtime.version>
+ <jakarta-xml-bind-api.version>4.0.0</jakarta-xml-bind-api.version>
+ <java-websocket.version>1.6.0</java-websocket.version>
+ <javax-websocket-api.version>1.1</javax-websocket-api.version>
+ <jetbrains.version>16.0.3</jetbrains.version>
+
+ <maven.compiler.source>25</maven.compiler.source>
+ <maven.compiler.target>25</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+
<!-- Maven settings & dependencies -->
<apache-rat-plugin.version>0.16.1</apache-rat-plugin.version>
@@ -156,15 +134,15 @@
<checkstyle.version>10.17.0</checkstyle.version>
<extra-enforcer-rules.version>1.8.0</extra-enforcer-rules.version>
<formatter-maven-plugin.version>2.23.0</formatter-maven-plugin.version>
- <maven.compiler.source>17</maven.compiler.source>
- <maven.compiler.target>17</maven.compiler.target>
+ <maven.compiler.source>25</maven.compiler.source>
+ <maven.compiler.target>25</maven.compiler.target>
<maven-checkstyle-plugin.version>3.3.1</maven-checkstyle-plugin.version>
<maven-shade-plugin.version>3.6.0</maven-shade-plugin.version>
- <maven.version>3.8.7</maven.version>
+
+ <minimalMavenBuildVersion>3.8</minimalMavenBuildVersion>
<typescript-generator-maven-plugin.version>3.2.1263</typescript-generator-maven-plugin.version>
<spotless.version>2.43.0</spotless.version>
-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<dependency.locations.enabled>false</dependency.locations.enabled>
</properties>
@@ -172,61 +150,63 @@
<dependencyManagement>
<dependencies>
<dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-framework-bom</artifactId>
- <version>${spring.version}</version>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-dependencies</artifactId>
+ <version>${spring-boot.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
+
+
<dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>${commons-codec.version}</version>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>${javax.xml.bind.version}</version>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>${commons-collections.version}</version>
- </dependency>
+ <groupId>javax.websocket</groupId>
+ <artifactId>javax.websocket-api</artifactId>
+ <version>${javax-websocket-api.version}</version>
+ </dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-csv</artifactId>
- <version>${commons-csv.version}</version>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-runtime</artifactId>
+ <version>${jaxb-runtime.version}</version>
</dependency>
<dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>${commons-io.version}</version>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>${commons-collections.version}</version>
</dependency>
<dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>${commons-logging.version}</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-jexl3</artifactId>
+ <version>${commons-jexl.version}</version>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- <version>${jackson.version}</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-csv</artifactId>
+ <version>${commons-csv.version}</version>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>${jackson.version}</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>${commons-compress.version}</version>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${jackson.databind.version}</version>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-runtime</artifactId>
+ <version>${antlr4.version}</version>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.dataformat</groupId>
- <artifactId>jackson-dataformat-xml</artifactId>
- <version>${jackson.version}</version>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons-io.version}</version>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.dataformat</groupId>
- <artifactId>jackson-dataformat-yaml</artifactId>
- <version>${jackson.version}</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-text</artifactId>
+ <version>${commons-text.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
@@ -239,21 +219,40 @@
<version>${type-parser.version}</version>
</dependency>
<dependency>
- <groupId>com.google.code.gson</groupId>
- <artifactId>gson</artifactId>
- <version>${gson.version}</version>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_annotations</artifactId>
+ <version>${error-prone.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.istack</groupId>
+ <artifactId>istack-commons-runtime</artifactId>
+ <version>${istack-runtime.version}</version>
</dependency>
<dependency>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- <version>${findbugs.version}</version>
- <scope>compile</scope>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commoms-collection4.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.google.maps</groupId>
+ <artifactId>google-maps-services</artifactId>
+ <version>${google-maps-services.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.hivemq</groupId>
+ <artifactId>hivemq-mqtt-client</artifactId>
+ <version>${mqtt-client.version}</version>
+ </dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
@@ -265,15 +264,40 @@
<version>${okhttp.version}</version>
</dependency>
<dependency>
- <groupId>de.grundid.opendatalab</groupId>
- <artifactId>geojson-jackson</artifactId>
- <version>${geojson-jackson.version}</version>
+ <groupId>com.ullink.slack</groupId>
+ <artifactId>simpleslackapi</artifactId>
+ <version>${slack-api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>edu.wpi.rail</groupId>
+ <artifactId>jrosbridge</artifactId>
+ <version>${jsrosbridge.version}</version>
</dependency>
<dependency>
<groupId>io.fogsy</groupId>
<artifactId>qudt</artifactId>
<version>${fogsy-qudt.version}</version>
</dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-context</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-stub</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-protobuf</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty-shaded</artifactId>
+ <version>${grpc.version}</version>
+ </dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
@@ -289,16 +313,6 @@
<artifactId>jjwt-jackson</artifactId>
<version>${jjwt.version}</version>
</dependency>
- <dependency>
- <groupId>io.micrometer</groupId>
-
<artifactId>micrometer-registry-prometheus-simpleclient</artifactId>
- <version>${micrometer-prometheus.version}</version>
- </dependency>
- <dependency>
- <groupId>io.micrometer</groupId>
- <artifactId>micrometer-observation</artifactId>
- <version>${micrometer-observation.version}</version>
- </dependency>
<dependency>
<groupId>io.milvus</groupId>
<artifactId>milvus-sdk-java</artifactId>
@@ -309,61 +323,6 @@
<artifactId>client</artifactId>
<version>${qdrant-java-client.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.tsfile</groupId>
- <artifactId>tsfile</artifactId>
- <version>${tsfile.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.github.luben</groupId>
- <artifactId>zstd-jni</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.xerial.snappy</groupId>
- <artifactId>snappy-java</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.tukaani</groupId>
- <artifactId>xz</artifactId>
- <version>${xz.version}</version>
- </dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-runtime</artifactId>
- <version>${antlr4.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.errorprone</groupId>
- <artifactId>error_prone_annotations</artifactId>
- <version>${error-prone.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-collections4</artifactId>
- <version>${commoms-collection4.version}</version>
- </dependency>
- <dependency>
- <groupId>io.grpc</groupId>
- <artifactId>grpc-context</artifactId>
- <version>${grpc.version}</version>
- </dependency>
- <dependency>
- <groupId>io.grpc</groupId>
- <artifactId>grpc-stub</artifactId>
- <version>${grpc.version}</version>
- </dependency>
- <dependency>
- <groupId>io.grpc</groupId>
- <artifactId>grpc-protobuf</artifactId>
- <version>${grpc.version}</version>
- </dependency>
- <dependency>
- <groupId>io.grpc</groupId>
- <artifactId>grpc-netty-shaded</artifactId>
- <version>${grpc.version}</version>
- </dependency>
<dependency>
<groupId>io.nats</groupId>
<artifactId>jnats</artifactId>
@@ -400,54 +359,51 @@
<version>${swagger.version}</version>
</dependency>
<dependency>
- <groupId>jakarta.activation</groupId>
- <artifactId>jakarta.activation-api</artifactId>
- <version>${jakarta-activation-api.version}</version>
- </dependency>
- <dependency>
- <groupId>jakarta.annotation</groupId>
- <artifactId>jakarta.annotation-api</artifactId>
- <version>${jakarta-annotation.version}</version>
- </dependency>
- <dependency>
- <groupId>jakarta.inject</groupId>
- <artifactId>jakarta.inject-api</artifactId>
- <version>${jakarta-inject-api.version}</version>
- </dependency>
- <dependency>
- <groupId>jakarta.servlet</groupId>
- <artifactId>jakarta.servlet-api</artifactId>
- <version>${jakarta-servlet-api.version}</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-configuration2</artifactId>
+ <version>${commons-configuration2.version}</version>
</dependency>
<dependency>
- <groupId>jakarta.xml.bind</groupId>
- <artifactId>jakarta.xml.bind-api</artifactId>
- <version>${jakarta-xml-bind-api.version}</version>
+ <groupId>org.apache.groovy</groupId>
+ <artifactId>groovy</artifactId>
+ <version>${groovy.version}</version>
</dependency>
<dependency>
- <groupId>net.minidev</groupId>
- <artifactId>json-smart</artifactId>
- <version>${json-smart.version}</version>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>fluent-hc</artifactId>
+ <version>${httpclient.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-client</artifactId>
- <version>${activemq-client.version}</version>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${httpclient.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>${commons-lang3.version}</version>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ <version>${httpcore.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-text</artifactId>
- <version>${commons-text.version}</version>
+ <groupId>org.apache.inlong</groupId>
+ <artifactId>tubemq-client</artifactId>
+ <version>${inlong.version}</version>
</dependency>
<dependency>
- <groupId>software.amazon.awssdk</groupId>
- <artifactId>s3</artifactId>
- <version>${s3.version}</version>
+ <groupId>org.apache.iotdb</groupId>
+ <artifactId>iotdb-session</artifactId>
+ <version>${iotdb.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
@@ -548,91 +504,128 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>fluent-hc</artifactId>
- <version>${httpclient.version}</version>
- <exclusions>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- </exclusions>
+ <groupId>org.apache.opennlp</groupId>
+ <artifactId>opennlp-tools</artifactId>
+ <version>${opennlp.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>${httpclient.version}</version>
+ <groupId>org.apache.parquet</groupId>
+ <artifactId>parquet-avro</artifactId>
+ <version>${parquet.version}</version>
<exclusions>
<exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
+ <groupId>org.xerial.snappy</groupId>
+ <artifactId>snappy-java</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.avro</groupId>
+ <artifactId>avro</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.github.luben</groupId>
+ <artifactId>zstd-jni</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- <version>${httpcore.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.iotdb</groupId>
- <artifactId>iotdb-session</artifactId>
- <version>${iotdb.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka-clients</artifactId>
- <version>${kafka.version}</version>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-api</artifactId>
+ <version>${plc4x.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka-streams</artifactId>
- <version>${kafka.version}</version>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-spi</artifactId>
+ <version>${plc4x.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.parquet</groupId>
- <artifactId>parquet-avro</artifactId>
- <version>${parquet.version}</version>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-all</artifactId>
+ <version>${plc4x.version}</version>
+ <type>pom</type>
<exclusions>
<exclusion>
- <groupId>org.xerial.snappy</groupId>
- <artifactId>snappy-java</artifactId>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-firmata</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-opcua</artifactId>
</exclusion>
<exclusion>
- <groupId>com.github.luben</groupId>
- <artifactId>zstd-jni</artifactId>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-driver-c-bus</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
- <groupId>org.apache.pulsar</groupId>
- <artifactId>pulsar-client</artifactId>
- <version>${pulsar.version}</version>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-connection-cache</artifactId>
+ <version>${plc4x.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.rocketmq</groupId>
+ <artifactId>rocketmq-client-java</artifactId>
+ <version>${rocketmq.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tsfile</groupId>
+ <artifactId>tsfile</artifactId>
+ <version>${tsfile.version}</version>
<exclusions>
<exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <groupId>com.github.luben</groupId>
+ <artifactId>zstd-jni</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.xerial.snappy</groupId>
+ <artifactId>snappy-java</artifactId>
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.sis.core</groupId>
+ <artifactId>sis-referencing</artifactId>
+ <version>${apache-sis-referencing.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.atteo.classindex</groupId>
+ <artifactId>classindex</artifactId>
+ <version>${classindex.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.boofcv</groupId>
+ <artifactId>boofcv-core</artifactId>
+ <version>${boofcv.version}</version>
+ </dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${bcprov-jdk18on.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcpkix-jdk18on</artifactId>
+ <version>${bcprov-jdk18on.version}</version>
+ </dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcutil-jdk18on</artifactId>
<version>${bcprov-jdk18on.version}</version>
</dependency>
<dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-client</artifactId>
- <version>${jetty-client.version}</version>
+ <groupId>org.eclipse.milo</groupId>
+ <artifactId>sdk-client</artifactId>
+ <version>${eclipse.milo.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.ditto</groupId>
+ <artifactId>ditto-client</artifactId>
+ <version>${ditto-client.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.milo</groupId>
+ <artifactId>dictionary-reader</artifactId>
+ <version>${eclipse.milo.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.rdf4j</groupId>
@@ -645,39 +638,30 @@
<version>${rdf4j.version}</version>
</dependency>
<dependency>
- <groupId>org.reactivestreams</groupId>
- <artifactId>reactive-streams</artifactId>
- <version>${reactive-streams.version}</version>
- </dependency>
- <dependency>
- <groupId>com.hivemq</groupId>
- <artifactId>hivemq-mqtt-client</artifactId>
- <version>${mqtt-client.version}</version>
- </dependency>
- <dependency>
- <groupId>org.fusesource.hawtbuf</groupId>
- <artifactId>hawtbuf</artifactId>
- <version>${hawtbuf.version}</version>
+ <groupId>org.graalvm.polyglot</groupId>
+ <artifactId>js</artifactId>
+ <version>${graalvm.js.version}</version>
+ <type>pom</type>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.containers</groupId>
- <artifactId>jersey-container-jetty-http</artifactId>
- <version>${jersey.version}</version>
+ <groupId>org.graalvm.polyglot</groupId>
+ <artifactId>polyglot</artifactId>
+ <version>${graalvm.js.version}</version>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-json-jackson</artifactId>
- <version>${jersey.version}</version>
+ <groupId>org.influxdb</groupId>
+ <artifactId>influxdb-java</artifactId>
+ <version>${influxdb.version}</version>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-multipart</artifactId>
- <version>${jersey.version}</version>
+ <groupId>org.java-websocket</groupId>
+ <artifactId>Java-WebSocket</artifactId>
+ <version>${java-websocket.version}</version>
</dependency>
<dependency>
- <groupId>org.influxdb</groupId>
- <artifactId>influxdb-java</artifactId>
- <version>${influxdb.version}</version>
+ <groupId>org.jetbrains</groupId>
+ <artifactId>annotations</artifactId>
+ <version>${jetbrains.version}</version>
</dependency>
<dependency>
<groupId>org.jgrapht</groupId>
@@ -689,6 +673,11 @@
<artifactId>lightcouch</artifactId>
<version>${lightcouch.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.locationtech.jts</groupId>
+ <artifactId>jts-core</artifactId>
+ <version>${jts-core.version}</version>
+ </dependency>
<dependency>
<groupId>org.rendersnake</groupId>
<artifactId>rendersnake</artifactId>
@@ -700,93 +689,22 @@
<version>${simple-java-mail.version}</version>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <version>${slf4j-simple.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-properties-migrator</artifactId>
- <version>${spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- <version>${spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jersey</artifactId>
- <version>${spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-logging</artifactId>
- <version>${spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- <version>${spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-undertow</artifactId>
- <version>${spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <version>${spring-boot.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-core</artifactId>
- <version>${spring-security.version}</version>
+ <groupId>org.tukaani</groupId>
+ <artifactId>xz</artifactId>
+ <version>${xz.version}</version>
</dependency>
<dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-web</artifactId>
- <version>${spring-security.version}</version>
+ <groupId>org.springdoc</groupId>
+ <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
+ <version>${springdoc.version}</version>
</dependency>
<dependency>
- <groupId>org.yaml</groupId>
- <artifactId>snakeyaml</artifactId>
- <version>${snakeyaml.version}</version>
+ <groupId>software.amazon.awssdk</groupId>
+ <artifactId>s3</artifactId>
+ <version>${s3.version}</version>
</dependency>
- <!-- test dependencies -->
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-api</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-params</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-engine</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>${mockito.version}</version>
- <scope>test</scope>
- </dependency>
-
<!-- required by streampipes-maven-plugin -->
<dependency>
<groupId>org.apache.maven</groupId>
@@ -845,229 +763,12 @@
</dependency>
-
- <!-- only used by extensions -->
- <dependency>
- <groupId>com.google.maps</groupId>
- <artifactId>google-maps-services</artifactId>
- <version>${google-maps-services.version}</version>
- </dependency>
- <dependency>
- <groupId>com.rabbitmq</groupId>
- <artifactId>amqp-client</artifactId>
- <version>${amqp-client.version}</version>
- </dependency>
- <dependency>
- <groupId>com.ullink.slack</groupId>
- <artifactId>simpleslackapi</artifactId>
- <version>${slack-api.version}</version>
- </dependency>
- <dependency>
- <groupId>edu.wpi.rail</groupId>
- <artifactId>jrosbridge</artifactId>
- <version>${jsrosbridge.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-compress</artifactId>
- <version>${commons-compress.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-pool2</artifactId>
- <version>${commons-pool2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.inlong</groupId>
- <artifactId>tubemq-client</artifactId>
- <version>${inlong.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.opennlp</groupId>
- <artifactId>opennlp-tools</artifactId>
- <version>${opennlp.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-api</artifactId>
- <version>${plc4x.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-driver-s7</artifactId>
- <version>${plc4x.version}</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.plc4x</groupId>
- <artifactId>plc4j-driver-modbus</artifactId>
- <version>${plc4x.version}</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.rocketmq</groupId>
- <artifactId>rocketmq-client-java</artifactId>
- <version>${rocketmq.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.sis.core</groupId>
- <artifactId>sis-referencing</artifactId>
- <version>${apache-sis-referencing.version}</version>
- </dependency>
- <dependency>
- <groupId>org.boofcv</groupId>
- <artifactId>boofcv-core</artifactId>
- <version>${boofcv.version}</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.ditto</groupId>
- <artifactId>ditto-client</artifactId>
- <version>${ditto-client.version}</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.milo</groupId>
- <artifactId>sdk-client</artifactId>
- <version>${eclipse.milo.version}</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.milo</groupId>
- <artifactId>dictionary-reader</artifactId>
- <version>${eclipse.milo.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-sse</artifactId>
- <version>${jersey.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.groovy</groupId>
- <artifactId>groovy</artifactId>
- <version>${groovy.version}</version>
- </dependency>
- <dependency>
- <groupId>org.graalvm.polyglot</groupId>
- <artifactId>js</artifactId>
- <version>${graalvm.js.version}</version>
- </dependency>
- <dependency>
- <groupId>org.graalvm.polyglot</groupId>
- <artifactId>polyglot</artifactId>
- <version>${graalvm.js.version}</version>
- </dependency>
- <dependency>
- <groupId>org.java-websocket</groupId>
- <artifactId>Java-WebSocket</artifactId>
- <version>${java-websocket.version}</version>
- </dependency>
- <dependency>
- <groupId>org.locationtech.jts</groupId>
- <artifactId>jts-core</artifactId>
- <version>${jts-core.version}</version>
- </dependency>
- <dependency>
- <groupId>org.postgresql</groupId>
- <artifactId>postgresql</artifactId>
- <version>${postgresql.version}</version>
- </dependency>
- <dependency>
- <groupId>org.quartz-scheduler</groupId>
- <artifactId>quartz</artifactId>
- <version>${quartz.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springdoc</groupId>
- <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
- <version>${springdoc.version}</version>
- </dependency>
- <dependency>
- <groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>${jedis.version}</version>
- </dependency>
-
-
- <!-- dependency convergence -->
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging</artifactId>
- <version>${jboss-logging.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.core</groupId>
- <artifactId>jersey-common</artifactId>
- <version>${jersey.version}</version>
- </dependency>
+ <!--dependency convergence -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist.version}</version>
</dependency>
- <dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>${javax.xml.bind.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jaxb</groupId>
- <artifactId>jaxb-runtime</artifactId>
- <version>${jaxb-runtime.version}</version>
- </dependency>
- <dependency>
- <groupId>org.checkerframework</groupId>
- <artifactId>checker-qual</artifactId>
- <version>${checker-qual.version}</version>
- </dependency>
- <dependency>
- <groupId>javax.websocket</groupId>
- <artifactId>javax.websocket-api</artifactId>
- <version>${javax-websocket-api.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-handler</artifactId>
- <version>${netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-buffer</artifactId>
- <version>${netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-codec</artifactId>
- <version>${netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-common</artifactId>
- <version>${netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport</artifactId>
- <version>${netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport-native-epoll</artifactId>
- <version>${netty.version}</version>
- </dependency>
- <dependency>
- <groupId>org.atteo.classindex</groupId>
- <artifactId>classindex</artifactId>
- <version>${classindex.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.protobuf</groupId>
- <artifactId>protobuf-java</artifactId>
- <version>${protobuf.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.jetbrains</groupId>
- <artifactId>annotations</artifactId>
- <version>${jetbrains.version}</version>
- </dependency>
</dependencies>
</dependencyManagement>
@@ -1322,7 +1023,7 @@
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
- <id>check-at-least-java-17</id>
+ <id>check-at-least-java-25</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
@@ -1330,7 +1031,7 @@
<configuration>
<rules>
<requireJavaVersion>
- <version>1.17.0</version>
+ <version>1.25.0</version>
</requireJavaVersion>
</rules>
</configuration>
@@ -1379,7 +1080,7 @@
<configuration>
<failOnWarnings>false</failOnWarnings>
<failOnError>false</failOnError>
- <source>8</source>
+ <source>25</source>
</configuration>
</plugin>
<plugin>
@@ -1467,13 +1168,6 @@
<exclude>**/system</exclude>
- <!-- Test files -->
-
<exclude>streampipes-code-generation/src/main/resources/pom</exclude>
-
<exclude>streampipes-code-generation/src/main/resources/web</exclude>
-
<exclude>streampipes-code-generation/src/test/resources/*_java</exclude>
-
<exclude>streampipes-code-generation/src/test/resources/expected_pom_xml</exclude>
-
<exclude>streampipes-code-generation/src/test/resources/expected_web_xml</exclude>
-
<!-- Archetype resources should not have ASF license
header -->
<exclude>archetypes/streampipes-archetype-pe-processors-jvm/src/main/resources/**</exclude>
<exclude>archetypes/streampipes-archetype-pe-sinks-jvm/src/main/resources/**</exclude>
@@ -1521,7 +1215,7 @@
<!-- Exclude GO -->
<exclude>**/go.sum</exclude>
-
+
<!-- Resource files for Integration Test-->
<exclude>streampipes-integration-tests/src/test/resources/mosquitto.crt</exclude>
diff --git a/streampipes-connect-transformer-groovy/pom.xml
b/streampipes-connect-transformer-groovy/pom.xml
index cc6305f2b5..90e76f37f2 100644
--- a/streampipes-connect-transformer-groovy/pom.xml
+++ b/streampipes-connect-transformer-groovy/pom.xml
@@ -43,7 +43,6 @@
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy</artifactId>
- <version>${groovy.version}</version>
</dependency>
</dependencies>
diff --git a/streampipes-connect-transformer-js/pom.xml
b/streampipes-connect-transformer-js/pom.xml
index a22b4d4016..9d49ac905e 100644
--- a/streampipes-connect-transformer-js/pom.xml
+++ b/streampipes-connect-transformer-js/pom.xml
@@ -42,13 +42,11 @@
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>js</artifactId>
- <version>${graalvm.js.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>polyglot</artifactId>
- <version>${graalvm.js.version}</version>
</dependency>
</dependencies>
diff --git a/streampipes-extensions-management/pom.xml
b/streampipes-extensions-management/pom.xml
index e857401aa6..41f4a4f6af 100644
--- a/streampipes-extensions-management/pom.xml
+++ b/streampipes-extensions-management/pom.xml
@@ -82,10 +82,6 @@
<!-- External dependencies -->
- <dependency>
- <groupId>de.grundid.opendatalab</groupId>
- <artifactId>geojson-jackson</artifactId>
- </dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
diff --git a/streampipes-extensions/streampipes-connect-adapters/pom.xml
b/streampipes-extensions/streampipes-connect-adapters/pom.xml
index c4c3eb2184..282acc6a20 100644
--- a/streampipes-extensions/streampipes-connect-adapters/pom.xml
+++ b/streampipes-extensions/streampipes-connect-adapters/pom.xml
@@ -59,10 +59,6 @@
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
</dependency>
- <dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-sse</artifactId>
- </dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
diff --git a/streampipes-extensions/streampipes-connectors-opcua/pom.xml
b/streampipes-extensions/streampipes-connectors-opcua/pom.xml
index 3d962d4cc2..3a2a1caa24 100644
--- a/streampipes-extensions/streampipes-connectors-opcua/pom.xml
+++ b/streampipes-extensions/streampipes-connectors-opcua/pom.xml
@@ -59,6 +59,11 @@
<artifactId>dictionary-reader</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-runtime</artifactId>
+ </dependency>
+
<!-- Test dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
diff --git a/streampipes-extensions/streampipes-connectors-plc/pom.xml
b/streampipes-extensions/streampipes-connectors-plc/pom.xml
index 5754d4b732..e838e19198 100644
--- a/streampipes-extensions/streampipes-connectors-plc/pom.xml
+++ b/streampipes-extensions/streampipes-connectors-plc/pom.xml
@@ -55,12 +55,10 @@
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-spi</artifactId>
- <version>${plc4x.version}</version>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-driver-all</artifactId>
- <version>${plc4x.version}</version>
<type>pom</type>
<exclusions>
<exclusion>
@@ -80,7 +78,6 @@
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-connection-cache</artifactId>
- <version>${plc4x.version}</version>
</dependency>
<!-- Test dependencies -->
diff --git a/streampipes-extensions/streampipes-connectors-pulsar/pom.xml
b/streampipes-extensions/streampipes-connectors-pulsar/pom.xml
index 793351731d..7dee1f6315 100644
--- a/streampipes-extensions/streampipes-connectors-pulsar/pom.xml
+++ b/streampipes-extensions/streampipes-connectors-pulsar/pom.xml
@@ -48,6 +48,9 @@
<artifactId>pulsar-client</artifactId>
</dependency>
+ <!-- dependency convergence -->
+
+
<!-- Test dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
diff --git a/streampipes-extensions/streampipes-extensions-all-iiot/Dockerfile
b/streampipes-extensions/streampipes-extensions-all-iiot/Dockerfile
index ae8040391e..6eee4a8130 100644
--- a/streampipes-extensions/streampipes-extensions-all-iiot/Dockerfile
+++ b/streampipes-extensions/streampipes-extensions-all-iiot/Dockerfile
@@ -13,12 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM eclipse-temurin:17-jre-focal as builder
+FROM eclipse-temurin:25-jre-alpine as builder
ARG JAR_FILE=target/streampipes-extensions-all-iiot.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
-FROM eclipse-temurin:17-jre-focal
+FROM eclipse-temurin:25-jre-alpine
COPY --from=builder dependencies/ ./
COPY --from=builder snapshot-dependencies/ ./
COPY --from=builder spring-boot-loader/ ./
diff --git a/streampipes-extensions/streampipes-extensions-all-iiot/pom.xml
b/streampipes-extensions/streampipes-extensions-all-iiot/pom.xml
index 0ce64b6e6d..43eeff4273 100644
--- a/streampipes-extensions/streampipes-extensions-all-iiot/pom.xml
+++ b/streampipes-extensions/streampipes-extensions-all-iiot/pom.xml
@@ -197,11 +197,6 @@
<version>0.99.0-SNAPSHOT</version>
</dependency>
- <!-- dependency convergence -->
- <dependency>
- <groupId>org.atteo.classindex</groupId>
- <artifactId>classindex</artifactId>
- </dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
@@ -211,32 +206,8 @@
<artifactId>bcutil-jdk18on</artifactId>
</dependency>
<dependency>
- <groupId>org.checkerframework</groupId>
- <artifactId>checker-qual</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.websocket</groupId>
- <artifactId>javax.websocket-api</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-handler</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-buffer</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-codec</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-common</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport</artifactId>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-runtime</artifactId>
</dependency>
</dependencies>
diff --git a/streampipes-extensions/streampipes-extensions-all-jvm/Dockerfile
b/streampipes-extensions/streampipes-extensions-all-jvm/Dockerfile
index 31c59268e2..401fc7f77e 100644
--- a/streampipes-extensions/streampipes-extensions-all-jvm/Dockerfile
+++ b/streampipes-extensions/streampipes-extensions-all-jvm/Dockerfile
@@ -13,14 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM eclipse-temurin:17-jre-focal as builder
+FROM eclipse-temurin:25-jre-alpine as builder
ARG JAR_FILE=target/streampipes-extensions-all-jvm.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
-FROM eclipse-temurin:17-jre-focal
+FROM eclipse-temurin:25-jre-alpine
# needed pkgs processors-image-processing-jvm
-RUN apt-get update && apt-get install ttf-dejavu-core && apt-get install
fontconfig
+RUN apk add --no-cache fontconfig ttf-dejavu
COPY --from=builder dependencies/ ./
COPY --from=builder snapshot-dependencies/ ./
diff --git a/streampipes-extensions/streampipes-extensions-all-jvm/pom.xml
b/streampipes-extensions/streampipes-extensions-all-jvm/pom.xml
index a1dcef201a..d1efcf6b06 100644
--- a/streampipes-extensions/streampipes-extensions-all-jvm/pom.xml
+++ b/streampipes-extensions/streampipes-extensions-all-jvm/pom.xml
@@ -228,48 +228,6 @@
<artifactId>streampipes-messaging-nats</artifactId>
<version>0.99.0-SNAPSHOT</version>
</dependency>
-
- <!-- dependency convergence -->
- <dependency>
- <groupId>com.google.protobuf</groupId>
- <artifactId>protobuf-java</artifactId>
- </dependency>
- <dependency>
- <groupId>org.atteo.classindex</groupId>
- <artifactId>classindex</artifactId>
- </dependency>
- <dependency>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk18on</artifactId>
- </dependency>
- <dependency>
- <groupId>org.checkerframework</groupId>
- <artifactId>checker-qual</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.websocket</groupId>
- <artifactId>javax.websocket-api</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-handler</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-buffer</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-codec</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-common</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport</artifactId>
- </dependency>
</dependencies>
<build>
diff --git
a/streampipes-extensions/streampipes-extensions-iiot-minimal/Dockerfile
b/streampipes-extensions/streampipes-extensions-iiot-minimal/Dockerfile
index 621162a874..e1efc1e0ff 100644
--- a/streampipes-extensions/streampipes-extensions-iiot-minimal/Dockerfile
+++ b/streampipes-extensions/streampipes-extensions-iiot-minimal/Dockerfile
@@ -13,12 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM eclipse-temurin:17-jre-focal as builder
+FROM eclipse-temurin:25-jre-alpine as builder
ARG JAR_FILE=target/streampipes-extensions-iiot-minimal.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
-FROM eclipse-temurin:17-jre-focal
+FROM eclipse-temurin:25-jre-alpine
COPY --from=builder dependencies/ ./
COPY --from=builder snapshot-dependencies/ ./
COPY --from=builder spring-boot-loader/ ./
diff --git a/streampipes-extensions/streampipes-extensions-iiot-minimal/pom.xml
b/streampipes-extensions/streampipes-extensions-iiot-minimal/pom.xml
index 78cb42b7dd..d457f41d11 100644
--- a/streampipes-extensions/streampipes-extensions-iiot-minimal/pom.xml
+++ b/streampipes-extensions/streampipes-extensions-iiot-minimal/pom.xml
@@ -156,44 +156,6 @@
<artifactId>streampipes-wrapper-standalone</artifactId>
<version>0.99.0-SNAPSHOT</version>
</dependency>
-
- <!-- dependency convergence -->
- <dependency>
- <groupId>org.atteo.classindex</groupId>
- <artifactId>classindex</artifactId>
- </dependency>
- <dependency>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk18on</artifactId>
- </dependency>
- <dependency>
- <groupId>org.checkerframework</groupId>
- <artifactId>checker-qual</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.websocket</groupId>
- <artifactId>javax.websocket-api</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-handler</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-buffer</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-codec</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-common</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport</artifactId>
- </dependency>
</dependencies>
<build>
diff --git a/streampipes-extensions/streampipes-processors-enricher-jvm/pom.xml
b/streampipes-extensions/streampipes-processors-enricher-jvm/pom.xml
index 9730c112a6..8e13498079 100644
--- a/streampipes-extensions/streampipes-processors-enricher-jvm/pom.xml
+++ b/streampipes-extensions/streampipes-processors-enricher-jvm/pom.xml
@@ -40,13 +40,11 @@
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>js</artifactId>
- <version>${graalvm.js.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>polyglot</artifactId>
- <version>${graalvm.js.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
diff --git a/streampipes-extensions/streampipes-sinks-brokers-jvm/pom.xml
b/streampipes-extensions/streampipes-sinks-brokers-jvm/pom.xml
index c781bb5a7d..d671ab013c 100644
--- a/streampipes-extensions/streampipes-sinks-brokers-jvm/pom.xml
+++ b/streampipes-extensions/streampipes-sinks-brokers-jvm/pom.xml
@@ -68,10 +68,6 @@
<groupId>com.hivemq</groupId>
<artifactId>hivemq-mqtt-client</artifactId>
</dependency>
- <dependency>
- <groupId>org.fusesource.hawtbuf</groupId>
- <artifactId>hawtbuf</artifactId>
- </dependency>
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
diff --git a/streampipes-extensions/streampipes-sinks-databases-jvm/pom.xml
b/streampipes-extensions/streampipes-sinks-databases-jvm/pom.xml
index ccacb84950..fa711c46c5 100644
--- a/streampipes-extensions/streampipes-sinks-databases-jvm/pom.xml
+++ b/streampipes-extensions/streampipes-sinks-databases-jvm/pom.xml
@@ -102,30 +102,10 @@
<groupId>io.qdrant</groupId>
<artifactId>client</artifactId>
</dependency>
- <dependency>
- <groupId>com.google.errorprone</groupId>
- <artifactId>error_prone_annotations</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-collections4</artifactId>
- </dependency>
- <dependency>
- <groupId>io.grpc</groupId>
- <artifactId>grpc-context</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.tsfile</groupId>
<artifactId>tsfile</artifactId>
</dependency>
- <dependency>
- <groupId>org.tukaani</groupId>
- <artifactId>xz</artifactId>
- </dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-runtime</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.parquet</groupId>
<artifactId>parquet-avro</artifactId>
diff --git
a/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConnectionProvider.java
b/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConnectionProvider.java
index 5404c591a2..ae6e9f9919 100644
---
a/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConnectionProvider.java
+++
b/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConnectionProvider.java
@@ -22,8 +22,9 @@ import
org.apache.streampipes.model.grounding.JmsTransportProtocol;
import org.apache.activemq.ActiveMQConnectionFactory;
-import javax.jms.Connection;
-import javax.jms.JMSException;
+import jakarta.jms.Connection;
+import jakarta.jms.JMSException;
+
public abstract class ActiveMQConnectionProvider {
diff --git
a/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConsumer.java
b/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConsumer.java
index 80a6a4a52e..e83a635be8 100644
---
a/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConsumer.java
+++
b/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQConsumer.java
@@ -27,10 +27,10 @@ import org.apache.activemq.command.ActiveMQBytesMessage;
import org.apache.activemq.util.ByteSequence;
import org.slf4j.Logger;
-import javax.jms.BytesMessage;
-import javax.jms.JMSException;
-import javax.jms.MessageConsumer;
-import javax.jms.Session;
+import jakarta.jms.BytesMessage;
+import jakarta.jms.JMSException;
+import jakarta.jms.MessageConsumer;
+import jakarta.jms.Session;
import java.io.Serializable;
diff --git
a/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQPublisher.java
b/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQPublisher.java
index f5443a95e5..7760be77a4 100644
---
a/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQPublisher.java
+++
b/streampipes-messaging-jms/src/main/java/org/apache/streampipes/messaging/jms/ActiveMQPublisher.java
@@ -26,13 +26,13 @@ import org.apache.activemq.ActiveMQConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.jms.BytesMessage;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.DeliveryMode;
-import javax.jms.JMSException;
-import javax.jms.MessageProducer;
-import javax.jms.Session;
+import jakarta.jms.BytesMessage;
+import jakarta.jms.Connection;
+import jakarta.jms.ConnectionFactory;
+import jakarta.jms.DeliveryMode;
+import jakarta.jms.JMSException;
+import jakarta.jms.MessageProducer;
+import jakarta.jms.Session;
public class ActiveMQPublisher extends ActiveMQConnectionProvider implements
EventProducer {
diff --git
a/streampipes-messaging-kafka/src/main/java/org/apache/streampipes/messaging/kafka/config/ConsumerConfigFactory.java
b/streampipes-messaging-kafka/src/main/java/org/apache/streampipes/messaging/kafka/config/ConsumerConfigFactory.java
index 4b16a52b2a..52211fbe00 100644
---
a/streampipes-messaging-kafka/src/main/java/org/apache/streampipes/messaging/kafka/config/ConsumerConfigFactory.java
+++
b/streampipes-messaging-kafka/src/main/java/org/apache/streampipes/messaging/kafka/config/ConsumerConfigFactory.java
@@ -29,7 +29,6 @@ public class ConsumerConfigFactory extends
AbstractConfigFactory {
private static final String ENABLE_AUTO_COMMIT_CONFIG_DEFAULT = "true";
private static final String AUTO_COMMIT_INTERVAL_MS_CONFIG_DEFAULT = "5000";
- private static final String SESSION_TIMEOUT_MS_CONFIG_DEFAULT = "30000";
private static final Integer FETCH_MAX_BYTES_CONFIG_DEFAULT = 52428800;
private static final String KEY_DESERIALIZER_CLASS_CONFIG_DEFAULT =
ByteArrayDeserializer.class.getName();
private static final String VALUE_DESERIALIZER_CLASS_CONFIG_DEFAULT =
ByteArrayDeserializer.class.getName();
@@ -48,7 +47,6 @@ public class ConsumerConfigFactory extends
AbstractConfigFactory {
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,
ENABLE_AUTO_COMMIT_CONFIG_DEFAULT);
props.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG,
AUTO_COMMIT_INTERVAL_MS_CONFIG_DEFAULT);
- props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG,
SESSION_TIMEOUT_MS_CONFIG_DEFAULT);
props.put(ConsumerConfig.FETCH_MAX_BYTES_CONFIG,
getConfigOrDefault(protocol::getMessageMaxBytes,
FETCH_MAX_BYTES_CONFIG_DEFAULT));
diff --git a/streampipes-messaging-mqtt/pom.xml
b/streampipes-messaging-mqtt/pom.xml
index 3e1c04e91d..30c371f347 100644
--- a/streampipes-messaging-mqtt/pom.xml
+++ b/streampipes-messaging-mqtt/pom.xml
@@ -39,10 +39,6 @@
<groupId>com.hivemq</groupId>
<artifactId>hivemq-mqtt-client</artifactId>
</dependency>
- <dependency>
- <groupId>org.fusesource.hawtbuf</groupId>
- <artifactId>hawtbuf</artifactId>
- </dependency>
</dependencies>
<build>
diff --git a/streampipes-messaging-pulsar/pom.xml
b/streampipes-messaging-pulsar/pom.xml
index 5cd7e01f0a..3d42f22387 100644
--- a/streampipes-messaging-pulsar/pom.xml
+++ b/streampipes-messaging-pulsar/pom.xml
@@ -25,11 +25,6 @@
<artifactId>streampipes-messaging-pulsar</artifactId>
- <properties>
- <maven.compiler.source>11</maven.compiler.source>
- <maven.compiler.target>11</maven.compiler.target>
- </properties>
-
<dependencies>
<!-- StreamPipes dependencies -->
<dependency>
diff --git
a/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java
b/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java
index e1d6f26905..801ccd91f5 100644
---
a/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java
+++
b/streampipes-model/src/main/java/org/apache/streampipes/model/extensions/svcdiscovery/SpServiceRegistration.java
@@ -22,6 +22,7 @@ import
org.apache.streampipes.model.extensions.ExtensionItemDescription;
import org.apache.streampipes.model.shared.annotation.TsModel;
import org.apache.streampipes.model.shared.api.Storable;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.gson.annotations.SerializedName;
import java.util.HashSet;
@@ -178,6 +179,7 @@ public class SpServiceRegistration implements Storable {
return scheme;
}
+ @JsonIgnore
public String getServiceUrl() {
return getScheme() + "://" + getHost() + ":" + getPort();
}
diff --git
a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JacksonConfiguration.java
b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JacksonConfiguration.java
new file mode 100644
index 0000000000..920bd04f72
--- /dev/null
+++
b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JacksonConfiguration.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.streampipes.rest.shared.serializer;
+
+import
org.springframework.boot.jackson.autoconfigure.JsonMapperBuilderCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import tools.jackson.databind.DeserializationFeature;
+import tools.jackson.databind.SerializationFeature;
+
+@Configuration
+public class JacksonConfiguration {
+
+ @Bean
+ JsonMapperBuilderCustomizer jsonMapperBuilderCustomizer() {
+ return builder -> builder
+ .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
+ .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
+ DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES,
+ DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES)
+ .enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+ .findAndAddModules();
+ }
+}
diff --git
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/security/SpPermissionEvaluator.java
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/security/SpPermissionEvaluator.java
index 28b43f709a..375d039b8f 100644
---
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/security/SpPermissionEvaluator.java
+++
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/security/SpPermissionEvaluator.java
@@ -25,17 +25,17 @@ import
org.apache.streampipes.storage.api.IPermissionStorage;
import org.apache.streampipes.storage.management.StorageDispatcher;
import org.apache.streampipes.user.management.model.PrincipalUserDetails;
-import org.springframework.context.annotation.Configuration;
import org.springframework.security.access.PermissionEvaluator;
import
org.springframework.security.authentication.AnonymousAuthenticationToken;
import org.springframework.security.core.Authentication;
+import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
import java.util.function.Predicate;
-@Configuration
+@Component
public class SpPermissionEvaluator implements PermissionEvaluator {
private final IPermissionStorage permissionStorage;
diff --git a/streampipes-service-base/pom.xml b/streampipes-service-base/pom.xml
index 9ef3adf36c..18066bffd4 100644
--- a/streampipes-service-base/pom.xml
+++ b/streampipes-service-base/pom.xml
@@ -47,7 +47,11 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-undertow</artifactId>
+ <artifactId>spring-boot-starter-tomcat</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -74,11 +78,6 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
-
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging</artifactId>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git a/streampipes-service-core-minimal/Dockerfile
b/streampipes-service-core-minimal/Dockerfile
index 0248db51a2..b8a8bb484d 100644
--- a/streampipes-service-core-minimal/Dockerfile
+++ b/streampipes-service-core-minimal/Dockerfile
@@ -13,12 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM eclipse-temurin:17-jre-focal as builder
+FROM eclipse-temurin:25-jre-alpine as builder
ARG JAR_FILE=target/streampipes-core-minimal.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
-FROM eclipse-temurin:17-jre-focal
+FROM eclipse-temurin:25-jre-alpine
COPY --from=builder dependencies/ ./
COPY --from=builder snapshot-dependencies/ ./
COPY --from=builder spring-boot-loader/ ./
diff --git a/streampipes-service-core/Dockerfile
b/streampipes-service-core/Dockerfile
index 0605fabdda..6c8a8b4b76 100644
--- a/streampipes-service-core/Dockerfile
+++ b/streampipes-service-core/Dockerfile
@@ -13,12 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM eclipse-temurin:17-jre-focal as builder
+FROM eclipse-temurin:25-jre-alpine as builder
ARG JAR_FILE=target/streampipes-core.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
-FROM eclipse-temurin:17-jre-focal
+FROM eclipse-temurin:25-jre-alpine
COPY --from=builder dependencies/ ./
COPY --from=builder snapshot-dependencies/ ./
COPY --from=builder spring-boot-loader/ ./
diff --git a/streampipes-service-core/pom.xml b/streampipes-service-core/pom.xml
index bdbc44bbaa..c508cc1b9f 100644
--- a/streampipes-service-core/pom.xml
+++ b/streampipes-service-core/pom.xml
@@ -47,12 +47,6 @@
<groupId>org.apache.streampipes</groupId>
<artifactId>streampipes-service-base</artifactId>
<version>0.99.0-SNAPSHOT</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-undertow</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>org.apache.streampipes</groupId>
@@ -93,6 +87,16 @@
<groupId>org.apache.streampipes</groupId>
<artifactId>streampipes-messaging-pulsar</artifactId>
<version>0.99.0-SNAPSHOT</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.streampipes</groupId>
@@ -120,15 +124,36 @@
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<exclusions>
<exclusion>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-jsr310</artifactId>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-web-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-webmvc</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-jackson</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-validation</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-jackson</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>jakarta.validation</groupId>
+ <artifactId>jakarta.validation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>jakarta.annotation</groupId>
- <artifactId>jakarta.annotation-api</artifactId>
- </dependency>
+
<!-- Test dependencies -->
<dependency>
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesCoreApplication.java
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesCoreApplication.java
index 643ba3f7ab..a07e4fb0f2 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesCoreApplication.java
+++
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/StreamPipesCoreApplication.java
@@ -45,7 +45,6 @@ import
org.apache.streampipes.model.configuration.SpCoreConfigurationStatus;
import org.apache.streampipes.model.pipeline.Pipeline;
import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
import org.apache.streampipes.resource.management.SpResourceManager;
-import org.apache.streampipes.rest.security.SpPermissionEvaluator;
import org.apache.streampipes.service.base.BaseNetworkingConfig;
import org.apache.streampipes.service.base.StreamPipesPrometheusConfig;
import org.apache.streampipes.service.base.StreamPipesServiceBase;
@@ -76,7 +75,7 @@ import java.util.function.Supplier;
@Configuration
@EnableAutoConfiguration
@EnableScheduling
-@Import({OpenApiConfiguration.class, SpPermissionEvaluator.class,
StreamPipesPasswordEncoder.class,
+@Import({OpenApiConfiguration.class, StreamPipesPasswordEncoder.class,
StreamPipesPrometheusConfig.class, WebSecurityConfig.class,
WelcomePageController.class})
@ComponentScan({"org.apache.streampipes.rest.*",
"org.apache.streampipes.service.core.oauth2",
"org.apache.streampipes.service.core.scheduler"})
diff --git
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/WebSecurityConfig.java
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/WebSecurityConfig.java
index e372963ae4..229d03e167 100644
---
a/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/WebSecurityConfig.java
+++
b/streampipes-service-core/src/main/java/org/apache/streampipes/service/core/WebSecurityConfig.java
@@ -39,18 +39,23 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.FormHttpMessageConverter;
+import org.springframework.security.access.PermissionEvaluator;
+import
org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler;
+import
org.springframework.security.access.expression.method.MethodSecurityExpressionHandler;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.BeanIds;
+import org.springframework.security.config.Customizer;
import
org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import
org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
-import
org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import
org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity;
import
org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import
org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.userdetails.UserDetailsService;
-import
org.springframework.security.oauth2.client.endpoint.DefaultAuthorizationCodeTokenResponseClient;
import
org.springframework.security.oauth2.client.endpoint.OAuth2AccessTokenResponseClient;
import
org.springframework.security.oauth2.client.endpoint.OAuth2AuthorizationCodeGrantRequest;
+import
org.springframework.security.oauth2.client.endpoint.RestClientAuthorizationCodeTokenResponseClient;
import
org.springframework.security.oauth2.client.http.OAuth2ErrorResponseErrorHandler;
import
org.springframework.security.oauth2.client.registration.ClientRegistration;
import
org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
@@ -62,15 +67,14 @@ import
org.springframework.security.oauth2.core.http.converter.OAuth2AccessToken
import org.springframework.security.web.SecurityFilterChain;
import
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import
org.springframework.security.web.context.RequestAttributeSecurityContextRepository;
-import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import org.springframework.util.StringUtils;
-import org.springframework.web.client.RestTemplate;
+import org.springframework.web.client.RestClient;
import java.util.List;
@Configuration
@EnableWebSecurity
-@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true,
jsr250Enabled = true)
+@EnableMethodSecurity(securedEnabled = true, jsr250Enabled = true)
public class WebSecurityConfig {
private static final Logger LOG =
LoggerFactory.getLogger(WebSecurityConfig.class);
@@ -98,61 +102,50 @@ public class WebSecurityConfig {
}
@Autowired
- public void configureGlobal(AuthenticationManagerBuilder auth) throws
Exception {
+ public void configureGlobal(AuthenticationManagerBuilder auth) {
auth.userDetailsService(userDetailsService).passwordEncoder(this.passwordEncoder.passwordEncoder());
}
@Bean
- public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
- http
- .cors()
- .and()
-
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
- .and()
- .csrf().disable()
- .formLogin().disable()
- .httpBasic().disable()
- .exceptionHandling()
- .authenticationEntryPoint(new UnauthorizedRequestEntryPoint())
- .and()
- .authorizeHttpRequests((authz) -> {
- try {
- authz
- .requestMatchers(UnauthenticatedInterfaces
- .get()
- .stream()
- .map(AntPathRequestMatcher::new)
- .toList()
- .toArray(new AntPathRequestMatcher[0]))
- .permitAll()
- .anyRequest()
- .authenticated();
-
- if (env.getOAuthEnabled().getValueOrDefault()) {
- LOG.info("Configuring OAuth authentication from environment
variables");
- authz
- .and()
- .oauth2Login()
- .authorizationEndpoint()
-
.authorizationRequestRepository(cookieOAuth2AuthorizationRequestRepository())
- .and()
- .redirectionEndpoint()
- .and()
- .userInfoEndpoint()
- .oidcUserService(customOidcUserService)
- .userService(customOAuth2UserService)
- .and()
- .tokenEndpoint()
-
.accessTokenResponseClient(authorizationCodeTokenResponseClient())
- .and()
- .successHandler(oAuth2AuthenticationSuccessHandler)
- .failureHandler(oAuth2AuthenticationFailureHandler);
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- });
+ MethodSecurityExpressionHandler methodSecurityExpressionHandler(
+ PermissionEvaluator permissionEvaluator
+ ) {
+ var handler = new DefaultMethodSecurityExpressionHandler();
+ handler.setPermissionEvaluator(permissionEvaluator);
+ return handler;
+ }
+ @Bean
+ public SecurityFilterChain filterChain(HttpSecurity http) {
+ http
+ .cors(Customizer.withDefaults())
+ .sessionManagement(sm ->
sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
+ .csrf(AbstractHttpConfigurer::disable)
+ .formLogin(AbstractHttpConfigurer::disable)
+ .httpBasic(AbstractHttpConfigurer::disable)
+ .exceptionHandling(eh -> eh.authenticationEntryPoint(new
UnauthorizedRequestEntryPoint()))
+ .authorizeHttpRequests(auth -> auth
+
.requestMatchers(UnauthenticatedInterfaces.get().toArray(String[]::new)).permitAll()
+ .anyRequest().authenticated()
+ );
+ if (env.getOAuthEnabled().getValueOrDefault()) {
+ LOG.info("Configuring OAuth authentication from environment variables");
+ http.oauth2Login(oauth -> oauth
+ .authorizationEndpoint(ae -> ae
+
.authorizationRequestRepository(cookieOAuth2AuthorizationRequestRepository())
+ )
+ .redirectionEndpoint(Customizer.withDefaults())
+ .userInfoEndpoint(ui -> ui
+ .oidcUserService(customOidcUserService)
+ .userService(customOAuth2UserService)
+ )
+ .tokenEndpoint(te -> te
+
.accessTokenResponseClient(authorizationCodeTokenResponseClient())
+ )
+ .successHandler(oAuth2AuthenticationSuccessHandler)
+ .failureHandler(oAuth2AuthenticationFailureHandler)
+ );
+ }
http.addFilterBefore(tokenAuthenticationFilter(),
UsernamePasswordAuthenticationFilter.class);
@@ -248,17 +241,24 @@ public class WebSecurityConfig {
}
private OAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest>
authorizationCodeTokenResponseClient() {
- var tokenResponseHttpMessageConverter = new
OAuth2AccessTokenResponseHttpMessageConverter();
- tokenResponseHttpMessageConverter
- .setAccessTokenResponseConverter(new
OAuth2AccessTokenResponseConverterWithDefaults());
- var restTemplate = new RestTemplate(
- List.of(new FormHttpMessageConverter(),
tokenResponseHttpMessageConverter)
+ var tokenResponseConverter = new
OAuth2AccessTokenResponseHttpMessageConverter();
+ tokenResponseConverter.setAccessTokenResponseConverter(
+ new OAuth2AccessTokenResponseConverterWithDefaults()
);
- restTemplate.setErrorHandler(new OAuth2ErrorResponseErrorHandler());
- var tokenResponseClient = new
DefaultAuthorizationCodeTokenResponseClient();
- tokenResponseClient.setRestOperations(restTemplate);
- return tokenResponseClient;
- }
+ RestClient restClient = RestClient.builder()
+ .messageConverters(converters -> {
+ converters.clear();
+ converters.add(new FormHttpMessageConverter());
+ converters.add(tokenResponseConverter);
+ })
+ .defaultStatusHandler(new OAuth2ErrorResponseErrorHandler())
+ .build();
+
+ var client = new RestClientAuthorizationCodeTokenResponseClient();
+ client.setRestClient(restClient);
+ return client;
+
+ }
}
diff --git a/streampipes-service-extensions/pom.xml
b/streampipes-service-extensions/pom.xml
index 03cb0b1a77..d370d673d1 100644
--- a/streampipes-service-extensions/pom.xml
+++ b/streampipes-service-extensions/pom.xml
@@ -65,12 +65,6 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<!-- Test dependencies -->
diff --git
a/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/StreamPipesExtensionsServiceBase.java
b/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/StreamPipesExtensionsServiceBase.java
index aa2481afee..b95136efbc 100644
---
a/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/StreamPipesExtensionsServiceBase.java
+++
b/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/StreamPipesExtensionsServiceBase.java
@@ -38,6 +38,7 @@ import
org.apache.streampipes.model.extensions.svcdiscovery.SpServiceTag;
import org.apache.streampipes.model.extensions.svcdiscovery.SpServiceTagPrefix;
import org.apache.streampipes.rest.extensions.WelcomePage;
import org.apache.streampipes.rest.shared.exception.SpRestExceptionHandler;
+import org.apache.streampipes.rest.shared.serializer.JacksonConfiguration;
import org.apache.streampipes.service.base.BaseNetworkingConfig;
import org.apache.streampipes.service.base.StreamPipesPrometheusConfig;
import org.apache.streampipes.service.base.StreamPipesServiceBase;
@@ -69,7 +70,8 @@ import java.util.stream.Collectors;
WelcomePage.class,
ServiceHealthResource.class,
SpRestExceptionHandler.class,
- StreamPipesPrometheusConfig.class
+ StreamPipesPrometheusConfig.class,
+ JacksonConfiguration.class
})
@ComponentScan({"org.apache.streampipes.rest.extensions.*",
"org.apache.streampipes.service.base.rest.*"})
public abstract class StreamPipesExtensionsServiceBase extends
StreamPipesServiceBase {
diff --git
a/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/security/WebSecurityConfig.java
b/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/security/WebSecurityConfig.java
index 10e83f16d4..32f544614f 100644
---
a/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/security/WebSecurityConfig.java
+++
b/streampipes-service-extensions/src/main/java/org/apache/streampipes/service/extensions/security/WebSecurityConfig.java
@@ -29,18 +29,18 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.BeanIds;
import
org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import
org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import
org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity;
import
org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import
org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.SecurityFilterChain;
import
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@Configuration
@EnableWebSecurity
-@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true,
jsr250Enabled = true)
+@EnableMethodSecurity(securedEnabled = true, jsr250Enabled = true)
public class WebSecurityConfig {
private static final Logger LOG =
LoggerFactory.getLogger(WebSecurityConfig.class);
@@ -62,34 +62,26 @@ public class WebSecurityConfig {
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
if (isAnonymousAccess()) {
-
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
- .and()
- .csrf().disable()
- .formLogin().disable()
- .httpBasic().disable()
- .authorizeHttpRequests()
- .requestMatchers(new AntPathRequestMatcher("/**")).permitAll();
+ http.sessionManagement(sm ->
sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
+ .csrf(AbstractHttpConfigurer::disable)
+ .formLogin(AbstractHttpConfigurer::disable)
+ .httpBasic(AbstractHttpConfigurer::disable)
+ .authorizeHttpRequests(auth -> auth
+ .requestMatchers("/**").permitAll()
+ );
} else {
http
-
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
- .and()
- .csrf().disable()
- .formLogin().disable()
- .httpBasic().disable()
- .exceptionHandling()
- .authenticationEntryPoint(new UnauthorizedRequestEntryPoint())
- .and()
- .authorizeHttpRequests((authz) -> authz
- .requestMatchers(UnauthenticatedInterfaces
- .get()
- .stream()
- .map(AntPathRequestMatcher::new)
- .toList()
- .toArray(new AntPathRequestMatcher[0]))
- .permitAll()
+ .sessionManagement(sm ->
sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
+ .csrf(AbstractHttpConfigurer::disable)
+ .formLogin(AbstractHttpConfigurer::disable)
+ .httpBasic(AbstractHttpConfigurer::disable)
+ .exceptionHandling(eh -> eh.authenticationEntryPoint(new
UnauthorizedRequestEntryPoint()))
+ .authorizeHttpRequests(auth -> auth
+
.requestMatchers(UnauthenticatedInterfaces.get().toArray(String[]::new)).permitAll()
.anyRequest().authenticated()
- .and()
- .addFilterBefore(tokenAuthenticationFilter(),
UsernamePasswordAuthenticationFilter.class));
+ )
+ .addFilterBefore(tokenAuthenticationFilter(),
UsernamePasswordAuthenticationFilter.class);
+
}
return http.build();