diff --git a/sdk/keyvault/azure-security-keyvault-jca/pom.xml b/sdk/keyvault/azure-security-keyvault-jca/pom.xml
index 12584db23bbf..0ed6fd08b39f 100644
--- a/sdk/keyvault/azure-security-keyvault-jca/pom.xml
+++ b/sdk/keyvault/azure-security-keyvault-jca/pom.xml
@@ -49,6 +49,14 @@
true
true
+
+
+ com.azure:azure-security-keyvault-jca
+
+ module-info.java
+
+
+
com.fasterxml.jackson
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..159a19f7f0f8 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());
}
@@ -97,7 +97,7 @@ public String getAccessToken(String resource, String identity) {
*/
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/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/pom.xml b/sdk/keyvault/azure-security-test-keyvault-jca/pom.xml
index 893fc6675ff2..7e0640d9f98e 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/pom.xml
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/pom.xml
@@ -75,5 +75,11 @@
5.3.7
test
+
+ com.azure
+ azure-core-test
+ 1.6.2
+ test
+
\ No newline at end of file
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/test/AuthClientTest.java
similarity index 93%
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/test/AuthClientTest.java
index 88a76a445e5d..ffd3730195d3 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/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.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/test/JreKeyStoreTest.java
similarity index 96%
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/test/JreKeyStoreTest.java
index 11fb18b66285..d44a910488a0 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/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.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/test/KeyVaultCertificatesTest.java
similarity index 96%
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/test/KeyVaultCertificatesTest.java
index acb53e383397..2ccde1a2f768 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/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.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;
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/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/test/KeyVaultClientTest.java
index 39649a305975..1418b6955e58 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/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.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/test/KeyVaultJcaProviderTest.java
similarity index 92%
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/test/KeyVaultJcaProviderTest.java
index 2d52b338574f..18a4f70d1698 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/test/KeyVaultJcaProviderTest.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.test;
+import com.azure.security.keyvault.jca.KeyVaultJcaProvider;
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/KeyVaultKeyManagerTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/test/KeyVaultKeyManagerTest.java
similarity index 91%
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/test/KeyVaultKeyManagerTest.java
index 305e9e8af7ed..a3cde17cb78d 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/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.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;
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/test/KeyVaultKeyStoreTest.java
similarity index 96%
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/test/KeyVaultKeyStoreTest.java
index f2a18a9dba6c..a8230cc9bd81 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/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.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;
diff --git a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultLoadStoreParameterTest.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/test/KeyVaultLoadStoreParameterTest.java
similarity index 89%
rename from sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultLoadStoreParameterTest.java
rename to sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/test/KeyVaultLoadStoreParameterTest.java
index eed52ea0dd37..ac3643cf3835 100644
--- a/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/KeyVaultLoadStoreParameterTest.java
+++ b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/test/KeyVaultLoadStoreParameterTest.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.test;
+import com.azure.security.keyvault.jca.KeyVaultLoadStoreParameter;
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/PropertyConvertorUtils.java b/sdk/keyvault/azure-security-test-keyvault-jca/src/test/java/com/azure/security/keyvault/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/test/PropertyConvertorUtils.java
index 0e960acfb906..81ef4a51fb9c 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/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.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/test/ServerSocketTest.java
similarity index 97%
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/test/ServerSocketTest.java
index 921d2f471ed9..d3e4bbc6cd6f 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/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.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;
@@ -17,7 +19,6 @@
import org.apache.http.ssl.PrivateKeyStrategy;
import org.apache.http.ssl.SSLContexts;
import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;