Compatibility Issue with Mosip SDK Test Jar and Java 11

Dear Mosip Community,

I hope this message finds you well. I’m currently experiencing compatibility issues with the Mosip SDK test jar while using Java 11. Despite the mentioned support for Java 11, it seems the SDK might not be functioning optimally with this version.

Upon further investigation, I discovered that the Spring Boot version associated with the SDK (2.0.8) officially supports only Java 8 and 9. As Java 11 is not within the officially supported versions for this particular Spring Boot version, it might explain the compatibility hurdles.

I’ve attempted a local conversion of the Spring Boot version for the Mosip test jar to accommodate Java 11, but it hasn’t yielded the desired results yet.

Could someone kindly shed light on why the SDK test jar might not be working seamlessly with Java 11, despite the stated compatibility? Additionally, any guidance or insights on adapting it to Java 11 would be immensely helpful.

I believe resolving this compatibility concern will greatly benefit developers aiming to leverage Mosip with newer Java versions.

Thank you for your attention and support in addressing this matter.

Best regards,
Uday Sai Tyada

1 Like

Hi @Uday_Sai_Tyada

I understand your concern with leveraging MOSIP with the newer JAVA version that work is in our pipeline.

For the current problem that you are facing with the MOSIP SDK test Jar and Java 11, I will ask one of our developers to check and help you resolve this issue.

Best Regards,
Team MOSIP

Hi @Uday_Sai_Tyada

Please provide below details to check the issue

  1. Version of MOSIP SDK used
  2. Is the issue faced during build time?
  3. When you say it’s not working, how are you testing/validating it?

Note: If the MOSIP SDK jar is integrated with anyother MOSIP service, pls provide version of that service as well.

If the steps are provided to reproduce the issue, It will help us analyze it faster.

1 Like

Hey @Anusha_sunkadh,

I am trying to build the Biometrics SDK for which I have been trying to test using BioSDK testing kit.

So, in the SDK that I am building uses, biometric-utils and kernel-biometrics-api dependencies of version : 1.2.0.1-B1.

        <dependency>
			<groupId>io.mosip.biometric.util</groupId>
			<artifactId>biometrics-util</artifactId>
			<version>1.2.0.1-B1</version>
		</dependency>

		<dependency>
			<groupId>io.mosip.kernel</groupId>
			<artifactId>kernel-biometrics-api</artifactId>
			<version>1.2.0.1-B1</version>
		</dependency>

And to answer your second question: No the error was during the run time.

And to answer your third question: The error was coming while running the command that was specified in the Bio SDK Test kit.

Some background on what I was doing to counter the problem:

  1. Changed the version of the Biometrics Testing kit to 2.7.14, as the current Spring boot (2.0.8.RELEASE) version works only with Java 8 and 9, as mentioned here.
  2. Changed all the dependent spring versions compatible with 2.7.14

Here an in-depth look at the environment:

.
β”œβ”€β”€ BiometricSDKTest-2.0.jar
β”œβ”€β”€ BiometricSDKTest-2.7.jar
β”œβ”€β”€ config
β”‚   β”œβ”€β”€ BioTestConfig.java
β”‚   β”œβ”€β”€ TestResultBuilder.java
β”‚   β”œβ”€β”€ TestResultTemplateWriter.java
β”‚   └── application.properties
β”œβ”€β”€ inputs
β”‚   β”œβ”€β”€ face
β”‚   β”‚   β”œβ”€β”€ gallery_multiple_persons.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_bad_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_good_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_instead_finger.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_instead_iris.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_invalid_data.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_match_fail.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_match_success.xml
β”‚   β”‚   └── probe_face_no_input_data.xml
β”‚   β”œβ”€β”€ finger
β”‚   β”‚   β”œβ”€β”€ gallery_multiple_persons.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_bad_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_good_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_instead_face.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_invalid_data.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_match_fail.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_match_success.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_no_input_data.xml
β”‚   β”‚   └── probe_finger_wrong_subtype.xml
β”‚   └── iris
β”‚       β”œβ”€β”€ gallery_multiple_persons.xml
β”‚       β”œβ”€β”€ probe_iris_bad_quality.xml
β”‚       β”œβ”€β”€ probe_iris_good_quality.xml
β”‚       β”œβ”€β”€ probe_iris_instead_face.xml
β”‚       β”œβ”€β”€ probe_iris_instead_finger.xml
β”‚       β”œβ”€β”€ probe_iris_invalid_data.xml
β”‚       β”œβ”€β”€ probe_iris_match_fail.xml
β”‚       β”œβ”€β”€ probe_iris_match_success.xml
β”‚       └── probe_iris_no_input_data.xml
β”œβ”€β”€ lib
β”‚   └── biometrics_sdk-0.0.1-SNAPSHOT.jar
└── test.txt

