diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b244e8da26..3258091274 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -21,22 +21,19 @@ jobs:
strategy:
fail-fast: false
matrix:
- java: [ 11, 13, 15, 16 ]
- spring-boot-version: [ 2.7.8 ]
+ java: [ 17 ]
+ spring-boot-version: [ 3.0.13 ]
experimental: [ false ]
include:
- - java: 11
+ - java: 17
+ spring-boot-version: 2.7.8
+ experimental: false
+ - java: 17
spring-boot-version: 2.6.14
experimental: false
- - java: 11
+ - java: 17
spring-boot-version: 2.5.7
experimental: false
- - java: 11
- spring-boot-version: 2.4.0
- experimental: false
- - java: 11
- spring-boot-version: 2.3.6.RELEASE
- experimental: false
env:
GOVER: "1.20"
GOOS: linux
@@ -152,7 +149,7 @@ jobs:
runs-on: ubuntu-latest
needs: build
env:
- JDK_VER: 11
+ JDK_VER: 17
OSSRH_USER_TOKEN: ${{ secrets.OSSRH_USER_TOKEN }}
OSSRH_PWD_TOKEN: ${{ secrets.OSSRH_PWD_TOKEN }}
GPG_KEY: ${{ secrets.GPG_KEY }}
@@ -178,7 +175,7 @@ jobs:
echo "DEPLOY_OSSRH=true" >> $GITHUB_ENV
- name: Install jars
if: env.DEPLOY_OSSRH == 'true'
- run: ./mvnw clean install -B -q
+ run: ./mvnw install -B -q
- name: Publish to ossrh
if: env.DEPLOY_OSSRH == 'true'
run: |
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
index db5cffda8a..ad67a0787d 100644
--- a/.github/workflows/validate.yml
+++ b/.github/workflows/validate.yml
@@ -30,7 +30,7 @@ jobs:
strategy:
fail-fast: false # Keep running if one leg fails.
matrix:
- java: [ 11, 13, 15, 16 ]
+ java: [ 17 ]
env:
GOVER: "1.20"
GOOS: linux
diff --git a/examples/pom.xml b/examples/pom.xml
index ebadafdd62..eb89dee1a4 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -18,12 +18,13 @@
${project.build.directory}/generated-sources
${project.basedir}/proto
- 11
+ 17
${java.version}
${java.version}
true
false
0.14.0
+ 3.0.13
@@ -66,12 +67,12 @@
org.springframework.boot
spring-boot-starter-web
- 2.7.8
+ ${springboot.version}
org.springframework.boot
spring-boot-autoconfigure
- 2.7.8
+ ${springboot.version}
com.jayway.jsonpath
@@ -111,7 +112,7 @@
io.dapr
- dapr-sdk-springboot
+ dapr-sdk-springboot3
${project.version}
@@ -134,6 +135,11 @@
retry4j
0.15.0
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
+
@@ -176,7 +182,7 @@
maven-compiler-plugin
3.8.1
- 11
+ ${java.version}
@@ -212,6 +218,14 @@
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+
+
+ true
+
+
diff --git a/examples/src/main/java/io/dapr/examples/OpenTelemetryInterceptor.java b/examples/src/main/java/io/dapr/examples/OpenTelemetryInterceptor.java
index 1e6dabdb6a..4b62eb677e 100644
--- a/examples/src/main/java/io/dapr/examples/OpenTelemetryInterceptor.java
+++ b/examples/src/main/java/io/dapr/examples/OpenTelemetryInterceptor.java
@@ -22,9 +22,9 @@
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
-import javax.servlet.DispatcherType;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Collections;
@Component
diff --git a/pom.xml b/pom.xml
index 663bd81685..93bad3fae2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,8 +22,8 @@
3.1.1
1.8
2.7
- 8
- 8
+ 11
+ 11
true
2.12.3
true
- 4.0.0-RC1
true
../spotbugs-exclude.xml
- 2.7.8
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED
- 3.1.2
- 3.1.2
+ 3.2.2
+ 3.2.2
5.7.2
@@ -60,6 +58,11 @@
+
+ org.slf4j
+ slf4j-api
+ 2.0.9
+
io.grpc
grpc-bom
@@ -120,7 +123,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.6
+ 0.8.11
@@ -132,7 +135,7 @@
org.codehaus.mojo
animal-sniffer-maven-plugin
- 1.20
+ 1.23
org.codehaus.mojo.signature
@@ -154,7 +157,7 @@
org.apache.maven.plugins
maven-gpg-plugin
- 1.6
+ 3.1.0
sign-artifacts
@@ -175,7 +178,7 @@
org.sonatype.plugins
nexus-staging-maven-plugin
- 1.6.8
+ 1.6.13
true
ossrh
@@ -186,7 +189,7 @@
org.apache.maven.plugins
maven-checkstyle-plugin
- 3.1.1
+ 3.3.1
checkstyle.xml
UTF-8
@@ -219,15 +222,7 @@
com.github.spotbugs
spotbugs-maven-plugin
- 4.1.4
-
-
-
- com.github.spotbugs
- spotbugs
- ${spotbugs.version}
-
-
+ 4.8.2.0
${spotbugs.exclude.filter.file}
${spotbugs.fail}
@@ -316,7 +311,12 @@
sdk-actors
sdk-workflows
sdk-springboot
+ sdk-springboot3
examples
+
diff --git a/sdk-actors/pom.xml b/sdk-actors/pom.xml
index c76347f5c6..2a5c5deac9 100644
--- a/sdk-actors/pom.xml
+++ b/sdk-actors/pom.xml
@@ -95,7 +95,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.6
+ 0.8.11
default-prepare-agent
diff --git a/sdk-springboot/pom.xml b/sdk-springboot/pom.xml
index 1631c35734..f96dfd134a 100644
--- a/sdk-springboot/pom.xml
+++ b/sdk-springboot/pom.xml
@@ -130,7 +130,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.6
+ 0.8.11
default-prepare-agent
diff --git a/sdk-springboot3/pom.xml b/sdk-springboot3/pom.xml
new file mode 100644
index 0000000000..e730b29602
--- /dev/null
+++ b/sdk-springboot3/pom.xml
@@ -0,0 +1,137 @@
+
+ 4.0.0
+
+
+ io.dapr
+ dapr-sdk-parent
+ 1.11.0-SNAPSHOT
+
+
+ dapr-sdk-springboot3
+ jar
+ 1.11.0-SNAPSHOT
+ dapr-sdk-springboot3
+ SDK extension for Springboot 3.0
+
+
+ false
+ 3.0.13
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${springboot.version}
+ pom
+ import
+
+
+
+
+
+
+ io.dapr
+ dapr-sdk-springboot
+ ${project.version}
+
+
+ org.springframework
+ *
+
+
+ org.springframework.boot
+ *
+
+
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+ com.github.gmazzo
+ okhttp-mock
+ 1.4.1
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.springframework
+ spring-beans
+ compile
+
+
+ org.springframework
+ spring-web
+ compile
+
+
+ org.springframework
+ spring-context
+ compile
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+ compile
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ compile
+ true
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.2.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.2.0
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+
+
diff --git a/sdk-tests/pom.xml b/sdk-tests/pom.xml
index a25c0f31cc..c1d6cf13b0 100644
--- a/sdk-tests/pom.xml
+++ b/sdk-tests/pom.xml
@@ -12,8 +12,8 @@
UTF-8
- 11
- 11
+ 17
+ 17
true
1.11.0-SNAPSHOT
${project.build.directory}/generated-sources
@@ -21,7 +21,7 @@
1.59.0
3.17.3
0.14.0
- 2.7.8
+ 3.0.13
@@ -80,6 +80,31 @@
opentelemetry-sdk
${opentelemetry.version}
+
+ io.opentelemetry
+ opentelemetry-api
+ ${opentelemetry.version}
+
+
+ io.opentelemetry
+ opentelemetry-context
+ ${opentelemetry.version}
+
+
+ io.opentelemetry
+ opentelemetry-sdk-common
+ ${opentelemetry.version}
+
+
+ io.opentelemetry
+ opentelemetry-sdk-trace
+ ${opentelemetry.version}
+
+
+ io.opentelemetry
+ opentelemetry-sdk-metrics
+ ${opentelemetry.version}-alpha
+
io.opentelemetry
opentelemetry-exporter-logging
@@ -104,9 +129,19 @@
io.dapr
- dapr-sdk-springboot
+ dapr-sdk-springboot3
${dapr.sdk.version}
test
+
+
+ org.springframework
+ *
+
+
+ org.springframework.boot
+ *
+
+
org.junit.jupiter
@@ -149,7 +184,13 @@
jakarta.annotation
jakarta.annotation-api
- 1.3.5
+ 2.1.1
+ compile
+
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
compile
@@ -157,6 +198,20 @@
toxiproxy-java
2.1.7
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.0.0
+ compile
+
+
+
+ javax.servlet
+ javax.servlet-api
+ 4.0.1
+ compile
+
@@ -209,7 +264,7 @@
org.apache.maven.plugins
maven-failsafe-plugin
- 3.1.2
+ 3.2.2
diff --git a/sdk-tests/src/test/java/io/dapr/it/tracing/http/OpenTelemetryInterceptor.java b/sdk-tests/src/test/java/io/dapr/it/tracing/http/OpenTelemetryInterceptor.java
index 36e2504361..91bedea536 100644
--- a/sdk-tests/src/test/java/io/dapr/it/tracing/http/OpenTelemetryInterceptor.java
+++ b/sdk-tests/src/test/java/io/dapr/it/tracing/http/OpenTelemetryInterceptor.java
@@ -16,15 +16,14 @@
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.TextMapPropagator;
-import javax.annotation.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
-import javax.servlet.DispatcherType;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Collections;
@Component
@@ -33,21 +32,20 @@ public class OpenTelemetryInterceptor implements HandlerInterceptor {
@Autowired
private OpenTelemetry openTelemetry;
- private static final TextMapPropagator.Getter HTTP_SERVLET_REQUEST_GETTER =
+ // implmentation for springboot 3.0, which uses jakarta.servlet instead of javax.servlet
+ private static final TextMapPropagator.Getter JAKARTA_HTTP_SERVLET_REQUEST_GETTER =
new TextMapPropagator.Getter<>() {
@Override
public Iterable keys(HttpServletRequest carrier) {
return Collections.list(carrier.getHeaderNames());
}
- @Nullable
@Override
- public String get(@Nullable HttpServletRequest carrier, String key) {
+ public String get(HttpServletRequest carrier, String key) {
return carrier.getHeader(key);
}
};
- @Override
public boolean preHandle(
HttpServletRequest request, HttpServletResponse response, Object handler) {
final TextMapPropagator textFormat = openTelemetry.getPropagators().getTextMapPropagator();
@@ -57,16 +55,50 @@ public boolean preHandle(
return true;
}
- Context context = textFormat.extract(Context.current(), request, HTTP_SERVLET_REQUEST_GETTER);
+ Context context = textFormat.extract(Context.current(), request, JAKARTA_HTTP_SERVLET_REQUEST_GETTER);
request.setAttribute("opentelemetry-context", context);
return true;
}
- @Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) {
// There is no global context to be changed in post handle since it is done in preHandle on a new call.
}
+
+ // implmentation for springboot 3.0, which uses jakarta.servlet instead of javax.servlet
+ private static final TextMapPropagator.Getter JAVA_HTTP_SERVLET_REQUEST_GETTER =
+ new TextMapPropagator.Getter<>() {
+ @Override
+ public Iterable keys(javax.servlet.http.HttpServletRequest carrier) {
+ return Collections.list(carrier.getHeaderNames());
+ }
+
+ @Override
+ public String get(javax.servlet.http.HttpServletRequest carrier, String key) {
+ return carrier.getHeader(key);
+ }
+ };
+
+ public boolean preHandle(
+ javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Object handler) {
+ final TextMapPropagator textFormat = openTelemetry.getPropagators().getTextMapPropagator();
+ // preHandle is called twice for asynchronous request. For more information, read:
+ // https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/AsyncHandlerInterceptor.html
+ if (request.getDispatcherType() == javax.servlet.DispatcherType.ASYNC) {
+ return true;
+ }
+
+ Context context = textFormat.extract(Context.current(), request, JAVA_HTTP_SERVLET_REQUEST_GETTER);
+ request.setAttribute("opentelemetry-context", context);
+ return true;
+ }
+
+ public void postHandle(
+ javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Object handler,
+ ModelAndView modelAndView) {
+ // There is no global context to be changed in post handle since it is done in preHandle on a new call.
+ }
+
}
diff --git a/sdk-workflows/pom.xml b/sdk-workflows/pom.xml
index ba21f677fc..7a19221dd7 100644
--- a/sdk-workflows/pom.xml
+++ b/sdk-workflows/pom.xml
@@ -112,7 +112,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.8
+ 0.8.11
default-prepare-agent
diff --git a/sdk/pom.xml b/sdk/pom.xml
index c2fcde7eaa..ce6ab902ad 100644
--- a/sdk/pom.xml
+++ b/sdk/pom.xml
@@ -25,6 +25,10 @@
+
+ org.slf4j
+ slf4j-api
+
org.apache.maven.plugins
maven-resources-plugin
@@ -173,7 +177,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.6
+ 0.8.11
default-prepare-agent
diff --git a/spotbugs-exclude.xml b/spotbugs-exclude.xml
index e68bf4cadf..f0111ca638 100644
--- a/spotbugs-exclude.xml
+++ b/spotbugs-exclude.xml
@@ -3,4 +3,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file