Skip to content

feat: Spring Boot 3.5 + Java 25 LTS + Virtual Threads migration#1241

Draft
ChakshuGautam wants to merge 12 commits intoegovernments:masterfrom
ChakshuGautam:feat/spring-boot-3.5-virtual-threads
Draft

feat: Spring Boot 3.5 + Java 25 LTS + Virtual Threads migration#1241
ChakshuGautam wants to merge 12 commits intoegovernments:masterfrom
ChakshuGautam:feat/spring-boot-3.5-virtual-threads

Conversation

@ChakshuGautam
Copy link
Copy Markdown

Summary

Migrate all DIGIT core services from Spring Boot 1.5/2.x + Java 8 to Spring Boot 3.5.12 + Java 25 LTS with virtual threads enabled. This is a complete platform modernization covering 35+ services, 4 shared libraries, and the API gateway layer.

  • 446 files changed, 3,801 insertions, 6,059 deletions across 12 commits
  • 35+ services migrated to Spring Boot 3.5.12 with spring.threads.virtual.enabled=true
  • Gateway replaced: Zuul → Spring Cloud Gateway (reactive, non-blocking)
  • Java 25 LTS target (compile + runtime) with Eclipse Temurin Alpine images
  • Full PGR lifecycle validated (16/16 assertions) against the migrated stack

Changes by Category

1. Spring Boot 3.5.12 Migration (Services)

All core services upgraded from Spring Boot 1.5.x/2.x to 3.5.12:

  • egov-user, tenant, egov-persister, egov-indexer, egov-localization
  • egov-workflow-v2, egov-mdms-service, mdms-v2, egov-filestore
  • egov-idgen, egov-otp, user-otp, egov-notification-sms
  • egov-notification-mail, egov-url-shortening, egov-user-event
  • egov-enc-service, egov-pg-service, egov-accesscontrol
  • egov-location, egov-searcher, egov-data-uploader
  • egov-document-uploader, egov-common-masters, report
  • audit-service, boundary-service, service-request, chatbot
  • national-dashboard-ingest, national-dashboard-kafka-pipeline

2. Shared Libraries

  • tracer → Spring Boot 3.5.12, Jakarta EE 9+, WebClient-based REST
  • services-common → Spring Boot 3.5.12 + Jakarta
  • mdms-client → Spring Boot 3.5.12 + Jakarta
  • enc-client → Spring Boot 3.5.12 + Jakarta

3. Gateway: Zuul → Spring Cloud Gateway

  • Replaced Netflix Zuul 1.x with Spring Cloud Gateway (reactive)
  • OAuth2 resource server integration for JWT validation
  • WebClient-based auth filter replacing RestTemplate
  • Correlation ID propagation and request/response logging

4. Key Migrations Applied Across All Services

  • javax.*jakarta.* (Servlet, Persistence, Validation, XML Bind)
  • RestTemplateWebClient (non-blocking HTTP)
  • JUnit 4 → JUnit 5 (test suites)
  • Spring Security: WebSecurityConfigurerAdapterSecurityFilterChain bean
  • spring-cloud-starter-config replaced with spring-cloud-starter-bootstrap
  • JDBC driver classes: org.postgresql.Driver (unchanged), com.mysql.cj.jdbc.Driver
  • Redis property namespace: spring.redis.*spring.data.redis.*

5. Java 25 LTS Target

  • All pom.xml: <java.version>25</java.version>
  • Build images: maven:3.9.9-eclipse-temurin-25-alpine
  • Runtime images: eclipse-temurin:25-jre-alpine
  • JDK 8→25 hybrid Dockerfile retained for legacy services

6. CI Validation Fixes (43 files)

Fixes discovered during full-stack CI validation:

  • Removed hardcoded <log4j2.version>2.17.1</log4j2.version> from 26 pom.xml files (fixes IncompatibleClassChangeError — let Spring Boot BOM manage Log4j2)
  • Removed @Autowired from @Bean methods in 16 config files (Spring 6.2+ auto-injects @Bean method parameters)
  • Converted void @Bean to @PostConstruct in MDMSService.java

Validation Results

Core Health & Smoke Tests (13/13 pass)