Where

  1. BiometricSDKTest-2.0 is the default Testing kit

  2. BiometricSDKTest-2.7 is the jar that I have created by converting the above Testing kit to Sring boot 2.7

Please let me know if I am in the right direction to test the SDK that was built.

1 Like

Here is the more in-depth understanding about my working environment:

Folder structure:

.
β”œβ”€β”€ **BiometricSDKTest-2.0.jar**
β”œβ”€β”€ **BiometricSDKTest-2.7.jar**
β”œβ”€β”€ config
β”‚   β”œβ”€β”€ BioTestConfig.java
β”‚   β”œβ”€β”€ TestResultBuilder.java
β”‚   β”œβ”€β”€ TestResultTemplateWriter.java
β”‚   └── application.properties
β”œβ”€β”€ inputs
β”‚   β”œβ”€β”€ face
β”‚   β”‚   β”œβ”€β”€ gallery_multiple_persons.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_bad_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_good_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_instead_finger.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_instead_iris.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_invalid_data.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_match_fail.xml
β”‚   β”‚   β”œβ”€β”€ probe_face_match_success.xml
β”‚   β”‚   └── probe_face_no_input_data.xml
β”‚   β”œβ”€β”€ finger
β”‚   β”‚   β”œβ”€β”€ gallery_multiple_persons.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_bad_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_good_quality.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_instead_face.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_invalid_data.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_match_fail.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_match_success.xml
β”‚   β”‚   β”œβ”€β”€ probe_finger_no_input_data.xml
β”‚   β”‚   └── probe_finger_wrong_subtype.xml
β”‚   └── iris
β”‚       β”œβ”€β”€ gallery_multiple_persons.xml
β”‚       β”œβ”€β”€ probe_iris_bad_quality.xml
β”‚       β”œβ”€β”€ probe_iris_good_quality.xml
β”‚       β”œβ”€β”€ probe_iris_instead_face.xml
β”‚       β”œβ”€β”€ probe_iris_instead_finger.xml
β”‚       β”œβ”€β”€ probe_iris_invalid_data.xml
β”‚       β”œβ”€β”€ probe_iris_match_fail.xml
β”‚       β”œβ”€β”€ probe_iris_match_success.xml
β”‚       └── probe_iris_no_input_data.xml
β”œβ”€β”€ lib
β”‚   └── biometrics_sdk-0.0.1-SNAPSHOT.jar
└── test.txt

And Here,

  • BiometricSDKTest-2.0.jar is the jar that I build from default Bio SDK Testing kit

  • BiometricSDKTest-2.7.jar is the jar that I build after changing the Bio SDK Testing kit to Spring boot 2.7

  • test.txt is the file that contains all the test cases. Here is the contents of that :

