diff --git a/commons-packet/commons-packet-manager/pom.xml b/commons-packet/commons-packet-manager/pom.xml
index 2a8921ef70..739f77a51f 100644
--- a/commons-packet/commons-packet-manager/pom.xml
+++ b/commons-packet/commons-packet-manager/pom.xml
@@ -38,7 +38,7 @@
1.2.1-SNAPSHOT
1.2.1-SNAPSHOT
1.2.1-SNAPSHOT
- 1.2.1-SNAPSHOT
+ 1.2.2-SNAPSHOT
1.2.1-SNAPSHOT
3.11.2
**/constants/**,**/config/**,**/audit/**,**/util/**,**/dto/**,**/entity/**,**/model/**,**/exception/**,**/repository/**,**/security/**,**/*Config.java,**/*BootApplication.java,**/*VertxApplication.java,**/cbeffutil/**,**/*Utils.java,**/*Validator.java,**/*Helper.java,**/verticle/**,**/VidWriter.java/**,**/masterdata/utils/**,**/spi/**,**/core/http/**,"**/LocationServiceImpl.java","**/RegistrationCenterMachineServiceImpl.java","**/RegistrationCenterServiceImpl.java","**/pridgenerator/**","**/idgenerator/prid","**/proxy/**","**/cryptosignature/**"
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/AuditLogEntry.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/AuditLogEntry.java
index 7b60887685..9b3304cdb2 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/AuditLogEntry.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/AuditLogEntry.java
@@ -94,5 +94,4 @@ public String addAudit(String description, String eventId,
return responseWrapper != null ? responseWrapper.getBody() : null;
}
-
-}
+}
\ No newline at end of file
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/ServerUtil.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/ServerUtil.java
index 0f46c0c646..7bd48e44c3 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/ServerUtil.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/audit/ServerUtil.java
@@ -1,21 +1,21 @@
package io.mosip.commons.packet.audit;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.net.InetAddress;
import java.net.UnknownHostException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class ServerUtil {
/** The server instance. */
private static ServerUtil serverInstance = null;
-
+
/** The Constant LOGGER. */
private static final Logger LOGGER = LoggerFactory.getLogger(ServerUtil.class);
-
+
/** The host not found. */
- private String noHost = "HOST_NOT_FOUND";
+ private String noHost = "HOST_NOT_FOUND";
/**
*
@@ -38,7 +38,6 @@ public static synchronized ServerUtil getServerUtilInstance() {
} else {
return serverInstance;
}
-
}
/**
@@ -48,14 +47,12 @@ public static synchronized ServerUtil getServerUtilInstance() {
*
*/
public String getServerIp() {
-
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
LOGGER.error(noHost, e.getMessage());
return "UNKNOWN-HOST";
}
-
}
/**
@@ -72,5 +69,4 @@ public String getServerName() {
return "UNKNOWN-HOST";
}
}
-
-}
+}
\ No newline at end of file
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/OfflineConfig.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/OfflineConfig.java
index 9dd13fcca7..aee0ecc845 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/OfflineConfig.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/OfflineConfig.java
@@ -13,4 +13,4 @@
@EnableJpaRepositories(basePackages = {"io.mosip.kernel.keymanagerservice.repository.*"})
public class OfflineConfig {
-}
+}
\ No newline at end of file
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketManagerConfig.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketManagerConfig.java
index bc345f6b72..96291f87cb 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketManagerConfig.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketManagerConfig.java
@@ -53,16 +53,7 @@ public class PacketManagerConfig {
*/
@PostConstruct
public void validateReferenceReaderProvider() throws ClassNotFoundException {
- Set readerProviders = PacketHelper.getReaderProvider(packetReaderConfig);
- if (!CollectionUtils.isEmpty(readerProviders)) {
- for (String className : readerProviders) {
- logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "Validating the reference provider readers are present or not.");
- getBean(className);
- }
- } else
- logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "Reference provider reader class is not provided.");
+ validateProviders(PacketHelper.getReaderProvider(packetReaderConfig), "reader");
}
/**
@@ -72,16 +63,7 @@ public void validateReferenceReaderProvider() throws ClassNotFoundException {
*/
@PostConstruct
public void validateReferenceWriterProvider() throws ClassNotFoundException {
- Set writerProviders = PacketHelper.getWriterProvider(packetWriterConfig);
- if (!CollectionUtils.isEmpty(writerProviders)) {
- for (String className : writerProviders) {
- logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "Validating the reference provider writers are present or not.");
- getBean(className);
- }
- } else
- logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "Reference provider writer class is not provided.");
+ validateProviders(PacketHelper.getWriterProvider(packetWriterConfig), "writer");
}
/**
@@ -95,19 +77,7 @@ public void validateReferenceWriterProvider() throws ClassNotFoundException {
@Bean
@Lazy
public List referenceReaderProviders() throws ClassNotFoundException {
- List iPacketReaders = new ArrayList<>();
- Set readerProviders = PacketHelper.getReaderProvider(packetReaderConfig);
- if (!CollectionUtils.isEmpty(readerProviders)) {
- for (String className : readerProviders) {
- logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "Validating the reference provider readers are present or not.");
- iPacketReaders.add((IPacketReader) getBean(className));
- }
- } else {
- logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "reference provider reader is not present.");
- }
- return iPacketReaders;
+ return loadProviders(PacketHelper.getReaderProvider(packetReaderConfig), IPacketReader.class);
}
/**
@@ -121,23 +91,56 @@ public List referenceReaderProviders() throws ClassNotFoundExcept
@Bean
@Lazy
public List referenceWriterProviders() throws ClassNotFoundException {
- List iPacketWriters = new ArrayList<>();
- Set writerProviders = PacketHelper.getWriterProvider(packetWriterConfig);
- if (!CollectionUtils.isEmpty(writerProviders)) {
- for (String className : writerProviders) {
+ return loadProviders(PacketHelper.getWriterProvider(packetWriterConfig), IPacketWriter.class);
+ }
+
+ private void validateProviders(Set classNames, String type) {
+ if (CollectionUtils.isEmpty(classNames)) {
+ logger.warn(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
+ String.format("No reference provider %s classes provided.", type));
+ return;
+ }
+
+ for (String className : classNames) {
+ try {
logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "Validating the reference provider writers are present or not.");
- iPacketWriters.add((IPacketWriter) getBean(className));
+ String.format("Validating reference provider %s class: %s", type, className));
+ getBean(className);
+ } catch (RuntimeException e) {
+ logger.error(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
+ String.format("Invalid %s class %s: %s", type, className, e.getMessage()));
+ throw e;
}
- } else {
- logger.debug(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.ID.toString(), null,
- "reference provider writer is not present.");
}
- return iPacketWriters;
}
-
- private Object getBean(String className) throws ClassNotFoundException {
- Class> clazz = Class.forName(className);
- return applicationContext.getBean(clazz);
+
+ private List loadProviders(Set classNames, Class expectedType) {
+ List providers = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(classNames)) {
+ for (String className : classNames) {
+ Object bean = getBean(className);
+ if (expectedType.isInstance(bean)) {
+ providers.add(expectedType.cast(bean));
+ } else {
+ throw new IllegalArgumentException(String.format("Bean %s is not of expected type %s", className, expectedType.getSimpleName()));
+ }
+ }
+ }
+ return providers;
+ }
+
+ private Object getBean(String className) {
+ try {
+ if (className == null || className.trim().isEmpty()) {
+ throw new ClassNotFoundException("Invalid class name: " + className);
+ }
+ className = className.replace(":", "").trim();
+ Class> clazz = Class.forName(className.trim());
+ return applicationContext.getBean(clazz);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("Class not found: " + className, e);
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to load bean: " + className, e);
+ }
}
-}
+}
\ No newline at end of file
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketReaderAndWriterConfig.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketReaderAndWriterConfig.java
index 64026ab501..fc46d3e6ce 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketReaderAndWriterConfig.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/config/PacketReaderAndWriterConfig.java
@@ -27,4 +27,4 @@ public Map readerConfiguration() {
public Map writerConfiguration() {
return new HashMap<>();
}
-}
+}
\ No newline at end of file
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/constants/PacketUtilityErrorCodes.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/constants/PacketUtilityErrorCodes.java
index 5b46d90c10..3cf3b5b643 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/constants/PacketUtilityErrorCodes.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/constants/PacketUtilityErrorCodes.java
@@ -30,7 +30,7 @@ public enum PacketUtilityErrorCodes {
TAG_NOT_FOUND("KER-PUT-024", "Requested tag not present"),
SOURCE_NOT_PRESENT("KER-PUT-025", "Invalid source or process."),
DELETE_TAGGING_FAILED("KER-PUT-026", "Failed to delete tags."),
- OBJECT_DOESNOT_EXISTS("KER-PUT-027", "Object doesnot exists."),
+ OBJECT_DOESNOT_EXISTS("KER-PUT-027", "Object does not exists."),
UNKNOWN_EXCEPTION("KER-PUT-028", "Unknown Exception.");
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerRequestDto.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerRequestDto.java
index 03b2f2c015..1b0ec07be4 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerRequestDto.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerRequestDto.java
@@ -59,4 +59,4 @@ public class CryptomanagerRequestDto {
@NotBlank(message = "should not be null or empty")
private String aad;
-}
+}
\ No newline at end of file
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerResponseDto.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerResponseDto.java
index 9b7dc470f2..5329998c07 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerResponseDto.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/dto/packet/CryptomanagerResponseDto.java
@@ -1,7 +1,5 @@
package io.mosip.commons.packet.dto.packet;
-
-
import io.mosip.kernel.core.http.ResponseWrapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/facade/PacketReader.java b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/facade/PacketReader.java
index 945070c66f..3f381bc7ee 100644
--- a/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/facade/PacketReader.java
+++ b/commons-packet/commons-packet-manager/src/main/java/io/mosip/commons/packet/facade/PacketReader.java
@@ -2,24 +2,19 @@
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cloud.context.config.annotation.RefreshScope;
-import org.springframework.context.annotation.Lazy;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
+import io.micrometer.core.annotation.Timed;
import io.mosip.commons.khazana.dto.ObjectDto;
import io.mosip.commons.packet.dto.Document;
-import io.mosip.commons.packet.exception.NoAvailableProviderException;
import io.mosip.commons.packet.keeper.PacketKeeper;
-import io.mosip.commons.packet.spi.IPacketReader;
-import io.mosip.commons.packet.util.PacketHelper;
import io.mosip.commons.packet.util.PacketManagerLogger;
import io.mosip.kernel.biometrics.entities.BiometricRecord;
import io.mosip.kernel.core.logger.spi.Logger;
@@ -30,203 +25,192 @@
@RefreshScope
@Component
public class PacketReader {
-
- private static final Logger LOGGER = PacketManagerLogger.getLogger(PacketReader.class);
-
- @Autowired(required = false)
- @Qualifier("referenceReaderProviders")
- @Lazy
- private List referenceReaderProviders;
-
- @Autowired
- private PacketKeeper packetKeeper;
-
- /**
- * Get a field from identity file
- *
- * @param id : the registration id
- * @param field : field name to search
- * @param source : the source packet. If not present return default
- * @param process : the process
- * @return String field
- */
- @PreAuthorize("hasRole('DATA_READ')")
- public String getField(String id, String field, String source, String process, boolean bypassCache) {
- LOGGER.info(PacketManagerLogger.SESSIONID, PacketManagerLogger.REGISTRATIONID, id,
- "getFields for fields : " + field + " source : " + source + " process : " + process);
- String value;
- if (bypassCache)
- value = getProvider(source, process).getField(id, field, source, process);
- else {
- Optional