diff --git a/src/main/java/com/phonepe/sdk/pg/common/configs/CredentialConfig.java b/src/main/java/com/phonepe/sdk/pg/common/configs/CredentialConfig.java index 4e3d7f7..9eb2e03 100644 --- a/src/main/java/com/phonepe/sdk/pg/common/configs/CredentialConfig.java +++ b/src/main/java/com/phonepe/sdk/pg/common/configs/CredentialConfig.java @@ -31,5 +31,5 @@ public class CredentialConfig { @NotBlank private String clientSecret; - @NotBlank private Integer clientVersion; + private int clientVersion; } diff --git a/src/main/java/com/phonepe/sdk/pg/common/constants/BaseUrl.java b/src/main/java/com/phonepe/sdk/pg/common/constants/BaseUrl.java index 80d2c07..9507341 100644 --- a/src/main/java/com/phonepe/sdk/pg/common/constants/BaseUrl.java +++ b/src/main/java/com/phonepe/sdk/pg/common/constants/BaseUrl.java @@ -31,7 +31,7 @@ public class BaseUrl { public static final String PRODUCTION_EVENTS_HOST_URL = "https://api.phonepe.com/apis/pg-ingestion"; - public static final String SANDBOX_EVENTS_HOST_URL = "http://locahost"; + public static final String SANDBOX_EVENTS_HOST_URL = "http://localhost"; public static final String TESTING_URL = "http://localhost:30419"; } diff --git a/src/main/java/com/phonepe/sdk/pg/common/events/publisher/EventPublisherFactory.java b/src/main/java/com/phonepe/sdk/pg/common/events/publisher/EventPublisherFactory.java index 905862e..1fb1800 100644 --- a/src/main/java/com/phonepe/sdk/pg/common/events/publisher/EventPublisherFactory.java +++ b/src/main/java/com/phonepe/sdk/pg/common/events/publisher/EventPublisherFactory.java @@ -28,8 +28,20 @@ public class EventPublisherFactory { private final ObjectMapper objectMapper; private final OkHttpClient okHttpClient; private final String hostUrl; - private static EventPublisher cachedEventPublisher; + private static volatile EventPublisher cachedEventPublisher; + private static final EventPublisher NO_OP_EVENT_PUBLISHER = + new EventPublisher() { + @Override + public void run() {} + }; + /** + * Constructs an EventPublisherFactory with required dependencies. + * + * @param objectMapper the Jackson ObjectMapper + * @param okHttpClient the OkHttpClient + * @param hostUrl the event host URL + */ public EventPublisherFactory( final ObjectMapper objectMapper, final OkHttpClient okHttpClient, @@ -39,13 +51,12 @@ public EventPublisherFactory( this.hostUrl = hostUrl; } - public static void setCachedEventPublisher(EventPublisher eventPublisher) { + public static synchronized void setCachedEventPublisher(EventPublisher eventPublisher) { EventPublisherFactory.cachedEventPublisher = eventPublisher; } - public EventPublisher getEventPublisher(boolean shouldPublishEvents) { + public synchronized EventPublisher getEventPublisher(boolean shouldPublishEvents) { if (shouldPublishEvents) { - // For different clients, the eventSender should be same if (Objects.isNull(cachedEventPublisher)) { EventPublisherFactory.setCachedEventPublisher( QueuedEventPublisher.builder() @@ -58,9 +69,6 @@ public EventPublisher getEventPublisher(boolean shouldPublishEvents) { } return EventPublisherFactory.cachedEventPublisher; } - return new EventPublisher() { - @Override - public void run() {} - }; + return NO_OP_EVENT_PUBLISHER; } } diff --git a/src/main/java/com/phonepe/sdk/pg/common/events/queue/EventQueue.java b/src/main/java/com/phonepe/sdk/pg/common/events/queue/EventQueue.java index 1c2699f..9bb4d7a 100644 --- a/src/main/java/com/phonepe/sdk/pg/common/events/queue/EventQueue.java +++ b/src/main/java/com/phonepe/sdk/pg/common/events/queue/EventQueue.java @@ -19,22 +19,13 @@ import java.util.concurrent.ConcurrentLinkedQueue; public interface EventQueue { + void add(BaseEvent data); - default void add(BaseEvent data) {} + boolean isEmpty(); - default boolean isEmpty() { - return true; - } + int size(); - default int size() { - return 0; - } + BaseEvent poll(); - default BaseEvent poll() { - return null; - } - - default ConcurrentLinkedQueue getQueue() { - return null; - } + ConcurrentLinkedQueue getQueue(); } diff --git a/src/main/java/com/phonepe/sdk/pg/common/exception/ExceptionMapper.java b/src/main/java/com/phonepe/sdk/pg/common/exception/ExceptionMapper.java index 2e7cd68..59615e7 100644 --- a/src/main/java/com/phonepe/sdk/pg/common/exception/ExceptionMapper.java +++ b/src/main/java/com/phonepe/sdk/pg/common/exception/ExceptionMapper.java @@ -21,10 +21,12 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import lombok.SneakyThrows; +import lombok.experimental.UtilityClass; +@UtilityClass public class ExceptionMapper { - public static Map> codeToException = + public final Map> codeToException = Stream.of( new AbstractMap.SimpleEntry<>(400, BadRequest.class), new AbstractMap.SimpleEntry<>(401, UnauthorizedAccess.class),