All services start successfully and respond to health checks with the migrated stack running on Docker Compose.

PGR Lifecycle Integration Test (16/16 pass)

Full complaint lifecycle validated end-to-end:

  1. Create complaint → 2. Assign to employee → 3. Reassign → 4. Reject → 5. Resolve → 6. Rate → Search/verify at each step

Runtime Configuration Notes

Services require these flags (set in Docker Compose / K8s manifests):

# Enable virtual threads (the whole point of this migration)
spring.threads.virtual.enabled=true

# Required for DIGIT's bean override patterns
spring.main.allow-bean-definition-overriding=true

# Redis (Spring Boot 3.x renamed the property namespace)
spring.data.redis.host=redis
spring.data.redis.port=6379

egov-user additionally needs -Dmanagement.endpoints.web.base-path=/ if healthcheck hits /user/health instead of /actuator/health.

Build Infrastructure

Three Dockerfile variants in build/:

Dockerfile Build JDK Runtime JDK Use Case
build/maven/Dockerfile Temurin 25 Temurin 25 JRE Standard SB 3.5 services
build/maven-jdk21/Dockerfile Temurin 25 Temurin 25 JRE SB 3.5 services (identical, kept for migration path)
build/maven-java8-jdk21/Dockerfile Corretto 8 Temurin 25 JRE Legacy SB 1.5 services (JAXB patched)

All include CDS (Class Data Sharing) pre-dump for faster container startup.

Test plan

  • CI pipeline builds all services successfully with JDK 25
  • All services pass health checks on startup
  • PGR lifecycle integration test passes end-to-end
  • Gateway routes requests correctly to downstream services
  • Virtual threads enabled and active (check thread names in logs)

🤖 Generated with Claude Code

Chakshu and others added 12 commits March 24, 2026 07:01
Add build/maven-jdk21/ as a new Dockerfile variant alongside the
existing build/maven/ (JDK 17). Services on Spring Boot 3.x are
switched to the new Dockerfile; legacy services (Spring Boot 1.5/2.x)
remain on JDK 17 unchanged.

Why:
- JDK 17 has a cgroup v2 CPU detection bug (JDK-8281181) on
  kernel 6.8+ — the JVM sees all host CPUs instead of the
  container's CPU limit, spawning 50-60 threads instead of ~15.
- JDK 21 fixes this and auto-sizes heap/GC/threads from cgroup
  limits, eliminating the need for manual JVM tuning flags.
- JDK 21 runs Java 17 bytecode natively (no recompilation needed).

New files:
- build/maven-jdk21/Dockerfile: eclipse-temurin:21-jre-alpine runtime
  with CDS (Class Data Sharing) pre-dump for faster startup
- build/maven-jdk21/start.sh: no default -Xms/-Xmx, CDS loading

Updated: build-config.yml
- 26 Spring Boot 3.x services → build/maven-jdk21/Dockerfile
- 32 legacy/other services → unchanged (build/maven/Dockerfile)
- 1 service (egov-user) → unchanged (build/maven-java8/Dockerfile)

Validated on docker-compose local-setup (jar-swap approach):
- 12 services rebased, all healthy
- k6 load test: 100% success (104 transactions, 0 failures)
- Memory: ~24% RSS reduction, ~42% thread count reduction

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
egov-user is on Spring Boot 1.5 / JDK 8 and cannot be easily migrated
to Spring Boot 3.2. This new build variant compiles with JDK 8 but runs
on JDK 21, getting cgroup v2 fixes and memory improvements without a
framework migration.

The hybrid approach:
- Build stage: same JDK 8 Maven image (amazoncorretto-8)
- Patch stage: injects JAXB API + runtime jars (removed from JDK 11+)
- Runtime stage: eclipse-temurin:21-jre-alpine with CDS + --add-opens

