diff --git a/pom.xml b/pom.xml
index dc00bca..5d03a19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,6 +37,15 @@
+
+
+ org.jetbrains
+ annotations
+ 23.0.0
+ provided
+
+
+
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 2ac9eaf..9d69841 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -6,6 +6,8 @@
module org.cryptomator.integrations.api {
+ requires static org.jetbrains.annotations;
+
exports org.cryptomator.integrations.autostart;
exports org.cryptomator.integrations.keychain;
exports org.cryptomator.integrations.tray;
diff --git a/src/main/java/org/cryptomator/integrations/autostart/AutoStartProvider.java b/src/main/java/org/cryptomator/integrations/autostart/AutoStartProvider.java
index 49f6e3a..3a71d20 100644
--- a/src/main/java/org/cryptomator/integrations/autostart/AutoStartProvider.java
+++ b/src/main/java/org/cryptomator/integrations/autostart/AutoStartProvider.java
@@ -1,6 +1,7 @@
package org.cryptomator.integrations.autostart;
import org.cryptomator.integrations.common.IntegrationsLoader;
+import org.jetbrains.annotations.Blocking;
import java.util.Optional;
@@ -16,8 +17,10 @@ static Optional get() {
return IntegrationsLoader.load(AutoStartProvider.class);
}
+ @Blocking
void enable() throws ToggleAutoStartFailedException;
+ @Blocking
void disable() throws ToggleAutoStartFailedException;
boolean isEnabled();
diff --git a/src/main/java/org/cryptomator/integrations/keychain/KeychainAccessProvider.java b/src/main/java/org/cryptomator/integrations/keychain/KeychainAccessProvider.java
index ef0cfae..8116316 100644
--- a/src/main/java/org/cryptomator/integrations/keychain/KeychainAccessProvider.java
+++ b/src/main/java/org/cryptomator/integrations/keychain/KeychainAccessProvider.java
@@ -1,6 +1,9 @@
package org.cryptomator.integrations.keychain;
import org.cryptomator.integrations.common.IntegrationsLoader;
+import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Blocking;
+import org.jetbrains.annotations.Nls;
import java.util.stream.Stream;
@@ -24,6 +27,7 @@ static Stream get() {
*
* @return user-friendly name (must not be null or empty)
*/
+ @Nls(capitalization = Nls.Capitalization.Title)
String displayName();
/**
@@ -35,6 +39,7 @@ static Stream get() {
* @deprecated Please use {@link #storePassphrase(String, String, CharSequence)} instead
*/
@Deprecated
+ @ApiStatus.ScheduledForRemoval(inVersion = "1.2.0")
void storePassphrase(String key, CharSequence passphrase) throws KeychainAccessException;
/**
@@ -47,6 +52,7 @@ static Stream get() {
* @param passphrase The secret to store in this keychain.
* @throws KeychainAccessException If storing the password failed
*/
+ @Blocking
default void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
storePassphrase(key, passphrase);
}
@@ -56,6 +62,7 @@ default void storePassphrase(String key, String displayName, CharSequence passph
* @return The stored passphrase for the given key or null
if no value for the given key could be found.
* @throws KeychainAccessException If loading the password failed
*/
+ @Blocking
char[] loadPassphrase(String key) throws KeychainAccessException;
/**
@@ -75,6 +82,7 @@ default void storePassphrase(String key, String displayName, CharSequence passph
* @deprecated Please use {@link #changePassphrase(String, String, CharSequence)} instead
*/
@Deprecated
+ @ApiStatus.ScheduledForRemoval(inVersion = "1.2.0")
void changePassphrase(String key, CharSequence passphrase) throws KeychainAccessException;
/**
@@ -87,6 +95,7 @@ default void storePassphrase(String key, String displayName, CharSequence passph
* @param passphrase The secret to be updated in this keychain.
* @throws KeychainAccessException If changing the password failed
*/
+ @Blocking
default void changePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
changePassphrase(key, passphrase);
}
diff --git a/src/main/java/org/cryptomator/integrations/tray/TrayMenuController.java b/src/main/java/org/cryptomator/integrations/tray/TrayMenuController.java
index 48833af..fadb980 100644
--- a/src/main/java/org/cryptomator/integrations/tray/TrayMenuController.java
+++ b/src/main/java/org/cryptomator/integrations/tray/TrayMenuController.java
@@ -1,6 +1,7 @@
package org.cryptomator.integrations.tray;
import org.cryptomator.integrations.common.IntegrationsLoader;
+import org.jetbrains.annotations.ApiStatus;
import java.io.IOException;
import java.io.InputStream;
@@ -12,6 +13,7 @@
*
* @since 1.1.0
*/
+@ApiStatus.Experimental
public interface TrayMenuController {
static Optional get() {