diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 23d629f3..a7c4dda3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,13 +15,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v2
+ uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
- name: Set up Java JDK
- uses: actions/setup-java@v2
+ uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4
with:
java-version: 8
- distribution: 'adopt'
+ distribution: 'temurin'
- name: Install dependencies
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V -Dgpg.skip
@@ -30,7 +30,7 @@ jobs:
run: mvn -B test
- name: Upload coverage to Codecov
- uses: codecov/codecov-action@v3
+ uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4
with:
fail_ci_if_error: false
verbose: true
@@ -40,12 +40,12 @@ jobs:
needs: test
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
- name: Set up Maven Central Repository
- uses: actions/setup-java@v2
+ uses: actions/setup-java@8df103950f1a284ea214c9acc06196fd9f766f2a # v4
with:
java-version: 8
- distribution: 'adopt'
+ distribution: 'temurin'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
diff --git a/pom.xml b/pom.xml
index 94240c6f..5d880030 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,17 +54,11 @@
org.mockito
mockito-inline
- 2.13.0
- test
-
-
- org.json
- json
+ 4.11.0
test
-
com.squareup.okhttp3
okhttp
@@ -100,11 +94,11 @@
ossrh
- https://oss.sonatype.org/content/repositories/releases/
+ https://oss.sonatype.org/content/repositories/snapshots/
ossrh
- https://oss.sonatype.org/service/local/repositories/releases/content/
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
@@ -121,7 +115,7 @@
org.sonatype.plugins
nexus-staging-maven-plugin
- 1.6.9
+ 1.7.0
true
ossrh
@@ -132,7 +126,7 @@
org.apache.maven.plugins
maven-source-plugin
- 3.0.1
+ 3.3.1
attach-sources
@@ -145,7 +139,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.0.1
+ 3.8.0
attach-javadocs
@@ -158,7 +152,7 @@
org.jacoco
jacoco-maven-plugin
- 0.8.7
+ 0.8.11
com/razorpay/**/EntityNameURLMapping.class
@@ -186,7 +180,7 @@
org.apache.maven.plugins
maven-gpg-plugin
- 1.6
+ 3.2.7
sign-artifacts
@@ -204,6 +198,16 @@
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.2.5
+
+
+ -XX:+EnableDynamicAgentLoading -Dnet.bytebuddy.experimental=true @{argLine}
+
+
+
diff --git a/src/main/java/com/razorpay/ApiClient.java b/src/main/java/com/razorpay/ApiClient.java
index b9697087..5d970b4a 100755
--- a/src/main/java/com/razorpay/ApiClient.java
+++ b/src/main/java/com/razorpay/ApiClient.java
@@ -121,6 +121,9 @@ else if(response.code()==204){
private T parseResponse(JSONObject jsonObject, String entity) throws RazorpayException {
if (entity != null) {
Class cls = getClass(entity);
+ if (cls == null) {
+ throw new RazorpayException("Unable to find class for entity: " + entity);
+ }
try {
return cls.getConstructor(JSONObject.class).newInstance(jsonObject);
} catch (Exception e) {
@@ -247,7 +250,7 @@ private void throwServerException(int statusCode, String responseBody) throws Ra
private Class getClass(String entity) {
try {
- String entityClass = "com.razorpay." + WordUtils.capitalize(entity, '_').replaceAll("_", "");
+ String entityClass = getClass().getPackage().getName() + "." + WordUtils.capitalize(entity, '_').replaceAll("_", "");
return Class.forName(entityClass);
} catch (ClassNotFoundException e) {
return null;
diff --git a/src/test/java/com/razorpay/BaseTest.java b/src/test/java/com/razorpay/BaseTest.java
index fde9918f..1f8ce102 100644
--- a/src/test/java/com/razorpay/BaseTest.java
+++ b/src/test/java/com/razorpay/BaseTest.java
@@ -16,7 +16,7 @@
import java.util.Map;
import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.anyObject;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -30,7 +30,7 @@ public class BaseTest {
@Before
public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
+ MockitoAnnotations.openMocks(this);
mockGetCall();
mockURL(Collections.emptyList());
}
@@ -44,7 +44,7 @@ private void mockGetCall() throws IOException, IllegalAccessException {
Call call = mock(Call.class);
when(call.execute()).thenReturn(mockedResponse);
- when(okHttpClient.newCall(anyObject())).thenReturn(call);
+ when(okHttpClient.newCall(any())).thenReturn(call);
}