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(