From 89f42f3ca5ebe2ed06121ff9f786bcf66db05130 Mon Sep 17 00:00:00 2001 From: Naohide Sano Date: Sat, 29 Nov 2025 19:40:32 +0900 Subject: [PATCH 1/3] modernize code --- .../java/org/yetiz/lib/acd/ACDSession.java | 20 +++++---- .../java/org/yetiz/lib/acd/DateAdapter.java | 42 ++++++++++++++----- src/test/java/example/WithRawAPI.java | 2 +- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/yetiz/lib/acd/ACDSession.java b/src/main/java/org/yetiz/lib/acd/ACDSession.java index 9a9a570..73b6fb1 100644 --- a/src/main/java/org/yetiz/lib/acd/ACDSession.java +++ b/src/main/java/org/yetiz/lib/acd/ACDSession.java @@ -1,5 +1,10 @@ package org.yetiz.lib.acd; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.time.Duration; +import java.util.Calendar; + import com.google.gson.JsonObject; import org.asynchttpclient.AsyncHttpClient; import org.asynchttpclient.AsyncHttpClientConfig; @@ -16,9 +21,8 @@ import org.yetiz.lib.acd.exception.InvalidAuthTokenException; import org.yetiz.lib.utils.Log; -import java.io.IOException; -import java.io.UncheckedIOException; -import java.util.Calendar; +import static java.util.concurrent.TimeUnit.MICROSECONDS; + /** * Created by yeti on 2015/4/13. @@ -47,10 +51,10 @@ private ACDSession(int timeoutMs) { Log.d("Timeout set to " + timeoutMs); AsyncHttpClientConfig asyncHttpClientConfig = new DefaultAsyncHttpClientConfig.Builder() .setFollowRedirect(false) - .setConnectTimeout(timeoutMs) - .setReadTimeout(timeoutMs) - .setRequestTimeout(timeoutMs) - .setPooledConnectionIdleTimeout(timeoutMs) + .setConnectTimeout(Duration.of(timeoutMs, MICROSECONDS.toChronoUnit())) + .setReadTimeout(Duration.of(timeoutMs, MICROSECONDS.toChronoUnit())) + .setRequestTimeout(Duration.of(timeoutMs, MICROSECONDS.toChronoUnit())) + .setPooledConnectionIdleTimeout(Duration.of(timeoutMs, MICROSECONDS.toChronoUnit())) .build(); this.asyncHttpClient = new DefaultAsyncHttpClient(asyncHttpClientConfig); } @@ -205,7 +209,7 @@ public Response execute(Request request) { } private Request setAuthHeader(Request request) { - return new RequestBuilder(request).setHeader("Authorization", acdToken.getAuthorizationString()).build(); + return new RequestBuilder(request.getMethod()).setHeader("Authorization", acdToken.getAuthorizationString()).build(); } private void updateTokenOfConfigureFile() { diff --git a/src/main/java/org/yetiz/lib/acd/DateAdapter.java b/src/main/java/org/yetiz/lib/acd/DateAdapter.java index 08b9e9c..57fa11f 100644 --- a/src/main/java/org/yetiz/lib/acd/DateAdapter.java +++ b/src/main/java/org/yetiz/lib/acd/DateAdapter.java @@ -1,23 +1,22 @@ package org.yetiz.lib.acd; +import java.io.IOException; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; +import java.util.TimeZone; + import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; -import com.google.gson.internal.bind.DateTypeAdapter; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; -import java.io.IOException; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; -import java.util.TimeZone; - /** * Created by yeti on 4/15/15. */ @@ -25,11 +24,32 @@ public final class DateAdapter extends TypeAdapter { public static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() { @SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal public TypeAdapter create(Gson gson, TypeToken typeToken) { - return typeToken.getRawType() == Date.class ? (TypeAdapter) new DateTypeAdapter() : null; + return typeToken.getRawType() == Date.class ? (TypeAdapter) new MyDateAdapter() : null; } }; - private final DateFormat enUsFormat + public static class MyDateAdapter extends TypeAdapter { + @Override + public void write(JsonWriter out, Date value) throws IOException { + if (value == null) { + out.nullValue(); + return; + } + out.value(value.getTime()); // emit as long (milliseconds since epoch) + } + + @Override + public Date read(JsonReader in) throws IOException { + if (in.peek() == JsonToken.NULL) { + in.nextNull(); + return null; + } + long millis = in.nextLong(); + return new Date(millis); + } + } + + private final DateFormat enUsFormat = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.US); private final DateFormat localFormat = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT); diff --git a/src/test/java/example/WithRawAPI.java b/src/test/java/example/WithRawAPI.java index 69ca3ff..72197dc 100644 --- a/src/test/java/example/WithRawAPI.java +++ b/src/test/java/example/WithRawAPI.java @@ -95,7 +95,7 @@ public static Configure getConfigure(String[] args) { public static ACDSession getACDSession(String[] args, Configure configure) { ACDSession acdSession = null; - if (configure.getAccessToken().equals("")) { + if (configure.getAccessToken().isEmpty()) { if (args.length == 2) acdSession = ACDSession.getACDSessionByCode(configure, args[1]); else { From a67387c36fdf850cee9fd7b4eea9c797c7855483 Mon Sep 17 00:00:00 2001 From: Naohide Sano Date: Sat, 29 Nov 2025 19:40:54 +0900 Subject: [PATCH 2/3] update settings --- .github/workflows/codeql-analysis.yml | 19 ++++++++--- .github/workflows/maven.yml | 10 +++--- README.md | 6 ++-- jitpack.yml | 2 ++ pom.xml | 49 +++++---------------------- 5 files changed, 34 insertions(+), 52 deletions(-) create mode 100644 jitpack.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index e819d4d..2fc82eb 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -18,6 +18,10 @@ jobs: analyze: name: Analyze runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write strategy: fail-fast: false @@ -30,11 +34,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,8 +48,15 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # â„šī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -59,4 +70,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 819c762..27d8c11 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -1,7 +1,7 @@ # This workflow will build a Java project with Maven # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven -name: Java CI with Maven +name: Java CI on: push: @@ -16,16 +16,16 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Check w/o SNAPSHOT when "bump version" if: ${{ contains(github.event.head_commit.message, 'bump version') }} run: grep "" pom.xml | head -1 | grep -v SNAPSHOT - - name: Set up JDK 1.8 - uses: actions/setup-java@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v4 with: - java-version: '8' + java-version: '17' distribution: 'temurin' cache: maven diff --git a/README.md b/README.md index 3d4a59e..d0c9729 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ [![Release](https://jitpack.io/v/umjammer/ACD-JAPI.svg)](https://jitpack.io/#umjammer/ACD-JAPI) -[![Java CI with Maven](https://github.com/umjammer/ACD-JAPI/actions/workflows/maven.yml/badge.svg)](https://github.com/umjammer/ACD-JAPI/actions) +[![Java CI](https://github.com/umjammer/ACD-JAPI/actions/workflows/maven.yml/badge.svg)](https://github.com/umjammer/ACD-JAPI/actions/workflows/maven.yml) [![CodeQL](https://github.com/umjammer/ACD-JAPI/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/umjammer/ACD-JAPI/actions/workflows/codeql-analysis.yml) -![Java](https://img.shields.io/badge/Java-8-b07219) +![Java](https://img.shields.io/badge/Java-17-b07219) [![Parent](https://img.shields.io/badge/Parent-vavi--apps--fuse-pink)](https://github.com/umjammer/vavi-apps-fuse) # ACD-JAPI ## Amazon Cloud Drive Java API (unofficial) This project provide a Java version of Amazon Cloud Drive API from REST version. -## Maven Repository +## Install Maven/Gradle diff --git a/jitpack.yml b/jitpack.yml new file mode 100644 index 0000000..efde7bf --- /dev/null +++ b/jitpack.yml @@ -0,0 +1,2 @@ +jdk: + - openjdk17 diff --git a/pom.xml b/pom.xml index 07e5037..3f698b9 100644 --- a/pom.xml +++ b/pom.xml @@ -12,17 +12,15 @@ org.apache.maven.plugins maven-compiler-plugin - 3.10.1 + 3.12.1 - 1.8 - 1.8 - UTF-8 + 17 org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M7 + 3.2.5 -Djava.util.logging.config.file=${project.build.testOutputDirectory}/logging.properties false @@ -36,7 +34,7 @@ org.junit junit-bom - 5.9.2 + 5.13.4 pom import @@ -47,51 +45,22 @@ com.google.code.gson gson - 2.10 + 2.13.2 org.apache.commons commons-lang3 - 3.12.0 + 3.20.0 org.asynchttpclient async-http-client - 2.12.3 - - - io.netty - netty-codec-http - - - io.netty - netty-codec - - - io.netty - netty-common - - + 3.0.4 - - io.netty - netty-common - 4.1.91.Final - - - io.netty - netty-codec - 4.1.91.Final - - - io.netty - netty-codec-http - 4.1.91.Final - org.slf4j slf4j-api - 1.7.36 + 2.0.17 @@ -113,7 +82,7 @@ org.slf4j slf4j-jdk14 - 1.7.36 + 2.0.16 test From aa5349015318bdbdf010fb71291fcbfda36f2896 Mon Sep 17 00:00:00 2001 From: Naohide Sano Date: Sat, 29 Nov 2025 19:41:15 +0900 Subject: [PATCH 3/3] bump version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3f698b9..dca4210 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.yetiz ACD-JAPI - 1.1.6v + 1.1.7v