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
[![Master CI](https://github.com/switcherapi/switcher-client-java/actions/workflows/master-2.yml/badge.svg)](https://github.com/switcherapi/switcher-client-java/actions/workflows/master-2.yml) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=switcherapi_switcher-client&metric=alert_status)](https://sonarcloud.io/dashboard?id=switcherapi_switcher-client) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=switcherapi_switcher-client&branch=master-2&&metric=alert_status)](https://sonarcloud.io/summary/overall?id=switcherapi_switcher-client&branch=master-2) [![Known Vulnerabilities](https://snyk.io/test/github/switcherapi/switcher-client-java/badge.svg?targetFile=pom.xml)](https://snyk.io/test/github/switcherapi/switcher-client-java?targetFile=pom.xml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Maven Central](https://img.shields.io/maven-central/v/com.switcherapi/switcher-client.svg?label=Maven%20Central)](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();