diff --git a/.github/workflows/master-2.yml b/.github/workflows/master-2.yml
index 23d7388..b421dce 100644
--- a/.github/workflows/master-2.yml
+++ b/.github/workflows/master-2.yml
@@ -34,7 +34,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- java: ['11', '17', '21', '25']
+ java: ['17', '21', '25']
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 9a5dd90..1b2d0a1 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,7 +10,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- java: ['11', '17', '21', '25']
+ java: ['17', '21', '25']
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
@@ -47,7 +47,7 @@ jobs:
uses: actions/setup-java@v5
with:
distribution: 'temurin'
- java-version: '11'
+ java-version: '17'
server-id: central
server-username: CENTRAL_USERNAME
server-password: CENTRAL_TOKEN
diff --git a/README.md b/README.md
index 0e37c52..33e2032 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ A Java SDK for Switcher API
[](https://github.com/switcherapi/switcher-client-java/actions/workflows/master-2.yml)
-[](https://sonarcloud.io/dashboard?id=switcherapi_switcher-client)
+[](https://sonarcloud.io/summary/overall?id=switcherapi_switcher-client&branch=master-2)
[](https://snyk.io/test/github/switcherapi/switcher-client-java?targetFile=pom.xml)
[](https://opensource.org/licenses/MIT)
[](https://central.sonatype.com/artifact/com.switcherapi/switcher-client)
@@ -44,9 +44,9 @@ https://github.com/switcherapi/switcher-api
```
-### Compatibility with Jakarta EE 9
-Use SDK v1.x for applications not using Jakarta EE 9.
-Use SDK v2.x for Jakarta EE 9 based applications.
+### Compatibility with Jakarta EE 9 and Java versions
+Use SDK v1.x for applications not using Jakarta EE 9 (requires Java 8+).
+Use SDK v2.x for Jakarta EE 9+ based applications (requires Java 17+).
## Client Context Properties - SwitcherContext
diff --git a/pom.xml b/pom.xml
index 7bd6a0e..f1c7a94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,7 +46,7 @@
UTF-8
UTF-8
- 11
+ 17
${java.version}
${java.version}
@@ -58,10 +58,10 @@
2.0.17
- 5.1.0
- 5.14.0
+ 5.2.0
+ 6.0.0
2.3.0
- 1.14.0
+ 6.0.0
3.14.1
@@ -227,6 +227,12 @@
org.apache.maven.plugins
maven-javadoc-plugin
${maven-javadoc-plugin.version}
+
+ all,-missing
+
+ -Xdoclint:all,-missing
+
+
attach-javadocs
diff --git a/src/main/java/com/switcherapi/client/test/SwitcherTestExtension.java b/src/main/java/com/switcherapi/client/test/SwitcherTestExtension.java
index bcfc83d..34b24b8 100644
--- a/src/main/java/com/switcherapi/client/test/SwitcherTestExtension.java
+++ b/src/main/java/com/switcherapi/client/test/SwitcherTestExtension.java
@@ -2,11 +2,13 @@
import com.switcherapi.client.model.SwitcherResult;
import org.apache.commons.lang3.ArrayUtils;
+import org.jspecify.annotations.NullMarked;
import org.junit.jupiter.api.extension.*;
import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
import org.junit.jupiter.api.extension.ExtensionContext.Store;
import java.util.Arrays;
+import java.util.Optional;
import java.util.stream.Stream;
/**
@@ -29,6 +31,7 @@ public boolean supportsTestTemplate(ExtensionContext context) {
}
@Override
+ @NullMarked
public Stream provideTestTemplateInvocationContexts(ExtensionContext context) {
SwitcherTest switcherTest = context.getRequiredTestMethod().getAnnotation(SwitcherTest.class);
@@ -58,9 +61,10 @@ public void beforeTestExecution(ExtensionContext context) {
}
@Override
+ @NullMarked
public void afterTestExecution(ExtensionContext context) {
Store store = getStore(context);
- String[] keys = store.remove(STORE_KEYS, String[].class);
+ String[] keys = Optional.ofNullable(store.remove(STORE_KEYS, String[].class)).orElse(new String[0]);
if (ArrayUtils.isNotEmpty(keys)) {
for (String keyStored : keys) {
diff --git a/src/main/java/com/switcherapi/client/test/SwitcherTestTemplate.java b/src/main/java/com/switcherapi/client/test/SwitcherTestTemplate.java
index 22aae0b..e9374f4 100644
--- a/src/main/java/com/switcherapi/client/test/SwitcherTestTemplate.java
+++ b/src/main/java/com/switcherapi/client/test/SwitcherTestTemplate.java
@@ -1,6 +1,7 @@
package com.switcherapi.client.test;
import org.apache.commons.lang3.ArrayUtils;
+import org.jspecify.annotations.NullMarked;
import org.junit.jupiter.api.extension.TestTemplateInvocationContext;
import java.util.Arrays;
@@ -25,6 +26,7 @@ class SwitcherTestTemplate implements TestTemplateInvocationContext {
}
@Override
+ @NullMarked
public String getDisplayName(int invocationIndex) {
SwitcherTestValue[] switcherTestValues = switcherTest.switchers();