diff --git a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/AuthClient.java b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/AuthClient.java
index 9a4d5e61b1db..4295b6d4c81a 100644
--- a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/AuthClient.java
+++ b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/AuthClient.java
@@ -13,7 +13,7 @@
/**
* The REST client specific to getting an access token for Azure REST APIs.
*/
-class AuthClient extends DelegateRestClient {
+public class AuthClient extends DelegateRestClient {
/**
* Stores the Client ID fragment.
@@ -63,7 +63,7 @@ class AuthClient extends DelegateRestClient {
* The constructor creates a default RestClient.
*
*/
- AuthClient() {
+ public AuthClient() {
super(RestClientFactory.createClient());
}
@@ -91,13 +91,14 @@ public String getAccessToken(String resource, String identity) {
*
* @param resource the resource.
* @param tenantId the tenant ID.
+ * @param aadAuthenticationUrl the AAD authentication url
* @param clientId the client ID.
* @param clientSecret the client secret.
* @return the authorization token.
*/
public String getAccessToken(String resource, String aadAuthenticationUrl,
String tenantId, String clientId, String clientSecret) {
-
+
LOGGER.entering("AuthClient", "getAccessToken", new Object[]{
resource, tenantId, clientId, clientSecret});
LOGGER.info("Getting access token using client ID / client secret");
diff --git a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/KeyVaultClient.java b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/KeyVaultClient.java
index e1aad104359f..bffc9a68ada1 100644
--- a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/KeyVaultClient.java
+++ b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/KeyVaultClient.java
@@ -41,7 +41,7 @@
/**
* The REST client specific to Azure Key Vault.
*/
-class KeyVaultClient extends DelegateRestClient {
+public class KeyVaultClient extends DelegateRestClient {
/**
* Stores the logger.
@@ -118,7 +118,7 @@ class KeyVaultClient extends DelegateRestClient {
* @param clientId the client ID.
* @param clientSecret the client secret.
*/
- KeyVaultClient(final String keyVaultUri, final String tenantId, final String clientId, final String clientSecret) {
+ public KeyVaultClient(final String keyVaultUri, final String tenantId, final String clientId, final String clientSecret) {
this(keyVaultUri, tenantId, clientId, clientSecret, null);
}
@@ -186,7 +186,7 @@ private String getAccessToken() {
*
* @return the list of aliases.
*/
- List getAliases() {
+ public List getAliases() {
ArrayList result = new ArrayList<>();
HashMap headers = new HashMap<>();
headers.put("Authorization", "Bearer " + getAccessToken());
@@ -239,7 +239,7 @@ private CertificateBundle getCertificateBundle(String alias) {
* @param alias the alias.
* @return the certificate, or null if not found.
*/
- Certificate getCertificate(String alias) {
+ public Certificate getCertificate(String alias) {
LOGGER.entering("KeyVaultClient", "getCertificate", alias);
LOGGER.log(INFO, "Getting certificate for alias: {0}", alias);
X509Certificate certificate = null;
@@ -268,7 +268,7 @@ Certificate getCertificate(String alias) {
* @param password the password.
* @return the key.
*/
- Key getKey(String alias, char[] password) {
+ public Key getKey(String alias, char[] password) {
LOGGER.entering("KeyVaultClient", "getKey", new Object[]{alias, password});
LOGGER.log(INFO, "Getting key for alias: {0}", alias);
Key key = null;
diff --git a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/RestClient.java b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/RestClient.java
index 510262d5b810..e23bed644170 100644
--- a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/RestClient.java
+++ b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/RestClient.java
@@ -8,7 +8,7 @@
/**
* The REST client API.
*/
-interface RestClient {
+public interface RestClient {
/**
* Issue a GET request.
@@ -24,6 +24,7 @@ interface RestClient {
*
* @param url the URL.
* @param body the request body.
+ * @param contentType the content type
* @return the response body as a string.
*/
String post(String url, String body, String contentType);
diff --git a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/module-info.java b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/module-info.java
new file mode 100644
index 000000000000..c65dbd30e7d8
--- /dev/null
+++ b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/module-info.java
@@ -0,0 +1,15 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+/**
+ * This module info is only for development purpose. Maven shade plugin will ignore this file. The one actually deployed is src/main/module-info.java
+ */
+module azure.security.keyvault.jca {
+ requires java.logging;
+ requires org.apache.httpcomponents.httpclient;
+ requires org.apache.httpcomponents.httpcore;
+ requires com.fasterxml.jackson.databind;
+
+ exports com.azure.security.keyvault.jca;
+ exports com.azure.security.keyvault.jca.model;
+}
diff --git a/sdk/keyvault/azure-security-keyvault-jca/src/main/module-info.java b/sdk/keyvault/azure-security-keyvault-jca/src/main/module-info.java
index 9b77beae78ad..8d6c3ea6045a 100644
--- a/sdk/keyvault/azure-security-keyvault-jca/src/main/module-info.java
+++ b/sdk/keyvault/azure-security-keyvault-jca/src/main/module-info.java
@@ -1,3 +1,10 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+
+/**
+ * This module info will be deployed instead of the one under src/main/java.
+ */
module azure.security.keyvault.jca {
requires java.logging;
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/test/TestModularization.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/test/TestModularization.java
new file mode 100644
index 000000000000..85f7654d2b0e
--- /dev/null
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/test/TestModularization.java
@@ -0,0 +1,16 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+package com.azure.security.keyvault.jca.test;
+
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
+import com.azure.security.keyvault.jca.model.CertificateBundle;
+
+public class TestModularization {
+ /**
+ * Simply test compiling ok.
+ */
+ void testCompile() {
+ KeyVaultJcaProvider keyVaultJcaProvider = new KeyVaultJcaProvider();
+ CertificateBundle certificateBundle = new CertificateBundle();
+ }
+}
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/main/java/module-info.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/main/java/module-info.java
new file mode 100644
index 000000000000..a558268220d6
--- /dev/null
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/main/java/module-info.java
@@ -0,0 +1,9 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+/**
+ * This is for testing the modularization of module azure.security.keyvault.jca
+ */
+module azure.security.keyvault.jca.test {
+ requires azure.security.keyvault.jca;
+}
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/AuthClientTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/AuthClientTest.java
similarity index 92%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/AuthClientTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/AuthClientTest.java
index 2e9de840fb1f..e65ca3e0a5a0 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/AuthClientTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/AuthClientTest.java
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.AuthClient;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/JreKeyStoreTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/JreKeyStoreTest.java
similarity index 95%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/JreKeyStoreTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/JreKeyStoreTest.java
index 11fb18b66285..4227eabccbb8 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/JreKeyStoreTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/JreKeyStoreTest.java
@@ -1,8 +1,10 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.JreCertificates;
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
import org.apache.http.HttpResponse;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultCertificatesTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultCertificatesTest.java
similarity index 95%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultCertificatesTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultCertificatesTest.java
index 571067245f4a..eb24818db85f 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultCertificatesTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultCertificatesTest.java
@@ -1,8 +1,10 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.KeyVaultCertificates;
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@@ -16,7 +18,6 @@
import java.security.cert.X509Certificate;
import java.util.Base64;
-import static com.azure.security.keyvault.jca.PropertyConvertorUtils.SYSTEM_PROPERTIES;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -55,7 +56,7 @@ public class KeyVaultCertificatesTest {
@BeforeAll
public static void setEnvironmentProperty() {
- PropertyConvertorUtils.putEnvironmentPropertyToSystemProperty(SYSTEM_PROPERTIES);
+ PropertyConvertorUtils.putEnvironmentPropertyToSystemProperty(PropertyConvertorUtils.SYSTEM_PROPERTIES);
KeyVaultJcaProvider provider = new KeyVaultJcaProvider();
Security.addProvider(provider);
certificateName = System.getenv("AZURE_KEYVAULT_CERTIFICATE_NAME");
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultClientTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultClientTest.java
similarity index 93%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultClientTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultClientTest.java
index 767aeb615eae..622b0521882b 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultClientTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultClientTest.java
@@ -1,8 +1,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.KeyVaultClient;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultJcaProviderTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultJcaProviderTest.java
similarity index 83%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultJcaProviderTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultJcaProviderTest.java
index 77dffcecdb99..178af1895cfc 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultJcaProviderTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultJcaProviderTest.java
@@ -1,15 +1,16 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import java.security.KeyStore;
import java.security.Security;
-import static com.azure.security.keyvault.jca.PropertyConvertorUtils.SYSTEM_PROPERTIES;
+import static com.azure.security.keyvault.jca.test.PropertyConvertorUtils.SYSTEM_PROPERTIES;
import static org.junit.jupiter.api.Assertions.assertNotNull;
/**
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultKeyManagerTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultKeyManagerTest.java
similarity index 85%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultKeyManagerTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultKeyManagerTest.java
index 0190a24ee0a2..8e4066e47581 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultKeyManagerTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultKeyManagerTest.java
@@ -1,8 +1,10 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
+import com.azure.security.keyvault.jca.KeyVaultKeyManager;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@@ -14,7 +16,7 @@
import java.security.Security;
import java.security.cert.CertificateException;
-import static com.azure.security.keyvault.jca.PropertyConvertorUtils.SYSTEM_PROPERTIES;
+import static com.azure.security.keyvault.jca.test.PropertyConvertorUtils.SYSTEM_PROPERTIES;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@EnabledIfEnvironmentVariable(named = "AZURE_KEYVAULT_CERTIFICATE_NAME", matches = "myalias")
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultKeyStoreTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultKeyStoreTest.java
similarity index 95%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultKeyStoreTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultKeyStoreTest.java
index 7acae0be4fc2..f3c42e193771 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultKeyStoreTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/KeyVaultKeyStoreTest.java
@@ -1,8 +1,11 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
+import com.azure.security.keyvault.jca.KeyVaultKeyStore;
+import com.azure.security.keyvault.jca.KeyVaultLoadStoreParameter;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@@ -17,7 +20,7 @@
import java.security.cert.X509Certificate;
import java.util.Base64;
-import static com.azure.security.keyvault.jca.PropertyConvertorUtils.SYSTEM_PROPERTIES;
+import static com.azure.security.keyvault.jca.test.PropertyConvertorUtils.SYSTEM_PROPERTIES;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/PropertyConvertorUtils.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/PropertyConvertorUtils.java
similarity index 93%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/PropertyConvertorUtils.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/PropertyConvertorUtils.java
index 0e960acfb906..e94f475699b2 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/PropertyConvertorUtils.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/PropertyConvertorUtils.java
@@ -1,7 +1,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+
+import com.azure.security.keyvault.jca.KeyVaultLoadStoreParameter;
import java.io.IOException;
import java.security.KeyStore;
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/ServerSocketTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/ServerSocketTest.java
similarity index 96%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/ServerSocketTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/ServerSocketTest.java
index 7329d53360a0..02164bb42c93 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/ServerSocketTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/test/ServerSocketTest.java
@@ -1,8 +1,10 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.security.keyvault.jca;
+package com.azure.security.keyvault.jca.test;
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
+import com.azure.security.keyvault.jca.KeyVaultTrustManagerFactoryProvider;
import org.apache.http.HttpResponse;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
@@ -33,7 +35,7 @@
import java.security.cert.X509Certificate;
import java.util.Map;
-import static com.azure.security.keyvault.jca.PropertyConvertorUtils.SYSTEM_PROPERTIES;
+import static com.azure.security.keyvault.jca.test.PropertyConvertorUtils.SYSTEM_PROPERTIES;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**