Measured results (8 vCPU / 16 GB VM):
- Memory at idle: 461 MiB → 184 MiB (60% reduction)
- Memory under 300 VU load: OOM-killed → 286 MiB (56% of limit)
- Threads: 50+ → 34

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Phase 0 of Spring Boot 3.5 migration:
- services-common: SB 3.2.2→3.5.12, javax→jakarta, JUnit 5
- tracer: SB 3.2.2→3.5.12, OTel 1.46/2.12, add WebClient.Builder bean + logging filter
- mdms-client: SB 3.2.2→3.5.12, RestTemplate→WebClient
- enc-client: SB 3.2.2→3.5.12, RestTemplate→WebClient, JUnit 5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Phase 1 of Spring Boot 3.5 migration. All services already on 3.2.2
upgraded to 3.5.12 with spring.threads.virtual.enabled=true:

Tier 1 (clean): egov-mdms-service, egov-otp, egov-localization,
  egov-persister, service-request, mdms-v2
Tier 2 (RestTemplate): egov-location, egov-url-shortening,
  boundary-service, audit-service, user-otp, egov-user-event
Tier 3/4 (complex): egov-filestore, egov-idgen, egov-enc-service,
  egov-accesscontrol, egov-notification-mail, egov-notification-sms,
  egov-indexer, egov-workflow-v2, egov-pg-service, gateway,
  internal-gateway-scg

Additional fixes:
- Lombok 1.18.22→1.18.36 (JDK 21 compatibility)
- javax.validation→jakarta.validation in egov-workflow-v2 (16 files)
- javax.mail→jakarta.mail in egov-notification-mail
- Spring Cloud 2023.0.0→2025.0.0 for gateway services
- commons-lang→commons-lang3 import fixes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Phase 2 of Spring Boot 3.5 migration - highest risk services:

egov-user:
- Spring Boot 1.5.22→3.5.12, Java 8→17, virtual threads
- Complete OAuth2 security rewrite: removed spring-security-oauth2
  (deprecated), replaced with custom token management using
  CustomRedisTokenStore + OAuthController
- SecurityConfig: WebSecurityConfigurerAdapter→SecurityFilterChain
- Redis: Jedis→Lettuce (Spring Boot 3.x default)
- javax.servlet→jakarta.servlet
- Flyway properties migrated to spring.flyway.* namespace
- OAuth2Exception→AuthenticationServiceException

tenant:
- Spring Boot 1.5.22→3.5.12, Java 8→17, virtual threads
- WebMvcConfigurerAdapter→WebMvcConfigurer
- Flyway properties migrated, flyway-database-postgresql added

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…threads

Migrate 9 services that were on Spring Boot 1.5.22/2.2.13/2.3.8:
- egov-common-masters (1.5.22→3.5.12): javax→jakarta, StringUtils fix
- egov-data-uploader (1.5.22→3.5.12): javax→jakarta, flyway migration
- egov-document-uploader (2.2.13→3.5.12): javax→jakarta
- egov-searcher (2.2.13→3.5.12): javax→jakarta
- report (2.2.13→3.5.12): javax→jakarta
- chatbot (2.2.13→3.5.12): javax→jakarta, commons-io dependency
- national-dashboard-ingest (2.2.13→3.5.12): remove dead server.contextPath
- national-dashboard-kafka-pipeline (2.2.13→3.5.12): remove dead server.contextPath
- internal-gateway (2.3.8→3.5.12): Zuul→Spring Cloud Gateway MVC

All services compile with mvn clean compile -DskipTests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Spring Cloud Gateway (gateway/) on SB 3.5.12 already replaces the
deprecated Zuul service (zuul/, SB 2.2.13). All core Zuul filters have
equivalent implementations in the gateway service:
- Auth, RBAC, rate limiting, correlation ID, request enrichment
- Reactive (Netty) architecture vs Zuul's blocking Tomcat model
- Built-in OTEL tracing support

Fixed a malformed property line in gateway application.properties where
two properties were concatenated on one line.

The zuul/ service is now deprecated and should not be deployed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Complete rewrite of the API Gateway from Netflix Zuul (deprecated) to
Spring Cloud Gateway (reactive, Netty-based).

Key changes:
- Spring Boot 2.2.13 → 3.5.12, Java 8 → 17
- Netflix Zuul → Spring Cloud Gateway 4.3.3 (reactive)
- ZuulFilter → GlobalFilter with Ordered interface
- RequestContext → ServerWebExchange attributes
- RestTemplate → WebClient (non-blocking)
- javax.servlet → reactive ServerHttpRequest/ServerHttpResponse
- Custom request body caching for multi-read in filter chain
- zuul.routes.* → RouteLocator bean reading same routes.properties
- Zuul rate limiting → Spring Cloud Gateway RequestRateLimiter (Redis)

