Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion pre-registration-booking-service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -240,12 +240,20 @@
<scope>runtime</scope>
</dependency>
<!--
h2: In-memory DB for tests. Version from Boot parent.
h2: In-memory DB for tests and spring.profiles.active=local. Version from Boot parent.
-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<!--
postgresql: Cluster JDBC driver. Version from Boot parent.
-->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!--
logstash-logback-encoder: JSON encoder for log shipping. Version ${logstash-logback-encoder.version}.
-->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/**
Expand All @@ -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.
* </p>
*
* @author Kishan Rathore
Expand All @@ -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",
Expand All @@ -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",
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -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;

/**
Expand All @@ -32,6 +36,21 @@ public void scanBasePackagesIsAllowListNotIoMosipStar() {
assertTrue(packages.contains("io.mosip.kernel.idobjectvalidator.*"));
}

@Test
public void jpaScanIncludesBookingAndCoreRepositoriesAndEntities() {
List<String> 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<String> 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<String> names = Arrays.asList(
Expand Down
Loading