From f905b6b4f872e1340f08202bfc2f41406ef73d23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 09:27:29 +0000 Subject: [PATCH 1/8] Bump the maven-dependencies group with 2 updates (#36) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 93dab7c..2230a40 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ 5.10.0 - 8.4.0 + 8.4.2 1.6.8 @@ -118,7 +118,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.1.2 + 3.2.1 org.apache.maven.plugins From 384e454ce939c9adc34a336ab9be69f2c67a34c1 Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Mon, 30 Oct 2023 19:27:36 +0100 Subject: [PATCH 2/8] Update kdewallet to 1.3.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2230a40..a991bfc 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 1.3.0 2.0.0-alpha - 1.3.2 + 1.3.3 1.3.6 32.1.3-jre 2.0.9 From 3073f2c623cbec297ac55c71fd8d16b1b047c7c8 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 28 Nov 2023 18:55:24 +0100 Subject: [PATCH 3/8] reduce and split up dependency update check --- .github/dependabot.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 505ccc1..78fd9bb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,14 +3,27 @@ updates: - package-ecosystem: "maven" directory: "/" schedule: - interval: "weekly" + interval: "monthly" day: "monday" time: "06:00" - timezone: "UTC" + timezone: "Etc/UTC" groups: - maven-dependencies: + java-test-dependencies: + patterns: + - "org.junit.jupiter:*" + maven-build-plugins: + patterns: + - "org.apache.maven.plugins:*" + - "org.owasp:dependency-check-maven" + - "org.sonatype.plugins:nexus-staging-maven-plugin" + java-production-dependencies: patterns: - "*" + exclude-patterns: + - "org.junit.jupiter:*" + - "org.apache.maven.plugins:*" + - "org.owasp:dependency-check-maven" + - "org.sonatype.plugins:nexus-staging-maven-plugin" - package-ecosystem: "github-actions" directory: "/" # even for `.github/workflows` From 0da3cee1d28e1dfd0baaf8488192410696e4f023 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 15:09:53 +0000 Subject: [PATCH 4/8] Bump the java-test-dependencies group with 1 update (#46) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a991bfc..9df6b0f 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,7 @@ 3.13.0 - 5.10.0 + 5.10.1 8.4.2 From 6c00398ffc2e3c1bae8a6712fe85dba1d0bf8b81 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 29 Nov 2023 16:50:16 +0100 Subject: [PATCH 5/8] deactivate codeql run on dependabot commits --- .github/workflows/codeql-analysis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c034e1b..cc74a5d 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,7 +13,8 @@ jobs: analyse: name: Analyse runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" + # dependeabot has on push events only read-only access, but codeql requires write access + if: ${{ !(github.actor == 'dependabot[bot]' && contains(fromJSON('["push"]'), github.event_name)) }} steps: - uses: actions/checkout@v4 with: From bcda16b647216ace72625f4a8ab70d17bbac87d3 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 30 Nov 2023 15:47:17 +0100 Subject: [PATCH 6/8] removes unused/unnecessary dependencies --- pom.xml | 13 ---------- src/main/java/module-info.java | 2 -- .../keychain/KDEWalletKeychainAccess.java | 10 +++---- .../revealpath/DBusSendRevealPathService.java | 5 ++-- .../org/cryptomator/linux/util/CheckUtil.java | 26 +++++++++++++++++++ 5 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 src/main/java/org/cryptomator/linux/util/CheckUtil.java diff --git a/pom.xml b/pom.xml index 9df6b0f..f499a46 100644 --- a/pom.xml +++ b/pom.xml @@ -44,9 +44,7 @@ 2.0.0-alpha 1.3.3 1.3.6 - 32.1.3-jre 2.0.9 - 3.13.0 5.10.1 @@ -67,11 +65,6 @@ slf4j-api ${slf4j.version} - - com.google.guava - guava - ${guava.version} - de.swiesend secret-service @@ -82,12 +75,6 @@ kdewallet ${kdewallet.version} - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - org.purejava diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 6116212..9ec0149 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -9,8 +9,6 @@ module org.cryptomator.integrations.linux { requires org.cryptomator.integrations.api; requires org.slf4j; - requires com.google.common; - requires org.apache.commons.lang3; requires org.freedesktop.dbus; requires org.purejava.appindicator; requires org.purejava.kwallet; diff --git a/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java b/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java index 5478199..4d168d0 100644 --- a/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java +++ b/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java @@ -1,10 +1,10 @@ package org.cryptomator.linux.keychain; -import com.google.common.base.Preconditions; import org.cryptomator.integrations.common.OperatingSystem; import org.cryptomator.integrations.common.Priority; import org.cryptomator.integrations.keychain.KeychainAccessException; import org.cryptomator.integrations.keychain.KeychainAccessProvider; +import org.cryptomator.linux.util.CheckUtil; import org.freedesktop.dbus.connections.impl.DBusConnection; import org.freedesktop.dbus.connections.impl.DBusConnectionBuilder; import org.freedesktop.dbus.exceptions.DBusConnectionException; @@ -49,25 +49,25 @@ public boolean isLocked() { @Override public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException { - Preconditions.checkState(wallet.isPresent(), "Keychain not supported."); + CheckUtil.checkState(wallet.isPresent(), "Keychain not supported."); wallet.get().storePassphrase(key, passphrase); } @Override public char[] loadPassphrase(String key) throws KeychainAccessException { - Preconditions.checkState(wallet.isPresent(), "Keychain not supported."); + CheckUtil.checkState(wallet.isPresent(), "Keychain not supported."); return wallet.get().loadPassphrase(key); } @Override public void deletePassphrase(String key) throws KeychainAccessException { - Preconditions.checkState(wallet.isPresent(), "Keychain not supported."); + CheckUtil.checkState(wallet.isPresent(), "Keychain not supported."); wallet.get().deletePassphrase(key); } @Override public void changePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException { - Preconditions.checkState(wallet.isPresent(), "Keychain not supported."); + CheckUtil.checkState(wallet.isPresent(), "Keychain not supported."); wallet.get().changePassphrase(key, passphrase); } diff --git a/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java b/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java index 533a8e5..39529ff 100644 --- a/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java +++ b/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java @@ -1,6 +1,5 @@ package org.cryptomator.linux.revealpath; -import com.google.common.base.Preconditions; import org.cryptomator.integrations.revealpath.RevealFailedException; import org.cryptomator.integrations.revealpath.RevealPathService; @@ -91,7 +90,9 @@ public boolean isSupported() { * @throws IOException if the Inputer reader on the process output cannot be created */ private boolean parseOutputForFileManagerInterface(Process fileManager1Process) throws IOException { - Preconditions.checkState(!fileManager1Process.isAlive()); + if( fileManager1Process.isAlive()) { + throw new IllegalArgumentException("Process " + fileManager1Process + " must be terminated to read output."); + } try (var reader = fileManager1Process.inputReader(StandardCharsets.UTF_8)) { return reader.lines().map(String::trim).anyMatch(FILEMANAGER1_XML_ELEMENT::equals); } diff --git a/src/main/java/org/cryptomator/linux/util/CheckUtil.java b/src/main/java/org/cryptomator/linux/util/CheckUtil.java new file mode 100644 index 0000000..02cc829 --- /dev/null +++ b/src/main/java/org/cryptomator/linux/util/CheckUtil.java @@ -0,0 +1,26 @@ +package org.cryptomator.linux.util; + +public class CheckUtil { + + + /** + * Ensures the truth of an expression involving the state of the calling instance, but not + * involving any parameters to the calling method. + * + * @param expression a boolean expression + * @param errorMessage the exception message to use if the check fails; will be converted to a + * string using {@link String#valueOf(Object)} + * @throws IllegalStateException if {@code expression} is false + */ + public static void checkState(boolean expression, String errorMessage) { + if (!expression) { + throw new IllegalStateException(errorMessage); + } + } + + public static void checkState(boolean expression) { + if (!expression) { + throw new IllegalStateException(); + } + } +} From 0f6a4260b6de8a1a968398e2c8de9805257f7dfe Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 30 Nov 2023 15:47:36 +0100 Subject: [PATCH 7/8] clean up code --- .../linux/keychain/KDEWalletKeychainAccess.java | 8 ++------ .../linux/tray/AppindicatorTrayMenuController.java | 9 ++++----- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java b/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java index 4d168d0..52e0771 100644 --- a/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java +++ b/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java @@ -95,11 +95,7 @@ private static DBusConnection getNewConnection() throws DBusException { } catch (DBusConnectionException | DBusExecutionException de) { LOG.warn("Connecting to SESSION bus failed.", de); LOG.warn("Falling back to SYSTEM DBus"); - try { - return DBusConnectionBuilder.forSystemBus().build(); - } catch (DBusException e) { - throw e; - } + return DBusConnectionBuilder.forSystemBus().build(); } } @@ -144,7 +140,7 @@ public char[] loadPassphrase(String key) throws KeychainAccessException { } else { LOG.debug("loadPassphrase: wallet is closed."); } - return (password.equals("")) ? null : password.toCharArray(); + return (password.isEmpty()) ? null : password.toCharArray(); } catch (RuntimeException e) { throw new KeychainAccessException("Loading the passphrase failed.", e); } diff --git a/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java b/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java index 66daabc..573d178 100644 --- a/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java +++ b/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java @@ -31,7 +31,6 @@ public class AppindicatorTrayMenuController implements TrayMenuController { private static final Arena ARENA = Arena.global(); private MemorySegment indicator; private MemorySegment menu = gtk_menu_new(); - private Optional svgSourcePath; @CheckAvailability public static boolean isAvailable() { @@ -48,9 +47,9 @@ public void showTrayIcon(Consumer iconLoader, Runnable runnable, private void showTrayIconWithSVG(String s) { try (var arena = Arena.ofConfined()) { - svgSourcePath = Optional.ofNullable(System.getProperty(SVG_SOURCE_PROPERTY)); + var svgSourcePath = System.getProperty(SVG_SOURCE_PROPERTY); // flatpak - if (svgSourcePath.isEmpty()) { + if (svgSourcePath != null) { indicator = app_indicator_new(arena.allocateUtf8String(APP_INDICATOR_ID), arena.allocateUtf8String(s), APP_INDICATOR_CATEGORY_APPLICATION_STATUS()); @@ -60,7 +59,7 @@ private void showTrayIconWithSVG(String s) { arena.allocateUtf8String(s), APP_INDICATOR_CATEGORY_APPLICATION_STATUS(), // find tray icons theme in mounted AppImage / installed on system by ppa - arena.allocateUtf8String(svgSourcePath.get())); + arena.allocateUtf8String(svgSourcePath)); } } } @@ -105,7 +104,7 @@ private void addChildren(MemorySegment menu, List items) { } gtk_menu_shell_append(menu, gtkMenuItem); } - case SeparatorItem separatorItem -> { + case SeparatorItem _ -> { var gtkSeparator = gtk_menu_item_new(); gtk_menu_shell_append(menu, gtkSeparator); } From 91e82fa89672898520a9d20362593bc6386e98b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 08:53:18 +0000 Subject: [PATCH 8/8] Bump the github-actions group with 1 update (#50) --- .github/workflows/build.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/publish-central.yml | 2 +- .github/workflows/publish-github.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1a0570b..115aa2e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,7 +8,7 @@ jobs: if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" steps: - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 21 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index cc74a5d..d587876 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 2 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 21 diff --git a/.github/workflows/publish-central.yml b/.github/workflows/publish-central.yml index 82a7b01..7e8c25d 100644 --- a/.github/workflows/publish-central.yml +++ b/.github/workflows/publish-central.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v4 with: ref: "refs/tags/${{ github.event.inputs.tag }}" - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 21 diff --git a/.github/workflows/publish-github.yml b/.github/workflows/publish-github.yml index 8233d08..2caf761 100644 --- a/.github/workflows/publish-github.yml +++ b/.github/workflows/publish-github.yml @@ -8,7 +8,7 @@ jobs: if: startsWith(github.ref, 'refs/tags/') # only allow publishing tagged versions steps: - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 21