Filter chain preserved (same order and behavior):
  -1000 CachedBodyGlobalFilter (caches request body)
   -999 RequestStartTimeFilter
      0 CorrelationIdFilter
      1 AuthPreCheckFilter (auth token extraction)
      2 RbacPreCheckFilter
      3 AuthFilter (user service call via WebClient)
      4 RbacFilter (access control call via WebClient)
      5 RequestEnrichmentFilter (body enrichment)
  post: ResponseEnhancementFilter, CustomAsyncFilter, PostEventLogFilter

66 files changed, 1568 insertions, 3841 deletions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes 9 services that failed `mvn package` on a clean CI machine:

JUnit 4 → JUnit 5 test migration (7 services):
- egov-user: Full test migration - Matchers→ArgumentMatchers,
  @test(expected=...)→assertThrows(), extends→implements ArgumentMatcher,
  removed obsolete CustomAuthenticationKeyGenerator reference
- tenant: JUnit 4→5 annotations, mockito.runners→mockito.junit.jupiter
- egov-data-uploader: JUnit 4→5 test annotations
- egov-searcher, report: JUnit 4→5 test annotations
- national-dashboard-ingest/kafka-pipeline: Added junit-vintage-engine

Dependency version fixes (2 services):
- egov-common-masters: mdms-client 0.0.2-SNAPSHOT→2.9.0-SNAPSHOT
- internal-gateway-scg: tracer 2.9.0-SNAPSHOT→2.9.1-SNAPSHOT

All 35 services + 4 libraries now pass `mvn package` on a clean
JDK 21 + Maven 3.8.7 machine (egov-ci).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
JUnit 4 → 5 migration for all 18 test files:
- @RunWith(SpringRunner/MockitoJUnitRunner) → @ExtendWith(SpringExtension/MockitoExtension)
- @before@beforeeach, @test@test (jupiter)
- org.junit.Assert → org.junit.jupiter.api.Assertions
- Added commons-io 2.18.0 as test-scoped dependency (needed by test helpers)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- report: enc-client 2.0.3-SNAPSHOT → 2.9.0-SNAPSHOT
- egov-searcher: enc-client 2.0.4-SNAPSHOT → 2.9.0-SNAPSHOT
- egov-notification-sms: enc-client 2.9.1 → 2.9.0-SNAPSHOT
- user-otp: tracer 2.9.0-SNAPSHOT → 2.9.1-SNAPSHOT
- zuul: tracer 2.9.0-SNAPSHOT → 2.9.1-SNAPSHOT
- mdms-v2: services-common 2.0.0-SNAPSHOT → 2.9.0-SNAPSHOT

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove hardcoded log4j2.version=2.17.1 from 26 pom.xml files
  (lets Spring Boot 3.5 manage the version, fixes IncompatibleClassChangeError)
- Remove @Autowired from @bean methods in 16 config files
  (Spring 3.5 auto-injects @bean method parameters)
- Convert void @bean to @PostConstruct in MDMSService.java
- Update java.version from 17 to 25 across all 40 services (Java 25 LTS)
- Update Dockerfiles: build with Eclipse Temurin 25, runtime on JRE 25 Alpine

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 25, 2026

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: af21561b-f5ca-43c8-95d3-3b11ca17bb5c

📥 Commits

Reviewing files that changed from the base of the PR and between 6ead56c and 063f319.