extractTemplateAndCheckQualitySuccess - finger|finger|extractTemplateAndCheckQualitySuccess|inputs/finger/probe_finger_good_quality.xml
extractTemplateAndCheckQualitySuccess - face|face|extractTemplateAndCheckQualitySuccess|inputs/face/probe_face_good_quality.xml
extractTemplateAndCheckQualitySuccess - iris|iris|extractTemplateAndCheckQualitySuccess|inputs/iris/probe_iris_good_quality.xml
extractTemplateAndCheckQualityFail - finger|finger|extractTemplateAndCheckQualityFail|inputs/finger/probe_finger_bad_quality.xml
extractTemplateAndCheckQualityFail - face|face|extractTemplateAndCheckQualityFail|inputs/face/probe_face_bad_quality.xml
extractTemplateAndCheckQualityFail - iris|iris|extractTemplateAndCheckQualityFail|inputs/iris/probe_iris_bad_quality.xml
extractTemplateInvalidData - finger|finger|extractTemplateInvalidData|inputs/finger/probe_finger_invalid_data.xml
extractTemplateInvalidData - face|face|extractTemplateInvalidData|inputs/face/probe_face_invalid_data.xml
extractTemplateInvalidData - iris|iris|extractTemplateInvalidData|inputs/iris/probe_iris_invalid_data.xml
extractTemplateNoInputData - finger|finger|extractTemplateNoInputData|inputs/finger/probe_finger_no_input_data.xml
extractTemplateNoInputData - face|face|extractTemplateNoInputData|inputs/face/probe_face_no_input_data.xml
extractTemplateNoInputData - iris|iris|extractTemplateNoInputData|inputs/iris/probe_iris_no_input_data.xml
extractAndMatchFMRSuccess - finger|finger|extractAndMatchFMRSuccess|inputs/finger/probe_finger_match_success.xml,inputs/gallery_one_person.xml
extractAndMatchFMRSuccess - face|face|extractAndMatchFMRSuccess|inputs/face/probe_face_match_success.xml,inputs/gallery_one_person.xml
extractAndMatchFMRSuccess - iris|iris|extractAndMatchFMRSuccess|inputs/iris/probe_iris_match_success.xml,inputs/gallery_one_person.xml
extractAndMatchFMRFail - finger|finger|extractAndMatchFMRFail|inputs/finger/probe_finger_match_fail.xml,inputs/gallery_one_person.xml
extractAndMatchFMRFail - face|face|extractAndMatchFMRFail|inputs/face/probe_face_match_fail.xml,inputs/gallery_one_person.xml
extractAndMatchFMRFail - iris|iris|extractAndMatchFMRFail|inputs/iris/probe_iris_match_fail.xml,inputs/gallery_one_person.xml
segment - finger|finger|segment|inputs/finger/probe_finger_good_quality.xml
segment - face|face|segment|inputs/face/probe_face_good_quality.xml
segment - iris|iris|segment|inputs/iris/probe_iris_good_quality.xml
segmentInvalidData - finger|finger|segmentInvalidData|inputs/finger/probe_finger_invalid_data.xml
segmentInvalidData - face|face|segmentInvalidData|inputs/face/probe_face_invalid_data.xml
segmentInvalidData - iris|iris|segmentInvalidData|inputs/iris/probe_iris_invalid_data.xml
segmentNoInputData - finger|finger|segmentNoInputData|inputs/finger/probe_finger_no_input_data.xml
segmentNoInputData - face|face|segmentNoInputData|inputs/face/probe_face_no_input_data.xml
segmentNoInputData - iris|iris|segmentNoInputData|inputs/iris/probe_iris_no_input_data.xml
convertFormatJPEGToJPEG - face|face|convertFormatJPEGToJPEG|inputs/face/probe_face_good_quality.xml
convertFormatJPEGToBMP - face|face|convertFormatJPEGToBMP|inputs/face/probe_face_good_quality.xml
convertFormatJPEGToWSQ - face|face|convertFormatJPEGToWSQ|inputs/face/probe_face_good_quality.xml
convertFormatBMPToJPEG - face|face|convertFormatBMPToJPEG|inputs/face/probe_face_good_quality.xml
convertFormatBMPToBMP - face|face|convertFormatBMPToBMP|inputs/face/probe_face_good_quality.xml
convertFormatBMPToWSQ - face|face|convertFormatBMPToWSQ|inputs/face/probe_face_good_quality.xml
convertFormatWSQToJPEG - face|face|convertFormatWSQToJPEG|inputs/face/probe_face_good_quality.xml
convertFormatWSQToBMP - face|face|convertFormatWSQToBMP|inputs/face/probe_face_good_quality.xml
convertFormatWSQToWSQ - face|face|convertFormatWSQToWSQ|inputs/face/probe_face_good_quality.xml
convertFormatInvalidData - face|face|convertFormatInvalidData|inputs/face/probe_face_invalid_data.xml
convertFormatNoData - face|face|convertFormatNoData|inputs/face/probe_face_no_input_data.xml

Give us sometime @Anusha_sunkadh will look into this. Thanks for sharing this in detail.

Hi @Uday_Sai_Tyada

We are trying to reproduce the same in our local. Will update you soon.

thanks @ regards,
Anusha

2 Likes

Hello Team;

The BioSDK testing kit referred here is the older version of test suit which is not supported anymore. I would request you to kindly use the new utility called Compliance tool kit for validating the BioSDK interfaces with MOSIP

For using the Compliance Tool Kit (CTK) , please go through the below links :-

  1. CTK Document
    https://docs.mosip.io/compliance-tool-kit/

  2. Guide to setup BioSDK service to test interface with MOSIP’s CTK
    Steps to set up SDK for testing - Compliance Tool Kit

  3. CTK - Synergy Environment(UI)
    https://compliance.synergy.mosip.net/

  4. MOSIP MOCK SDK (Reference BioSDK from MOSIP)
    Mock SDK - Google Drive

Thanks and Regards
Suraj

2 Likes

Thank you @241180 , Let me try to use this Compliance tool kit, and get back to you if I have any issues.

1 Like