diff --git a/packages/java/auth.provider/pom.xml b/packages/java/auth.provider/pom.xml
index f97602a6f..12c74acd1 100644
--- a/packages/java/auth.provider/pom.xml
+++ b/packages/java/auth.provider/pom.xml
@@ -63,12 +63,6 @@
${junit-version}
test
-
- org.junit.jupiter
- junit-jupiter-engine
- ${junit-version}
- test
-
io.github.cdimascio
dotenv-java
diff --git a/packages/java/auth.provider/src/main/java/com/affinidi/tdk/authProvider/AuthProvider.java b/packages/java/auth.provider/src/main/java/com/affinidi/tdk/authProvider/AuthProvider.java
index dd121ddb2..871a803f6 100644
--- a/packages/java/auth.provider/src/main/java/com/affinidi/tdk/authProvider/AuthProvider.java
+++ b/packages/java/auth.provider/src/main/java/com/affinidi/tdk/authProvider/AuthProvider.java
@@ -26,7 +26,8 @@
import com.google.gson.JsonObject;
/**
- * This class provides
+ * This class provides utility functions in order to generate
+ * projectScopeToken required to call Affinidi Services.
*
*
* @author Priyanka
@@ -44,7 +45,7 @@ public class AuthProvider {
private String publicKey;
private String projectScopeToken;
- AuthProvider(Configurations configurations) {
+ private AuthProvider(Configurations configurations) {
this.projectId = configurations.projectId;
this.tokenId = configurations.tokenId;
this.privateKey = configurations.privateKey;
diff --git a/packages/java/common/pom.xml b/packages/java/common/pom.xml
index a93811cb9..581cfe69c 100644
--- a/packages/java/common/pom.xml
+++ b/packages/java/common/pom.xml
@@ -56,6 +56,11 @@
jersey-common
3.1.7
+
+ jakarta.ws.rs
+ jakarta.ws.rs-api
+ 3.1.0
+
org.mockito
mockito-core
diff --git a/packages/java/common/src/main/java/com/affinidi/tdk/common/EnvironmentUtil.java b/packages/java/common/src/main/java/com/affinidi/tdk/common/EnvironmentUtil.java
index 2db81a369..fd806069f 100644
--- a/packages/java/common/src/main/java/com/affinidi/tdk/common/EnvironmentUtil.java
+++ b/packages/java/common/src/main/java/com/affinidi/tdk/common/EnvironmentUtil.java
@@ -21,8 +21,11 @@ public class EnvironmentUtil {
private static Dotenv properties;
private static Logger logger = Logger.getLogger(EnvironmentUtil.class.getName());
- static {
- properties = Dotenv.load();
+ public static Dotenv getProperties(){
+ if(properties == null){
+ properties = Dotenv.load();
+ }
+ return properties;
}
@@ -35,12 +38,17 @@ public class EnvironmentUtil {
*/
public String getConfiguredEnvironment() {
String configuredEnvironment = null;
- if (properties != null) {
- configuredEnvironment = properties.get(Environment.AFFINIDI_TDK_PROPERTY_NAME);
- if (configuredEnvironment == null) {
- configuredEnvironment = properties.get(Environment.NEXT_AFFINIDI_TDK_PROPERTY_NAME);
+ try{
+ if (getProperties() != null) {
+ configuredEnvironment = getProperties().get(Environment.AFFINIDI_TDK_PROPERTY_NAME);
+ if (configuredEnvironment == null) {
+ configuredEnvironment = getProperties().get(Environment.NEXT_AFFINIDI_TDK_PROPERTY_NAME);
+ }
}
+ }catch(Exception exception){
+ logger.severe("Could not read .env file for TDK environment configuration");
}
+
if (configuredEnvironment == null) {
logger.severe("Could not find environment details for "+configuredEnvironment+". Defaulting to production");
configuredEnvironment = Environment.PRODUCTION.environmentName;
@@ -97,7 +105,13 @@ public String getApiGatewayUrlForEnvironment() {
* @return String
*/
public String getValueFromEnvConfig(String propertyName) {
- return properties.get(propertyName);
+ String propertyValue = null;
+ try{
+ propertyValue = getProperties().get(propertyName);
+ }catch(Exception exception){
+ logger.severe("Could not read .env file for "+propertyName);
+ }
+ return propertyValue;
}
/**
@@ -111,8 +125,8 @@ private Environment getEnvironmentDetail() {
Environment envDetail = (envName != null) ? Environment.getEnvSpecificDetails(envName) : null;
if (envDetail == null) {
+ logger.severe("Could not find environment details for the specified name " + envName+". Hence defaulting to production");
envDetail = Environment.getEnvSpecificDetails(Environment.PRODUCTION.environmentName);
- logger.severe("Could not find environment details for the specified name " + envName);
}
return envDetail;
}
diff --git a/tests/integration/java/reference/.env.example b/tests/integration/java/reference/.env.example
new file mode 100644
index 000000000..b87060e4d
--- /dev/null
+++ b/tests/integration/java/reference/.env.example
@@ -0,0 +1,7 @@
+AFFINIDI_TDK_ENVIRONMENT=prod
+
+PROJECT_ID=""
+KEY_ID=
+TOKEN_ID=""
+PASSPHRASE=""
+PRIVATE_KEY=""
\ No newline at end of file
diff --git a/tests/integration/java/reference/pom.xml b/tests/integration/java/reference/pom.xml
new file mode 100644
index 000000000..2e30b9a65
--- /dev/null
+++ b/tests/integration/java/reference/pom.xml
@@ -0,0 +1,114 @@
+
+
+
+ 4.0.0
+ jar
+ com.affinidi.tdk
+ reference
+ 1.0
+ reference
+ https://github.com/affinidi/affinidi-tdk
+
+
+ Apache-2.0
+ https://github.com/affinidi/affinidi-tdk/blob/main/LICENSE
+ repo
+
+
+
+
+
+ Affinidi
+ ...
+ Affinidi
+ https://affinidi.com
+
+
+
+
+ UTF-8
+ 1.8
+ ${java.version}
+ ${java.version}
+ 1.0
+ 1.0
+
+
+
+
+
+ com.affinidi.tdk
+ common
+ ${affinidi-common-version}
+
+
+ com.affinidi.tdk
+ auth.provider
+ ${affinidi-auth-version}
+
+
+ com.affinidi.tdk
+ wallets.client
+ 1.0.0
+ compile
+
+
+ com.affinidi.tdk
+ credential.issuance.client
+ 1.0.0
+ compile
+
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ maven-failsafe-plugin
+ 3.5.0
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
diff --git a/tests/integration/java/reference/src/main/java/com/affinidi/reference/TdkTestUtil.java b/tests/integration/java/reference/src/main/java/com/affinidi/reference/TdkTestUtil.java
new file mode 100644
index 000000000..631606699
--- /dev/null
+++ b/tests/integration/java/reference/src/main/java/com/affinidi/reference/TdkTestUtil.java
@@ -0,0 +1,116 @@
+
+package com.affinidi.reference;
+
+
+
+
+import com.affinidi.tdk.authProvider.AuthProvider;
+
+import com.affinidi.tdk.credential.issuance.client.apis.IssuanceApi;
+
+import com.affinidi.tdk.wallets.client.ApiClient;
+import com.affinidi.tdk.wallets.client.Configuration;
+import com.affinidi.tdk.wallets.client.apis.WalletApi;
+import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
+import com.affinidi.tdk.wallets.client.models.WalletsListDto;
+
+
+/**
+* To execute this class,
+1. Ensure that base package of the working directory contains a valid .env file with values for each property
+as present in .env.example
+2. Ensure that auth-provider and common package jar is present in either the central maven respository
+3. Or you can go to the resective pakage and run mvn clean install : in order to deply these jars in local
+maven respository
+*
+* @author Priyanka
+*
+*/
+
+public class TdkTestUtil {
+
+ public static void main(String arg[]){
+ try{
+ System.out.println("\n\n=============================");
+ System.out.println("01. Testing Wallet Client using TDK java packages");
+ System.out.println("=============================\n\n");
+ testWalletClient();
+ System.out.println("\n\n=============================");
+ System.out.println("Wallet Client testing using TDK java packages completed");
+ System.out.println("=============================\n\n");
+
+
+ System.out.println("\n\n=============================");
+ System.out.println("02. Testing Issuance Client using TDK java packages");
+ System.out.println("=============================\n\n");
+ testIssuanceClient();
+ System.out.println("\n\n=============================");
+ System.out.println("Issuance Client testing using TDK java packages completed");
+ System.out.println("=============================\n\n");
+ }catch(Exception exception){
+ exception.printStackTrace();
+ }
+ }
+
+ public static void testWalletClient() throws Exception{
+
+ System.out.println("Getting projectScopenToken before calling wallet API");
+
+ AuthProvider authProvider = new AuthProvider.Configurations().buildWithEnv();
+ String projectToken = authProvider.fetchProjectScopedToken();
+ System.out.println("ProjectScopeToken > > > > > : "+projectToken);
+
+ // Creating an API Client using the above token
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
+ ProjectTokenAuth.setApiKey(projectToken);
+
+ WalletApi apiInstance = new WalletApi(defaultClient);
+ String didType = null;
+
+ System.out.println("Calling listWallets ");
+ WalletsListDto response = apiInstance.listWallets(didType);
+ System.out.println("Total wallets : "+response.getWallets().size());
+
+
+ System.out.println("Should AuthProvider refresh the token before any further call ? "+authProvider.shouldRefreshToken());
+ }
+
+ public static void testIssuanceClient() throws Exception{
+
+ System.out.println("Getting projectScopenToken before calling issuance API");
+ AuthProvider authProvider = new AuthProvider.Configurations().buildWithEnv();
+ String projectToken = authProvider.fetchProjectScopedToken();
+
+ // Creating an API Client using the above token
+ com.affinidi.tdk.credential.issuance.client.ApiClient issuanceClient = com.affinidi.tdk.credential.issuance.client.Configuration.getDefaultApiClient();
+ com.affinidi.tdk.credential.issuance.client.auth.ApiKeyAuth issueTokenAuth = (com.affinidi.tdk.credential.issuance.client.auth.ApiKeyAuth) issuanceClient.getAuthentication("ProjectTokenAuth");
+ issueTokenAuth.setApiKey(projectToken);
+
+ IssuanceApi issuanceApi = new IssuanceApi(issuanceClient);
+ String projectIdForTesting = "084036a6-a775-478a-9a97-a1323738897f";
+ System.out.println(issuanceApi.listIssuance(projectIdForTesting));
+
+ /* Uncomment to test startIssuance. Provide the relevant projectId and crdential data
+ StartIssuanceInput startIssuanceInput = new StartIssuanceInput();
+ startIssuanceInput.setHolderDid("did:key:zQ3shNb7dEAa7z4LY8eAbPafNM4iSxppwuvndoHkTUUp8Hbt6");
+ startIssuanceInput.setClaimMode(ClaimModeEnum.NORMAL);
+
+ StartIssuanceInputDataInner innerData = new StartIssuanceInputDataInner();
+ innerData.setCredentialTypeId("AlumniIdentityCard");
+ List list = new ArrayList();
+ list.add(innerData);
+
+ startIssuanceInput.setData(list);
+
+ System.out.println(issuanceApi.startIssuance("", startIssuanceInput));
+ */
+
+
+
+
+ }
+
+
+
+}