📒 Files selected for processing (300)
  • build/build-config.yml
  • build/maven-java8-jdk21/Dockerfile
  • build/maven-java8-jdk21/start.sh
  • build/maven-jdk21/Dockerfile
  • build/maven-jdk21/start.sh
  • build/maven/Dockerfile
  • build/maven/start.sh
  • core-services/audit-service/pom.xml
  • core-services/audit-service/src/main/java/org/egov/auditservice/config/AuditServiceConfiguration.java
  • core-services/audit-service/src/main/resources/application.properties
  • core-services/boundary-service/pom.xml
  • core-services/boundary-service/src/main/java/digit/config/MainConfiguration.java
  • core-services/boundary-service/src/main/resources/application.properties
  • core-services/chatbot/pom.xml
  • core-services/chatbot/src/main/java/org/egov/chat/controller/ChatController.java
  • core-services/chatbot/src/main/java/org/egov/chat/post/controller/PostChatController.java
  • core-services/chatbot/src/main/java/org/egov/chat/pre/controller/PreChatController.java
  • core-services/chatbot/src/main/java/org/egov/chat/service/FixedSetValues.java
  • core-services/chatbot/src/main/java/org/egov/chat/service/WelcomeMessageHandler.java
  • core-services/chatbot/src/main/java/org/egov/chat/util/LocalizationService.java
  • core-services/chatbot/src/main/java/org/egov/chat/xternal/requestformatter/ValueFirst/ValueFirstRequestFormatter.java
  • core-services/chatbot/src/main/java/org/egov/chat/xternal/responseformatter/ValueFirst/ValueFirstResponseFormatter.java
  • core-services/chatbot/src/main/java/org/egov/chat/xternal/systeminitiated/PGRStatusUpdateEventFormatter.java
  • core-services/chatbot/src/main/resources/application.properties
  • core-services/chatbot/src/test/java/org/egov/chat/service/FixedSetValuesTest.java
  • core-services/egov-accesscontrol/pom.xml
  • core-services/egov-accesscontrol/src/main/resources/application.properties
  • core-services/egov-common-masters/pom.xml
  • core-services/egov-common-masters/src/main/java/org/egov/commons/EgovCommonMastersApplication.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/BusinessAccountDetails.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/BusinessAccountSubLedgerDetails.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/BusinessCategory.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/BusinessDetails.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/CalendarYear.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/Category.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/Community.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/Department.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/Holiday.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/HolidayType.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/Language.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/Module.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/Religion.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/UOM.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/model/UOMCategory.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/repository/builder/CalendarYearQueryBuilder.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/BusinessCategoryGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/BusinessDetailsGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/CalendarYearGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/CategoryGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/CommunityGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/DepartmentGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/HolidayGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/HolidayTypeGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/LanguageGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/ModuleGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/ReligionGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/UOMCategoryGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/UOMGetRequest.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/factory/ResponseInfoFact.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/contract/factory/ResponseInfoFactory.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/BusinessCategoryController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/BusinessDetailsController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/CalendarYearController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/CategoryController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/CommunityController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/DepartmentController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/EnumsController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/HolidayController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/HolidayTypeController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/LanguageController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/ModuleController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/ReligionController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/UOMCategoryController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/controller/UOMController.java
  • core-services/egov-common-masters/src/main/java/org/egov/commons/web/errorhandlers/Error.java
  • core-services/egov-common-masters/src/main/resources/application.properties
  • core-services/egov-common-masters/src/test/java/org/egov/commons/controller/BusinessCategoryControllerTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/controller/BusinessDetailsControllerTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/controller/DepartmentControllerTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/domain/service/BusinessCategoryServiceTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/domain/service/BusinessDetailsServiceTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/domain/service/DepartmentServiceTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/BusinessCategoryRepositoryTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/BusinessDetailsRepositoryTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/DepartmentRepositoryTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/builder/BusinessCategoryQueryBuilderTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/builder/BusinessDetailsQueryBuilderTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/builder/DepartmentQueryBuilderTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/rowmapper/BusinessAccountDetailsRowMapperTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/rowmapper/BusinessAccountSubledgerDetailsTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/rowmapper/BusinessCategoryRowMapperTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/rowmapper/BusinessDetailsCombinedRowMapperTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/rowmapper/BusinessDetailsRowMapperTest.java
  • core-services/egov-common-masters/src/test/java/org/egov/commons/persistence/repository/rowmapper/DepartmentRowMapperTest.java
  • core-services/egov-data-uploader/pom.xml
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/consumer/DataUploadConsumer.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/controller/DataUploadController.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/model/DefinitionTestResponse.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/model/SuccessFailure.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/model/UploaderResponse.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/Address.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/AuditDetails.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/Boundary.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/CalculationCriteria.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/CalculationReq.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/CalculationRes.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/Document.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/DocumentType.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/Floor.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/Institution.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/OwnerInfo.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/Property.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/PropertyDetail.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/PropertyInfo.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/PropertyRequest.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/PropertyResponse.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/Unit.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/UsageType.java
  • core-services/egov-data-uploader/src/main/java/org/egov/dataupload/property/models/User.java
  • core-services/egov-data-uploader/src/main/resources/application.properties
  • core-services/egov-data-uploader/src/test/java/org/egov/test/DataUploadServiceTest.java
  • core-services/egov-data-uploader/src/test/java/org/egov/test/ExcelIOTest.java
  • core-services/egov-data-uploader/src/test/java/org/egov/test/Resources.java
  • core-services/egov-data-uploader/src/test/java/org/egov/test/Test.java
  • core-services/egov-document-uploader/pom.xml
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/config/DUconfiguration.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/config/MainConfiguration.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/service/NotificationService.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/controllers/DocumentController.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/Action.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/ActionItem.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/AuditDetails.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/DocumentCategory.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/DocumentEntity.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/DocumentRequest.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/DocumentResponse.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/Event.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/EventRequest.java
  • core-services/egov-document-uploader/src/main/java/org/egov/egovdocumentuploader/web/models/IdRequest.java
  • core-services/egov-document-uploader/src/main/resources/application.properties
  • core-services/egov-enc-service/pom.xml
  • core-services/egov-enc-service/src/main/java/org/egov/enc/config/MainConfiguration.java
  • core-services/egov-enc-service/src/main/resources/application.properties
  • core-services/egov-filestore/pom.xml
  • core-services/egov-filestore/src/main/resources/application.properties
  • core-services/egov-idgen/pom.xml
  • core-services/egov-idgen/src/main/resources/application.properties
  • core-services/egov-indexer/pom.xml
  • core-services/egov-indexer/src/main/resources/application.properties
  • core-services/egov-localization/pom.xml
  • core-services/egov-localization/src/main/resources/application.properties
  • core-services/egov-location/pom.xml
  • core-services/egov-location/src/main/resources/application.properties
  • core-services/egov-mdms-service/pom.xml
  • core-services/egov-mdms-service/src/main/resources/application.properties
  • core-services/egov-notification-mail/pom.xml
  • core-services/egov-notification-mail/src/main/java/org/egov/web/notification/mail/service/ExternalEmailService.java
  • core-services/egov-notification-mail/src/main/resources/application.properties
  • core-services/egov-notification-sms/pom.xml
  • core-services/egov-notification-sms/src/main/resources/application.properties
  • core-services/egov-otp/pom.xml
  • core-services/egov-otp/src/main/resources/application.properties
  • core-services/egov-persister/pom.xml
  • core-services/egov-persister/src/main/resources/application.properties
  • core-services/egov-pg-service/pom.xml
  • core-services/egov-pg-service/src/main/java/org/egov/pg/config/MainConfig.java
  • core-services/egov-pg-service/src/main/java/org/egov/pg/service/gateways/phonepe/PhonepeUtils.java
  • core-services/egov-pg-service/src/main/java/org/egov/pg/service/jobs/dailyReconciliation/DailyReconciliationJobConfig.java
  • core-services/egov-pg-service/src/main/java/org/egov/pg/service/jobs/earlyReconciliation/EarlyReconciliationJobConfig.java
  • core-services/egov-pg-service/src/main/resources/application.properties
  • core-services/egov-searcher/pom.xml
  • core-services/egov-searcher/src/main/java/org/egov/custom/mapper/billing/impl/Bill.java
  • core-services/egov-searcher/src/main/java/org/egov/custom/mapper/billing/impl/BillDetail.java
  • core-services/egov-searcher/src/main/java/org/egov/search/model/SearchRequest.java
  • core-services/egov-searcher/src/main/resources/application.properties
  • core-services/egov-searcher/src/test/java/org/egov/controller/ReportControllerTest.java
  • core-services/egov-searcher/src/test/java/org/egov/report/repository/SearchRepositoryTest.java
  • core-services/egov-searcher/src/test/java/org/egov/report/service/SearchServiceTest.java
  • core-services/egov-url-shortening/pom.xml
  • core-services/egov-url-shortening/src/main/resources/application.properties
  • core-services/egov-user-event/pom.xml
  • core-services/egov-user-event/src/main/resources/application.properties
  • core-services/egov-user/pom.xml
  • core-services/egov-user/src/main/java/org/egov/user/EgovUserApplication.java
  • core-services/egov-user/src/main/java/org/egov/user/domain/model/SMSRequest.java
  • core-services/egov-user/src/main/java/org/egov/user/domain/model/User.java
  • core-services/egov-user/src/main/java/org/egov/user/domain/service/TokenService.java
  • core-services/egov-user/src/main/java/org/egov/user/domain/service/UserService.java
  • core-services/egov-user/src/main/java/org/egov/user/domain/service/utils/LocalizationUtil.java
  • core-services/egov-user/src/main/java/org/egov/user/persistence/repository/AuditRepository.java
  • core-services/egov-user/src/main/java/org/egov/user/persistence/repository/UserRepository.java
  • core-services/egov-user/src/main/java/org/egov/user/security/AuthorizationServerConfiguration.java
  • core-services/egov-user/src/main/java/org/egov/user/security/CustomAuthenticationKeyGenerator.java
  • core-services/egov-user/src/main/java/org/egov/user/security/SecurityConfig.java
  • core-services/egov-user/src/main/java/org/egov/user/security/oauth2/custom/CustomAuthenticationManager.java
  • core-services/egov-user/src/main/java/org/egov/user/security/oauth2/custom/CustomRedisTokenStore.java
  • core-services/egov-user/src/main/java/org/egov/user/security/oauth2/custom/CustomTokenEnhancer.java
  • core-services/egov-user/src/main/java/org/egov/user/security/oauth2/custom/authproviders/CustomAuthenticationProvider.java
  • core-services/egov-user/src/main/java/org/egov/user/security/oauth2/custom/authproviders/CustomPreAuthenticatedProvider.java
  • core-services/egov-user/src/main/java/org/egov/user/web/contract/CreateUserRequest.java
  • core-services/egov-user/src/main/java/org/egov/user/web/contract/LoggedInUserUpdatePasswordRequest.java
  • core-services/egov-user/src/main/java/org/egov/user/web/contract/NonLoggedInUserUpdatePasswordRequest.java
  • core-services/egov-user/src/main/java/org/egov/user/web/contract/UserRequest.java
  • core-services/egov-user/src/main/java/org/egov/user/web/contract/UserSearchRequest.java
  • core-services/egov-user/src/main/java/org/egov/user/web/controller/LogoutController.java
  • core-services/egov-user/src/main/java/org/egov/user/web/controller/OAuthController.java
  • core-services/egov-user/src/main/java/org/egov/user/web/controller/PasswordController.java
  • core-services/egov-user/src/main/java/org/egov/user/web/controller/UserController.java
  • core-services/egov-user/src/main/java/org/egov/user/web/errorhandlers/Error.java
  • core-services/egov-user/src/main/resources/application.properties
  • core-services/egov-user/src/test/java/org/egov/user/Encryption/EncryptionDecryptionTest.java
  • core-services/egov-user/src/test/java/org/egov/user/TestConfiguration.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/model/AddressTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/model/LoggedInUserUpdatePasswordRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/model/NonLoggedInUserUpdatePasswordRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/model/OtpValidationRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/model/RoleTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/model/UserSearchCriteriaTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/model/UserTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/service/TokenServiceTest.java
  • core-services/egov-user/src/test/java/org/egov/user/domain/service/UserServiceTest.java
  • core-services/egov-user/src/test/java/org/egov/user/persistence/repository/ActionRestRepositoryTest.java
  • core-services/egov-user/src/test/java/org/egov/user/persistence/repository/AddressRepositoryTest.java
  • core-services/egov-user/src/test/java/org/egov/user/persistence/repository/FileStoreRepositoryTest.java
  • core-services/egov-user/src/test/java/org/egov/user/persistence/repository/OtpRepositoryTest.java
  • core-services/egov-user/src/test/java/org/egov/user/persistence/repository/UserRepositoryTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/InvalidLoggedInUserUpdatePasswordRequestErrorHandlerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/InvalidNonLoggedInUserUpdatePasswordRequestErrorHandlerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/InvalidRoleCodeErrorHandlerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/PasswordMissMatchErrorHandlerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/UserIdMandatoryErrorHandlerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/UserProfileUpdateDeniedErrorHandlerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/UserRequestErrorAdapterTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/adapters/errors/UserUpdateErrorAdapterTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/contract/LoggedInUserUpdatePasswordRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/contract/NonLoggedInUserUpdatePasswordRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/contract/OtpResponseTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/contract/RoleRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/contract/UserRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/contract/UserSearchRequestTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/contract/auth/ActionTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/controller/PasswordControllerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/controller/UserControllerTest.java
  • core-services/egov-user/src/test/java/org/egov/user/web/controller/UserRequestControllerTest.java
  • core-services/egov-workflow-v2/pom.xml
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/config/MainConfiguration.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/config/WorkflowConfig.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/service/MDMSService.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/validator/WorkflowValidator.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/controllers/BusinessServiceControllerV2.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/controllers/EscalationController.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/controllers/WorkflowController.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/Action.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/AuditDetails.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/BusinessServiceResponse.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/Document.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/Error.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/ErrorRes.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/Escalation.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/EscalationResponse.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/EscalationSearchCriteria.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/ProcessInstance.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/ProcessInstanceRequest.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/ProcessInstanceResponse.java
  • core-services/egov-workflow-v2/src/main/java/org/egov/wf/web/models/State.java
  • core-services/egov-workflow-v2/src/main/resources/application.properties
  • core-services/gateway/pom.xml
  • core-services/gateway/src/main/resources/application.properties
  • core-services/internal-gateway-scg/pom.xml
  • core-services/internal-gateway-scg/src/main/resources/application.properties
  • core-services/internal-gateway/pom.xml
  • core-services/internal-gateway/src/main/java/org/egov/TranslatorApplication.java
  • core-services/internal-gateway/src/main/java/org/egov/filter/route/ErrorFilter.java
  • core-services/internal-gateway/src/main/java/org/egov/filter/route/RequestRoutFilter.java
  • core-services/internal-gateway/src/main/java/org/egov/utils/CustomException.java
  • core-services/internal-gateway/src/main/java/org/egov/utils/ErrorUtils.java
  • core-services/internal-gateway/src/main/java/org/egov/utils/RoutingConfig.java
  • core-services/internal-gateway/src/main/resources/application.properties
  • core-services/libraries/enc-client/pom.xml
  • core-services/libraries/enc-client/src/main/java/org/egov/encryption/EncryptionServiceRestConnection.java
  • core-services/libraries/enc-client/src/main/java/org/egov/encryption/config/DecryptionPolicyConfiguration.java
  • core-services/libraries/enc-client/src/main/java/org/egov/encryption/masking/MaskingService.java
  • core-services/libraries/enc-client/src/main/java/org/egov/encryption/util/MdmsFetcher.java
  • core-services/libraries/enc-client/src/test/java/org/egov/encryption/EncryptionServiceImplTest.java
  • core-services/libraries/enc-client/src/test/java/org/egov/encryption/EncryptionServiceRestConnectionTest.java
  • core-services/libraries/enc-client/src/test/java/org/egov/encryption/masking/MaskingServiceTest.java
  • core-services/libraries/enc-client/src/test/java/org/egov/encryption/util/JSONBrowseUtilTest.java
  • core-services/libraries/enc-client/src/test/java/org/egov/encryption/util/JacksonUtilsTest.java
  • core-services/libraries/mdms-client/pom.xml
  • core-services/libraries/mdms-client/src/main/java/org/egov/mdms/service/MdmsClientService.java
  • core-services/libraries/services-common/pom.xml
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/idgen/IdRequest.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/models/Workflow.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/request/Role.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/request/User.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/workflow/Action.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/workflow/BusinessService.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/workflow/BusinessServiceResponse.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/workflow/ProcessInstance.java
  • core-services/libraries/services-common/src/main/java/org/egov/common/contract/workflow/ProcessInstanceRequest.java

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ChakshuGautam ChakshuGautam marked this pull request as draft March 25, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants