From 14e7ff56d864a71cdf2d2cc8968350b635284a7a Mon Sep 17 00:00:00 2001
From: JanardhanBS-SyncByte
Date: Wed, 30 Sep 2026 17:05:43 +0530
Subject: [PATCH] [issue-1633] pom error
Signed-off-by: JanardhanBS-SyncByte
---
pre-registration-booking-service/pom.xml | 10 ++-
.../booking/BookingApplication.java | 19 ++++-
.../resources/application-local.properties | 80 ++++++++++++++++++-
.../BookingApplicationComponentScanTest.java | 19 +++++
4 files changed, 125 insertions(+), 3 deletions(-)
diff --git a/pre-registration-booking-service/pom.xml b/pre-registration-booking-service/pom.xml
index 671b750ef8..54d0eeda6c 100644
--- a/pre-registration-booking-service/pom.xml
+++ b/pre-registration-booking-service/pom.xml
@@ -240,12 +240,20 @@
runtime
com.h2database
h2
+
+
+ org.postgresql
+ postgresql
+ runtime
+
diff --git a/pre-registration-booking-service/src/main/java/io/mosip/preregistration/booking/BookingApplication.java b/pre-registration-booking-service/src/main/java/io/mosip/preregistration/booking/BookingApplication.java
index 6be41def9c..3cc6556bcf 100644
--- a/pre-registration-booking-service/src/main/java/io/mosip/preregistration/booking/BookingApplication.java
+++ b/pre-registration-booking-service/src/main/java/io/mosip/preregistration/booking/BookingApplication.java
@@ -8,7 +8,10 @@
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import io.mosip.kernel.dataaccess.hibernate.repository.impl.HibernateRepositoryImpl;
import io.mosip.preregistration.booking.config.BookingConfig;
/**
@@ -21,6 +24,13 @@
* whose {@code Class} constructor Boot 4 cannot autowire. Kernel-core sidecar
* auto-configs are excluded by name; DataSource/JPA stay enabled. Swagger UI
* Authorize is wired in {@link BookingConfig}.
+ * {@code scanBasePackages} does not register Spring Data repositories or JPA
+ * entities outside this application's package. BookingServiceUtil autowires
+ * core {@code UserDetailsService}, which needs {@code UserDetailsRepository}
+ * from pre-registration-core; {@link EnableJpaRepositories} and
+ * {@link EntityScan} cover booking plus {@code io.mosip.preregistration.core.common}.
+ * Kernel {@code BaseRepository.update} is implemented by
+ * {@link HibernateRepositoryImpl}; Boot's default factory cannot parse that method.
*
*
* @author Kishan Rathore
@@ -36,6 +46,14 @@
"io.mosip.kernel.core.logger.config",
"io.mosip.kernel.idobjectvalidator.*"
})
+@EnableJpaRepositories(basePackages = {
+ "io.mosip.preregistration.booking.repository",
+ "io.mosip.preregistration.core.common.repository"
+}, repositoryBaseClass = HibernateRepositoryImpl.class)
+@EntityScan(basePackages = {
+ "io.mosip.preregistration.booking.entity",
+ "io.mosip.preregistration.core.common.entity"
+})
@EnableAutoConfiguration(excludeName = {
"io.mosip.kernel.idgenerator.vid.impl.VidGeneratorImpl",
"io.mosip.kernel.idgenerator.vid.util.VidFilterUtils",
@@ -51,7 +69,6 @@
"io.mosip.kernel.idvalidator.uin.impl.UinValidatorImpl",
"io.mosip.kernel.idvalidator.vid.impl.VidValidatorImpl",
"io.mosip.kernel.idvalidator.mispid.impl.MispIdValidatorImpl",
- "io.mosip.kernel.templatemanager.velocity.builder.TemplateManagerBuilderImpl",
"io.mosip.kernel.pdfgenerator.impl.PDFGeneratorImpl",
"io.mosip.kernel.qrcode.generator.zxing.QrcodeGeneratorImpl",
"io.mosip.kernel.transliteration.icu4j.impl.TransliterationImpl",
diff --git a/pre-registration-booking-service/src/main/resources/application-local.properties b/pre-registration-booking-service/src/main/resources/application-local.properties
index 474cbe2a6c..4c546464a7 100644
--- a/pre-registration-booking-service/src/main/resources/application-local.properties
+++ b/pre-registration-booking-service/src/main/resources/application-local.properties
@@ -1,3 +1,81 @@
# Local profile. Activate with: -Dspring.profiles.active=local
-# Cluster gets this from mosip-config; bootstrap leaves it commented on purpose.
+# Cluster gets auth adapter + JDBC from mosip-config; bootstrap leaves the adapter
+# package commented on purpose.
+spring.cloud.config.enabled=false
+spring.cloud.config.fail-fast=false
mosip.auth.adapter.impl.basepackage=io.mosip.kernel.auth.defaultadapter
+application.env.local=true
+
+spring.datasource.url=jdbc:h2:mem:prereg;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS PREREG
+spring.datasource.driver-class-name=org.h2.Driver
+spring.datasource.username=sa
+spring.datasource.password=
+javax.persistence.jdbc.url=${spring.datasource.url}
+javax.persistence.jdbc.user=sa
+javax.persistence.jdbc.password=
+javax.persistence.jdbc.driver=org.h2.Driver
+hibernate.hbm2ddl.auto=update
+spring.jpa.hibernate.ddl-auto=update
+spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
+
+regCenter.url=http://localhost:8086/masterdata/v1.0/registrationcenters
+holiday.url=http://localhost:8086/masterdata/v1.0/getregistrationcenterholidays/
+demographic.resource.url=http://localhost:9092/pre-registration/v1.0/applications
+notification.url=http://localhost:8083/notification/notify
+booking.resource.url=http://localhost:9095/preregistration/v1
+cryptoResource.url=http://localhost:8087/cryptomanager/v1.0
+audit.url=http://localhost:8088/auditmanager/v1.0/audits
+emailResourse.url=http://localhost:8089/emailnotifier/v1.0/email/send
+smsResourse.url=http://localhost:8090/smsnotifier/v1.0/sms/send
+resource.template.url=http://localhost:8086/masterdata/v1.0/templates
+mosip.kernel.idobjectvalidator.masterdata.documenttypes.rest.uri=http://localhost:8086/v1/masterdata/documenttypes/{documentcategorycode}/{langcode}
+mosip.kernel.masterdata.validdoc.rest.uri=http://localhost:8086/masterdata/validdocuments/
+
+preregistration.availability.sync=7
+preregistration.availability.noOfDays=7
+preregistration.booking.offset=2
+preregistration.timespan.cancel=24
+preregistration.timespan.rebook=24
+mosip.utc-datetime-pattern=yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
+mosip.notification.timezone=GMT+05:30
+version=1.0
+mosip.mandatory-languages=eng
+mosip.optional-languages=fra
+preregistration.crypto.applicationId=PRE_REGISTRATION
+preregistration.crypto.referenceId=INDIVIDUAL
+preregistration.crypto.PrependThumbprint=false
+email.acknowledgement.template=Email-Acknowledgement
+email.acknowledgement.subject.template=Acknowledgement-email-subject
+cancel.appointment.email.subject=cancel-appointment-email-subject
+sms.acknowledgement.template=SMS-Acknowledgement
+cancel.appoinment.template=cancel-appointment
+
+mosip.preregistration.booking.availability.sync.id=mosip.preregistration.booking.availability.sync
+mosip.preregistration.booking.id.book=mosip.pre-registration.booking.book
+mosip.preregistration.booking.fetch.booking.id=mosip.preregistration.booking.fetch.booking
+mosip.preregistration.booking.cancel.id=mosip.preregistration.booking.cancel
+mosip.preregistration.booking.delete.id=mosip.preregistration.booking.delete
+mosip.preregistration.booking.fetch.availability.id=mosip.preregistration.booking.fetch.availability
+mosip.preregistration.booking.fetchPreidByDate.id=mosip.preregistration.booking.fetchPreidByDate
+mosip.preregistration.booking.availability.increase.id=mosip.preregistration.booking.availability.increase
+mosip.preregistration.booking.availability.check.id=mosip.preregistration.booking.availability.check
+mosip.preregistration.booking.delete.old.id=mosip.preregistration.booking.delete.old
+mosip.preregistration.booking.exception.id=mosip.preregistration.booking.parse.exception
+
+mosip.role.prereg.getappointmentavailability=INDIVIDUAL
+mosip.role.prereg.postappointmentpreregistrationid=INDIVIDUAL
+mosip.role.prereg.postappointment=INDIVIDUAL
+mosip.role.prereg.getappointmentpreregistrationid=INDIVIDUAL
+mosip.role.prereg.putappointmentpreregistrationid=INDIVIDUAL
+mosip.role.prereg.putbatchappointmentpreregistrationid=INDIVIDUAL
+mosip.role.prereg.deleteappointment=INDIVIDUAL
+mosip.role.prereg.getappointmentpreregistrationidregistrationcenterid=INDIVIDUAL
+mosip.role.prereg.getappointmentregistrationcenterid=INDIVIDUAL
+
+mosip.kernel.auth.appids.realm.map={prereg:'preregistration',ida:'mosip',registrationclient:'mosip',regproc:'mosip',partner:'mosip',resident:'mosip',admin:'mosip'}
+mosip.iam.adapter.clientid=mosip-prereg-client
+mosip.iam.adapter.clientsecret=local
+mosip.iam.adapter.appid=prereg
+auth.server.admin.issuer.uri=http://localhost:8080/auth/realms/
+auth-token-generator.rest.issuerUrl=http://localhost:8080
+mosip.security.authentication.provider.beans.list=customJWTAuthProvider
diff --git a/pre-registration-booking-service/src/test/java/io/mosip/preregistration/booking/config/BookingApplicationComponentScanTest.java b/pre-registration-booking-service/src/test/java/io/mosip/preregistration/booking/config/BookingApplicationComponentScanTest.java
index bfbd1ad941..ffe91ff209 100644
--- a/pre-registration-booking-service/src/test/java/io/mosip/preregistration/booking/config/BookingApplicationComponentScanTest.java
+++ b/pre-registration-booking-service/src/test/java/io/mosip/preregistration/booking/config/BookingApplicationComponentScanTest.java
@@ -1,5 +1,6 @@
package io.mosip.preregistration.booking.config;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -9,7 +10,10 @@
import org.junit.Test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.persistence.autoconfigure.EntityScan;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import io.mosip.kernel.dataaccess.hibernate.repository.impl.HibernateRepositoryImpl;
import io.mosip.preregistration.booking.BookingApplication;
/**
@@ -32,6 +36,21 @@ public void scanBasePackagesIsAllowListNotIoMosipStar() {
assertTrue(packages.contains("io.mosip.kernel.idobjectvalidator.*"));
}
+ @Test
+ public void jpaScanIncludesBookingAndCoreRepositoriesAndEntities() {
+ List repositories = Arrays.asList(
+ BookingApplication.class.getAnnotation(EnableJpaRepositories.class).basePackages());
+ assertTrue(repositories.contains("io.mosip.preregistration.booking.repository"));
+ assertTrue(repositories.contains("io.mosip.preregistration.core.common.repository"));
+ assertEquals(HibernateRepositoryImpl.class,
+ BookingApplication.class.getAnnotation(EnableJpaRepositories.class).repositoryBaseClass());
+
+ List entities = Arrays.asList(
+ BookingApplication.class.getAnnotation(EntityScan.class).basePackages());
+ assertTrue(entities.contains("io.mosip.preregistration.booking.entity"));
+ assertTrue(entities.contains("io.mosip.preregistration.core.common.entity"));
+ }
+
@Test
public void autoConfigurationExcludesKernelCoreSidecarsNotDataSource() {
List names = Arrays.asList(