diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..27072fd
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,40 @@
+{
+ "name": "DocRaptor Java",
+ "image": "mcr.microsoft.com/devcontainers/java:21",
+ "features": {
+ "ghcr.io/devcontainers/features/java:1": {
+ "version": "21",
+ "jdkDistro": "tem",
+ "installGradle": "true",
+ "installMaven": "true",
+ "additionalVersions": "8"
+ },
+ "ghcr.io/devcontainers/features/git-lfs:1": {}
+ },
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "vscjava.vscode-java-pack",
+ "vscjava.vscode-gradle",
+ "redhat.java"
+ ],
+ "settings": {
+ "java.configuration.updateBuildConfiguration": "automatic",
+ "java.compile.nullAnalysis.mode": "automatic",
+ "java.configuration.runtimes": [
+ {
+ "name": "JavaSE-21",
+ "path": "/usr/lib/jvm/msopenjdk-21",
+ "default": true
+ },
+ {
+ "name": "JavaSE-1.8",
+ "path": "/usr/lib/jvm/msopenjdk-8"
+ }
+ ]
+ }
+ }
+ },
+ "postCreateCommand": "echo 'Java 21:' && /usr/lib/jvm/msopenjdk-21/bin/java -version && echo 'Java 8:' && /usr/lib/jvm/msopenjdk-8/bin/java -version",
+ "remoteUser": "vscode"
+}
diff --git a/pom.xml b/pom.xml
index 1c943bf..36d045a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,10 +36,8 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.1
+ 3.14.1
- 1.8
- 1.8
true
128m
512m
@@ -47,6 +45,7 @@
-Xlint:all
-J-Xss4m
+ 21
@@ -223,6 +222,11 @@
swagger-annotations
${swagger-annotations-version}
+
+ jakarta.annotation
+ jakarta.annotation-api
+ 1.3.5
+
diff --git a/src/main/java/com/docraptor/ApiClient.java b/src/main/java/com/docraptor/ApiClient.java
index 4f099fe..41b8de3 100644
--- a/src/main/java/com/docraptor/ApiClient.java
+++ b/src/main/java/com/docraptor/ApiClient.java
@@ -238,8 +238,8 @@ public Authentication getAuthentication(String authName) {
*/
public void setUsername(String username) {
for (Authentication auth : authentications.values()) {
- if (auth instanceof HttpBasicAuth) {
- ((HttpBasicAuth) auth).setUsername(username);
+ if (auth instanceof HttpBasicAuth basicAuth) {
+ basicAuth.setUsername(username);
return;
}
}
@@ -252,8 +252,8 @@ public void setUsername(String username) {
*/
public void setPassword(String password) {
for (Authentication auth : authentications.values()) {
- if (auth instanceof HttpBasicAuth) {
- ((HttpBasicAuth) auth).setPassword(password);
+ if (auth instanceof HttpBasicAuth basicAuth) {
+ basicAuth.setPassword(password);
return;
}
}
@@ -391,11 +391,11 @@ public String formatDate(Date date) {
public String parameterToString(Object param) {
if (param == null) {
return "";
- } else if (param instanceof Date) {
- return formatDate((Date) param);
- } else if (param instanceof Collection) {
+ } else if (param instanceof Date date) {
+ return formatDate(date);
+ } else if (param instanceof Collection> collection) {
StringBuilder b = new StringBuilder();
- for(Object o : (Collection>)param) {
+ for(Object o : collection) {
if(b.length() > 0) {
b.append(',');
}
@@ -560,7 +560,7 @@ public Object serialize(Object obj, String contentType, Map form
FormDataMultiPart mp = new FormDataMultiPart();
for (Entry param: formParams.entrySet()) {
if( param.getValue() instanceof List && !( ( List ) param.getValue() ).isEmpty()
- && ( ( List ) param.getValue() ).get( 0 ) instanceof File ) {
+ && ( ( List ) param.getValue() ).getFirst() instanceof File ) {
@SuppressWarnings( "unchecked" )
List files = ( List ) param.getValue();
for( File file : files ) {
@@ -594,8 +594,7 @@ private String buildUrl(String path, List queryParams, List collecti
String baseURL;
if (serverIndex != null) {
if (serverIndex < 0 || serverIndex >= servers.size()) {
- throw new ArrayIndexOutOfBoundsException(String.format(
- "Invalid index %d when selecting the host settings. Must be less than %d", serverIndex, servers.size()
+ throw new ArrayIndexOutOfBoundsException("Invalid index %d when selecting the host settings. Must be less than %d".formatted(serverIndex, servers.size()
));
}
baseURL = servers.get(serverIndex).URL(serverVariables);
diff --git a/src/main/java/com/docraptor/RFC3339DateFormat.java b/src/main/java/com/docraptor/RFC3339DateFormat.java
index 10aeb8f..9a28dfb 100644
--- a/src/main/java/com/docraptor/RFC3339DateFormat.java
+++ b/src/main/java/com/docraptor/RFC3339DateFormat.java
@@ -14,6 +14,7 @@
import com.fasterxml.jackson.databind.util.StdDateFormat;
+import java.io.Serial;
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.ParsePosition;
@@ -23,6 +24,7 @@
import java.util.TimeZone;
public class RFC3339DateFormat extends DateFormat {
+ @Serial
private static final long serialVersionUID = 1L;
private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC");