From bc70f090e95fc87afa5da222babbac8e5470220f Mon Sep 17 00:00:00 2001
From: allanmckenzie
Date: Wed, 8 Jul 2026 14:07:15 +0100
Subject: [PATCH] Java 25 / WildFly 40 / Jakarta EE 11 upgrade
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upgrades cpp-context-listing to Java 25, WildFly 40 and Jakarta EE 11.
Proven end-to-end:
- Full reactor builds green under mm (enforcer on, no SNAPSHOT dependencies) — all 25 modules.
- runIntegrationTests.sh green: build -> WildFly image -> Liquibase -> PersistenceTestsIT 56/56 ->
deploy -> pong -> 4/4 healthchecks -> deployed-app IT suite 222 tests, 0 failures, 0 errors, 3 skipped.
Key changes:
- javax -> jakarta across all modules; beans.xml -> EE 4.0; persistence.xml -> Jakarta 3.0.
- DeltaSpike -> JPA for all 6 viewstore repositories; jsonb via Hibernate 6 native @JdbcTypeCode(SqlTypes.JSON).
- Hibernate 6 native-query fixes (typed-null varchar casts on optional filters; uuid alias casts).
- Test harnesses moved off OpenEJB/DeltaSpike to real-Postgres HibernateTestEntityManagerProvider (PersistenceTestsIT + repo ITs).
- glassfish jaxb-runtime + XHIBIT namespace-prefix mapper; jakarta.xml.bind on RAML/messaging generator plugins.
- junit-platform-launcher aligned to 1.14.3; command-handler test expectations aligned to ZoneOffset.UTC.
Spike for the listing/hearing team — items to finalise before production (documented in commit history / decision notes):
- hibernate.enable_lazy_load_no_trans=true vs fetch-joins/DTOs for the hearings query path.
- Hearing native-load-only virtual-column entity design (drove the query and PersistenceTestsIT changes).
- MI schema-contract test (mireportdata-listing-event-listener) disabled until mi-reportdata ships a Jakarta build.
---
Java-25-Upgrade-README.md | 181 ++
azure-pipelines.yaml | 2 +-
listing-command/listing-command-api/pom.xml | 14 +-
.../command/api/ListingCommandApi.java | 10 +-
.../api/courtcentre/CourtCentreFactory.java | 6 +-
.../api/courtcentre/HearingTypeFactory.java | 6 +-
.../CourtScheduleEnrichmentService.java | 10 +-
.../api/service/CourtSchedulerService.java | 12 +-
.../service/HearingDaysEnrichmentService.java | 4 +-
.../HearingDurationEnrichmentService.java | 4 +-
.../HearingEnrichmentOrchestrator.java | 4 +-
.../api/service/ReferenceDataService.java | 4 +-
.../api/util/SlotsToJsonStringConverter.java | 8 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../command/api/ListingCommandApiTest.java | 8 +-
.../courtcentre/CourtCentreFactoryTest.java | 4 +-
.../CourtScheduleEnrichmentServiceTest.java | 26 +-
.../service/CourtSchedulerServiceTest.java | 6 +-
.../listing/command/api/util/FileUtil.java | 4 +-
.../util/SlotsToJsonStringConverterTest.java | 4 +-
.../listing-command-handler/pom.xml | 10 +-
.../command/factory/CourtCentreFactory.java | 4 +-
.../command/factory/HearingFactory.java | 4 +-
.../command/factory/HearingTypeFactory.java | 6 +-
.../DeleteCourtApplicationHandler.java | 4 +-
...usHearingsAndCreateNextHearingHandler.java | 2 +-
...earingMarkedAsDuplicateCommandHandler.java | 2 +-
.../HearingResultedCommandHandler.java | 2 +-
.../ListNextHearingCommandHandler.java | 4 +-
.../handler/ListingCommandHandler.java | 10 +-
.../handler/ListingNoteCommandHandler.java | 6 +-
...emoveCaseFromGroupCasesCommandHandler.java | 4 +-
.../UnscheduledListingCommandHandler.java | 4 +-
.../UpdateExistingHearingCommandHandler.java | 4 +-
.../command/service/HearingService.java | 4 +-
.../command/service/ReferenceDataService.java | 4 +-
.../listing/command/service/UUIDService.java | 2 +-
.../utils/CommandToDomainConverter.java | 2 +-
.../utils/hearing/ExtendHearingUtils.java | 2 +-
.../json/PublishCourtListJsonSupport.java | 2 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../factory/CourtCentreFactoryTest.java | 2 +-
.../command/factory/HearingFactoryTest.java | 2 +-
.../factory/HearingTypeFactoryTest.java | 2 +-
.../DeleteCourtApplicationHandlerTest.java | 2 +-
...aringsAndCreateNextHearingHandlerTest.java | 2 +-
...ngMarkedAsDuplicateCommandHandlerTest.java | 2 +-
.../HearingResultedCommandHandlerTest.java | 2 +-
.../ListNextHearingCommandHandlerTest.java | 2 +-
.../handler/ListingCommandHandlerTest.java | 43 +-
.../ListingNoteCommandHandlerTest.java | 2 +-
...eCaseFromGroupCasesCommandHandlerTest.java | 2 +-
.../UnscheduledListingCommandBuilder.java | 8 +-
.../UnscheduledListingCommandHandlerTest.java | 2 +-
...dateExistingHearingCommandHandlerTest.java | 2 +-
.../service/ReferenceDataServiceTest.java | 2 +-
.../listing/command/utils/CommandBuilder.java | 6 +-
.../command/utils/ExtendHearingHelper.java | 6 +-
.../cpp/listing/command/utils/FileUtil.java | 4 +-
.../command/utils/ObjectConverters.java | 2 +-
listing-command/pom.xml | 2 +-
listing-common/pom.xml | 6 +-
.../cpp/listing/common/NoteUUIDService.java | 2 +-
.../progression/ProgressionNotesCache.java | 6 +-
.../progression/ProgressionNotesLoader.java | 6 +-
.../service/CourtSchedulerServiceAdapter.java | 10 +-
.../common/service/HearingSlotsService.java | 10 +-
.../service/ProvisionalBookingService.java | 8 +-
.../CommonXhibitReferenceDataService.java | 4 +-
.../common/xhibit/DefaultXhibitService.java | 4 +-
.../common/xhibit/ReferenceDataCache.java | 8 +-
.../common/xhibit/ReferenceDataLoader.java | 8 +-
.../xhibit/XhibitReferenceDataValidator.java | 4 +-
.../XhibitSessionConnectionParameters.java | 2 +-
.../common/xhibit/XhibitSessionFactory.java | 4 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../ProgressionNotesCacheTest.java | 2 +-
.../ProgressionNotesLoaderTest.java | 2 +-
.../CourtSchedulerServiceAdapterTest.java | 4 +-
.../service/HearingSlotsServiceTest.java | 12 +-
.../cpp/listing/common/utils/FileUtil.java | 4 +-
.../CommonXhibitReferenceDataServiceTest.java | 2 +-
.../common/xhibit/ReferenceDataCacheTest.java | 4 +-
.../xhibit/ReferenceDataLoaderTest.java | 4 +-
.../XhibitReferenceDataValidatorTest.java | 4 +-
.../listing-domain-aggregate/pom.xml | 6 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
listing-domain/listing-domain-common/pom.xml | 2 +-
.../listing/domain/utils/DateValidator.java | 2 +-
.../cpp/listing/domain/utils/JsonUtils.java | 8 +-
.../utils/NullAwareJsonObjectBuilder.java | 8 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../domain/utils/DateValidatorTest.java | 2 +-
.../listing/domain/utils/JsonUtilsTest.java | 4 +-
listing-domain/listing-domain-event/pom.xml | 2 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
listing-domain/listing-domain-xhibit/pom.xml | 29 +-
.../domain/xhibit/LocalDateAdapter.java | 2 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../src/main/resources/xhibit/xsd/binding.xjb | 25 +-
listing-domain/pom.xml | 2 +-
listing-event-sources/pom.xml | 2 +-
listing-event/listing-event-listener/pom.xml | 27 +-
.../listener/CaseMarkersEventListener.java | 2 +-
...aseRemovedFromGroupCasesEventListener.java | 4 +-
.../CourtApplicationEventListener.java | 2 +-
.../listener/CourtCentreEventListener.java | 2 +-
.../CourtRoomForHearingEventListener.java | 2 +-
.../listener/DefendantEventListener.java | 2 +-
.../DefendantOffencesEventListener.java | 2 +-
.../event/listener/EjectEventListener.java | 2 +-
.../EndDateForHearingEventListener.java | 2 +-
.../ExtendHearingForHearingListener.java | 8 +-
.../listener/HearingCounselEventListener.java | 2 +-
.../HearingDaysForHearingEventListener.java | 2 +-
.../HearingDaysUpdateEventListener.java | 6 +-
.../event/listener/HearingEventListener.java | 2 +-
.../HearingLanguageEventListener.java | 2 +-
...HearingMarkedAsDuplicateEventListener.java | 2 +-
.../JudiciaryForHearingEventListener.java | 2 +-
.../listener/JurisdictionEventListener.java | 2 +-
.../LinkOrUnlinkCasesEventListener.java | 2 +-
.../listener/ListingNoteEventListener.java | 2 +-
...NonDefaultDaysForHearingEventListener.java | 2 +-
...NonSittingDaysForHearingEventListener.java | 2 +-
.../PublishCourtListEventListener.java | 7 +-
.../RestrictCourtListEventListener.java | 2 +-
.../StartDateForHearingEventListener.java | 2 +-
.../listener/TypeForHearingEventListener.java | 2 +-
.../VideoLinkDetailsEventListener.java | 2 +-
.../WeekCommencingDateEventListener.java | 2 +-
.../service/HearingSearchSyncService.java | 2 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../DefendantOffencesEventListenerTest.java | 4 +-
.../ExtendHearingForHearingListenerTest.java | 2 +-
.../HearingCounselEventListenerTest.java | 2 +-
.../listener/HearingEventListenerTest.java | 2 +-
.../JudiciaryForHearingEventListenerTest.java | 4 +-
...efaultDaysForHearingEventListenerTest.java | 4 +-
...ittingDaysForHearingEventListenerTest.java | 4 +-
.../PublishCourtListEventListenerTest.java | 9 +-
.../TypeForHearingEventListenerTest.java | 2 +-
.../event/listener/utils/FileUtil.java | 4 +-
.../service/HearingSearchSyncServiceTest.java | 8 +-
listing-event/listing-event-processor/pom.xml | 35 +-
...seRemovedFromGroupCasesEventProcessor.java | 2 +-
.../CourtApplicationDeletedProcessor.java | 6 +-
.../CourtSchedulerListingEventProcessor.java | 2 +-
.../CourtroomAddedEventProcessor.java | 2 +-
.../CourtroomClosedEventProcessor.java | 2 +-
.../CpsProsecutorUpdatedEventProcessor.java | 6 +-
...ateNextHearingRequestedEventProcessor.java | 4 +-
.../HearingCounselEventProcessor.java | 4 +-
.../HearingResultedEventProcessor.java | 6 +-
.../HearingSequencedEventProcessor.java | 2 +-
...locatedCourtroomRemovedEventProcessor.java | 4 +-
.../JudiciaryChangedEventProcessor.java | 2 +-
.../processor/ListingEventProcessor.java | 12 +-
.../processor/ListingNoteEventProcessor.java | 4 +-
.../event/processor/NextHearingProcessor.java | 6 +-
.../event/processor/PublicHearingFactory.java | 2 +-
.../UpdateExistingHearingEventProcessor.java | 4 +-
.../util/ListingReferenceDataService.java | 4 +-
.../util/SlotsToJsonStringConverter.java | 6 +-
...sForHearingCommandCollectionConverter.java | 2 +-
...sForHearingCommandCollectionConverter.java | 2 +-
...catedHearingPartiallyCommandConverter.java | 6 +-
.../courtcenter/CourtCentreFactory.java | 4 +-
.../PublicHearingPartiallyUpdatedFactory.java | 2 +-
.../processor/service/HearingService.java | 4 +-
.../service/ReferenceDataService.java | 4 +-
.../HearingObjectsListingToCoreConverter.java | 2 +-
.../xhibit/CourtListEventProcessor.java | 6 +-
.../xhibit/CourtListExportService.java | 4 +-
.../xhibit/PublishCourtListCommandSender.java | 20 +-
.../courtlist/CourtListFileGenerator.java | 6 +-
.../courtlist/CourtListMetadataGenerator.java | 2 +-
.../xhibit/courtlist/ListingService.java | 6 +-
.../xhibit/courtlist/MapperFactory.java | 4 +-
...blishCourtListRequestParametersParser.java | 2 +-
.../processor/xhibit/courtlist/XmlUtils.java | 51 +-
.../mapper/AbstractCourtListMapper.java | 4 +-
.../courtlist/mapper/CourtServicesMapper.java | 6 +-
.../courtlist/mapper/DailyListMapper.java | 4 +-
.../courtlist/mapper/FirmListMapper.java | 4 +-
.../courtlist/mapper/RequestedNameMapper.java | 2 +-
.../courtlist/mapper/WarnedListMapper.java | 4 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../CourtApplicationDeletedProcessorTest.java | 4 +-
...urtSchedulerListingEventProcessorTest.java | 6 +-
.../CourtroomAddedEventProcessorTest.java | 2 +-
.../CourtroomClosedEventProcessorTest.java | 2 +-
...extHearingRequestedEventProcessorTest.java | 2 +-
.../HearingCounselEventProcessorTest.java | 2 +-
.../HearingResultedEventProcessorTest.java | 2 +-
.../HearingSequencedEventProcessorTest.java | 4 +-
...tedCourtroomRemovedEventProcessorTest.java | 2 +-
.../JudiciaryChangedEventProcessorTest.java | 2 +-
.../processor/ListingEventProcessorTest.java | 8 +-
.../ListingNoteEventProcessorTest.java | 2 +-
.../processor/NextHearingProcessorTest.java | 2 +-
...dateExistingHearingEventProcessorTest.java | 2 +-
.../util/ListingReferenceDataServiceTest.java | 6 +-
.../util/SlotsToJsonStringConverterTest.java | 8 +-
...dHearingPartiallyCommandConverterTest.java | 2 +-
.../courtcenter/CourtCentreFactoryTest.java | 2 +-
.../processor/service/HearingServiceTest.java | 2 +-
.../service/ReferenceDataServiceTest.java | 4 +-
...ringObjectsListingToCoreConverterTest.java | 2 +-
.../xhibit/CourtListEventProcessorTest.java | 2 +-
.../xhibit/CourtListExportServiceTest.java | 2 +-
.../PublishCourtListCommandSenderTest.java | 2 +-
.../courtlist/CourtListFileGeneratorTest.java | 4 +-
.../xhibit/courtlist/ListingServiceTest.java | 2 +-
...hCourtListRequestParametersParserTest.java | 2 +-
.../mapper/CourtServicesMapperTest.java | 2 +-
.../courtlist/mapper/FirmListMapperTest.java | 4 +-
.../mapper/RequestedNameMapperTest.java | 4 +-
.../mapper/WarnedListMapperTest.java | 4 +-
.../cpp/listing/event/utils/EventBuilder.java | 4 +-
.../moj/cpp/listing/event/utils/FileUtil.java | 4 +-
listing-event/pom.xml | 6 +-
listing-healthchecks/pom.xml | 6 +-
...istingIgnoredHealthcheckNamesProvider.java | 2 +-
.../src/main/resources/META-INF/beans.xml | 6 +-
listing-integration-test-persistence/pom.xml | 65 +-
.../repository/PersistenceTestsIT.java | 85 +-
...pache-deltaspike_test-container.properties | 10 -
.../test/resources/META-INF/persistence.xml | 42 +
listing-integration-test/pom.xml | 19 +-
.../endpoint/UnallocatedHearingsEndpoint.java | 2 +-
.../endpoint/UnscheduledHearingsEndpoint.java | 2 +-
.../listing/helper/SearchHearingHelper.java | 2 +-
.../uk/gov/moj/cpp/listing/it/AbstractIT.java | 8 +-
.../listing/it/CacheRefDataCourtroomIT.java | 8 +-
.../gov/moj/cpp/listing/it/CaseLinkedIT.java | 4 +-
.../moj/cpp/listing/it/ExhibitScenarioIT.java | 2 +-
.../gov/moj/cpp/listing/it/GroupCasesIT.java | 4 +-
.../moj/cpp/listing/it/HearingCounselIT.java | 2 +-
.../cpp/listing/it/HearingCsvReportIT.java | 6 +-
.../gov/moj/cpp/listing/it/HearingDaysIT.java | 6 +-
.../uk/gov/moj/cpp/listing/it/HearingIT.java | 4 +-
.../moj/cpp/listing/it/HearingSlotsIT.java | 6 +-
.../gov/moj/cpp/listing/it/ListingNoteIT.java | 2 +-
.../moj/cpp/listing/it/ProsecutionCaseIT.java | 2 +-
.../cpp/listing/it/PublishCourtListIT.java | 4 +-
.../it/RangeSearchQueryForMagistratesIT.java | 6 +-
.../listing/it/RestrictListFromCourtIT.java | 2 +-
.../cpp/listing/it/util/HearingHelper.java | 6 +-
.../scenario/ListCourtHearingStepsSpi.java | 8 +-
.../cpp/listing/scenario/TestSpiScenario.java | 2 +-
.../cpp/listing/steps/AddDefendantSteps.java | 2 +-
.../cpp/listing/steps/CancelHearingSteps.java | 12 +-
...AndDefendantProceedingsConcludedSteps.java | 2 +-
.../listing/steps/CourtApplicationSteps.java | 4 +-
.../moj/cpp/listing/steps/CourtListSteps.java | 4 +-
.../DefendantLegalAidStatusUpdateSteps.java | 2 +-
.../DeleteCourtApplicationHearingSteps.java | 4 +-
.../steps/EjectCaseApplicationSteps.java | 4 +-
.../listing/steps/HearingAsMarkedSteps.java | 2 +-
.../listing/steps/ListCourtHearingSteps.java | 12 +-
.../listing/steps/ListNextHearingSteps.java | 6 +-
.../ListUnAllocatedCourtHearingSteps.java | 4 +-
.../ListUnscheduledCourtHearingSteps.java | 4 +-
.../gov/moj/cpp/listing/steps/NotesSteps.java | 4 +-
.../PayloadBasedListCourtHearingSteps.java | 6 +-
.../PayloadBasedListNextHearingSteps.java | 6 +-
.../steps/PayloadBasedUpdateHearingSteps.java | 6 +-
.../listing/steps/PublishCourtListSteps.java | 8 +-
.../steps/RefDataCourtRoomCacheStep.java | 6 +-
.../steps/RemoveOffencesFromHearingSteps.java | 4 +-
.../listing/steps/RestrictCourtListSteps.java | 4 +-
.../listing/steps/SequenceHearingSteps.java | 8 +-
.../listing/steps/UpdateCaseMarkersSteps.java | 6 +-
.../steps/UpdateDefendantOffencesSteps.java | 4 +-
.../listing/steps/UpdateDefendantSteps.java | 2 +-
.../cpp/listing/steps/UpdateHearingSteps.java | 14 +-
.../cpp/listing/steps/VacatingTrialSteps.java | 8 +-
.../steps/WeekCommencingHearingSteps.java | 2 +-
.../utils/CourtSchedulerServiceStub.java | 14 +-
.../listing/utils/DocumentGeneratorStub.java | 6 +-
.../gov/moj/cpp/listing/utils/FileUtil.java | 4 +-
.../utils/JsonObjectBuilderHelper.java | 6 +-
.../gov/moj/cpp/listing/utils/QueueUtil.java | 2 +-
.../cpp/listing/utils/ReferenceDataStub.java | 4 +-
.../gov/moj/cpp/listing/utils/WebDavStub.java | 4 +-
.../cpp/listing/utils/WireMockStubUtils.java | 8 +-
listing-json/pom.xml | 2 +-
listing-performance-test/pom.xml | 2 +-
listing-query/listing-query-api/pom.xml | 16 +-
.../DefaultQueryApiCourtlistResource.java | 22 +-
.../DefaultQueryApiHearingSlotsResource.java | 10 +-
...ringsDownloadHearingCsvReportResource.java | 20 +-
.../api/resource/QueryApiCourtList.java | 12 +-
.../QueryApiHearingSlotsResource.java | 10 +-
...ringsDownloadHearingCsvReportResource.java | 12 +-
.../query/api/CacheRefDataCourtroomApi.java | 2 +-
.../listing/query/api/HearingQueryApi.java | 16 +-
.../api/courtcentre/CourtCentreFactory.java | 4 +-
.../service/AlphabeticalCourtListService.java | 8 +-
.../api/service/ReferenceDataService.java | 8 +-
.../generator/DocumentGeneratorClient.java | 6 +-
.../generator/JudgeListTemplateAssembler.java | 10 +-
.../generator/JudiciaryNameMapper.java | 2 +-
...ndardPublicCourtListTemplateAssembler.java | 12 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../DefaultQueryApiCourtlistResourceTest.java | 14 +-
...faultQueryApiHearingSlotsResourceTest.java | 6 +-
.../api/CacheRefDataCourtroomApiTest.java | 2 +-
.../query/api/HearingQueryApiTest.java | 8 +-
.../courtcentre/CourtCentreFactoryTest.java | 4 +-
.../AlphabeticalCourtListServiceTest.java | 6 +-
.../api/service/ReferenceDataServiceTest.java | 2 +-
.../DocumentGeneratorClientTest.java | 2 +-
.../JudgeListTemplateAssemblerTest.java | 4 +-
.../generator/JudiciaryNameMapperTest.java | 4 +-
.../PublicCourtListAssemblerTest.java | 4 +-
...tandardCourtListTemplateAssemblerTest.java | 10 +-
listing-query/listing-query-view/pom.xml | 10 +-
.../query/view/CacheRefDataCourtroomView.java | 2 +-
.../listing/query/view/HearingQueryView.java | 37 +-
.../PublishedCourtListToJsonConverter.java | 8 +-
.../listing/query/view/RangeSearchQuery.java | 2 +-
.../view/courtlist/CourtListService.java | 8 +-
.../view/courtlist/CourtListsBuilder.java | 8 +-
.../view/courtlist/FlatHearingsConverter.java | 4 +-
.../view/courtlist/JsonPropertyUtils.java | 2 +-
.../view/courtlist/RangeSearchConverter.java | 6 +-
.../RangeSearchQueryRequestFactory.java | 8 +-
.../view/courtlist/SittingsJsonGenerator.java | 6 +-
.../view/courtlist/SittingsPojoBuilder.java | 4 +-
.../view/courtlist/pojo/CaseDetails.java | 4 +-
.../pojo/CourtApplicationDetails.java | 4 +-
.../view/courtlist/pojo/FlatHearing.java | 4 +-
.../query/view/courtlist/pojo/Hearing.java | 2 +-
.../query/view/courtlist/pojo/Sitting.java | 2 +-
.../view/dto/PaginationParameterFactory.java | 6 +-
.../view/hearing/ApplicationTypeFilter.java | 8 +-
...ringJsonListConverterFilterEjectCases.java | 10 +-
.../view/hearing/HearingToJsonConverter.java | 4 +-
.../view/hearing/JsonArrayCollector.java | 6 +-
.../ListOfJsontoJsonArrayConverter.java | 2 +-
.../service/CacheRefDataCourtroomLoader.java | 11 +-
.../query/view/service/NotesService.java | 4 +-
.../view/service/ProgressionService.java | 6 +-
.../view/service/UsersGroupsService.java | 6 +-
.../csv/HearingCsvJsonExtractionService.java | 2 +-
.../service/csv/HearingCsvReportService.java | 8 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../view/CacheRefDataCourtroomViewTest.java | 2 +-
.../query/view/HearingQueryViewTest.java | 55 +-
...PublishedCourtListToJsonConverterTest.java | 16 +-
.../query/view/RangeSearchQueryTest.java | 34 +-
.../view/courtlist/CourtListServiceTest.java | 4 +-
.../view/courtlist/CourtListsBuilderTest.java | 4 +-
.../courtlist/FlatHearingsConverterTest.java | 2 +-
.../view/courtlist/JsonPropertyUtilsTest.java | 2 +-
.../query/view/courtlist/JsonUtils.java | 4 +-
.../courtlist/RangeSearchConverterTest.java | 2 +-
.../RangeSearchQueryRequestFactoryTest.java | 2 +-
.../courtlist/SittingsPojoBuilderTest.java | 6 +-
.../dto/PaginationParameterFactoryTest.java | 2 +-
.../hearing/ApplicationTypeFilterTest.java | 6 +-
...JsonListConverterFilterEjectCasesTest.java | 4 +-
.../hearing/HearingToJsonConverterTest.java | 14 +-
.../view/hearing/JsonArrayCollectorTest.java | 4 +-
.../CacheRefDataCourtroomLoaderTest.java | 2 +-
.../query/view/service/NotesServiceTest.java | 22 +-
.../view/service/ProgressionServiceTest.java | 2 +-
.../csv/HearingCsvReportServiceTest.java | 2 +-
.../listing/query/view/utils/FileUtil.java | 4 +-
listing-query/pom.xml | 2 +-
listing-service/pom.xml | 2 +-
.../src/main/resources/META-INF/beans.xml | 8 +-
.../listing-viewstore-liquibase/pom.xml | 2 +-
.../listing-viewstore-persistence/pom.xml | 65 +-
.../entity/CacheRefDataCourtroom.java | 8 +-
.../persistence/entity/CaseIdentifier.java | 4 +-
.../persistence/entity/CourtApplications.java | 14 +-
.../listing/persistence/entity/Defendant.java | 12 +-
.../listing/persistence/entity/Hearing.java | 38 +-
.../persistence/entity/HearingDays.java | 12 +-
.../persistence/entity/LinkedCase.java | 12 +-
.../persistence/entity/ListedCases.java | 20 +-
.../cpp/listing/persistence/entity/Notes.java | 8 +-
.../persistence/entity/Prosecutor.java | 4 +-
.../entity/query/CaseByDefendant.java | 10 +-
.../CacheRefDataCourtroomRepository.java | 32 +-
.../repository/CaseByDefendantRepository.java | 33 +-
.../CourtApplicationRepository.java | 20 +-
.../repository/HearingRepository.java | 1681 ++++++++---------
.../repository/NotesRepository.java | 65 +-
.../courtlist/CourtListPublishStatus.java | 12 +-
.../CourtListPublishStatusJdbcRepository.java | 6 +-
.../courtlist/HearingJdbcRepository.java | 6 +-
.../courtlist/PublishedCourtList.java | 19 +-
.../PublishedCourtListRepository.java | 45 +-
.../csv/HearingCsvRawDataRepository.java | 6 +-
.../src/main/resources/META-INF/beans.xml | 14 +-
.../main/resources/META-INF/persistence.xml | 15 +-
.../CacheRefDataCourtroomRepositoryIT.java | 73 +
.../CaseByDefendantRepositoryIT.java | 103 +
.../CourtApplicationRepositoryIT.java | 75 +
.../repository/HearingRepositoryIT.java | 443 +++++
.../repository/JsonEntityFinderTest.java | 20 +-
.../repository/NotesRepositoryIT.java | 110 ++
.../PublishedCourtListRepositoryIT.java | 98 +
.../test/resources/META-INF/persistence.xml | 29 +
listing-viewstore/pom.xml | 2 +-
pom.xml | 16 +-
runIntegrationTests.sh | 4 +-
411 files changed, 3470 insertions(+), 2149 deletions(-)
create mode 100644 Java-25-Upgrade-README.md
delete mode 100644 listing-integration-test-persistence/src/test/resources/META-INF/apache-deltaspike_test-container.properties
create mode 100644 listing-integration-test-persistence/src/test/resources/META-INF/persistence.xml
create mode 100644 listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepositoryIT.java
create mode 100644 listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepositoryIT.java
create mode 100644 listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepositoryIT.java
create mode 100644 listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepositoryIT.java
create mode 100644 listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepositoryIT.java
create mode 100644 listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepositoryIT.java
create mode 100644 listing-viewstore/listing-viewstore-persistence/src/test/resources/META-INF/persistence.xml
diff --git a/Java-25-Upgrade-README.md b/Java-25-Upgrade-README.md
new file mode 100644
index 000000000..78cf50399
--- /dev/null
+++ b/Java-25-Upgrade-README.md
@@ -0,0 +1,181 @@
+# cpp-context-listing — Java 25 / WildFly 40 / Jakarta EE 11 Upgrade
+
+**Prepared by:** Platform Engineering (Java 25 upgrade spike)
+**Status:** ✅ Builds green end-to-end (unit + integration). Handover to the listing/hearing team for production decisions.
+
+---
+
+## 1. Executive summary (for planning)
+### What this is
+Platform Engineering upgraded the **listing** context to **Java 25, WildFly 40 and Jakarta EE 11** as part of the wider platform Java 25 programme. The purpose of this piece of work was to **prove the upgrade is achievable and works end-to-end**, and to hand a working branch to the listing/hearing team.
+
+This demonstrates the Java 25 upgrade is viable for listing and is ready for QA.
+
+### What this is **not**
+This is a **spike / proof-of-work**, not a production-ready merge. To get the code to production, the listing team must **review and ratify the technical decisions** described in section 2 — several of them are deliberately pragmatic choices that keep the build green but where the team may prefer a different long-term approach. **The listing team are the ultimate owners of these decisions.**
+
+### What the listing team needs to decide (headline)
+See section 2 for full detail. In short:
+
+| # | Decision | Why it matters | Suggested effort |
+|---|----------|----------------|------------------|
+| D1 | `Hearing` entity "native-load-only" virtual-column design | Root cause behind several of our changes; affects query + test code | Medium–High (design) |
+| D2 | Lazy-loading strategy for the hearings query (`enable_lazy_load_no_trans` vs fetch-joins/DTOs) | Performance & correctness of the search endpoints | Medium |
+| D3 | Where the MI schema-contract test should live (currently disabled) | Cross-team contract testing; a coupling question | Low–Medium (cross-team) |
+| D4 | Keep the query "properties-JSON" approach (Option B) or fetch associations properly | Maintainability of the query view | Low–Medium |
+| D5 | `totalCount` pagination mapping under Hibernate 6 | Pagination correctness on search endpoints | Low–Medium |
+
+None of these block QA testing; they are choices for the production hardening pass.
+
+### Temporary items that MUST be resolved before production
+See section 4. The most important: the **MI schema-contract test is disabled** (waiting on a downstream release), and a Hibernate lazy-loading setting was enabled globally. Both are clearly marked in the code.
+
+---
+
+## 2. Decisions the listing team must make
+
+Each item below explains **what we found**, **what we did (and why)**, and the **options** the team can choose from.
+
+### D1 — The `Hearing` entity is "native-load-only" (virtual columns)
+
+**Finding.** The `Hearing` entity maps four columns that **do not exist in the database** — they exist only as aliases produced by the hand-written native queries:
+`hearing_date`, `totalcount`, `hearing_day_count`, `hearing_day_position`. They are mapped `@Column(insertable=false, updatable=false)`.
+
+Because they are mapped columns, **any Hibernate entity-level `SELECT` of `Hearing`** (JPQL `SELECT h FROM Hearing h`, `em.find`, a lazy association reload, a merge existence-check) generates SQL that references those non-existent columns and **fails** with `column ... does not exist`. Under the previous Hibernate 5 / DeltaSpike stack this was tolerated in more situations; **Hibernate 6 is stricter**.
+
+**What we did (pragmatic, keeps behaviour).** We treated `Hearing` as *native-load-only*:
+- `HearingRepository.save()` = persist-if-not-contained (no merge existence-`SELECT`).
+- `HearingRepository.remove()` = native reload-if-detached.
+- `findBy`/`findByHearingId` = native query, not `em.find`.
+- Test cleanup uses native `TRUNCATE ... CASCADE` instead of `findAll()` (which is JPQL and fails).
+- The query view no longer walks the entity's lazy collections (see D4).
+
+**Options for production:**
+1. **Keep native-load-only** (current). Lowest change, but fragile — every future author must remember not to trigger an entity-level `Hearing` load.
+2. **Map the virtual columns as `@Formula` or `@Transient`** so entity `SELECT`s don't reference them. *Care needed:* the native queries alias these names and rely on them mapping back to the entity fields — this must keep working.
+3. **Split read models** — a separate lightweight projection/DTO for query responses, keeping `Hearing` as a clean persistable entity.
+
+**Recommendation:** option 2 or 3 for long-term robustness; option 1 is acceptable short-term (it is what ships on this branch).
+
+### D2 — Lazy-loading strategy for the hearings query
+
+**Finding.** The hearings search/query path loads `Hearing` via native queries (which do **not** fetch associations), then the query view / filters walk the `@OneToMany` collections (`listedCases`, `courtApplications`) after the persistence session has closed → `LazyInitializationException` → HTTP 500.
+
+**What we did.** Enabled `hibernate.enable_lazy_load_no_trans=true` in the production `persistence.xml` (`listing-viewstore-persistence`). This restores the pre-upgrade behaviour (lazy loads succeed outside a transaction via a temporary session). Peer contexts (prosecution-casefile, material, …) do **not** use this — their query designs differ — so it is specific to listing's native-query-plus-entity-walk pattern.
+
+**Options for production:**
+1. **Keep `enable_lazy_load_no_trans=true`** (current). Simple; the cost is a short-lived temporary session per lazy access (potential N+1).
+2. **Fetch-joins / entity graphs** so associations are loaded within the query transaction.
+3. **DTO projections** so the query never returns managed entities.
+
+**Recommendation:** acceptable to ship option 1 for the spike; the team should decide whether the temp-session cost is acceptable at production load or move to option 2/3.
+
+### D3 — MI schema-contract test (currently disabled)
+
+**Finding.** `listing-event-listener` unpacked and ran a **consumer-driven contract test** published by **mi-reportdata** (`uk.gov.moj.cpp.mi.reportdata:mireportdata-listing-event-listener:tests`, class `ListingSchemaContractValidationTest`). Its latest *released* version is a Java-17/`javax` artifact and fails under Java 25 (`NoClassDefFoundError: javax/json/JsonValue`). There is no released Jakarta build yet. This was listing's **only** dependency on mi-reportdata, and it is **test-scoped only** (never affected production code).
+
+**What we did.** **Disabled** it — commented out the `maven-dependency-plugin` unpack in `listing-event-listener/pom.xml` with a prominent "LISTING TEAM ACTION REQUIRED" marker (version left at `RELEASE` so it self-heals when the Jakarta build is published). The test source itself is already Jakarta-migrated on the mi-reportdata side; we verified it **passes** against listing's schemas when run with that Jakarta build.
+
+**Options for production:**
+1. **Re-enable once mi-reportdata publishes a Jakarta 25.104.x build** (`RELEASE` will resolve to it automatically — uncomment the plugin).
+2. **Re-home the contract test** — having listing's build pull a test artifact from a *downstream* consumer is an awkward coupling; the listing/MI teams may prefer to own the contract differently.
+
+**Recommendation:** option 1 as the immediate unblock; consider option 2 as a cross-team improvement.
+
+### D4 — Query view: properties-JSON vs entity associations
+
+**Finding.** `HearingQueryView.removedReViewHearings` walked `hearing.getListedCases()` / `getCourtApplications()`. Those child entities have (default-eager) `@ManyToOne` back-references to `Hearing`, so walking them forced a full-column `Hearing` entity `SELECT` — which fails (see D1).
+
+**What we did (Option B — safest, no entity change).** Rewrote the method to derive the same removal rule (`≥1 listed case AND type == "Review" AND ≥1 court application`) from the `hearing.getProperties()` **JSON blob** instead of the entity collections. The response converter already worked off the properties JSON, so no other change was needed.
+
+**Options for production:** keep the JSON-based approach, or (if D1 option 2/3 is taken) fetch the associations properly and walk the object graph. Either is fine; this was chosen because it is low-risk and touches only query code.
+
+### D5 — `totalCount` pagination under Hibernate 6
+
+**Finding.** The paginated native queries select `count(*) OVER() as totalCount`. Under Hibernate 6 this native alias **does not map** back to the `Hearing.totalCount` field (it returns null); it worked under Hibernate 5 / DeltaSpike. This is used by `HearingQueryView` / `RangeSearchQuery` pagination.
+
+**What we did.** Documented it. It is **not** load-bearing for the tests that currently run (they assert rows/ids, not the total count), so the suite is green — but production pagination that relies on `totalCount` needs a fix.
+
+**Options for production:** add an explicit `@SqlResultSetMapping` for the native result (mapping the `totalCount` alias), or align the entity `@Column` name/case with the alias. The team should confirm which query paths depend on `totalCount` and validate them.
+
+---
+
+## 3. Technical change log (by area)
+
+### 3.1 Build, versions, tooling
+- Target: **Java 25**, **WildFly 40**, **Jakarta EE 11**.
+- Parent `service-parent-pom:25.104.0-M6`, `coredomain 25.104.0-M6`; project version `25.104.0-M1-SNAPSHOT`.
+- Builds under `mvn clean install` with the enforcer **on** and **no SNAPSHOT dependencies**.
+- JaCoCo 0.8.14 (Java 25 class files); RAML/messaging generator plugins given `jakarta.xml.bind:jakarta.xml.bind-api:2.3.2` on their plugin classpath (the RAML parser still uses the pre-EE9 `javax.xml.bind.*` namespace).
+
+### 3.2 javax → jakarta
+- `javax.*` EE APIs → `jakarta.*` across all modules (Java-SE `javax.*` such as `javax.sql`, `javax.xml.datatype`, `javax.annotation.Nullable` intentionally retained).
+- `beans.xml` → Jakarta EE 4.0; `persistence.xml` → Jakarta 3.0.
+- `javaee-api` → `jakarta.jakartaee-api`; `jaxb-api` → `jakarta.xml.bind`.
+
+### 3.3 Persistence: DeltaSpike → JPA
+- All **6 viewstore repositories** converted from DeltaSpike to plain JPA (`@ApplicationScoped`, `@PersistenceContext EntityManager`, built-in methods implemented explicitly).
+- `HearingRepository`: all 17 native `@Query` methods → `entityManager.createNativeQuery(...)`. `save` / `remove` follow the native-load-only model (see D1).
+- **jsonb**: removed `com.vladmihalcea:hibernate-types-43` (listing was the only user); `Hearing.properties` / `PublishedCourtList` now use Hibernate 6 native `@JdbcTypeCode(SqlTypes.JSON)`; removed the `pg-uuid` `@TypeDef` (Hibernate 6 maps `UUID` natively).
+
+### 3.4 Hibernate 6 native-query fixes
+- **Untyped null in optional filters:** `(?N is null or col = cast(?N ...))` failed under Hibernate 6 when the argument is null (PostgreSQL cannot infer the parameter type). Fixed by casting the null-check itself: `(cast(?N as varchar) is null or ...)`. Applied to every optional-filter parameter check (column null-checks left untouched).
+- **`uuid` aliases:** the two jsonb-list synthetic queries (`findHearingsForPublicStandardList`, `findHearingsForAlphabeticalList`) return a string-literal `id` and a varchar-bound `court_centre_id`; Hibernate 6 rejects `String → UUID`. Fixed with `cast(... as uuid)` on those aliases.
+- **`totalCount`** — see D5.
+
+### 3.5 Test harnesses (OpenEJB/DeltaSpike → real PostgreSQL)
+- Removed OpenEJB / DeltaSpike test-control. Repository ITs and the large `PersistenceTestsIT` (~2,970 lines, 56 tests) now use the framework's `HibernateTestEntityManagerProvider` against **docker PostgreSQL** (`listingviewstore`, production Liquibase schema, `hbm2ddl=none`). Tests roll back per test.
+- JUnit 4 → JUnit 5 for the migrated ITs.
+- `listing-command-handler` unit tests: expectations aligned to the framework's canonical `ZoneOffset.UTC` (`…Z`) form rather than `ZoneId.of("UTC")` (`…Z[UTC]`) — a JSON round-trip normalisation change, not a behaviour change.
+
+### 3.6 Event modules
+- **event-listener:** MI schema-contract test disabled (see D3). Removed a dangling DeltaSpike `BeanManagedUserTransactionStrategy` alternative from `listing-viewstore-persistence`'s `beans.xml` that otherwise broke WAR deployment (`WELD-000123`).
+- **event-processor (XHIBIT):** replaced the pre-EE9 `com.sun.xml.bind:jaxb-impl/core` with `org.glassfish.jaxb:jaxb-runtime` (`jaxb.runtime.version=4.0.5`); restored the fixed XHIBIT namespace prefixes (`cs`/`p2`/`apd`/`xsi`) via a marshal-time `NamespacePrefixMapper` (the old `jaxb2-namespace-prefix` codegen add-on is javax-only and was dropped); added `jakarta.xml.bind-api` to the messaging/rest generator plugin classpaths.
+
+### 3.7 Query layer
+- `listing-query-api`: `org.drools.core.util.StringUtils.EMPTY` → `org.apache.commons.lang3.StringUtils.EMPTY`; nullness annotations backed by a (BOM-managed) `com.google.code.findbugs:jsr305` dependency (`javax.annotation.Nullable`/`Nonnull` — no Jakarta successor exists); checkerframework `@NonNull` → `javax.annotation.Nonnull`.
+- `HearingQueryView` LazyInit + Option B — see D2 / D4.
+
+### 3.8 Test tooling
+- `junit-platform-launcher` aligned to `1.14.3` (it must match `junit-platform-engine`; the old hard-coded `1.9.2` broke Surefire/Failsafe test discovery). *Follow-up:* the shared `cp-maven-common-bom` should import `org.junit:junit-bom` so the launcher stays aligned estate-wide (change prepared, to be raised at the next platform milestone).
+
+---
+
+## 4. Temporary items to resolve before production
+
+| Item | Where | Action |
+|------|-------|--------|
+| MI schema-contract test disabled | `listing-event-listener/pom.xml` (commented block with marker) | Re-enable once mi-reportdata publishes a Jakarta build (see D3) |
+| `enable_lazy_load_no_trans=true` | `listing-viewstore-persistence/.../persistence.xml` | Ratify or replace with fetch-joins/DTOs (see D2) |
+| Query "properties-JSON" workaround | `HearingQueryView.removedReViewHearings` | Ratify or refactor with D1 (see D4) |
+| `totalCount` mapping | native queries / query view | Add `@SqlResultSetMapping` or equivalent (see D5) |
+| `Hearing` virtual-column design | `Hearing` entity | Decide long-term approach (see D1) |
+
+All temporary items are commented in the code with the reason.
+
+---
+
+## 5. Environment & prerequisites
+
+- **Java 25** (Temurin) — the pipeline agent for this track is `ubuntu-j25`.
+- **WildFly 40** hosts the Jakarta WAR successfully in the local docker stack. *To confirm during hardening:* WildFly 40 must expose the glassfish `NamespacePrefixMapper` class to the deployment (used for XHIBIT XML marshalling) — it worked in the local stack; verify on the target runtime image.
+- **PostgreSQL** — the persistence ITs use the stack-provisioned `listingviewstore` DB (schema applied by the stack's Liquibase runner). No manual database setup is required when using `runIntegrationTests.sh`.
+- **Docker** — `runIntegrationTests.sh` bootstraps the full stack (`CPP_DOCKER_DIR` must point at a local `cpp-developers-docker` checkout).
+
+---
+
+## 6. Where to look in the code
+
+| Area | Module |
+|------|--------|
+| Repositories (DeltaSpike→JPA, native queries) | `listing-viewstore/listing-viewstore-persistence` |
+| Persistence ITs (`PersistenceTestsIT`) | `listing-integration-test-persistence` |
+| Query view / lazy-load / Option B | `listing-query/listing-query-view` |
+| Query API (jsr305, drools) | `listing-query/listing-query-api` |
+| XHIBIT JAXB / namespace prefixes | `listing-event/listing-event-processor` |
+| MI contract test (disabled) | `listing-event/listing-event-listener` |
+| Production `persistence.xml` / `beans.xml` | `listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF` |
+
+---
+
+*Questions on any decision above can go to Platform Engineering; the intent of this document is to give the listing team everything needed to choose the right production approach themselves.*
diff --git a/azure-pipelines.yaml b/azure-pipelines.yaml
index 923531ded..0a296edec 100644
--- a/azure-pipelines.yaml
+++ b/azure-pipelines.yaml
@@ -26,7 +26,7 @@ resources:
pool:
name: "MDV-ADO-AGENT-AKS-01"
demands:
- - identifier -equals centos8-j17
+ - identifier -equals ubuntu-j25
variables:
sonarqubeProject: "uk.gov.moj.cpp.listing:listing-parent" # update eg: uk.gov.moj.cpp.listing:listing-parent
diff --git a/listing-command/listing-command-api/pom.xml b/listing-command/listing-command-api/pom.xml
index 92b9f91e1..cdf67ede5 100644
--- a/listing-command/listing-command-api/pom.xml
+++ b/listing-command/listing-command-api/pom.xml
@@ -4,7 +4,7 @@
listing-command
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -23,8 +23,8 @@
messaging-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
@@ -46,8 +46,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
@@ -143,8 +143,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApi.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApi.java
index 5ca66cedd..08a28243b 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApi.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApi.java
@@ -50,11 +50,11 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactory.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactory.java
index 06ed9525c..aac473aa3 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactory.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactory.java
@@ -14,9 +14,9 @@
import java.util.Set;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/HearingTypeFactory.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/HearingTypeFactory.java
index 7a9a30bee..3f1ef6f4e 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/HearingTypeFactory.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/courtcentre/HearingTypeFactory.java
@@ -6,9 +6,9 @@
import java.util.HashMap;
import java.util.Map;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentService.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentService.java
index 957bacc8b..871fc2f0a 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentService.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentService.java
@@ -41,11 +41,11 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpStatus;
import org.slf4j.Logger;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerService.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerService.java
index ecd329330..17073106d 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerService.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerService.java
@@ -1,6 +1,6 @@
package uk.gov.moj.cpp.listing.command.api.service;
-import static javax.ws.rs.core.HttpHeaders.ACCEPT;
+import static jakarta.ws.rs.core.HttpHeaders.ACCEPT;
import uk.gov.justice.services.common.configuration.Value;
import uk.gov.justice.services.common.converter.JsonObjectToObjectConverter;
@@ -21,11 +21,11 @@
import java.util.Objects;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDaysEnrichmentService.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDaysEnrichmentService.java
index f60e6811c..7e4373640 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDaysEnrichmentService.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDaysEnrichmentService.java
@@ -33,8 +33,8 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDurationEnrichmentService.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDurationEnrichmentService.java
index dfe5df625..93fc698f9 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDurationEnrichmentService.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingDurationEnrichmentService.java
@@ -24,8 +24,8 @@
import java.util.Map;
import java.util.function.Function;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingEnrichmentOrchestrator.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingEnrichmentOrchestrator.java
index bee842d04..2113969cc 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingEnrichmentOrchestrator.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/HearingEnrichmentOrchestrator.java
@@ -19,8 +19,8 @@
import java.util.List;
import java.util.stream.Collectors;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/ReferenceDataService.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/ReferenceDataService.java
index 1b0339c7b..cd2b5631b 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/ReferenceDataService.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/service/ReferenceDataService.java
@@ -18,9 +18,9 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverter.java b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverter.java
index 4d0d1e526..6d4f346a2 100644
--- a/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverter.java
+++ b/listing-command/listing-command-api/src/main/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverter.java
@@ -18,10 +18,10 @@
import java.util.List;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
@SuppressWarnings({"squid:S3655"})
public class SlotsToJsonStringConverter {
diff --git a/listing-command/listing-command-api/src/main/resources/META-INF/beans.xml b/listing-command/listing-command-api/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-command/listing-command-api/src/main/resources/META-INF/beans.xml
+++ b/listing-command/listing-command-api/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApiTest.java b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApiTest.java
index cd85ad3df..4f5237b10 100644
--- a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApiTest.java
+++ b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/ListingCommandApiTest.java
@@ -84,10 +84,10 @@
import java.util.concurrent.atomic.AtomicInteger;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonValue;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactoryTest.java b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactoryTest.java
index 2905932eb..2bfc9487a 100644
--- a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactoryTest.java
+++ b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/courtcentre/CourtCentreFactoryTest.java
@@ -16,8 +16,8 @@
import java.time.LocalTime;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentServiceTest.java b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentServiceTest.java
index 78161facb..6f7747887 100644
--- a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentServiceTest.java
+++ b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtScheduleEnrichmentServiceTest.java
@@ -21,9 +21,9 @@
import java.time.LocalDate;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
@@ -112,7 +112,7 @@ void enrichShouldAddMultiDayParamsOnSearch() {
// Mock search response (first available slot). Shape must match getFirstAvailableSlot()
final String bookedCourtScheduleId = java.util.UUID.randomUUID().toString();
- final javax.json.JsonObject searchJson =
+ final jakarta.json.JsonObject searchJson =
JsonObjects.createObjectBuilder()
.add("hearingSlots", JsonObjects.createArrayBuilder()
.add(JsonObjects.createObjectBuilder()
@@ -134,7 +134,7 @@ void enrichShouldAddMultiDayParamsOnSearch() {
.build());
// Mock list response used by combineSearchAndBookResponseAndListResponse()
- final javax.json.JsonObject listJson =
+ final jakarta.json.JsonObject listJson =
JsonObjects.createObjectBuilder()
.add("hearings", JsonObjects.createArrayBuilder()
.add(JsonObjects.createObjectBuilder()
@@ -146,15 +146,15 @@ void enrichShouldAddMultiDayParamsOnSearch() {
final Response listResponse = org.mockito.Mockito.mock(Response.class);
when(listResponse.getStatus()).thenReturn(org.apache.http.HttpStatus.SC_OK);
when(listResponse.getEntity()).thenReturn(listJson);
- when(hearingSlotsService.listHearingInCourtSessions(any(javax.json.JsonObject.class))).thenReturn(listResponse);
+ when(hearingSlotsService.listHearingInCourtSessions(any(jakarta.json.JsonObject.class))).thenReturn(listResponse);
when(objectToJsonObjectConverter.convert(listJson)).thenReturn(listJson);
// jsonObjectConverter must translate each "hearings" item to ListUpdateHearing (POJO with setters)
when(jsonObjectConverter.convert(
- org.mockito.ArgumentMatchers.any(javax.json.JsonObject.class),
+ org.mockito.ArgumentMatchers.any(jakarta.json.JsonObject.class),
org.mockito.ArgumentMatchers.eq(uk.gov.moj.cpp.listing.domain.ListUpdateHearing.class)))
.thenAnswer(inv -> {
- javax.json.JsonObject jo = inv.getArgument(0);
+ jakarta.json.JsonObject jo = inv.getArgument(0);
uk.gov.moj.cpp.listing.domain.ListUpdateHearing luh = new uk.gov.moj.cpp.listing.domain.ListUpdateHearing();
luh.setCourtScheduleId(jo.getString("courtScheduleId"));
luh.setHearingStartTime(jo.getString("hearingStartTime"));
@@ -221,7 +221,7 @@ void enrichShouldNotIncludeStartTimeForMultiDaySearch() {
// Mock search response (first available slot)
final String bookedCourtScheduleId = java.util.UUID.randomUUID().toString();
- final javax.json.JsonObject searchJson =
+ final jakarta.json.JsonObject searchJson =
JsonObjects.createObjectBuilder()
.add("hearingSlots", JsonObjects.createArrayBuilder()
.add(JsonObjects.createObjectBuilder()
@@ -241,7 +241,7 @@ void enrichShouldNotIncludeStartTimeForMultiDaySearch() {
.thenReturn(JsonObjects.createArrayBuilder().add(bookedCourtScheduleId).build());
// Mock list response used by combineSearchAndBookResponseAndListResponse()
- final javax.json.JsonObject listJson =
+ final jakarta.json.JsonObject listJson =
JsonObjects.createObjectBuilder()
.add("hearings", JsonObjects.createArrayBuilder()
.add(JsonObjects.createObjectBuilder()
@@ -253,15 +253,15 @@ void enrichShouldNotIncludeStartTimeForMultiDaySearch() {
final Response listResponse = org.mockito.Mockito.mock(Response.class);
when(listResponse.getStatus()).thenReturn(org.apache.http.HttpStatus.SC_OK);
when(listResponse.getEntity()).thenReturn(listJson);
- when(hearingSlotsService.listHearingInCourtSessions(any(javax.json.JsonObject.class))).thenReturn(listResponse);
+ when(hearingSlotsService.listHearingInCourtSessions(any(jakarta.json.JsonObject.class))).thenReturn(listResponse);
when(objectToJsonObjectConverter.convert(listJson)).thenReturn(listJson);
// Map each "hearings" item to ListUpdateHearing
when(jsonObjectConverter.convert(
- org.mockito.ArgumentMatchers.any(javax.json.JsonObject.class),
+ org.mockito.ArgumentMatchers.any(jakarta.json.JsonObject.class),
org.mockito.ArgumentMatchers.eq(uk.gov.moj.cpp.listing.domain.ListUpdateHearing.class)))
.thenAnswer(inv -> {
- javax.json.JsonObject jo = inv.getArgument(0);
+ jakarta.json.JsonObject jo = inv.getArgument(0);
uk.gov.moj.cpp.listing.domain.ListUpdateHearing luh = new uk.gov.moj.cpp.listing.domain.ListUpdateHearing();
luh.setCourtScheduleId(jo.getString("courtScheduleId"));
luh.setHearingStartTime(jo.getString("hearingStartTime"));
diff --git a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerServiceTest.java b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerServiceTest.java
index 4b4a1923e..cb394de3f 100644
--- a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerServiceTest.java
+++ b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/service/CourtSchedulerServiceTest.java
@@ -16,7 +16,7 @@
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.StatusLine;
@@ -85,7 +85,7 @@ public void shouldGetCourtSchedulesByIdSuccessfully() throws Exception {
org.apache.http.HttpEntity entity = mock(org.apache.http.HttpEntity.class);
when(httpResponse.getEntity()).thenReturn(entity);
entityUtilsMockedStatic.when(() -> EntityUtils.toString(entity)).thenReturn("test response");
- when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(javax.json.JsonObject.class));
+ when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(jakarta.json.JsonObject.class));
// When
Response response = courtSchedulerService.getCourtSchedulesById(params);
@@ -220,7 +220,7 @@ public void shouldHandleMultipleQueryParameters() throws Exception {
org.apache.http.HttpEntity entity = mock(org.apache.http.HttpEntity.class);
when(httpResponse.getEntity()).thenReturn(entity);
entityUtilsMockedStatic.when(() -> EntityUtils.toString(entity)).thenReturn("test response");
- when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(javax.json.JsonObject.class));
+ when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(jakarta.json.JsonObject.class));
// When
Response response = courtSchedulerService.getCourtSchedulesById(params);
diff --git a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/FileUtil.java b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/FileUtil.java
index 1fc66fafa..568b56668 100644
--- a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/FileUtil.java
+++ b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/FileUtil.java
@@ -7,8 +7,8 @@
import java.io.InputStream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.google.common.io.Resources;
import org.slf4j.Logger;
diff --git a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverterTest.java b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverterTest.java
index f86689141..bc0c2abf3 100644
--- a/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverterTest.java
+++ b/listing-command/listing-command-api/src/test/java/uk/gov/moj/cpp/listing/command/api/util/SlotsToJsonStringConverterTest.java
@@ -22,8 +22,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-handler/pom.xml b/listing-command/listing-command-handler/pom.xml
index 31b6987c0..b6e54373b 100644
--- a/listing-command/listing-command-handler/pom.xml
+++ b/listing-command/listing-command-handler/pom.xml
@@ -3,7 +3,7 @@
listing-command
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -21,8 +21,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -112,8 +112,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactory.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactory.java
index 81cec9472..162968f52 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactory.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactory.java
@@ -7,8 +7,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingFactory.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingFactory.java
index 02ea04ee3..a3dc8f185 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingFactory.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingFactory.java
@@ -7,8 +7,8 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.listing.command.service.HearingService;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import java.util.UUID;
public class HearingFactory {
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactory.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactory.java
index 9dc286d87..e490e1b79 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactory.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactory.java
@@ -6,9 +6,9 @@
import java.util.HashMap;
import java.util.Map;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandler.java
index bdb4dbf75..24b667f57 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandler.java
@@ -17,8 +17,8 @@
import java.util.function.Function;
import java.util.stream.Stream;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandler.java
index 00f5c2af5..b1542f171 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandler.java
@@ -20,7 +20,7 @@
import java.util.function.Function;
import java.util.stream.Stream;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandler.java
index 895059e20..49f1a1eb9 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandler.java
@@ -22,7 +22,7 @@
import java.util.function.Function;
import java.util.stream.Stream;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandler.java
index fe82719b1..fce99150e 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandler.java
@@ -17,7 +17,7 @@
import java.util.function.Function;
import java.util.stream.Stream;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandler.java
index 98398df12..4d8033670 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandler.java
@@ -44,8 +44,8 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandler.java
index a9ecb14dd..e584eba16 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandler.java
@@ -12,7 +12,7 @@
import static java.util.UUID.fromString;
import static java.util.UUID.randomUUID;
import static java.util.stream.Collectors.toList;
-import static javax.json.JsonValue.NULL;
+import static jakarta.json.JsonValue.NULL;
import static org.apache.commons.collections.CollectionUtils.isEmpty;
import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
import static uk.gov.justice.core.courts.JurisdictionType.CROWN;
@@ -166,10 +166,10 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
import com.google.common.annotations.VisibleForTesting;
import org.apache.commons.lang3.SerializationUtils;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandler.java
index 1c07ec00f..7c558c8cb 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandler.java
@@ -1,6 +1,6 @@
package uk.gov.moj.cpp.listing.command.handler;
-import static javax.json.JsonValue.NULL;
+import static jakarta.json.JsonValue.NULL;
import static uk.gov.justice.services.core.annotation.Component.COMMAND_HANDLER;
import static uk.gov.justice.services.core.enveloper.Enveloper.toEnvelopeWithMetadataFrom;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
@@ -24,8 +24,8 @@
import java.util.UUID;
import java.util.stream.Stream;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandler.java
index ba7982343..eeaa76985 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandler.java
@@ -2,7 +2,7 @@
import static java.util.Objects.nonNull;
import static java.util.UUID.fromString;
-import static javax.json.JsonValue.NULL;
+import static jakarta.json.JsonValue.NULL;
import static uk.gov.justice.services.core.annotation.Component.COMMAND_HANDLER;
import static uk.gov.justice.services.core.enveloper.Enveloper.toEnvelopeWithMetadataFrom;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
@@ -25,7 +25,7 @@
import java.util.UUID;
import java.util.stream.Stream;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandler.java
index eaf7cc6f5..c193e7fbc 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandler.java
@@ -35,8 +35,8 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandler.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandler.java
index 27ce3b45f..b81254621 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandler.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandler.java
@@ -17,8 +17,8 @@
import uk.gov.justice.services.eventsourcing.source.core.exception.EventStreamException;
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.listing.domain.aggregate.SeedHearingAggregate;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import java.util.List;
import java.util.UUID;
import java.util.function.Function;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/HearingService.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/HearingService.java
index ba89a6562..a95321570 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/HearingService.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/HearingService.java
@@ -10,8 +10,8 @@
import uk.gov.justice.services.messaging.Metadata;
import uk.gov.moj.cpp.listing.query.view.HearingQueryView;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import java.util.UUID;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataService.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataService.java
index 2d4812a35..24abf9062 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataService.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataService.java
@@ -13,8 +13,8 @@
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/UUIDService.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/UUIDService.java
index 93c860ae4..854b210ca 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/UUIDService.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/service/UUIDService.java
@@ -7,7 +7,7 @@
import java.time.LocalDate;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class UUIDService {
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/CommandToDomainConverter.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/CommandToDomainConverter.java
index f361c9c69..4e26c77e8 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/CommandToDomainConverter.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/CommandToDomainConverter.java
@@ -62,7 +62,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.apache.commons.lang3.StringUtils;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/hearing/ExtendHearingUtils.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/hearing/ExtendHearingUtils.java
index 7dfcd9a07..f71a1b673 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/hearing/ExtendHearingUtils.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/hearing/ExtendHearingUtils.java
@@ -21,7 +21,7 @@
import java.util.UUID;
import java.util.stream.Stream;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.google.common.collect.Maps;
import org.apache.commons.collections.CollectionUtils;
diff --git a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/json/PublishCourtListJsonSupport.java b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/json/PublishCourtListJsonSupport.java
index 5755e2ee5..cca20a423 100644
--- a/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/json/PublishCourtListJsonSupport.java
+++ b/listing-command/listing-command-handler/src/main/java/uk/gov/moj/cpp/listing/command/utils/json/PublishCourtListJsonSupport.java
@@ -6,7 +6,7 @@
import java.time.format.DateTimeFormatter;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonValue;
+import jakarta.json.JsonValue;
public class PublishCourtListJsonSupport {
diff --git a/listing-command/listing-command-handler/src/main/resources/META-INF/beans.xml b/listing-command/listing-command-handler/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-command/listing-command-handler/src/main/resources/META-INF/beans.xml
+++ b/listing-command/listing-command-handler/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactoryTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactoryTest.java
index 73c6cad65..b9e5b079a 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactoryTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/CourtCentreFactoryTest.java
@@ -15,7 +15,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingFactoryTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingFactoryTest.java
index b70b0297f..319c39e38 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingFactoryTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingFactoryTest.java
@@ -14,7 +14,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactoryTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactoryTest.java
index f9d38d92d..0943989c3 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactoryTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/factory/HearingTypeFactoryTest.java
@@ -13,7 +13,7 @@
import java.util.Map;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandlerTest.java
index 1c98dd01e..4fe0339fd 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeleteCourtApplicationHandlerTest.java
@@ -21,7 +21,7 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandlerTest.java
index 3438914cb..7756d25d7 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/DeletePreviousHearingsAndCreateNextHearingHandlerTest.java
@@ -34,7 +34,7 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandlerTest.java
index 7b4bd5139..07989f2f4 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingMarkedAsDuplicateCommandHandlerTest.java
@@ -37,7 +37,7 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonReader;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandlerTest.java
index 0676407ec..18dcf91ba 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/HearingResultedCommandHandlerTest.java
@@ -15,7 +15,7 @@
import uk.gov.moj.cpp.listing.domain.aggregate.Hearing;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import java.util.UUID;
import java.util.stream.Stream;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandlerTest.java
index 51d3948df..7b7854fcd 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListNextHearingCommandHandlerTest.java
@@ -88,7 +88,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandlerTest.java
index 3b377d10a..2c4ef61c3 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingCommandHandlerTest.java
@@ -218,7 +218,6 @@
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.Month;
-import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.util.ArrayList;
@@ -231,12 +230,12 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonReader;
+import jakarta.ws.rs.core.Response;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -308,7 +307,7 @@ class ListingCommandHandlerTest {
private static final String OFFENCE_START_DATE = "2018-06-01";
private static final String OFFENCE_END_DATE = "2018-06-07";
private static final String NON_SITTING_DAY = "2018-06-02";
- private static final ZonedDateTime COURT_PROCEEDINGS_INITIATED = ZonedDateTime.of(2019, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"));
+ private static final ZonedDateTime COURT_PROCEEDINGS_INITIATED = ZonedDateTime.of(2019, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC);
private static final List NON_SITTING_DAYS1 = singletonList(LocalDate.parse(NON_SITTING_DAY));
private static final String NON_DEFAULT_DAY = "2018-06-01T11:00:00Z";
private static final String NON_DEFAULT_DAY_PM = "2018-06-03T15:00:00Z";
@@ -643,7 +642,7 @@ public void shouldPopulateNonDefaultDaysWhenBookedSlotsExist() throws Exception
.build());
final List nonDefaultDays = singletonList(NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(SLOT_START_TIME).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(SLOT_START_TIME).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
.withOucode(of(SLOT_OUCODE))
@@ -885,7 +884,7 @@ public void listingCommandHandlerShouldUpdateHearingsForListing() throws Excepti
final CourtCentre defaultCourtCentre = CourtCentre.courtCentre().withId(COURT_CENTRE_ID).withRoomId(COURT_ROOM_ID).build();
final List nonDefaultDays = Stream.of(NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_1).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -895,7 +894,7 @@ public void listingCommandHandlerShouldUpdateHearingsForListing() throws Excepti
.withRoomId(of(COURT_ROOM_ID).map(UUID::toString))
.build(),
NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_2).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -962,7 +961,7 @@ public void listingCommandHandlerShouldUpdateHearingForListing() throws Exceptio
final CourtCentre defaultCourtCentre = CourtCentre.courtCentre().withId(COURT_CENTRE_ID).withRoomId(COURT_ROOM_ID).build();
final List nonDefaultDays = Stream.of(NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_1).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -972,7 +971,7 @@ public void listingCommandHandlerShouldUpdateHearingForListing() throws Exceptio
.withRoomId(of(COURT_ROOM_ID).map(UUID::toString))
.build(),
NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_2).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -1038,7 +1037,7 @@ public void listingCommandHandlerShouldUpdateHearingForListing() throws Exceptio
private static NonDefaultDay generateNonDefaultFay(final String startTime) {
return NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(startTime).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(startTime).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SIX_HOUR_HEARING_DAY))
.withCourtRoomId(of(1))
.withOucode(of("B06AN00"))
@@ -1056,7 +1055,7 @@ public void listingCommandHandlerShouldUpdateHearingForListingWithoutJudiciaries
final CourtCentre defaultCourtCentre = CourtCentre.courtCentre().withId(COURT_CENTRE_ID).withRoomId(COURT_ROOM_ID).build();
final List nonDefaultDays = Stream.of(NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_1).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -1066,7 +1065,7 @@ public void listingCommandHandlerShouldUpdateHearingForListingWithoutJudiciaries
.withRoomId(of(COURT_ROOM_ID).map(UUID::toString))
.build(),
NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_2).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -1144,7 +1143,7 @@ public void listingCommandHandlerShouldUpdateHearingForListingWithoutJudiciaries
final CourtCentre defaultCourtCentre = CourtCentre.courtCentre().withId(COURT_CENTRE_ID).withRoomId(COURT_ROOM_ID).build();
final List nonDefaultDays = Stream.of(NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_1).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -1154,7 +1153,7 @@ public void listingCommandHandlerShouldUpdateHearingForListingWithoutJudiciaries
.withRoomId(of(COURT_ROOM_ID).map(UUID::toString))
.build(),
NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY_PM).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(SLOT_DURATION))
.withCourtScheduleId(of(COURT_SCHEDULE_ID_2).map(UUID::toString))
.withCourtRoomId(of(SLOT_COURT_ROOM_ID))
@@ -1232,7 +1231,7 @@ public void listingCommandHandlerShouldUpdateHearingForListingForWeekCommencingD
final CourtCentre defaultCourtCentre = CourtCentre.courtCentre().withId(COURT_CENTRE_ID).withRoomId(COURT_ROOM_ID).build();
final List nonDefaultDays = singletonList(NonDefaultDay.nonDefaultDay()
- .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneId.of("UTC")))
+ .withStartTime(parse(NON_DEFAULT_DAY).withZoneSameInstant(ZoneOffset.UTC))
.withDuration(of(1))
.withCourtScheduleId(empty())
.withCourtRoomId(empty())
@@ -2280,7 +2279,7 @@ public void shouldCreateRecordCourtListPublishedEvent() throws Exception {
final UUID courtListFileId = fromString("1deeec47-056b-431a-b131-0ea6f5d554ed");
final String fileName = "FILENAME";
final PublishCourtListType publishCourtListType = FIRM;
- final ZonedDateTime producedTime = parse("2019-11-15T11:13:19.314Z[UTC]");
+ final ZonedDateTime producedTime = parse("2019-11-15T11:13:19.314Z");
final LocalDate publishDate = LocalDate.now();
when(aggregateService.get(eventStream, PublishCourtListRequestAggregate.class)).thenReturn(publishCourtListRequestAggregate);
@@ -3714,7 +3713,7 @@ private Defendant createDomainDefendant() {
.withHearingLanguageNeeds(of(HearingLanguageNeeds.ENGLISH))
.withId(DEFENDANT_ID1)
.withMasterDefendantId(of(DEFENDANT_ID1))
- .withCourtProceedingsInitiated(of(ZonedDateTimes.fromString("2020-03-05T14:24:03.148Z").withZoneSameInstant(ZoneId.of("UTC"))))
+ .withCourtProceedingsInitiated(of(ZonedDateTimes.fromString("2020-03-05T14:24:03.148Z").withZoneSameInstant(ZoneOffset.UTC)))
.withOrganisationName(empty())
.withSpecificRequirements(of("Screen"))
.withIsYouth(of(Boolean.TRUE))
@@ -3774,7 +3773,7 @@ private Defendant createDomainDefendantForAddDefendantToCourtProceedings() {
return Defendant.defendant()
.withId(DEFENDANT_ID1)
.withMasterDefendantId(of(DEFENDANT_ID1))
- .withCourtProceedingsInitiated(of(ZonedDateTimes.fromString("2019-01-01T00:00:00.000Z").withZoneSameInstant(ZoneId.of("UTC"))))
+ .withCourtProceedingsInitiated(of(ZonedDateTimes.fromString("2019-01-01T00:00:00.000Z").withZoneSameInstant(ZoneOffset.UTC)))
.withBailStatus(of(new BailStatus.Builder().withCode("C").withDescription("Custody or remanded into custody").withId(fromString("12e69486-4d01-3403-a50a-7419ca040635")).build()))
.withCustodyTimeLimit(of(CUSTODY_TIME_LIMIT))
.withDateOfBirth(of(DATE_OF_BIRTH))
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandlerTest.java
index 8a8a0d3ca..543a2497c 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/ListingNoteCommandHandlerTest.java
@@ -26,7 +26,7 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonReader;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandlerTest.java
index d4d1feb26..0f13d704b 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/RemoveCaseFromGroupCasesCommandHandlerTest.java
@@ -46,7 +46,7 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandBuilder.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandBuilder.java
index 8c71d6b8b..d86641e5c 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandBuilder.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandBuilder.java
@@ -32,7 +32,7 @@
import java.io.StringReader;
import java.time.LocalDate;
-import java.time.ZoneId;
+import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.util.Arrays;
import java.util.Collections;
@@ -41,7 +41,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonReader;
+import jakarta.json.JsonReader;
public class UnscheduledListingCommandBuilder {
@@ -88,7 +88,7 @@ public class UnscheduledListingCommandBuilder {
static final String OFFENCE_START_DATE = "2018-06-01";
static final String OFFENCE_END_DATE = "2018-06-07";
static final String NON_SITTING_DAY = "2018-06-02";
- static final ZonedDateTime COURT_PROCEEDINGS_INITIATED = ZonedDateTime.of(2019, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"));
+ static final ZonedDateTime COURT_PROCEEDINGS_INITIATED = ZonedDateTime.of(2019, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC);
static final List NON_SITTING_DAYS1 = singletonList(LocalDate.parse(NON_SITTING_DAY));
static final String NON_DEFAULT_DAY = "2018-06-04T11:00:00Z";
static final int INITIAL_ESTIMATE_MINUTES = 640;
@@ -274,7 +274,7 @@ static Defendant createDomainDefendant() {
.withHearingLanguageNeeds(of(HearingLanguageNeeds.ENGLISH))
.withId(DEFENDANT_ID1)
.withMasterDefendantId(Optional.of(DEFENDANT_ID1))
- .withCourtProceedingsInitiated(Optional.of(ZonedDateTimes.fromString("2020-03-05T14:24:03.148Z").withZoneSameInstant(ZoneId.of("UTC"))))
+ .withCourtProceedingsInitiated(Optional.of(ZonedDateTimes.fromString("2020-03-05T14:24:03.148Z").withZoneSameInstant(ZoneOffset.UTC)))
.withOrganisationName(Optional.empty())
.withSpecificRequirements(of("Screen"))
.withIsYouth(empty())
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandlerTest.java
index 32a8b6917..7fe112ebb 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UnscheduledListingCommandHandlerTest.java
@@ -76,7 +76,7 @@
import java.util.List;
import java.util.stream.Stream;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandlerTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandlerTest.java
index 638f7d98d..95218f7d3 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandlerTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/handler/UpdateExistingHearingCommandHandlerTest.java
@@ -34,7 +34,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataServiceTest.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataServiceTest.java
index bbb5767c4..4c1914630 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataServiceTest.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/service/ReferenceDataServiceTest.java
@@ -17,7 +17,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/CommandBuilder.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/CommandBuilder.java
index 292e21528..9f98953bf 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/CommandBuilder.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/CommandBuilder.java
@@ -10,10 +10,10 @@
import java.io.StringReader;
import java.util.List;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
public class CommandBuilder {
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ExtendHearingHelper.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ExtendHearingHelper.java
index 53d930b50..c0fa5cc77 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ExtendHearingHelper.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ExtendHearingHelper.java
@@ -19,10 +19,10 @@
import java.io.StringReader;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
public class ExtendHearingHelper {
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/FileUtil.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/FileUtil.java
index 93f06e6a2..46b51a342 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/FileUtil.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/FileUtil.java
@@ -9,8 +9,8 @@
import java.io.IOException;
import java.io.InputStream;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
diff --git a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ObjectConverters.java b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ObjectConverters.java
index 3995d276d..2e1f9eae9 100644
--- a/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ObjectConverters.java
+++ b/listing-command/listing-command-handler/src/test/java/uk/gov/moj/cpp/listing/command/utils/ObjectConverters.java
@@ -6,7 +6,7 @@
import java.io.IOException;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-command/pom.xml b/listing-command/pom.xml
index 86f034bb8..0e60d156e 100644
--- a/listing-command/pom.xml
+++ b/listing-command/pom.xml
@@ -3,7 +3,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/listing-common/pom.xml b/listing-common/pom.xml
index 1bb1ffe37..2a841c028 100644
--- a/listing-common/pom.xml
+++ b/listing-common/pom.xml
@@ -3,7 +3,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/NoteUUIDService.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/NoteUUIDService.java
index 58f8fa4f6..c51344ef6 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/NoteUUIDService.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/NoteUUIDService.java
@@ -8,7 +8,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class NoteUUIDService {
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCache.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCache.java
index b681e1733..626339542 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCache.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCache.java
@@ -6,9 +6,9 @@
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import uk.gov.justice.services.messaging.JsonEnvelope;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoader.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoader.java
index b1a300562..eb3679d5a 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoader.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoader.java
@@ -12,9 +12,9 @@
import java.util.Optional;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapter.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapter.java
index b493a0dab..26aa14b4e 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapter.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapter.java
@@ -19,11 +19,11 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsService.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsService.java
index 137cf7c49..38e9cf558 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsService.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsService.java
@@ -1,8 +1,8 @@
package uk.gov.moj.cpp.listing.common.service;
import static java.lang.String.format;
-import static javax.ws.rs.core.HttpHeaders.ACCEPT;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.HttpHeaders.ACCEPT;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
import uk.gov.justice.services.common.configuration.Value;
import uk.gov.justice.services.common.converter.StringToJsonObjectConverter;
@@ -16,9 +16,9 @@
import java.util.Objects;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpResponse;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/ProvisionalBookingService.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/ProvisionalBookingService.java
index 4ea3f751f..045817170 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/ProvisionalBookingService.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/service/ProvisionalBookingService.java
@@ -1,6 +1,6 @@
package uk.gov.moj.cpp.listing.common.service;
-import static javax.ws.rs.core.HttpHeaders.ACCEPT;
+import static jakarta.ws.rs.core.HttpHeaders.ACCEPT;
import uk.gov.justice.services.common.configuration.Value;
import uk.gov.justice.services.common.converter.StringToJsonObjectConverter;
@@ -14,9 +14,9 @@
import java.util.Objects;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataService.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataService.java
index c57a58820..2c79d9592 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataService.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataService.java
@@ -20,8 +20,8 @@
import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import com.google.common.collect.ImmutableList;
import org.slf4j.Logger;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/DefaultXhibitService.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/DefaultXhibitService.java
index 14b50891e..b74999f21 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/DefaultXhibitService.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/DefaultXhibitService.java
@@ -6,8 +6,8 @@
import java.io.InputStream;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCache.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCache.java
index af16020b6..fb3f718f8 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCache.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCache.java
@@ -24,10 +24,10 @@
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.stream.Collectors;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
@ApplicationScoped
public class ReferenceDataCache {
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoader.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoader.java
index ad28422a8..702d93a7c 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoader.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoader.java
@@ -29,10 +29,10 @@
import java.util.Optional;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.apache.commons.collections.CollectionUtils;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidator.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidator.java
index a4c7126bc..0fc389514 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidator.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidator.java
@@ -5,8 +5,8 @@
import uk.gov.moj.cpp.listing.common.xhibit.exception.InvalidReferenceDataException;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.apache.commons.collections.CollectionUtils;
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionConnectionParameters.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionConnectionParameters.java
index f5eb32144..a195c8a12 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionConnectionParameters.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionConnectionParameters.java
@@ -2,7 +2,7 @@
import uk.gov.justice.services.common.configuration.Value;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
public class XhibitSessionConnectionParameters {
diff --git a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionFactory.java b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionFactory.java
index 90fb9fb2c..8c922964c 100644
--- a/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionFactory.java
+++ b/listing-common/src/main/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitSessionFactory.java
@@ -2,8 +2,8 @@
import java.net.URL;
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
import com.github.sardine.Sardine;
import org.slf4j.Logger;
diff --git a/listing-common/src/main/resources/META-INF/beans.xml b/listing-common/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-common/src/main/resources/META-INF/beans.xml
+++ b/listing-common/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCacheTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCacheTest.java
index 584e74074..29dd9c350 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCacheTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesCacheTest.java
@@ -12,7 +12,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import uk.gov.justice.services.messaging.JsonEnvelope;
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoaderTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoaderTest.java
index 885914484..f5d2799b0 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoaderTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/progression/ProgressionNotesLoaderTest.java
@@ -17,7 +17,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapterTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapterTest.java
index 1d884edb2..41cc73ed0 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapterTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/CourtSchedulerServiceAdapterTest.java
@@ -22,8 +22,8 @@
import java.util.UUID;
import java.util.stream.IntStream;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.apache.commons.collections.CollectionUtils;
import org.apache.http.HttpStatus;
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsServiceTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsServiceTest.java
index b38cebb37..e107d2bd8 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsServiceTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/service/HearingSlotsServiceTest.java
@@ -16,7 +16,7 @@
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.StatusLine;
@@ -88,7 +88,7 @@ public void shouldSearchSuccessfully() throws Exception {
when(httpResponse.getStatusLine()).thenReturn(statusLine);
when(statusLine.getStatusCode()).thenReturn(Response.Status.OK.getStatusCode());
when(httpResponse.getEntity()).thenReturn(mock(org.apache.http.HttpEntity.class));
- when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(javax.json.JsonObject.class));
+ when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(jakarta.json.JsonObject.class));
// When
Response response = hearingSlotsService.search(params);
@@ -137,7 +137,7 @@ public void shouldGetCourtSchedulerHearingIdsSuccessfully() throws Exception {
when(httpResponse.getStatusLine()).thenReturn(statusLine);
when(statusLine.getStatusCode()).thenReturn(Response.Status.OK.getStatusCode());
when(httpResponse.getEntity()).thenReturn(mock(org.apache.http.HttpEntity.class));
- when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(javax.json.JsonObject.class));
+ when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(jakarta.json.JsonObject.class));
// When
Response response = hearingSlotsService.getCourtSchedulerHearingIds(params);
@@ -223,7 +223,7 @@ public void shouldGetCourtSchedulesByIdSuccessfully() throws Exception {
when(httpResponse.getStatusLine()).thenReturn(statusLine);
when(statusLine.getStatusCode()).thenReturn(Response.Status.OK.getStatusCode());
when(httpResponse.getEntity()).thenReturn(mock(org.apache.http.HttpEntity.class));
- when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(javax.json.JsonObject.class));
+ when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(jakarta.json.JsonObject.class));
// When
Response response = hearingSlotsService.getCourtSchedulesById(params);
@@ -357,7 +357,7 @@ public void shouldHandleMultipleQueryParameters() throws Exception {
when(httpResponse.getStatusLine()).thenReturn(statusLine);
when(statusLine.getStatusCode()).thenReturn(Response.Status.OK.getStatusCode());
when(httpResponse.getEntity()).thenReturn(mock(org.apache.http.HttpEntity.class));
- when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(javax.json.JsonObject.class));
+ when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(jakarta.json.JsonObject.class));
// When
Response response = hearingSlotsService.search(params);
@@ -400,7 +400,7 @@ public void shouldSearchAndBookSlotsSuccessfully() throws Exception {
when(httpResponse.getStatusLine()).thenReturn(statusLine);
when(statusLine.getStatusCode()).thenReturn(Response.Status.OK.getStatusCode());
when(httpResponse.getEntity()).thenReturn(mock(org.apache.http.HttpEntity.class));
- when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(javax.json.JsonObject.class));
+ when(stringToJsonObjectConverter.convert(any())).thenReturn(mock(jakarta.json.JsonObject.class));
// When
Response response = hearingSlotsService.searchBookSlots(params);
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/utils/FileUtil.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/utils/FileUtil.java
index 0824499f0..c04a0f2b7 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/utils/FileUtil.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/utils/FileUtil.java
@@ -7,8 +7,8 @@
import java.io.IOException;
import java.io.InputStream;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.google.common.io.Resources;
import org.slf4j.Logger;
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataServiceTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataServiceTest.java
index 694e1538f..1bf085828 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataServiceTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/CommonXhibitReferenceDataServiceTest.java
@@ -36,7 +36,7 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCacheTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCacheTest.java
index d2d0848e5..88360da28 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCacheTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataCacheTest.java
@@ -36,8 +36,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoaderTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoaderTest.java
index 6dbb4b1b8..81dc8100a 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoaderTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/ReferenceDataLoaderTest.java
@@ -36,8 +36,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidatorTest.java b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidatorTest.java
index 336d3edbb..e7fadea39 100644
--- a/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidatorTest.java
+++ b/listing-common/src/test/java/uk/gov/moj/cpp/listing/common/xhibit/XhibitReferenceDataValidatorTest.java
@@ -8,8 +8,8 @@
import uk.gov.moj.cpp.listing.common.xhibit.exception.InvalidReferenceDataException;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/listing-domain/listing-domain-aggregate/pom.xml b/listing-domain/listing-domain-aggregate/pom.xml
index 590c55d9a..64ea3c8ff 100644
--- a/listing-domain/listing-domain-aggregate/pom.xml
+++ b/listing-domain/listing-domain-aggregate/pom.xml
@@ -3,7 +3,7 @@
listing-domain
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -36,8 +36,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/listing-domain/listing-domain-aggregate/src/main/resources/META-INF/beans.xml b/listing-domain/listing-domain-aggregate/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-domain/listing-domain-aggregate/src/main/resources/META-INF/beans.xml
+++ b/listing-domain/listing-domain-aggregate/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-domain/listing-domain-common/pom.xml b/listing-domain/listing-domain-common/pom.xml
index ca5785304..88e19ee9a 100644
--- a/listing-domain/listing-domain-common/pom.xml
+++ b/listing-domain/listing-domain-common/pom.xml
@@ -3,7 +3,7 @@
listing-domain
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/DateValidator.java b/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/DateValidator.java
index 763a801cb..dacaad5b7 100644
--- a/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/DateValidator.java
+++ b/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/DateValidator.java
@@ -7,7 +7,7 @@
import java.time.format.DateTimeParseException;
import java.util.Optional;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtils.java b/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtils.java
index 2fb66e3b4..5360e153c 100644
--- a/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtils.java
+++ b/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtils.java
@@ -10,10 +10,10 @@
import java.util.Objects;
import java.util.Optional;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/NullAwareJsonObjectBuilder.java b/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/NullAwareJsonObjectBuilder.java
index 36bc2e5ba..f1e64839d 100644
--- a/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/NullAwareJsonObjectBuilder.java
+++ b/listing-domain/listing-domain-common/src/main/java/uk/gov/moj/cpp/listing/domain/utils/NullAwareJsonObjectBuilder.java
@@ -3,10 +3,10 @@
import java.math.BigDecimal;
import java.math.BigInteger;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
public class NullAwareJsonObjectBuilder implements JsonObjectBuilder {
diff --git a/listing-domain/listing-domain-common/src/main/resources/META-INF/beans.xml b/listing-domain/listing-domain-common/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-domain/listing-domain-common/src/main/resources/META-INF/beans.xml
+++ b/listing-domain/listing-domain-common/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/DateValidatorTest.java b/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/DateValidatorTest.java
index 6b21eb8c6..ee44c30a9 100644
--- a/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/DateValidatorTest.java
+++ b/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/DateValidatorTest.java
@@ -5,7 +5,7 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtilsTest.java b/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtilsTest.java
index 5794b9b25..cf20cdf55 100644
--- a/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtilsTest.java
+++ b/listing-domain/listing-domain-common/src/test/java/uk/gov/moj/cpp/listing/domain/utils/JsonUtilsTest.java
@@ -10,8 +10,8 @@
import java.util.Optional;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-domain/listing-domain-event/pom.xml b/listing-domain/listing-domain-event/pom.xml
index adc552d3b..e42041e7d 100644
--- a/listing-domain/listing-domain-event/pom.xml
+++ b/listing-domain/listing-domain-event/pom.xml
@@ -3,7 +3,7 @@
listing-domain
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/listing-domain/listing-domain-event/src/main/resources/META-INF/beans.xml b/listing-domain/listing-domain-event/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-domain/listing-domain-event/src/main/resources/META-INF/beans.xml
+++ b/listing-domain/listing-domain-event/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-domain/listing-domain-xhibit/pom.xml b/listing-domain/listing-domain-xhibit/pom.xml
index 475e3211a..82c781b4d 100644
--- a/listing-domain/listing-domain-xhibit/pom.xml
+++ b/listing-domain/listing-domain-xhibit/pom.xml
@@ -3,7 +3,7 @@
listing-domain
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -15,25 +15,27 @@
commons-lang3
- javax.xml.bind
- jaxb-api
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+
- org.jvnet.jaxb2.maven2
- maven-jaxb2-plugin
- 0.15.2
+ org.jvnet.jaxb
+ jaxb-maven-plugin
+ 4.0.8
src/main/resources/xhibit/xsd
false
-XautoNameResolution
-extension
- -Xnamespace-prefix
-
@@ -42,19 +44,10 @@
generate
-
- uk.gov.moj.cpp.listing.domain.xhibit.generated
-
+ uk.gov.moj.cpp.listing.domain.xhibit.generated
-
-
- org.jvnet.jaxb2_commons
- jaxb2-namespace-prefix
- ${jaxb2-namespace-prefix.version}
-
-
diff --git a/listing-domain/listing-domain-xhibit/src/main/java/uk/gov/moj/cpp/listing/domain/xhibit/LocalDateAdapter.java b/listing-domain/listing-domain-xhibit/src/main/java/uk/gov/moj/cpp/listing/domain/xhibit/LocalDateAdapter.java
index 21f2c71c0..8a9f3ea64 100644
--- a/listing-domain/listing-domain-xhibit/src/main/java/uk/gov/moj/cpp/listing/domain/xhibit/LocalDateAdapter.java
+++ b/listing-domain/listing-domain-xhibit/src/main/java/uk/gov/moj/cpp/listing/domain/xhibit/LocalDateAdapter.java
@@ -2,7 +2,7 @@
import java.time.LocalDate;
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
public class LocalDateAdapter extends XmlAdapter {
diff --git a/listing-domain/listing-domain-xhibit/src/main/resources/META-INF/beans.xml b/listing-domain/listing-domain-xhibit/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-domain/listing-domain-xhibit/src/main/resources/META-INF/beans.xml
+++ b/listing-domain/listing-domain-xhibit/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-domain/listing-domain-xhibit/src/main/resources/xhibit/xsd/binding.xjb b/listing-domain/listing-domain-xhibit/src/main/resources/xhibit/xsd/binding.xjb
index b49b4afaf..66bf80d2a 100644
--- a/listing-domain/listing-domain-xhibit/src/main/resources/xhibit/xsd/binding.xjb
+++ b/listing-domain/listing-domain-xhibit/src/main/resources/xhibit/xsd/binding.xjb
@@ -1,25 +1,20 @@
-
+
+ xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
+ jaxb:version="3.0">
-
-
-
-
-
-
-
-
-
-
+
+
-
\ No newline at end of file
+
diff --git a/listing-domain/pom.xml b/listing-domain/pom.xml
index 6c94b5d29..fc53f7ce0 100644
--- a/listing-domain/pom.xml
+++ b/listing-domain/pom.xml
@@ -4,7 +4,7 @@
uk.gov.moj.cpp.listing
listing-parent
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
listing-domain
diff --git a/listing-event-sources/pom.xml b/listing-event-sources/pom.xml
index c1f9d7bd3..f37ee5918 100644
--- a/listing-event-sources/pom.xml
+++ b/listing-event-sources/pom.xml
@@ -3,7 +3,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/listing-event/listing-event-listener/pom.xml b/listing-event/listing-event-listener/pom.xml
index 1feae7533..7a476e8f7 100644
--- a/listing-event/listing-event-listener/pom.xml
+++ b/listing-event/listing-event-listener/pom.xml
@@ -3,7 +3,7 @@
listing-event
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -21,8 +21,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -75,7 +75,25 @@
-
+
+
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseMarkersEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseMarkersEventListener.java
index 50b56603f..a57d548c7 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseMarkersEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseMarkersEventListener.java
@@ -20,7 +20,7 @@
import java.util.UUID;
import java.util.function.Function;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseRemovedFromGroupCasesEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseRemovedFromGroupCasesEventListener.java
index 501cc0070..e86659051 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseRemovedFromGroupCasesEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CaseRemovedFromGroupCasesEventListener.java
@@ -14,8 +14,8 @@
import uk.gov.moj.cpp.listing.persistence.entity.Hearing;
import uk.gov.moj.cpp.listing.persistence.repository.HearingRepository;
-import javax.inject.Inject;
-import javax.transaction.Transactional;
+import jakarta.inject.Inject;
+import jakarta.transaction.Transactional;
@ServiceComponent(EVENT_LISTENER)
public class CaseRemovedFromGroupCasesEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtApplicationEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtApplicationEventListener.java
index 656d28f6b..29f0071c7 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtApplicationEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtApplicationEventListener.java
@@ -32,7 +32,7 @@
import java.util.UUID;
import java.util.function.Function;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtCentreEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtCentreEventListener.java
index 169ea8688..f4fbca6bd 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtCentreEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtCentreEventListener.java
@@ -12,7 +12,7 @@
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class CourtCentreEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtRoomForHearingEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtRoomForHearingEventListener.java
index 258026341..508831605 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtRoomForHearingEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/CourtRoomForHearingEventListener.java
@@ -16,7 +16,7 @@
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class CourtRoomForHearingEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantEventListener.java
index 422c8dab7..96eab2048 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantEventListener.java
@@ -24,7 +24,7 @@
import java.util.UUID;
import java.util.function.Function;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.google.common.collect.Iterables;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListener.java
index aa639a7ad..87b892fbf 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListener.java
@@ -25,7 +25,7 @@
import java.util.UUID;
import java.util.function.Function;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.google.common.collect.Iterables;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EjectEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EjectEventListener.java
index 7c3eadadb..76633e19c 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EjectEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EjectEventListener.java
@@ -19,7 +19,7 @@
import java.util.function.Function;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EndDateForHearingEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EndDateForHearingEventListener.java
index dade9faa2..c09f64714 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EndDateForHearingEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/EndDateForHearingEventListener.java
@@ -16,7 +16,7 @@
import java.time.LocalDate;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class EndDateForHearingEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListener.java
index 3277bdfc5..05e205b6c 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListener.java
@@ -36,11 +36,11 @@
import java.util.function.Function;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
-import javax.persistence.EntityNotFoundException;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
+import jakarta.persistence.EntityNotFoundException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListener.java
index d65643f9e..f58267e98 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListener.java
@@ -19,7 +19,7 @@
import java.util.EnumSet;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysForHearingEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysForHearingEventListener.java
index 0279391f9..b3c3091f8 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysForHearingEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysForHearingEventListener.java
@@ -18,7 +18,7 @@
import java.util.List;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.apache.commons.collections.CollectionUtils;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysUpdateEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysUpdateEventListener.java
index ae779dba0..51b51ca08 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysUpdateEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingDaysUpdateEventListener.java
@@ -26,10 +26,10 @@
import java.util.Map;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListener.java
index 4c5933e70..96bb45c58 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListener.java
@@ -46,7 +46,7 @@
import java.util.function.Function;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingLanguageEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingLanguageEventListener.java
index be5a95368..de7193bb6 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingLanguageEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingLanguageEventListener.java
@@ -11,7 +11,7 @@
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class HearingLanguageEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingMarkedAsDuplicateEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingMarkedAsDuplicateEventListener.java
index c3c701651..a6d43f207 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingMarkedAsDuplicateEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/HearingMarkedAsDuplicateEventListener.java
@@ -26,7 +26,7 @@
import java.util.UUID;
import java.util.function.Function;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListener.java
index a39b948c1..e8aaa0402 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListener.java
@@ -17,7 +17,7 @@
import java.util.List;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class JudiciaryForHearingEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JurisdictionEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JurisdictionEventListener.java
index 09cbda27a..956e348d0 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JurisdictionEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/JurisdictionEventListener.java
@@ -13,7 +13,7 @@
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class JurisdictionEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/LinkOrUnlinkCasesEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/LinkOrUnlinkCasesEventListener.java
index fdd7a335d..e4c4ee773 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/LinkOrUnlinkCasesEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/LinkOrUnlinkCasesEventListener.java
@@ -20,7 +20,7 @@
import java.util.UUID;
import java.util.function.Function;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ListingNoteEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ListingNoteEventListener.java
index def56b6a1..2bebe4e38 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ListingNoteEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/ListingNoteEventListener.java
@@ -15,7 +15,7 @@
import java.util.Objects;
import java.util.Optional;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class ListingNoteEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListener.java
index d5bf6422d..72a7cf48b 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListener.java
@@ -15,7 +15,7 @@
import java.util.List;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.EVENT_LISTENER)
public class NonDefaultDaysForHearingEventListener {
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListener.java
index 441ca0e26..21e0be7fb 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListener.java
@@ -8,7 +8,7 @@
import uk.gov.justice.services.messaging.Envelope;
import uk.gov.moj.cpp.listing.persistence.repository.HearingRepository;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import java.time.LocalDate;
import java.util.List;
import java.util.UUID;
diff --git a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListener.java b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListener.java
index c81f33aee..05c084a05 100644
--- a/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListener.java
+++ b/listing-event/listing-event-listener/src/main/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListener.java
@@ -28,7 +28,7 @@
import java.time.ZonedDateTime;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
@@ -46,6 +46,9 @@ public class PublishCourtListEventListener {
@Inject
private PublishedCourtListRepository publishedCourtListRepository;
+ @Inject
+ private ObjectMapper objectMapper;
+
@Handles("listing.event.publish-court-list-requested")
public void courtListPublishRequested(final Envelope event) {
final PublishCourtListRequested publishCourtListRequested = event.payload();
@@ -84,7 +87,7 @@ public void storePublishedCourtCentreList(final Envelope
-
+
\ No newline at end of file
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListenerTest.java
index eec676260..ff34f2208 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/DefendantOffencesEventListenerTest.java
@@ -32,8 +32,8 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.stream.JsonParser;
+import jakarta.json.JsonObject;
+import jakarta.json.stream.JsonParser;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListenerTest.java
index 62e375fb7..5287d7486 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/ExtendHearingForHearingListenerTest.java
@@ -35,7 +35,7 @@
import static org.mockito.Mockito.*;
import static uk.gov.moj.cpp.listing.event.listener.utils.HearingUtils.*;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
@ExtendWith(MockitoExtension.class)
public class ExtendHearingForHearingListenerTest {
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListenerTest.java
index 8ab280322..0f1447559 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingCounselEventListenerTest.java
@@ -21,7 +21,7 @@
import java.io.IOException;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListenerTest.java
index 8d8eedfbd..353aa40d9 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/HearingEventListenerTest.java
@@ -40,7 +40,7 @@
import java.util.Arrays;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListenerTest.java
index dc895ab21..cf326ef21 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/JudiciaryForHearingEventListenerTest.java
@@ -23,8 +23,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListenerTest.java
index 8e7bcf6e1..62a5d5075 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonDefaultDaysForHearingEventListenerTest.java
@@ -20,8 +20,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListenerTest.java
index 6b4d51042..33d1e2126 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/NonSittingDaysForHearingEventListenerTest.java
@@ -21,8 +21,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListenerTest.java
index 2fa48a828..e4d3b093d 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/PublishCourtListEventListenerTest.java
@@ -37,12 +37,15 @@
import java.time.ZonedDateTime;
import java.util.UUID;
+import uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer;
+
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.Spy;
import org.mockito.junit.jupiter.MockitoExtension;
@ExtendWith(MockitoExtension.class)
@@ -59,6 +62,10 @@ public class PublishCourtListEventListenerTest {
@Mock
private PublishedCourtListRepository publishedCourtListRepository;
+ // Real, producer-configured mapper (not a mock) so the listener's readTree works; @Spy lets @InjectMocks wire it.
+ @Spy
+ private ObjectMapper objectMapper = new ObjectMapperProducer().objectMapper();
+
@InjectMocks
private PublishCourtListEventListener publishCourtListEventListener;
@@ -251,7 +258,7 @@ public void shouldStorePublishedCourtList() throws IOException {
courtCentreId,
publishCourtListType,
startDate,
- new ObjectMapper().readTree(courtListJson),
+ objectMapper.readTree(courtListJson),
lastUpdated,
null,
null
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/TypeForHearingEventListenerTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/TypeForHearingEventListenerTest.java
index 9286dce79..d4661670a 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/TypeForHearingEventListenerTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/TypeForHearingEventListenerTest.java
@@ -18,7 +18,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/utils/FileUtil.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/utils/FileUtil.java
index e562e6961..fee0b2193 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/utils/FileUtil.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/listener/utils/FileUtil.java
@@ -7,8 +7,8 @@
import java.io.IOException;
import java.io.InputStream;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.google.common.io.Resources;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/service/HearingSearchSyncServiceTest.java b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/service/HearingSearchSyncServiceTest.java
index 90bfcf8a9..bc5662250 100644
--- a/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/service/HearingSearchSyncServiceTest.java
+++ b/listing-event/listing-event-listener/src/test/java/uk/gov/moj/cpp/listing/event/service/HearingSearchSyncServiceTest.java
@@ -51,10 +51,10 @@
import java.util.stream.Collectors;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonWriter;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonWriter;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-event/listing-event-processor/pom.xml b/listing-event/listing-event-processor/pom.xml
index 344964b4d..29d1eda3a 100644
--- a/listing-event/listing-event-processor/pom.xml
+++ b/listing-event/listing-event-processor/pom.xml
@@ -3,7 +3,7 @@
listing-event
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -22,18 +22,15 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
- com.sun.xml.bind
- jaxb-impl
-
-
- com.sun.xml.bind
- jaxb-core
+ org.glassfish.jaxb
+ jaxb-runtime
+ ${jaxb.runtime.version}
@@ -211,8 +208,14 @@
messaging-client-generator-plugin
- javax
- javaee-api
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ ${jakarta.xml.bind-api.raml.version}
+
+
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
@@ -238,8 +241,14 @@
rest-client-generator-plugin
- javax
- javaee-api
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ ${jakarta.xml.bind-api.raml.version}
+
+
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CaseRemovedFromGroupCasesEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CaseRemovedFromGroupCasesEventProcessor.java
index 228392046..2756953a7 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CaseRemovedFromGroupCasesEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CaseRemovedFromGroupCasesEventProcessor.java
@@ -9,7 +9,7 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessor.java
index 8214eaf5d..8fc567cc6 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessor.java
@@ -9,10 +9,10 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessor.java
index be8a8d4fc..3ee79d1ed 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessor.java
@@ -10,7 +10,7 @@
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessor.java
index 2dc8e9f62..9d24c17ee 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessor.java
@@ -10,7 +10,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.listing.query.view.CacheRefDataCourtroomView;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessor.java
index f35f7410d..e5928813c 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessor.java
@@ -10,7 +10,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.listing.query.view.CacheRefDataCourtroomView;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CpsProsecutorUpdatedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CpsProsecutorUpdatedEventProcessor.java
index 72ad4bdca..631d41325 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CpsProsecutorUpdatedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CpsProsecutorUpdatedEventProcessor.java
@@ -2,10 +2,10 @@
import java.util.List;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import uk.gov.justice.services.core.annotation.Handles;
import uk.gov.justice.services.core.annotation.ServiceComponent;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessor.java
index 953c18c92..7424f7702 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessor.java
@@ -6,8 +6,8 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import static uk.gov.justice.services.core.annotation.Component.EVENT_PROCESSOR;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessor.java
index 83dc80ae9..bb45c4627 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessor.java
@@ -11,8 +11,8 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessor.java
index 4a720b5b1..3e196f7be 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessor.java
@@ -8,9 +8,9 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
import static uk.gov.justice.services.core.annotation.Component.EVENT_PROCESSOR;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessor.java
index c9a3a1e31..670abb7b4 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessor.java
@@ -9,7 +9,7 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessor.java
index e0c2f59da..1bf487f8d 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessor.java
@@ -9,9 +9,9 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import static uk.gov.justice.services.core.annotation.Component.EVENT_PROCESSOR;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessor.java
index 0ddbcdb4e..385512dde 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessor.java
@@ -9,7 +9,7 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessor.java
index fb4a5b17a..b40043dbe 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessor.java
@@ -98,12 +98,12 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessor.java
index afe9f2f96..720e5e6c8 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessor.java
@@ -9,9 +9,9 @@
import uk.gov.justice.services.core.sender.Sender;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import static uk.gov.justice.services.core.annotation.Component.EVENT_PROCESSOR;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessor.java
index 2c2b768d8..edeb4f8ef 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessor.java
@@ -33,10 +33,10 @@
import java.util.Optional;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/PublicHearingFactory.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/PublicHearingFactory.java
index 7238e5557..1834f43fa 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/PublicHearingFactory.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/PublicHearingFactory.java
@@ -12,7 +12,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@SuppressWarnings({"squid:S1172", "squid:CommentedOutCodeLine"})
public class PublicHearingFactory {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessor.java
index 97c64b578..693c71f41 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessor.java
@@ -10,7 +10,7 @@
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.gov.justice.core.courts.ConfirmedDefendant;
@@ -30,7 +30,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.listing.event.processor.command.AddHearingToCaseCommandFromHearingAddedToCaseConverter;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(EVENT_PROCESSOR)
public class UpdateExistingHearingEventProcessor {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataService.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataService.java
index f7977da5c..204c8cf89 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataService.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataService.java
@@ -13,9 +13,9 @@
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class ListingReferenceDataService {
private static final String REFERENCE_DATA_GET_COURTROOM = "referencedata.query.courtroom";
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverter.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverter.java
index 29da51444..7d4912583 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverter.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverter.java
@@ -30,9 +30,9 @@
import java.util.UUID;
import java.util.function.Predicate;
-import javax.inject.Inject;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/AddOffencesForHearingCommandCollectionConverter.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/AddOffencesForHearingCommandCollectionConverter.java
index 6ef9e01fe..6538fff5c 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/AddOffencesForHearingCommandCollectionConverter.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/AddOffencesForHearingCommandCollectionConverter.java
@@ -16,7 +16,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
public class AddOffencesForHearingCommandCollectionConverter implements Converter >{
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateOffencesForHearingCommandCollectionConverter.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateOffencesForHearingCommandCollectionConverter.java
index b85936b9a..ac5ac155a 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateOffencesForHearingCommandCollectionConverter.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateOffencesForHearingCommandCollectionConverter.java
@@ -19,7 +19,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.apache.commons.lang3.StringUtils;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverter.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverter.java
index f5beeed9d..a6da2305b 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverter.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverter.java
@@ -5,9 +5,9 @@
import uk.gov.justice.listing.events.HearingMarkedForPartialUpdate;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
public class UpdateUnallocatedHearingPartiallyCommandConverter {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactory.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactory.java
index 8a7d4324d..cb663b314 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactory.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactory.java
@@ -8,8 +8,8 @@
import java.time.LocalTime;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/factory/PublicHearingPartiallyUpdatedFactory.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/factory/PublicHearingPartiallyUpdatedFactory.java
index b2ab22fa9..bcb7cf6db 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/factory/PublicHearingPartiallyUpdatedFactory.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/factory/PublicHearingPartiallyUpdatedFactory.java
@@ -9,7 +9,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
@SuppressWarnings("squid:S1168")
@ApplicationScoped
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/HearingService.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/HearingService.java
index 6045dbc1f..ab5d659dc 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/HearingService.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/HearingService.java
@@ -14,8 +14,8 @@
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataService.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataService.java
index 4798c0fc4..82f9df69b 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataService.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataService.java
@@ -18,8 +18,8 @@
import java.util.Objects;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverter.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverter.java
index 0e139a6f8..f4b10709f 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverter.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverter.java
@@ -41,7 +41,7 @@
import java.util.UUID;
import java.util.function.Function;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
public class HearingObjectsListingToCoreConverter {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessor.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessor.java
index 75cd4cd47..5ad4a16c1 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessor.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessor.java
@@ -17,9 +17,9 @@
import java.time.LocalDate;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportService.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportService.java
index 3665e6e5f..a69e644eb 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportService.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportService.java
@@ -12,8 +12,8 @@
import java.io.ByteArrayInputStream;
import java.io.InputStream;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSender.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSender.java
index 2b84b2f3a..ce1eaaede 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSender.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSender.java
@@ -4,8 +4,8 @@
import static java.util.UUID.randomUUID;
import static uk.gov.justice.services.messaging.JsonObjects.createArrayBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.json.JsonValue.ValueType.ARRAY;
-import static javax.json.JsonValue.ValueType.OBJECT;
+import static jakarta.json.JsonValue.ValueType.ARRAY;
+import static jakarta.json.JsonValue.ValueType.OBJECT;
import static org.apache.commons.collections.CollectionUtils.isEmpty;
import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
@@ -34,15 +34,15 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.ejb.Stateless;
-import javax.inject.Inject;
+import jakarta.ejb.Stateless;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonStructure;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonStructure;
+import jakarta.json.JsonValue;
import org.apache.commons.lang3.StringEscapeUtils;
import org.slf4j.Logger;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGenerator.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGenerator.java
index 65344534f..756297fa4 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGenerator.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGenerator.java
@@ -10,9 +10,9 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
public class CourtListFileGenerator {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListMetadataGenerator.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListMetadataGenerator.java
index 94023465d..8a31b1f58 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListMetadataGenerator.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListMetadataGenerator.java
@@ -10,7 +10,7 @@
import java.time.format.DateTimeFormatter;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
public class CourtListMetadataGenerator {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingService.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingService.java
index 1e4ee8997..93fcb0ea7 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingService.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingService.java
@@ -13,9 +13,9 @@
import java.util.Optional;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/MapperFactory.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/MapperFactory.java
index 7c6f220e3..d52b2f4a3 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/MapperFactory.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/MapperFactory.java
@@ -10,8 +10,8 @@
import java.util.List;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import com.google.common.annotations.VisibleForTesting;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParser.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParser.java
index 4dee3c880..090439794 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParser.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParser.java
@@ -8,7 +8,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class PublishCourtListRequestParametersParser {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/XmlUtils.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/XmlUtils.java
index 29f7c5fa8..ba9e48bc6 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/XmlUtils.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/XmlUtils.java
@@ -2,8 +2,8 @@
import static java.lang.String.format;
import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
-import static javax.xml.bind.JAXBContext.newInstance;
-import static javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT;
+import static jakarta.xml.bind.JAXBContext.newInstance;
+import static jakarta.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT;
import uk.gov.moj.cpp.listing.event.processor.xhibit.exception.GenerationFailedException;
@@ -12,12 +12,12 @@
import java.io.StringWriter;
import java.net.URL;
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Inject;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
@@ -28,11 +28,45 @@
import javax.xml.validation.Validator;
import com.google.common.annotations.VisibleForTesting;
+import org.glassfish.jaxb.runtime.marshaller.NamespacePrefixMapper;
import org.slf4j.Logger;
import org.xml.sax.SAXException;
public class XmlUtils {
+ private static final String COURT_SERVICE_NS = "http://www.courtservice.gov.uk/schemas/courtservice";
+ private static final String BS7666_NS = "http://www.govtalk.gov.uk/people/bs7666";
+ private static final String ADDRESS_AND_PERSONAL_DETAILS_NS = "http://www.govtalk.gov.uk/people/AddressAndPersonalDetails";
+ private static final String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
+
+ /**
+ * Restores the fixed XHIBIT namespace prefixes (cs/p2/apd/xsi) that the generated JAXB classes emitted under the
+ * pre-EE9 jaxb2-namespace-prefix add-on. Jakarta's JAXB (org.glassfish.jaxb) otherwise emits default ns2/ns3
+ * prefixes, which the consuming XHIBIT systems (and the mapper contract tests) do not expect.
+ */
+ private static final NamespacePrefixMapper XHIBIT_PREFIX_MAPPER = new NamespacePrefixMapper() {
+ @Override
+ public String getPreferredPrefix(final String namespaceUri, final String suggestion, final boolean requirePrefix) {
+ switch (namespaceUri) {
+ case COURT_SERVICE_NS:
+ return "cs";
+ case BS7666_NS:
+ return "p2";
+ case ADDRESS_AND_PERSONAL_DETAILS_NS:
+ return "apd";
+ case XSI_NS:
+ return "xsi";
+ default:
+ return suggestion;
+ }
+ }
+
+ @Override
+ public String[] getPreDeclaredNamespaceUris() {
+ return new String[]{BS7666_NS, ADDRESS_AND_PERSONAL_DETAILS_NS, XSI_NS};
+ }
+ };
+
private static DatatypeFactory datatypeFactory;
@Inject
@@ -60,6 +94,7 @@ public String convertToXml(final JAXBElement> documentRoot) {
try {
final Marshaller jaxbMarshaller = getJaxbContext().createMarshaller();
jaxbMarshaller.setProperty(JAXB_FORMATTED_OUTPUT, true);
+ jaxbMarshaller.setProperty("org.glassfish.jaxb.namespacePrefixMapper", XHIBIT_PREFIX_MAPPER);
jaxbMarshaller.marshal(documentRoot, sw);
} catch (final JAXBException e) {
throw new GenerationFailedException("Could not marshal XML", e);
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/AbstractCourtListMapper.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/AbstractCourtListMapper.java
index c9ec8ad2a..9231740c4 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/AbstractCourtListMapper.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/AbstractCourtListMapper.java
@@ -5,8 +5,8 @@
import java.util.List;
-import javax.json.JsonObject;
-import javax.xml.bind.JAXBElement;
+import jakarta.json.JsonObject;
+import jakarta.xml.bind.JAXBElement;
public abstract class AbstractCourtListMapper {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapper.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapper.java
index ccf39ff57..ca1d4067b 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapper.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapper.java
@@ -59,9 +59,9 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.annotation.PreDestroy;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.annotation.PreDestroy;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/DailyListMapper.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/DailyListMapper.java
index 0124f9050..f71a2b4d3 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/DailyListMapper.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/DailyListMapper.java
@@ -5,8 +5,8 @@
import uk.gov.moj.cpp.listing.domain.xhibit.generated.SittingStructure;
import uk.gov.moj.cpp.listing.event.processor.xhibit.courtlist.CourtListGenerationContext;
-import javax.json.JsonObject;
-import javax.xml.bind.JAXBElement;
+import jakarta.json.JsonObject;
+import jakarta.xml.bind.JAXBElement;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapper.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapper.java
index 887db8a14..9b786ef74 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapper.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapper.java
@@ -15,8 +15,8 @@
import java.util.Map;
import java.util.TreeMap;
-import javax.json.JsonObject;
-import javax.xml.bind.JAXBElement;
+import jakarta.json.JsonObject;
+import jakarta.xml.bind.JAXBElement;
public class FirmListMapper extends AbstractCourtListMapper {
private static final String COURT_ROOM_ID = "courtRoomId";
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapper.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapper.java
index 922afb9cb..b84adbec4 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapper.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapper.java
@@ -7,7 +7,7 @@
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class RequestedNameMapper {
diff --git a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapper.java b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapper.java
index 91ed1dcfd..130ba8c0b 100644
--- a/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapper.java
+++ b/listing-event/listing-event-processor/src/main/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapper.java
@@ -10,8 +10,8 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.json.JsonObject;
-import javax.xml.bind.JAXBElement;
+import jakarta.json.JsonObject;
+import jakarta.xml.bind.JAXBElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-event/listing-event-processor/src/main/resources/META-INF/beans.xml b/listing-event/listing-event-processor/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-event/listing-event-processor/src/main/resources/META-INF/beans.xml
+++ b/listing-event/listing-event-processor/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessorTest.java
index a07340a3f..cbf04c12c 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtApplicationDeletedProcessorTest.java
@@ -12,8 +12,8 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessorTest.java
index 6f9d6f7b0..15835921e 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtSchedulerListingEventProcessorTest.java
@@ -23,9 +23,9 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.ws.rs.core.Response;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessorTest.java
index 18a1218c1..b0c74337b 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomAddedEventProcessorTest.java
@@ -12,7 +12,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessorTest.java
index dce7eba26..31a18000d 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CourtroomClosedEventProcessorTest.java
@@ -12,7 +12,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessorTest.java
index a7f8113ef..5fb7810ff 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/CreateNextHearingRequestedEventProcessorTest.java
@@ -12,7 +12,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessorTest.java
index dd5484367..a9b61df98 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingCounselEventProcessorTest.java
@@ -15,7 +15,7 @@
import java.util.function.Consumer;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessorTest.java
index 0f1c21bfc..1c3aea732 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingResultedEventProcessorTest.java
@@ -11,7 +11,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessorTest.java
index 243e5321f..c7a7d3689 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingSequencedEventProcessorTest.java
@@ -13,8 +13,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessorTest.java
index bea9e8b0c..136d81a62 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/HearingUnallocatedCourtroomRemovedEventProcessorTest.java
@@ -24,7 +24,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
@ExtendWith(MockitoExtension.class)
public class HearingUnallocatedCourtroomRemovedEventProcessorTest {
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessorTest.java
index 86c64709a..9d33cb08a 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/JudiciaryChangedEventProcessorTest.java
@@ -9,7 +9,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessorTest.java
index faf33dfda..e76c9ea07 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingEventProcessorTest.java
@@ -191,10 +191,10 @@
import java.util.function.Function;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableList;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessorTest.java
index 9e75c3f3a..3b4992c22 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/ListingNoteEventProcessorTest.java
@@ -18,7 +18,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessorTest.java
index 29a3d5686..4ade44835 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/NextHearingProcessorTest.java
@@ -48,7 +48,7 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessorTest.java
index 8b7b90710..70a90150f 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/UpdateExistingHearingEventProcessorTest.java
@@ -30,7 +30,7 @@
import java.util.Collections;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import uk.gov.justice.services.messaging.JsonObjects;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataServiceTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataServiceTest.java
index d4b7cdd7f..748495c9b 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataServiceTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/ListingReferenceDataServiceTest.java
@@ -22,9 +22,9 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverterTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverterTest.java
index 99598b1f3..735c86a94 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverterTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/azure/util/SlotsToJsonStringConverterTest.java
@@ -39,10 +39,10 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverterTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverterTest.java
index 60ed969bc..102ddf034 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverterTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/command/UpdateUnallocatedHearingPartiallyCommandConverterTest.java
@@ -8,7 +8,7 @@
import uk.gov.justice.services.test.utils.framework.api.JsonObjectConvertersFactory;
import uk.gov.moj.cpp.listing.event.utils.EventBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactoryTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactoryTest.java
index 441aee235..199cf913e 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactoryTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/courtcenter/CourtCentreFactoryTest.java
@@ -14,7 +14,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/HearingServiceTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/HearingServiceTest.java
index cd30688e1..f86fc3a14 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/HearingServiceTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/HearingServiceTest.java
@@ -22,7 +22,7 @@
import java.util.UUID;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataServiceTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataServiceTest.java
index 39cfe43a2..262039d40 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataServiceTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/service/ReferenceDataServiceTest.java
@@ -30,8 +30,8 @@
import java.util.function.Function;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverterTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverterTest.java
index bf01ce45b..d56544bc9 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverterTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/util/HearingObjectsListingToCoreConverterTest.java
@@ -26,7 +26,7 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.hamcrest.Matchers;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessorTest.java
index 34986962f..5f9cd3bad 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListEventProcessorTest.java
@@ -27,7 +27,7 @@
import java.time.ZonedDateTime;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportServiceTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportServiceTest.java
index 928c64500..d612a46d1 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportServiceTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/CourtListExportServiceTest.java
@@ -25,7 +25,7 @@
import java.time.ZonedDateTime;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSenderTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSenderTest.java
index 4df7e6cba..f333542f0 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSenderTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/PublishCourtListCommandSenderTest.java
@@ -32,7 +32,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGeneratorTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGeneratorTest.java
index a5cbb676c..bb1cc0e65 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGeneratorTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/CourtListFileGeneratorTest.java
@@ -30,8 +30,8 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.apache.log4j.BasicConfigurator;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingServiceTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingServiceTest.java
index 86129ed28..102da0502 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingServiceTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/ListingServiceTest.java
@@ -20,7 +20,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParserTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParserTest.java
index 1a1f1b62a..b2d303479 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParserTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/PublishCourtListRequestParametersParserTest.java
@@ -17,7 +17,7 @@
import java.time.ZonedDateTime;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapperTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapperTest.java
index 47b8fc5f5..4c5bcb492 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapperTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/CourtServicesMapperTest.java
@@ -35,7 +35,7 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.Before;
import org.junit.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapperTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapperTest.java
index 91171a6fc..b95c21aa6 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapperTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/FirmListMapperTest.java
@@ -23,8 +23,8 @@
import java.util.List;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapperTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapperTest.java
index 2b54ced74..3259b1c0e 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapperTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/RequestedNameMapperTest.java
@@ -7,8 +7,8 @@
import static org.hamcrest.MatcherAssert.assertThat;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapperTest.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapperTest.java
index 78bcad4fb..bb133f74b 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapperTest.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/processor/xhibit/courtlist/mapper/WarnedListMapperTest.java
@@ -29,8 +29,8 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.xml.bind.JAXBElement;
+import jakarta.json.JsonObject;
+import jakarta.xml.bind.JAXBElement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/EventBuilder.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/EventBuilder.java
index 419b3b17a..5490aeb93 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/EventBuilder.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/EventBuilder.java
@@ -11,8 +11,8 @@
import uk.gov.justice.listing.events.OffencesToBeUpdated;
import uk.gov.justice.services.common.converter.JsonObjectToObjectConverter;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
public class EventBuilder {
diff --git a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/FileUtil.java b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/FileUtil.java
index 46e42d1fb..235035323 100644
--- a/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/FileUtil.java
+++ b/listing-event/listing-event-processor/src/test/java/uk/gov/moj/cpp/listing/event/utils/FileUtil.java
@@ -7,8 +7,8 @@
import java.io.IOException;
import java.io.InputStream;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.google.common.io.Resources;
import org.slf4j.Logger;
diff --git a/listing-event/pom.xml b/listing-event/pom.xml
index 84cd9fe45..2665ee108 100644
--- a/listing-event/pom.xml
+++ b/listing-event/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.listing
listing-parent
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -34,8 +34,8 @@
messaging-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
diff --git a/listing-healthchecks/pom.xml b/listing-healthchecks/pom.xml
index d1479d8f0..b7d342064 100644
--- a/listing-healthchecks/pom.xml
+++ b/listing-healthchecks/pom.xml
@@ -3,7 +3,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/listing-healthchecks/src/main/java/uk/gov/moj/cpp/listing/healthchecks/ListingIgnoredHealthcheckNamesProvider.java b/listing-healthchecks/src/main/java/uk/gov/moj/cpp/listing/healthchecks/ListingIgnoredHealthcheckNamesProvider.java
index cbbc352ff..383bfecf6 100644
--- a/listing-healthchecks/src/main/java/uk/gov/moj/cpp/listing/healthchecks/ListingIgnoredHealthcheckNamesProvider.java
+++ b/listing-healthchecks/src/main/java/uk/gov/moj/cpp/listing/healthchecks/ListingIgnoredHealthcheckNamesProvider.java
@@ -8,7 +8,7 @@
import java.util.List;
-import javax.enterprise.inject.Specializes;
+import jakarta.enterprise.inject.Specializes;
@Specializes
public class ListingIgnoredHealthcheckNamesProvider extends DefaultIgnoredHealthcheckNamesProvider {
diff --git a/listing-healthchecks/src/main/resources/META-INF/beans.xml b/listing-healthchecks/src/main/resources/META-INF/beans.xml
index cc3f8d286..be7990041 100644
--- a/listing-healthchecks/src/main/resources/META-INF/beans.xml
+++ b/listing-healthchecks/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0" bean-discovery-mode="all">
\ No newline at end of file
diff --git a/listing-integration-test-persistence/pom.xml b/listing-integration-test-persistence/pom.xml
index 8da13e002..37efa6fba 100644
--- a/listing-integration-test-persistence/pom.xml
+++ b/listing-integration-test-persistence/pom.xml
@@ -3,7 +3,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -11,8 +11,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -20,18 +20,10 @@
listing-viewstore-persistence
${project.version}
-
- uk.gov.justice.services
- persistence-deltaspike
-
uk.gov.justice.utils
utilities-core
-
- javax.xml.bind
- jaxb-api
-
@@ -40,8 +32,13 @@
test
- org.junit.vintage
- junit-vintage-engine
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
test
@@ -54,50 +51,32 @@
hamcrest
test
-
- uk.gov.justice.services
- test-utils-common
- test
-
-
- uk.gov.justice.event-store
- test-utils-persistence
- test
-
uk.gov.justice.utils
- test-utils-logging-log4j
- pom
- test
-
-
- org.apache.tomee
- openejb-core
+ test-utils-core
test
- org.apache.tomee
- openejb-server
- test
-
-
- org.apache.tomee
- openejb-junit5
+ uk.gov.justice.services
+ test-utils-common
test
+
- org.apache.deltaspike.modules
- deltaspike-test-control-module-api
+ uk.gov.justice.utils
+ test-utils-hibernate
test
- org.apache.deltaspike.modules
- deltaspike-test-control-module-impl
+ org.postgresql
+ postgresql
test
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-openejb
+ uk.gov.justice.utils
+ test-utils-logging-log4j
+ pom
test
diff --git a/listing-integration-test-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/PersistenceTestsIT.java b/listing-integration-test-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/PersistenceTestsIT.java
index 4158aa7f5..1520e0030 100644
--- a/listing-integration-test-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/PersistenceTestsIT.java
+++ b/listing-integration-test-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/PersistenceTestsIT.java
@@ -3,7 +3,6 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.isJson;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withoutJsonPath;
-import static com.vladmihalcea.hibernate.type.json.internal.JacksonUtil.toJsonNode;
import static java.lang.Boolean.FALSE;
import static java.lang.Boolean.TRUE;
import static java.time.LocalDate.now;
@@ -40,7 +39,8 @@
import uk.gov.justice.listing.event.PublishCourtListType;
import uk.gov.justice.listing.events.HearingDay;
import uk.gov.justice.services.common.converter.ObjectToJsonValueConverter;
-import uk.gov.justice.services.test.utils.persistence.BaseTransactionalTest;
+import uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer;
+import uk.gov.justice.services.test.utils.persistence.HibernateTestEntityManagerProvider;
import uk.gov.moj.cpp.listing.domain.JurisdictionType;
import uk.gov.moj.cpp.listing.domain.Type;
import uk.gov.moj.cpp.listing.persistence.entity.CaseIdentifier;
@@ -73,52 +73,54 @@
import java.util.stream.IntStream;
import java.util.stream.Stream;
-import javax.inject.Inject;
-
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.Predicate;
-import com.vladmihalcea.hibernate.type.json.internal.JacksonUtil;
-import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
import org.hamcrest.Matchers;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
/*
* These repository tests needs a direct db connection and has been configured to use listingsystem .
* CdiTestRunner needs to update db according to entities in the repository and viewstore cannot be used as IT test requires them for assertions
* */
-@RunWith(CdiTestRunner.class)
-public class PersistenceTestsIT extends BaseTransactionalTest implements PersistenceTestsInt {
+public class PersistenceTestsIT implements PersistenceTestsInt {
private static final String WOFD_HEARING_TYPE_ID = "638ced9d-3f95-4e99-b27b-47fa5a2c6add";
private static final String PCB_HEARING_TYPE_ID = "3a2d160f-363b-4360-96e1-0007a400a64c";
- @Inject
- public HearingRepository hearingRepository;
+ @RegisterExtension
+ static final HibernateTestEntityManagerProvider hibernateTestEntityManagerProvider =
+ new HibernateTestEntityManagerProvider("listing-test-persistence-unit");
- @Inject
+ public HearingRepository hearingRepository;
public ObjectToJsonValueConverter objectToJsonValueConverter;
-
- @Inject
public ObjectMapper objectMapper;
-
- @Inject
public PublishedCourtListRepository publishedCourtListRepository;
-
- @Inject
NotesRepository notesRepository;
- @Before
- public void clear() {
- final List all = hearingRepository.findAll();
- all.forEach(e -> hearingRepository.remove(e));
- hearingRepository.flush();
+ @BeforeEach
+ public void createRepositoriesAndClearDatabase() {
+ hearingRepository = new HearingRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(hearingRepository);
+ publishedCourtListRepository = new PublishedCourtListRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(publishedCourtListRepository);
+ notesRepository = new NotesRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(notesRepository);
+ objectMapper = new ObjectMapperProducer().objectMapper();
+ objectToJsonValueConverter = new ObjectToJsonValueConverter(objectMapper);
+
+ // Hearing maps read-only virtual columns (hearing_date, totalcount, hearing_day_count, ...) that exist only
+ // as native-query aliases, so a JPQL "SELECT h FROM Hearing h" (findAll) selects columns that are absent from
+ // the real schema and fails. Wipe hearings and their FK-dependent child tables with a native TRUNCATE ...
+ // CASCADE on the throwaway test DB instead (rolled back per test by the provider, like every other statement).
+ hibernateTestEntityManagerProvider.getEntityManager()
+ .createNativeQuery("TRUNCATE TABLE hearing CASCADE")
+ .executeUpdate();
final List all1 = publishedCourtListRepository.findAll();
all1.forEach(e -> publishedCourtListRepository.remove(e));
@@ -1571,11 +1573,11 @@ private PublishedCourtList generateAndSave(final PublishedCourtListPrimaryKey pr
}
private JsonNode getContentOne() throws IOException {
- return new ObjectMapper().readTree(FileUtil.getPayload("test-data/courtListJson1.txt"));
+ return objectMapper.readTree(FileUtil.getPayload("test-data/courtListJson1.txt"));
}
private JsonNode getContentTwo() throws IOException {
- return new ObjectMapper().readTree(FileUtil.getPayload("test-data/courtListJson2.txt"));
+ return objectMapper.readTree(FileUtil.getPayload("test-data/courtListJson2.txt"));
}
private PublishedCourtListPrimaryKey toKey(final PublishedCourtList publishedCourtList) {
@@ -1638,13 +1640,13 @@ public void shouldFindNoteByCourtRoomAndDate() {
notesRepository.save(notes);
final List byCourtRoomCourtCentreAndDate = notesRepository.findByCourtRoomIdAndDate(courtRoomId, date);
- Assert.assertThat(byCourtRoomCourtCentreAndDate.size(), is(1));
+ assertThat(byCourtRoomCourtCentreAndDate.size(), is(1));
}
@Test
public void shouldNotFindNoteByCourtRoomCourtCentreAndDate() {
final List byCourtRoomCourtCentreAndDate = notesRepository.findByCourtRoomIdAndDate(randomUUID(), LocalDate.now());
- Assert.assertThat(byCourtRoomCourtCentreAndDate.size(), is(0));
+ assertThat(byCourtRoomCourtCentreAndDate.size(), is(0));
}
@@ -1661,8 +1663,8 @@ public void shouldFindNoteById() {
Notes optionalById = notesRepository.findOptionalById(noteId);
//Then
- Assert.assertThat(optionalById.getId(), is(noteId));
- Assert.assertThat(optionalById.getNote(), is("random note description"));
+ assertThat(optionalById.getId(), is(noteId));
+ assertThat(optionalById.getNote(), is("random note description"));
}
@Test
@@ -1677,13 +1679,13 @@ public void shouldlUpdateNoteDescription() {
//When
Notes optionalById = notesRepository.findOptionalById(noteId);
optionalById.setNote("edited note description");
- notesRepository.save(note);
+ notesRepository.save(optionalById);
Notes noteAfterChangingDescription = notesRepository.findOptionalById(noteId);
//Then
- Assert.assertThat(noteAfterChangingDescription.getNote(), is("edited note description"));
+ assertThat(noteAfterChangingDescription.getNote(), is("edited note description"));
List allNotes = notesRepository.findAll();
- Assert.assertThat(allNotes.size(), is(1));
+ assertThat(allNotes.size(), is(1));
}
@@ -2908,7 +2910,7 @@ private Hearing createHearingJson(final UUID hearingId,
.withStartDate(startDate)
.withWeekCommencingEndDate(weekCommencingEndDate)
.withWeekCommencingStartDate(weekCommencingStartDate)
- .withProperties(JacksonUtil.toJsonNode(hearingString))
+ .withProperties(toJsonNode(hearingString))
.build();
}
@@ -2958,4 +2960,15 @@ private String createHearingString(final UUID hearingId,
.replaceAll(WEEK_COMMENCING_END_FIELD, ofNullable(weekCommencingEndDate).map(LocalDate::toString).orElse(null));
}
+
+ private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER =
+ new uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer().objectMapper();
+
+ private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) {
+ try {
+ return OBJECT_MAPPER.readTree(json);
+ } catch (final java.io.IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
\ No newline at end of file
diff --git a/listing-integration-test-persistence/src/test/resources/META-INF/apache-deltaspike_test-container.properties b/listing-integration-test-persistence/src/test/resources/META-INF/apache-deltaspike_test-container.properties
deleted file mode 100644
index 05b677c60..000000000
--- a/listing-integration-test-persistence/src/test/resources/META-INF/apache-deltaspike_test-container.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-DS.listing=new://Resource?type=DataSource
-DS.listing.JdbcDriver=org.postgresql.Driver
-DS.listing.JdbcUrl=jdbc:postgresql://localhost:5432/listingsystem
-DS.listing.JtaManaged=true
-DS.listing.UserName=listing
-DS.listing.Password=listing
-listing-persistence-unit.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
-listing-persistence-unit.hibernate.hbm2ddl.auto=create-drop
-listing-persistence-unit.hibernate.show_sql=false
-tomee.jpa.factory.lazy = true
diff --git a/listing-integration-test-persistence/src/test/resources/META-INF/persistence.xml b/listing-integration-test-persistence/src/test/resources/META-INF/persistence.xml
new file mode 100644
index 000000000..d7aaf7b1d
--- /dev/null
+++ b/listing-integration-test-persistence/src/test/resources/META-INF/persistence.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+
+ uk.gov.moj.cpp.listing.persistence.entity.Hearing
+ uk.gov.moj.cpp.listing.persistence.entity.HearingDays
+ uk.gov.moj.cpp.listing.persistence.entity.ListedCases
+ uk.gov.moj.cpp.listing.persistence.entity.CourtApplications
+ uk.gov.moj.cpp.listing.persistence.entity.Defendant
+ uk.gov.moj.cpp.listing.persistence.entity.LinkedCase
+ uk.gov.moj.cpp.listing.persistence.entity.Notes
+ uk.gov.moj.cpp.listing.persistence.entity.CacheRefDataCourtroom
+ uk.gov.moj.cpp.listing.persistence.entity.query.CaseByDefendant
+ uk.gov.moj.cpp.listing.persistence.repository.courtlist.PublishedCourtList
+ uk.gov.moj.cpp.listing.persistence.repository.courtlist.CourtListPublishStatus
+ true
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/listing-integration-test/pom.xml b/listing-integration-test/pom.xml
index d04d17a7b..4439ccbd6 100644
--- a/listing-integration-test/pom.xml
+++ b/listing-integration-test/pom.xml
@@ -3,7 +3,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -155,25 +155,10 @@
openejb-server
test
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-api
- test
-
-
- org.apache.deltaspike.modules
- deltaspike-test-control-module-impl
- test
-
-
- org.apache.deltaspike.cdictrl
- deltaspike-cdictrl-openejb
- test
-
org.junit.platform
junit-platform-launcher
- 1.9.2
+ ${junit.platform.version}
test
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnallocatedHearingsEndpoint.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnallocatedHearingsEndpoint.java
index c324e4df4..b230c37b5 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnallocatedHearingsEndpoint.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnallocatedHearingsEndpoint.java
@@ -16,7 +16,7 @@
import java.time.Duration;
import java.util.UUID;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnscheduledHearingsEndpoint.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnscheduledHearingsEndpoint.java
index f74752484..902154ef9 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnscheduledHearingsEndpoint.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/endpoint/UnscheduledHearingsEndpoint.java
@@ -14,7 +14,7 @@
import java.time.Duration;
import java.util.UUID;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/helper/SearchHearingHelper.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/helper/SearchHearingHelper.java
index 0fb80fa32..83e23b5b1 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/helper/SearchHearingHelper.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/helper/SearchHearingHelper.java
@@ -2,7 +2,7 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.text.MessageFormat.format;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
import static uk.gov.justice.services.common.http.HeaderConstants.USER_ID;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/AbstractIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/AbstractIT.java
index 86b42610b..d257cf99e 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/AbstractIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/AbstractIT.java
@@ -2,12 +2,12 @@
import static com.github.tomakehurst.wiremock.client.WireMock.reset;
import static com.google.common.io.Resources.getResource;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static uk.gov.moj.cpp.listing.utils.WebDavStub.acceptCourtListXmlFile;
import static java.nio.charset.Charset.defaultCharset;
import static java.util.UUID.randomUUID;
import static java.util.stream.Collectors.joining;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static uk.gov.justice.services.common.http.HeaderConstants.USER_ID;
import static uk.gov.moj.cpp.listing.utils.CourtSchedulerServiceStub.stubCourtSchedulerCatchAll;
import static uk.gov.moj.cpp.listing.utils.CourtSchedulerServiceStub.stubDeleteAvailableHearingSlotsServiceForAnyHearing;
@@ -29,8 +29,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
import com.google.common.io.Resources;
import io.restassured.http.Header;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CacheRefDataCourtroomIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CacheRefDataCourtroomIT.java
index 547f2824a..58af55dc4 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CacheRefDataCourtroomIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CacheRefDataCourtroomIT.java
@@ -32,10 +32,10 @@
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
-import javax.json.JsonObject;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CaseLinkedIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CaseLinkedIT.java
index f30f49025..cddc6bd47 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CaseLinkedIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/CaseLinkedIT.java
@@ -35,8 +35,8 @@
import java.util.UUID;
import java.util.function.Supplier;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.awaitility.core.ConditionTimeoutException;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ExhibitScenarioIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ExhibitScenarioIT.java
index e936cd70c..ad55df06e 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ExhibitScenarioIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ExhibitScenarioIT.java
@@ -48,7 +48,7 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.google.common.collect.ImmutableMap;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/GroupCasesIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/GroupCasesIT.java
index e5b323c9e..61b48b128 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/GroupCasesIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/GroupCasesIT.java
@@ -41,8 +41,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import io.restassured.path.json.JsonPath;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCounselIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCounselIT.java
index 12d70abd8..dea3aefab 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCounselIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCounselIT.java
@@ -24,7 +24,7 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
class HearingCounselIT extends AbstractIT {
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCsvReportIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCsvReportIT.java
index 460185c5b..ca4e48d16 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCsvReportIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingCsvReportIT.java
@@ -2,7 +2,7 @@
import static java.text.MessageFormat.format;
import static java.util.Collections.emptyList;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.awaitility.Awaitility.await;
import static uk.gov.moj.cpp.listing.it.util.RestPollerHelper.POLL_INTERVAL;
@@ -40,7 +40,7 @@
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach;
@@ -140,7 +140,7 @@ void shouldDownloadHearingCsvReport() {
// getLoggedInHeader() reads a ThreadLocal user context. Awaitility evaluates the condition on a
// SEPARATE polling thread where that ThreadLocal is unset, which would make userId null and 500 the
// endpoint on every poll. Capture the header here on the test thread and reuse it inside the lambda.
- final javax.ws.rs.core.MultivaluedMap loggedInHeader = getLoggedInHeader();
+ final jakarta.ws.rs.core.MultivaluedMap loggedInHeader = getLoggedInHeader();
final AtomicReference responseRef = new AtomicReference<>();
final AtomicReference csvRef = new AtomicReference<>();
await().atMost(15, SECONDS).pollInterval(POLL_INTERVAL).until(() -> {
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingDaysIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingDaysIT.java
index fd2c85be0..a81b6d1c3 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingDaysIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingDaysIT.java
@@ -47,9 +47,9 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingIT.java
index bb5c0cb85..4e5d5cada 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingIT.java
@@ -69,8 +69,8 @@
import java.util.UUID;
import java.util.stream.IntStream;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import com.google.common.collect.Lists;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingSlotsIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingSlotsIT.java
index 5ed27b45e..e0aa41080 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingSlotsIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/HearingSlotsIT.java
@@ -3,7 +3,7 @@
import static com.github.tomakehurst.wiremock.client.WireMock.listAllStubMappings;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.lang.String.format;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
@@ -31,8 +31,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ListingNoteIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ListingNoteIT.java
index 0fd79e1d1..d5a3407c9 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ListingNoteIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ListingNoteIT.java
@@ -7,7 +7,7 @@
import static java.util.UUID.fromString;
import static java.util.UUID.randomUUID;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.awaitility.Awaitility.with;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.notNullValue;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ProsecutionCaseIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ProsecutionCaseIT.java
index c87499fbd..b3eb4eca6 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ProsecutionCaseIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/ProsecutionCaseIT.java
@@ -24,7 +24,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/PublishCourtListIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/PublishCourtListIT.java
index 5ab2fc2a8..251477ff5 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/PublishCourtListIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/PublishCourtListIT.java
@@ -44,8 +44,8 @@
import java.time.LocalTime;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RangeSearchQueryForMagistratesIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RangeSearchQueryForMagistratesIT.java
index 80017a2d0..644c29b7c 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RangeSearchQueryForMagistratesIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RangeSearchQueryForMagistratesIT.java
@@ -3,7 +3,7 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.lang.String.format;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
@@ -40,8 +40,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RestrictListFromCourtIT.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RestrictListFromCourtIT.java
index 8a2e6f1ac..89bb36c9f 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RestrictListFromCourtIT.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/RestrictListFromCourtIT.java
@@ -25,7 +25,7 @@
import java.time.LocalTime;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/util/HearingHelper.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/util/HearingHelper.java
index f8179af60..e3ac43188 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/util/HearingHelper.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/it/util/HearingHelper.java
@@ -1,7 +1,7 @@
package uk.gov.moj.cpp.listing.it.util;
import static java.text.MessageFormat.format;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static uk.gov.justice.services.test.utils.core.http.RequestParamsBuilder.requestParams;
import static uk.gov.justice.services.test.utils.core.matchers.ResponsePayloadMatcher.payload;
import static uk.gov.justice.services.test.utils.core.matchers.ResponseStatusMatcher.status;
@@ -18,8 +18,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.jayway.jsonpath.ReadContext;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/ListCourtHearingStepsSpi.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/ListCourtHearingStepsSpi.java
index 559df6c61..d5f5b7489 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/ListCourtHearingStepsSpi.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/ListCourtHearingStepsSpi.java
@@ -6,10 +6,10 @@
import org.hamcrest.Matcher;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.ws.rs.core.Response;
import java.io.IOException;
import java.time.LocalTime;
import java.util.Map;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/TestSpiScenario.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/TestSpiScenario.java
index f09d7cf1d..503f113fe 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/TestSpiScenario.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/scenario/TestSpiScenario.java
@@ -5,7 +5,7 @@
import uk.gov.moj.cpp.listing.it.AbstractIT;
import uk.gov.moj.cpp.listing.it.util.ItClock;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalTime;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/AddDefendantSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/AddDefendantSteps.java
index 6b39cbd95..780a0f4f9 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/AddDefendantSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/AddDefendantSteps.java
@@ -49,7 +49,7 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.restassured.path.json.JsonPath;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CancelHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CancelHearingSteps.java
index b7a31c476..c60c5ebc8 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CancelHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CancelHearingSteps.java
@@ -14,9 +14,9 @@
import static java.util.stream.Collectors.toList;
import static uk.gov.justice.services.messaging.JsonObjects.createArrayBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.Response.Status;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
import static uk.gov.justice.services.common.converter.LocalDates.to;
@@ -51,9 +51,9 @@
import java.util.List;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder;
import com.jayway.jsonpath.Filter;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CaseUpdatedAndDefendantProceedingsConcludedSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CaseUpdatedAndDefendantProceedingsConcludedSteps.java
index df543ec08..3bc264864 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CaseUpdatedAndDefendantProceedingsConcludedSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CaseUpdatedAndDefendantProceedingsConcludedSteps.java
@@ -20,7 +20,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.awaitility.core.ConditionTimeoutException;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtApplicationSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtApplicationSteps.java
index 771a4ef56..085a459fc 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtApplicationSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtApplicationSteps.java
@@ -57,8 +57,8 @@
import java.time.LocalDate;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.Filter;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtListSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtListSteps.java
index 77110ab94..645cf9759 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtListSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/CourtListSteps.java
@@ -3,7 +3,7 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withoutJsonPath;
import static java.text.MessageFormat.format;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
@@ -31,7 +31,7 @@
import uk.gov.moj.cpp.listing.steps.data.CourtCentreData;
import uk.gov.moj.cpp.listing.steps.data.UpdatedHearingData;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import java.util.UUID;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DefendantLegalAidStatusUpdateSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DefendantLegalAidStatusUpdateSteps.java
index a6cb28164..22214990c 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DefendantLegalAidStatusUpdateSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DefendantLegalAidStatusUpdateSteps.java
@@ -17,7 +17,7 @@
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.hamcrest.Matcher;
import org.slf4j.Logger;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DeleteCourtApplicationHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DeleteCourtApplicationHearingSteps.java
index 1b05fa89c..815e09301 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DeleteCourtApplicationHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/DeleteCourtApplicationHearingSteps.java
@@ -3,7 +3,7 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.text.MessageFormat.format;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.core.IsEqual.equalTo;
import static uk.gov.justice.services.common.http.HeaderConstants.USER_ID;
@@ -21,7 +21,7 @@
import uk.gov.moj.cpp.listing.it.AbstractIT;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class DeleteCourtApplicationHearingSteps extends AbstractIT {
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/EjectCaseApplicationSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/EjectCaseApplicationSteps.java
index bc80222da..8b22c510d 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/EjectCaseApplicationSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/EjectCaseApplicationSteps.java
@@ -5,7 +5,7 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.text.MessageFormat.format;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
@@ -37,7 +37,7 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.Filter;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/HearingAsMarkedSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/HearingAsMarkedSteps.java
index 7b7ccecfb..78bdddd45 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/HearingAsMarkedSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/HearingAsMarkedSteps.java
@@ -18,7 +18,7 @@
import uk.gov.moj.cpp.listing.steps.data.HearingData;
import uk.gov.moj.cpp.listing.utils.QueueUtil;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import io.restassured.path.json.JsonPath;
import org.slf4j.Logger;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListCourtHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListCourtHearingSteps.java
index 2b5279d91..bd2e01534 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListCourtHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListCourtHearingSteps.java
@@ -12,7 +12,7 @@
import static java.util.UUID.randomUUID;
import static uk.gov.justice.services.messaging.JsonObjects.createArrayBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
import static org.apache.http.HttpStatus.SC_ACCEPTED;
import static org.apache.http.HttpStatus.SC_FORBIDDEN;
@@ -141,11 +141,11 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.Filter;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListNextHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListNextHearingSteps.java
index c9394c1a6..2c98442cf 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListNextHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListNextHearingSteps.java
@@ -4,7 +4,7 @@
import static java.text.MessageFormat.format;
import static java.util.Collections.singletonList;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.apache.http.HttpStatus.SC_ACCEPTED;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.anyOf;
@@ -112,8 +112,8 @@
import uk.gov.justice.services.messaging.JsonObjects;
import uk.gov.moj.cpp.listing.it.util.ItClock;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.ReadContext;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnAllocatedCourtHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnAllocatedCourtHearingSteps.java
index 64961df4a..a9a15d4f8 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnAllocatedCourtHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnAllocatedCourtHearingSteps.java
@@ -60,8 +60,8 @@
import java.util.List;
import java.util.stream.Collectors;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.jayway.jsonpath.ReadContext;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnscheduledCourtHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnscheduledCourtHearingSteps.java
index b1c5b1618..6a274f5b7 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnscheduledCourtHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/ListUnscheduledCourtHearingSteps.java
@@ -61,8 +61,8 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.jayway.jsonpath.ReadContext;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/NotesSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/NotesSteps.java
index c73134fd9..2bdefc6bc 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/NotesSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/NotesSteps.java
@@ -12,8 +12,8 @@
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
public class NotesSteps extends AbstractIT {
private static final String LISTING_COMMAND_CREATE_LISTING_NOTE = "listing.command.create-listing-note";
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListCourtHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListCourtHearingSteps.java
index 3113e7874..f7a82af25 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListCourtHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListCourtHearingSteps.java
@@ -3,7 +3,7 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
import static java.lang.String.format;
import static java.util.Objects.isNull;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
@@ -34,8 +34,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListNextHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListNextHearingSteps.java
index 6d61c9b7a..daa36de76 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListNextHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedListNextHearingSteps.java
@@ -1,7 +1,7 @@
package uk.gov.moj.cpp.listing.steps;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
@@ -29,8 +29,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import org.hamcrest.core.IsEqual;
import org.slf4j.Logger;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedUpdateHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedUpdateHearingSteps.java
index 641ae0674..ffefc1e4a 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedUpdateHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PayloadBasedUpdateHearingSteps.java
@@ -4,7 +4,7 @@
import static java.lang.String.format;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.is;
@@ -38,8 +38,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PublishCourtListSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PublishCourtListSteps.java
index 408867121..1fefdd90b 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PublishCourtListSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/PublishCourtListSteps.java
@@ -4,7 +4,7 @@
import static java.text.MessageFormat.format;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.apache.http.HttpStatus.SC_ACCEPTED;
import static org.awaitility.Awaitility.await;
import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
@@ -49,9 +49,9 @@
import uk.gov.justice.services.messaging.JsonObjects;
import uk.gov.moj.cpp.listing.it.util.ItClock;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
+import jakarta.ws.rs.core.Response;
import io.restassured.path.json.JsonPath;
import org.custommonkey.xmlunit.XMLUnit;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RefDataCourtRoomCacheStep.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RefDataCourtRoomCacheStep.java
index 885c64cb7..05c9b32c2 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RefDataCourtRoomCacheStep.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RefDataCourtRoomCacheStep.java
@@ -23,9 +23,9 @@
import java.sql.SQLException;
import java.sql.Statement;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RemoveOffencesFromHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RemoveOffencesFromHearingSteps.java
index 43f3e7f0e..cdc89d33e 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RemoveOffencesFromHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RemoveOffencesFromHearingSteps.java
@@ -16,8 +16,8 @@
import java.util.List;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
import io.restassured.path.json.JsonPath;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RestrictCourtListSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RestrictCourtListSteps.java
index 8a914e82e..c024e7eee 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RestrictCourtListSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/RestrictCourtListSteps.java
@@ -30,8 +30,8 @@
import java.util.Arrays;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.Filter;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/SequenceHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/SequenceHearingSteps.java
index 3bfe32518..0d66bc25a 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/SequenceHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/SequenceHearingSteps.java
@@ -7,7 +7,7 @@
import static java.time.LocalDate.parse;
import static java.time.ZoneOffset.UTC;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -37,9 +37,9 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import com.jayway.jsonpath.Filter;
import io.restassured.path.json.JsonPath;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateCaseMarkersSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateCaseMarkersSteps.java
index 6fca86652..28737a6ee 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateCaseMarkersSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateCaseMarkersSteps.java
@@ -17,9 +17,9 @@
import java.util.UUID;
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.Json;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.hamcrest.Matcher;
import org.slf4j.Logger;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantOffencesSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantOffencesSteps.java
index 03bfb1bba..a97d8ae64 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantOffencesSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantOffencesSteps.java
@@ -4,7 +4,7 @@
import static java.text.MessageFormat.format;
import static java.util.Collections.singletonList;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.core.IsEqual.equalTo;
@@ -52,7 +52,7 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.restassured.path.json.JsonPath;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantSteps.java
index 03759b5fb..9ae680852 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateDefendantSteps.java
@@ -33,7 +33,7 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.Filter;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateHearingSteps.java
index 8f22741f4..ede56d5d9 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/UpdateHearingSteps.java
@@ -10,8 +10,8 @@
import static java.util.UUID.randomUUID;
import static uk.gov.justice.services.messaging.JsonObjects.createArrayBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.Response.Status.ACCEPTED;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.ACCEPTED;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
import static org.apache.http.HttpStatus.SC_ACCEPTED;
import static org.hamcrest.CoreMatchers.allOf;
@@ -89,11 +89,11 @@
import uk.gov.justice.services.messaging.JsonObjects;
import uk.gov.moj.cpp.listing.it.util.ItClock;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.Filter;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/VacatingTrialSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/VacatingTrialSteps.java
index 1bb64b0b7..ca3e2b213 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/VacatingTrialSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/VacatingTrialSteps.java
@@ -4,8 +4,8 @@
import static java.text.MessageFormat.format;
import static java.util.UUID.randomUUID;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.Response.Status.ACCEPTED;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.Status.ACCEPTED;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -29,8 +29,8 @@
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
public class VacatingTrialSteps extends AbstractIT {
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/WeekCommencingHearingSteps.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/WeekCommencingHearingSteps.java
index 84b8ad467..1b7f954ab 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/WeekCommencingHearingSteps.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/steps/WeekCommencingHearingSteps.java
@@ -23,7 +23,7 @@
import uk.gov.moj.cpp.listing.steps.data.CourtCentreData;
import uk.gov.moj.cpp.listing.steps.data.UpdatedHearingData;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/CourtSchedulerServiceStub.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/CourtSchedulerServiceStub.java
index bfca77eb2..91f2f00f3 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/CourtSchedulerServiceStub.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/CourtSchedulerServiceStub.java
@@ -11,12 +11,12 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
import static java.lang.String.format;
import static java.util.concurrent.TimeUnit.SECONDS;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-import static javax.ws.rs.core.Response.Status.ACCEPTED;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.NO_CONTENT;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON;
+import static jakarta.ws.rs.core.Response.Status.ACCEPTED;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.NO_CONTENT;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
import static uk.gov.moj.cpp.listing.it.util.RestPollerHelper.POLL_INTERVAL;
import static uk.gov.moj.cpp.listing.utils.FileUtil.getPayload;
@@ -34,7 +34,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.awaitility.Awaitility;
import com.github.tomakehurst.wiremock.client.VerificationException;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/DocumentGeneratorStub.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/DocumentGeneratorStub.java
index e833d3796..4a58531ca 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/DocumentGeneratorStub.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/DocumentGeneratorStub.java
@@ -6,9 +6,9 @@
import static com.github.tomakehurst.wiremock.client.WireMock.post;
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
-import static javax.ws.rs.core.Response.Status;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.Response.Status;
+import static jakarta.ws.rs.core.Response.Status.OK;
public class DocumentGeneratorStub {
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/FileUtil.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/FileUtil.java
index 2bd993f6a..46e08700d 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/FileUtil.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/FileUtil.java
@@ -13,8 +13,8 @@
import java.io.InputStream;
import java.io.UncheckedIOException;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/JsonObjectBuilderHelper.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/JsonObjectBuilderHelper.java
index e70a7c08d..586e56ee9 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/JsonObjectBuilderHelper.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/JsonObjectBuilderHelper.java
@@ -37,9 +37,9 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObjectBuilder;
public class JsonObjectBuilderHelper {
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/QueueUtil.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/QueueUtil.java
index 541a02624..05ac80d4c 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/QueueUtil.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/QueueUtil.java
@@ -11,7 +11,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.justice.services.messaging.Metadata;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import io.restassured.path.json.JsonPath;
import org.hamcrest.Matcher;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/ReferenceDataStub.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/ReferenceDataStub.java
index 10c8265a2..fbdf04283 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/ReferenceDataStub.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/ReferenceDataStub.java
@@ -27,8 +27,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WebDavStub.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WebDavStub.java
index 995891ca2..b7e5bd915 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WebDavStub.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WebDavStub.java
@@ -8,13 +8,13 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
import static java.util.Optional.ofNullable;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.MediaType.APPLICATION_XML;
+import static jakarta.ws.rs.core.MediaType.APPLICATION_XML;
import static uk.gov.moj.cpp.listing.utils.WireMockStubUtils.waitForPutStubToBeReady;
import java.util.List;
import java.util.Optional;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
import com.github.tomakehurst.wiremock.verification.LoggedRequest;
import org.apache.commons.collections.CollectionUtils;
diff --git a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WireMockStubUtils.java b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WireMockStubUtils.java
index 3668ccd21..c3b2b968d 100644
--- a/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WireMockStubUtils.java
+++ b/listing-integration-test/src/test/java/uk/gov/moj/cpp/listing/utils/WireMockStubUtils.java
@@ -14,8 +14,8 @@
import static java.util.UUID.randomUUID;
import static uk.gov.justice.services.messaging.JsonObjects.createArrayBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-import static javax.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON;
+import static jakarta.ws.rs.core.Response.Status.OK;
import static org.apache.http.HttpHeaders.CONTENT_TYPE;
import static uk.gov.justice.service.wiremock.testutil.InternalEndpointMockUtils.stubPingFor;
import static uk.gov.justice.services.common.http.HeaderConstants.ID;
@@ -24,8 +24,8 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.github.tomakehurst.wiremock.client.WireMock;
diff --git a/listing-json/pom.xml b/listing-json/pom.xml
index 9c07332c7..31d10de80 100644
--- a/listing-json/pom.xml
+++ b/listing-json/pom.xml
@@ -4,7 +4,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
listing-json
diff --git a/listing-performance-test/pom.xml b/listing-performance-test/pom.xml
index 297368b50..e40aa5f37 100644
--- a/listing-performance-test/pom.xml
+++ b/listing-performance-test/pom.xml
@@ -5,7 +5,7 @@
uk.gov.moj.cpp.listing
listing-parent
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
listing-performance-test
diff --git a/listing-query/listing-query-api/pom.xml b/listing-query/listing-query-api/pom.xml
index 25d271e48..2ec4fde67 100644
--- a/listing-query/listing-query-api/pom.xml
+++ b/listing-query/listing-query-api/pom.xml
@@ -4,7 +4,7 @@
uk.gov.moj.cpp.listing
listing-query
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
listing-query-api
@@ -21,8 +21,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
@@ -72,6 +72,12 @@
query-api
+
+
+ com.google.code.findbugs
+ jsr305
+
+
uk.gov.moj.cpp.listing
listing-viewstore-persistence
@@ -94,8 +100,8 @@
${cpp.platform-libraries.version}
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResource.java b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResource.java
index 8e9552357..deb2b141e 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResource.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResource.java
@@ -1,11 +1,11 @@
package uk.gov.justice.api.resource;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
-import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
-import static javax.ws.rs.core.Response.Status.OK;
-import static javax.ws.rs.core.Response.status;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST;
+import static jakarta.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.status;
import static uk.gov.justice.services.core.interceptor.InterceptorContext.interceptorContextWithInput;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
import static uk.gov.justice.services.messaging.JsonEnvelope.metadataBuilder;
@@ -31,13 +31,13 @@
import java.util.Optional;
import java.util.UUID;
-import javax.ejb.Stateless;
-import javax.inject.Inject;
+import jakarta.ejb.Stateless;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonValue;
+import jakarta.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResource.java b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResource.java
index f8b522f4e..7aa991581 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResource.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResource.java
@@ -17,12 +17,12 @@
import java.util.Optional;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpStatus;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingsDownloadHearingCsvReportResource.java b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingsDownloadHearingCsvReportResource.java
index 7aef9c12e..daf86958e 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingsDownloadHearingCsvReportResource.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/DefaultQueryApiHearingsDownloadHearingCsvReportResource.java
@@ -1,10 +1,10 @@
package uk.gov.justice.api.resource;
import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
-import static javax.ws.rs.core.Response.Status.OK;
-import static javax.ws.rs.core.Response.status;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.Response.Status.OK;
+import static jakarta.ws.rs.core.Response.status;
import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom;
import static uk.gov.justice.services.messaging.JsonEnvelope.metadataBuilder;
@@ -25,13 +25,13 @@
import java.io.ByteArrayInputStream;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObjectBuilder;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiCourtList.java b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiCourtList.java
index f371e449b..e72da33f7 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiCourtList.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiCourtList.java
@@ -4,12 +4,12 @@
import java.util.UUID;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Response;
@Path("courtlist")
public interface QueryApiCourtList {
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingSlotsResource.java b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingSlotsResource.java
index 832863027..7b859650c 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingSlotsResource.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingSlotsResource.java
@@ -1,10 +1,10 @@
package uk.gov.justice.api.resource;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Response;
@Path("hearingSlots")
public interface QueryApiHearingSlotsResource {
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingsDownloadHearingCsvReportResource.java b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingsDownloadHearingCsvReportResource.java
index 698d354b7..ae6af1bec 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingsDownloadHearingCsvReportResource.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/justice/api/resource/QueryApiHearingsDownloadHearingCsvReportResource.java
@@ -4,12 +4,12 @@
import java.util.UUID;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Response;
@Path("hearings/download-hearing-csv-report")
public interface QueryApiHearingsDownloadHearingCsvReportResource {
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApi.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApi.java
index ed447307a..3fde2d763 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApi.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApi.java
@@ -12,7 +12,7 @@
import java.time.Instant;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
@ServiceComponent(Component.QUERY_API)
public class CacheRefDataCourtroomApi {
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApi.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApi.java
index 1037063e1..a6c5373d3 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApi.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApi.java
@@ -41,17 +41,17 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonString;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonString;
import com.google.common.base.Strings;
-import org.checkerframework.checker.nullness.qual.NonNull;
+import javax.annotation.Nonnull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -398,7 +398,7 @@ private static JsonObject buildHearingPayloadWithUpdatedApplications(final JsonO
return hearingBuilder.build();
}
- private static @NonNull JsonObjectBuilder buildResponsePayloadWithUpdatedHearing(final JsonObject payload, final JsonArrayBuilder hearingsBuilder) {
+ private static @Nonnull JsonObjectBuilder buildResponsePayloadWithUpdatedHearing(final JsonObject payload, final JsonArrayBuilder hearingsBuilder) {
final JsonObjectBuilder payloadBuilder = JsonObjects.createObjectBuilder();
payload.forEach((key, value) -> {
if (!HEARINGS.equals(key)) {
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactory.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactory.java
index 5f1c669d2..2860abf7b 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactory.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactory.java
@@ -13,8 +13,8 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListService.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListService.java
index 8fbc37d69..cdaa0881a 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListService.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListService.java
@@ -16,7 +16,7 @@
import static org.apache.commons.lang3.StringUtils.lowerCase;
import static org.apache.commons.lang3.StringUtils.trim;
import static org.apache.commons.lang3.StringUtils.upperCase;
-import static org.drools.core.util.StringUtils.EMPTY;
+import static org.apache.commons.lang3.StringUtils.EMPTY;
import static uk.gov.moj.cpp.listing.domain.CourtApplicationPartyType.PERSON;
import static uk.gov.moj.cpp.listing.domain.utils.JsonUtils.getString;
import static uk.gov.moj.cpp.listing.domain.utils.ZonedDateTimeFormatter.adjustDateTime;
@@ -46,9 +46,9 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataService.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataService.java
index 1639581b1..bf6362fee 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataService.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataService.java
@@ -9,10 +9,10 @@
import uk.gov.justice.services.messaging.Envelope;
import uk.gov.justice.services.messaging.JsonEnvelope;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import java.util.HashMap;
import java.util.List;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClient.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClient.java
index fc566e321..65ebd37ab 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClient.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClient.java
@@ -7,9 +7,9 @@
import java.io.IOException;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssembler.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssembler.java
index 1a7806c6d..46306be50 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssembler.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssembler.java
@@ -41,11 +41,11 @@
import java.util.Optional;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapper.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapper.java
index d6f20f183..76550feb7 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapper.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapper.java
@@ -2,7 +2,7 @@
import static org.apache.commons.lang3.StringUtils.isNotBlank;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class JudiciaryNameMapper {
diff --git a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/StandardPublicCourtListTemplateAssembler.java b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/StandardPublicCourtListTemplateAssembler.java
index e4855cd44..f2bf759da 100644
--- a/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/StandardPublicCourtListTemplateAssembler.java
+++ b/listing-query/listing-query-api/src/main/java/uk/gov/moj/cpp/listing/query/document/generator/StandardPublicCourtListTemplateAssembler.java
@@ -76,12 +76,12 @@
import java.util.stream.Collectors;
import javax.annotation.Nullable;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonString;
-import javax.json.JsonValue;
-import javax.validation.constraints.NotNull;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonString;
+import jakarta.json.JsonValue;
+import jakarta.validation.constraints.NotNull;
import com.google.common.collect.ImmutableList;
import org.apache.commons.lang3.StringUtils;
diff --git a/listing-query/listing-query-api/src/main/resources/META-INF/beans.xml b/listing-query/listing-query-api/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-query/listing-query-api/src/main/resources/META-INF/beans.xml
+++ b/listing-query/listing-query-api/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResourceTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResourceTest.java
index 793fea820..f9a112904 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResourceTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiCourtlistResourceTest.java
@@ -5,8 +5,8 @@
import static java.time.LocalDate.now;
import static java.util.UUID.randomUUID;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
-import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION;
+import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE;
import static org.apache.http.HttpStatus.SC_OK;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
@@ -41,11 +41,11 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
import com.google.common.collect.ImmutableMap;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResourceTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResourceTest.java
index 53cfda050..296b67314 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResourceTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/justice/api/resource/DefaultQueryApiHearingSlotsResourceTest.java
@@ -25,9 +25,9 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.ws.rs.core.Response;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.reflect.FieldUtils;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApiTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApiTest.java
index 5fe2631ef..ce1c19ffe 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApiTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/CacheRefDataCourtroomApiTest.java
@@ -16,7 +16,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApiTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApiTest.java
index 0e143182c..435b3fa99 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApiTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/HearingQueryApiTest.java
@@ -70,10 +70,10 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
-import javax.json.JsonValue;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonValue;
import com.google.common.collect.ImmutableList;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactoryTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactoryTest.java
index 2ed8e051e..09b1f5f10 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactoryTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/courtcentre/CourtCentreFactoryTest.java
@@ -14,8 +14,8 @@
import java.io.StringReader;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListServiceTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListServiceTest.java
index 198519027..d221589b5 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListServiceTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/AlphabeticalCourtListServiceTest.java
@@ -56,9 +56,9 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.apache.commons.collections.MapUtils;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataServiceTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataServiceTest.java
index 927668fcb..b45b8fe7e 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataServiceTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/api/service/ReferenceDataServiceTest.java
@@ -22,7 +22,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClientTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClientTest.java
index d5ce7c944..785e6174c 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClientTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/DocumentGeneratorClientTest.java
@@ -14,7 +14,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssemblerTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssemblerTest.java
index 5f99262ec..ebc9c9fbf 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssemblerTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudgeListTemplateAssemblerTest.java
@@ -31,8 +31,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableMap;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapperTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapperTest.java
index 091aa1a60..6f575928c 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapperTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/JudiciaryNameMapperTest.java
@@ -5,8 +5,8 @@
import static org.hamcrest.MatcherAssert.assertThat;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/PublicCourtListAssemblerTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/PublicCourtListAssemblerTest.java
index 7451edcc0..abc6817df 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/PublicCourtListAssemblerTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/PublicCourtListAssemblerTest.java
@@ -39,8 +39,8 @@
import java.io.StringReader;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.google.common.collect.ImmutableMap;
import org.hamcrest.Matchers;
diff --git a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/StandardCourtListTemplateAssemblerTest.java b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/StandardCourtListTemplateAssemblerTest.java
index 29230b74f..a5fa34ac4 100644
--- a/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/StandardCourtListTemplateAssemblerTest.java
+++ b/listing-query/listing-query-api/src/test/java/uk/gov/moj/cpp/listing/query/document/generator/StandardCourtListTemplateAssemblerTest.java
@@ -65,11 +65,11 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonReader;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.collections.MapUtils;
diff --git a/listing-query/listing-query-view/pom.xml b/listing-query/listing-query-view/pom.xml
index f84a92207..177aa01f8 100644
--- a/listing-query/listing-query-view/pom.xml
+++ b/listing-query/listing-query-view/pom.xml
@@ -4,7 +4,7 @@
uk.gov.moj.cpp.listing
listing-query
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
listing-query-view
@@ -12,8 +12,8 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
@@ -90,8 +90,8 @@
rest-client-generator-plugin
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
${javaee-api.version}
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomView.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomView.java
index b5d36cefe..7cd56ead8 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomView.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomView.java
@@ -4,7 +4,7 @@
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.listing.query.view.service.CacheRefDataCourtroomLoader;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
public class CacheRefDataCourtroomView {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/HearingQueryView.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/HearingQueryView.java
index b287971a5..ff036a07f 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/HearingQueryView.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/HearingQueryView.java
@@ -84,14 +84,14 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.persistence.NoResultException;
-import javax.ws.rs.NotFoundException;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.persistence.NoResultException;
+import jakarta.ws.rs.NotFoundException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -352,16 +352,21 @@ public JsonEnvelope searchAllocatedAndUnallocatedHearings(final JsonEnvelope que
private void removedReViewHearings(final List hearings, final List hearingsToRemove) {
hearings.forEach(hearing -> {
- if (hearing.getListedCases() != null) {
- hearing.getListedCases().forEach(listedCase -> {
- final JsonNodeReader reader = JsonNodeReader.read(hearing.getProperties());
- if (nonNull(reader.get(TYPE))) {
- final String reviewType = reader.get(TYPE).getText("description");
- if (nonNull(hearing.getCourtApplications()) && !hearing.getCourtApplications().isEmpty() && "Review".equals(reviewType)) {
- hearingsToRemove.add(hearing);
- }
+ // Derive listed-cases / court-applications / type from the properties JSON blob instead of the entity's
+ // LAZY @OneToMany collections. Walking those collections materialises child rows whose (default-EAGER)
+ // @ManyToOne back-reference to Hearing triggers a full-column entity SELECT, which fails against the real
+ // schema because Hearing maps native-query-only virtual columns (hearing_date, totalcount, ...). This keeps
+ // the exact removal rule (>=1 listed case AND type "Review" AND >=1 court application) but never loads the
+ // Hearing entity graph. See the note in listing-viewstore-persistence META-INF/persistence.xml.
+ final JsonNode properties = hearing.getProperties();
+ if (nonNull(properties) && properties.path("listedCases").size() > 0) {
+ final JsonNodeReader reader = JsonNodeReader.read(properties);
+ if (nonNull(reader.get(TYPE))) {
+ final String reviewType = reader.get(TYPE).getText("description");
+ if (properties.path("courtApplications").size() > 0 && "Review".equals(reviewType)) {
+ hearingsToRemove.add(hearing);
}
- });
+ }
}
});
}
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverter.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverter.java
index ba4db818a..b33486261 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverter.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverter.java
@@ -10,10 +10,10 @@
import java.util.List;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonReader;
import com.fasterxml.jackson.databind.JsonNode;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQuery.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQuery.java
index 59c067506..413d9a8cd 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQuery.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQuery.java
@@ -44,7 +44,7 @@
import java.util.Set;
import java.util.UUID;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListService.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListService.java
index 7c9578639..857c53f6d 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListService.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListService.java
@@ -9,11 +9,11 @@
import java.util.List;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
@ApplicationScoped
public class CourtListService {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilder.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilder.java
index e73642917..133ea527a 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilder.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilder.java
@@ -18,11 +18,11 @@
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
-import javax.annotation.PreDestroy;
+import jakarta.annotation.PreDestroy;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
public class CourtListsBuilder {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverter.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverter.java
index cef2688a6..b1030d0ee 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverter.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverter.java
@@ -10,8 +10,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
public class FlatHearingsConverter {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtils.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtils.java
index 36d030a07..b22889730 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtils.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtils.java
@@ -5,7 +5,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class JsonPropertyUtils {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverter.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverter.java
index c25cb1706..39d7f1242 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverter.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverter.java
@@ -9,9 +9,9 @@
import java.util.List;
import java.util.UUID;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
public class RangeSearchConverter {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactory.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactory.java
index 4a1d4c52d..b2f0d44bf 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactory.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactory.java
@@ -11,10 +11,10 @@
import java.time.LocalDate;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.slf4j.Logger;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsJsonGenerator.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsJsonGenerator.java
index 32078a235..d0f162f0d 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsJsonGenerator.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsJsonGenerator.java
@@ -11,9 +11,9 @@
import java.util.List;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
public class SittingsJsonGenerator {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilder.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilder.java
index 5b8712c74..723d85900 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilder.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilder.java
@@ -18,8 +18,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CaseDetails.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CaseDetails.java
index 3e72bb8c5..53b9e7b97 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CaseDetails.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CaseDetails.java
@@ -1,7 +1,7 @@
package uk.gov.moj.cpp.listing.query.view.courtlist.pojo;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
public class CaseDetails {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CourtApplicationDetails.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CourtApplicationDetails.java
index a80c253f7..96ed763e7 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CourtApplicationDetails.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/CourtApplicationDetails.java
@@ -1,7 +1,7 @@
package uk.gov.moj.cpp.listing.query.view.courtlist.pojo;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
public class CourtApplicationDetails {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/FlatHearing.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/FlatHearing.java
index 72f4947ac..b0da4a0c6 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/FlatHearing.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/FlatHearing.java
@@ -4,8 +4,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
public class FlatHearing {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Hearing.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Hearing.java
index 1d8a3a55d..d1f2c5374 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Hearing.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Hearing.java
@@ -4,7 +4,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
public class Hearing {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Sitting.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Sitting.java
index 3580b8499..a7d203bd6 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Sitting.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/courtlist/pojo/Sitting.java
@@ -2,7 +2,7 @@
import java.util.List;
-import javax.json.JsonArray;
+import jakarta.json.JsonArray;
public class Sitting {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactory.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactory.java
index 58b04a2c0..8b745800b 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactory.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactory.java
@@ -3,9 +3,9 @@
import uk.gov.justice.services.common.configuration.Value;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
@ApplicationScoped
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilter.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilter.java
index 3e5a56c6a..158032812 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilter.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilter.java
@@ -11,11 +11,11 @@
import java.util.List;
import java.util.stream.Collectors;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
public class ApplicationTypeFilter {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCases.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCases.java
index 2ec9ab8d2..ca6ee9bd2 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCases.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCases.java
@@ -31,11 +31,11 @@
import java.util.stream.Collectors;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonReader;
-import javax.json.JsonValue;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
+import jakarta.json.JsonReader;
+import jakarta.json.JsonValue;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverter.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverter.java
index c94fddba9..e226d8fd8 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverter.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverter.java
@@ -5,8 +5,8 @@
import java.io.StringReader;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
public class HearingToJsonConverter {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollector.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollector.java
index f3ebb9145..a8e404628 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollector.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollector.java
@@ -9,9 +9,9 @@
import java.util.stream.Collector;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
public class JsonArrayCollector implements Collector {
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ListOfJsontoJsonArrayConverter.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ListOfJsontoJsonArrayConverter.java
index b4ab54723..2b1dcbee3 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ListOfJsontoJsonArrayConverter.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/hearing/ListOfJsontoJsonArrayConverter.java
@@ -3,7 +3,7 @@
import uk.gov.justice.services.common.converter.Converter;
import uk.gov.moj.cpp.listing.persistence.entity.Hearing;
-import javax.json.JsonArray;
+import jakarta.json.JsonArray;
import java.util.List;
import java.util.Map;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoader.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoader.java
index 6498c508f..4761baecc 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoader.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoader.java
@@ -21,12 +21,11 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-
-import org.apache.deltaspike.jpa.api.transaction.Transactional;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.transaction.Transactional;
@SuppressWarnings({"squid:CallToDeprecatedMethod"})
@ApplicationScoped
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/NotesService.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/NotesService.java
index 555235325..73908394d 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/NotesService.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/NotesService.java
@@ -6,8 +6,8 @@
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import uk.gov.moj.cpp.listing.common.NoteUUIDService;
import uk.gov.moj.cpp.listing.persistence.entity.Hearing;
import uk.gov.moj.cpp.listing.persistence.entity.Notes;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionService.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionService.java
index 1012b0672..1ed841f61 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionService.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionService.java
@@ -20,9 +20,9 @@
import java.util.Optional;
import java.util.UUID;
-import javax.faces.bean.ApplicationScoped;
-import javax.inject.Inject;
-import javax.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.json.JsonObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/UsersGroupsService.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/UsersGroupsService.java
index 6a4ce16a7..f25d695f8 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/UsersGroupsService.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/UsersGroupsService.java
@@ -16,10 +16,10 @@
import java.util.List;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
@ApplicationScoped
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvJsonExtractionService.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvJsonExtractionService.java
index b793c839c..c4021b874 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvJsonExtractionService.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvJsonExtractionService.java
@@ -9,7 +9,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import java.time.LocalDate;
import java.util.HashSet;
import java.util.Set;
diff --git a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportService.java b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportService.java
index 950e8400d..5df64715c 100644
--- a/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportService.java
+++ b/listing-query/listing-query-view/src/main/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportService.java
@@ -11,8 +11,8 @@
import uk.gov.moj.cpp.listing.query.view.service.csv.HearingCsvJsonExtractionService;
import uk.gov.moj.cpp.listing.persistence.repository.csv.HearingCsvRawDataRepository;
import uk.gov.moj.cpp.listing.common.progression.ProgressionNotesCache;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import uk.gov.justice.services.messaging.JsonEnvelope;
@@ -24,8 +24,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
diff --git a/listing-query/listing-query-view/src/main/resources/META-INF/beans.xml b/listing-query/listing-query-view/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-query/listing-query-view/src/main/resources/META-INF/beans.xml
+++ b/listing-query/listing-query-view/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomViewTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomViewTest.java
index 97e1c8156..760501aff 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomViewTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/CacheRefDataCourtroomViewTest.java
@@ -14,7 +14,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/HearingQueryViewTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/HearingQueryViewTest.java
index 8f5428ae8..a0d17b6ca 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/HearingQueryViewTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/HearingQueryViewTest.java
@@ -12,7 +12,6 @@
import static uk.gov.justice.services.messaging.JsonObjects.createArrayBuilder;
import static uk.gov.justice.services.messaging.JsonObjects.createObjectBuilder;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
-import static org.apache.deltaspike.core.util.ArraysUtils.asSet;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.emptyString;
@@ -98,14 +97,13 @@
import java.util.stream.Collectors;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
-import javax.ws.rs.NotFoundException;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
+import jakarta.ws.rs.NotFoundException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jayway.jsonpath.ReadContext;
-import com.vladmihalcea.hibernate.type.json.internal.JacksonUtil;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.hamcrest.Matcher;
import org.junit.jupiter.api.BeforeEach;
@@ -120,6 +118,11 @@
@ExtendWith(MockitoExtension.class)
public class HearingQueryViewTest {
+ @SafeVarargs
+ private static java.util.Set asSet(final T... values) {
+ return new java.util.HashSet<>(java.util.Arrays.asList(values));
+ }
+
private static final UUID COURT_CENTRE_ID = randomUUID();
private static final String PUBLISH_COURT_LIST_TYPES = "FIRM,FINAL";
private static final UUID COURT_ROOM_ID = randomUUID();
@@ -887,8 +890,7 @@ public void shouldSearchAllocatedAndUnallocatedHearingsWithCaseIdAndApplicationI
hearingsJson.get(0).getListedCases().add(listedCases1);
hearingsJson.get(1).getListedCases().add(listedCases2);
- final ObjectMapper objectMapper = new ObjectMapper();
- hearingsJson.get(0).setProperties(objectMapper.readTree("{\"type\":{\"description\":\"Review\"}}"));
+ hearingsJson.get(0).setProperties(OBJECT_MAPPER.readTree("{\"type\":{\"description\":\"Review\"}}"));
final UUID applicationId = UUID.randomUUID();
final JsonEnvelope query = envelopeFrom(
@@ -1312,11 +1314,11 @@ public void shouldSearchAllocatedAndUnallocatedHearingsWithCaseIdWhenOneOfApplic
final String testJsonString1 = "{ \"allocated\":\"" + true + "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
final String testJsonString2 = "{ \"allocated\":\"" + true + "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{\"id\":\"72876919-396e-4f9f-8c39-c678d7548120\"}] , \"listedCases\" : [{}] , \"type\" : {\"id\":\"bd4dab38-ea91-434b-8e73-e0d50ef0cbdf\", \"description\":\"Review\"}}";
final Hearing hearing1 = Hearing.builder().withId(randomUUID())
- .withProperties(JacksonUtil.toJsonNode(testJsonString1))
+ .withProperties(toJsonNode(testJsonString1))
.withListedCases(asSet(new ListedCases(randomUUID(), randomUUID(), null, null, null, null, null, false)))
.build();
final Hearing hearing2 = Hearing.builder().withId(randomUUID())
- .withProperties(JacksonUtil.toJsonNode(testJsonString2))
+ .withProperties(toJsonNode(testJsonString2))
.withListedCases(asSet(new ListedCases(randomUUID(), randomUUID(), null, null, null, null, null, false)))
.withCourtApplications(asSet(new CourtApplications(randomUUID(), applicationId, null, null, null, null,null, false)))
.build();
@@ -1350,11 +1352,11 @@ public void shouldSearchAllocatedAndUnallocatedHearingsWithCaseIdWhenOneOfCaseHe
final String testJsonString2 = "{ \"allocated\":\"" + true + "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] , \"type\" : {\"id\":\"bd4dab38-ea91-434b-8e73-e0d50ef0cbdf\", \"description\":\"Review\"}}";
final Hearing hearing1 = Hearing.builder().withId(randomUUID())
- .withProperties(JacksonUtil.toJsonNode(testJsonString1))
+ .withProperties(toJsonNode(testJsonString1))
.withListedCases(asSet(new ListedCases(randomUUID(), randomUUID(), null, null, null, null, null, false)))
.build();
final Hearing hearing2 = Hearing.builder().withId(randomUUID())
- .withProperties(JacksonUtil.toJsonNode(testJsonString2))
+ .withProperties(toJsonNode(testJsonString2))
.withListedCases(asSet(new ListedCases(randomUUID(), randomUUID(), null, null, null, null, null, false)))
.build();
@@ -1537,22 +1539,22 @@ private JsonEnvelope generateQuery(final JsonValue payload) {
}
private Hearing generateMinimalHearing() {
- return new Hearing(ID, JacksonUtil.toJsonNode(String.format("{ \"id\": \"%s\" }", ID.toString())));
+ return new Hearing(ID, toJsonNode(String.format("{ \"id\": \"%s\" }", ID.toString())));
}
private List hearingsJson(String allocated) {
final String testJsonString = "{ \"allocated\":\"" + allocated + "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
hearing1.setTotalCount(Long.valueOf(2));
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonString));
return newArrayList(hearing1, hearing2);
}
private List singleHearingsJson(String allocated) {
final String testJsonString = "{ \"allocated\":\"" + allocated + "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\"," +
" \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
hearing1.setTotalCount(Long.valueOf(2));
return newArrayList(hearing1);
}
@@ -1560,7 +1562,7 @@ private List singleHearingsJson(String allocated) {
private List childHearingsJson(String allocated) {
final String testJsonString = "{ \"allocated\":\"" + allocated + "\", \"startDate\": \"2020-10-10\", \"courtRoomId\": \"42481915-4d98-437b-a5dd-ace41e2ab0ea\"," +
" \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
hearing1.setTotalCount(Long.valueOf(2));
return newArrayList(hearing1);
}
@@ -1574,8 +1576,8 @@ private JsonArray hearingsJsonArray() {
private List hearingJsonForEjected() {
final String testJsonString = "{\"hearings\":[{\"id\":\"54482cb7-31aa-4c64-8656-3be6e3a4d158\",\"listedCases\":[{\"isEjected\":\"true\"}],\"courtApplications\":[{\"isEjected\":\"true\"}]}]}";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonString));
return newArrayList(hearing1, hearing2);
}
@@ -1583,12 +1585,12 @@ private List hearingJsonForEjected() {
private Hearing getHearingById() {
final String testJsonHearing = "{\"id\":\"b7b136da-7156-4391-ab0e-24e90c2bc599\",\"endDate\":\"END_DATE\",\"allocated\":false,\"startDate\":\"2020-03-17\",\"listedCases\":[{\"id\":\"523b6826-3e56-48d0-bb1b-a0209e7b9c70\",\"defendants\":[{\"id\":\"367f1f6d-f300-4e35-9a8b-92f0c81a28b5\",\"masterDefendantId\":\"d676f354-ba50-462e-bd55-4e8842d29ebd\"}],\"caseIdentifier\":{\"caseReference\":\"EEE555\"},\"restrictFromCourtList\":false,\"linkedCases\":[{\"caseId\":\"367f1f6d-f300-4e35-9a8b-92f0c81a298e\",\"caseUrn\":\"URN1\"},{\"caseId\":\"367f1f6d-f300-4e35-9a8b-92f0c81a246g\",\"caseUrn\":\"URN2\"}]}]}";
String testJson = testJsonHearing.replace("END_DATE", LocalDate.now().toString());
- return new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJson));
+ return new Hearing(randomUUID(), toJsonNode(testJson));
}
private Hearing getUnscheduledHearingById() {
final String testJsonHearing = "{\"id\":\"b7b136da-7156-4391-ab0e-24e90c2bc599\",\"allocated\":false,\"unscheduled:\":true,\"startDate\":\"2020-03-17\",\"listedCases\":[{\"id\":\"523b6826-3e56-48d0-bb1b-a0209e7b9c70\",\"defendants\":[{\"id\":\"367f1f6d-f300-4e35-9a8b-92f0c81a28b5\",\"masterDefendantId\":\"d676f354-ba50-462e-bd55-4e8842d29ebd\"}],\"caseIdentifier\":{\"caseReference\":\"EEE555\"},\"restrictFromCourtList\":false,\"linkedCases\":[{\"caseId\":\"367f1f6d-f300-4e35-9a8b-92f0c81a298e\",\"caseUrn\":\"URN1\"},{\"caseId\":\"367f1f6d-f300-4e35-9a8b-92f0c81a246g\",\"caseUrn\":\"URN2\"}]}]}";
- return new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonHearing));
+ return new Hearing(randomUUID(), toJsonNode(testJsonHearing));
}
private List createNotesList() {
@@ -1728,4 +1730,15 @@ void shouldThrowBadRequestExceptionWhenInvalidDateFormat() {
assertThat(exception.getMessage(), is("Invalid start date: " + invalidStartDate));
}
+ private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER =
+ new uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer().objectMapper();
+
+ private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) {
+ try {
+ return OBJECT_MAPPER.readTree(json);
+ } catch (final java.io.IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
}
\ No newline at end of file
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverterTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverterTest.java
index 0f2ef3aab..dac3fd890 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverterTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/PublishedCourtListToJsonConverterTest.java
@@ -14,10 +14,9 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.JsonNode;
-import com.vladmihalcea.hibernate.type.json.internal.JacksonUtil;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -30,7 +29,7 @@ public class PublishedCourtListToJsonConverterTest {
private final UUID courtCentreId = UUID.randomUUID();
private final PublishCourtListType publishCourtListType = WARN;
private final LocalDate startDate = LocalDate.now();
- private final JsonNode courtListJson = JacksonUtil.toJsonNode("{}");
+ private final JsonNode courtListJson = toJsonNode("{}");
private final ZonedDateTime lastUpdated = ZonedDateTime.now();
private final ZonedDateTime lastExported = ZonedDateTime.now();
@@ -75,4 +74,15 @@ private void assertCourtList(final JsonObject courtListJson) {
assertThat(courtListJson.getString("lastExported"), is(lastExported.toString()));
}
+ private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER =
+ new uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer().objectMapper();
+
+ private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) {
+ try {
+ return OBJECT_MAPPER.readTree(json);
+ } catch (final java.io.IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
}
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQueryTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQueryTest.java
index e04837a0a..753c63349 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQueryTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/RangeSearchQueryTest.java
@@ -52,11 +52,10 @@
import java.util.Set;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.vladmihalcea.hibernate.type.json.internal.JacksonUtil;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.hamcrest.CoreMatchers;
import org.junit.jupiter.api.BeforeEach;
@@ -155,7 +154,7 @@ public class RangeSearchQueryTest {
@BeforeEach
public void setup() throws IllegalAccessException {
- final ObjectMapper objectMapper = new ObjectMapper();
+ final ObjectMapper objectMapper = OBJECT_MAPPER;
FieldUtils.writeField(this.listToJsonArrayConverter, "mapper", objectMapper, true);
FieldUtils.writeField(this.listToJsonArrayConverter, "stringToJsonObjectConverter", stringToJsonObjectConverter, true);
FieldUtils.writeField(this.rangeSearchQuery, "listToJsonArrayConverter", listToJsonArrayConverter, true);
@@ -759,7 +758,7 @@ private List hearingsJson(String allocated) {
LocalDate today = LocalDate.now();
LocalDate tmrw = today.plusDays(1);
testJsonString = testJsonString.replace("HEARING_DATE1", today.toString()).replace("HEARING_DATE2", tmrw.toString());
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
hearing1.setAllocated(true);
hearing1.setTotalCount(Long.valueOf(2));
final HearingDays hd1 = new HearingDays();
@@ -769,7 +768,7 @@ private List hearingsJson(String allocated) {
hearing1.getHearingDays().add(hd1);
hearing1.getHearingDays().add(hd2);
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonString));
hearing2.setAllocated(true);
hearing2.getHearingDays().add(hd1);
hearing2.getHearingDays().add(hd2);
@@ -779,10 +778,10 @@ private List hearingsJson(String allocated) {
private List hearingsJson(String allocated, boolean possibleDisqualification) {
final String testJsonString = "{ \"allocated\":\"" + allocated + "\",\"isPossibleDisqualification\":" + possibleDisqualification + ", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
hearing1.setTotalCount(Long.valueOf(1));
hearing1.setAllocated(true);
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonString));
return newArrayList(hearing1, hearing2);
}
@@ -809,10 +808,10 @@ private List hearingJsonForWeekCommencing() {
"\t\t\"courtApplications\": [{\n" +
"\t\t}]\n" +
"\t}";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonStringForAllocated));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonStringForAllocated));
hearing1.setTotalCount(2L);
hearing1.setAllocated(true);
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonStringForUnallocated));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonStringForUnallocated));
hearing2.setAllocated(false);
hearing2.setTotalCount(2L);
return newArrayList(hearing1, hearing2);
@@ -844,10 +843,10 @@ private List hearingJsonForWeekCommencingAndPossibleDisqualification()
"\t\t\"courtApplications\": [{\n" +
"\t\t}]\n" +
"\t}";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonStringForAllocated));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonStringForAllocated));
hearing1.setTotalCount(1L);
hearing1.setAllocated(false);
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonStringForUnallocated));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonStringForUnallocated));
return newArrayList(hearing1, hearing2);
}
@@ -855,4 +854,15 @@ private List hearingJsonForWeekCommencingAndPossibleDisqualification()
private List createNotesList() {
return newArrayList(new Notes(UUID.randomUUID(), fromString("6e424105-55f4-4e1a-bb9e-6ffbae3f7c18"), LocalDates.from("2020-09-03"), "Note 1"));
}
+
+ private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER =
+ new uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer().objectMapper();
+
+ private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) {
+ try {
+ return OBJECT_MAPPER.readTree(json);
+ } catch (final java.io.IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListServiceTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListServiceTest.java
index 5d78844a9..565ba724b 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListServiceTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListServiceTest.java
@@ -20,8 +20,8 @@
import java.util.List;
import java.util.UUID;
-import javax.json.JsonObject;
-import javax.json.JsonValue;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonValue;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilderTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilderTest.java
index 5ee8aebd8..704b944f9 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilderTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/CourtListsBuilderTest.java
@@ -19,8 +19,8 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import uk.gov.justice.services.messaging.JsonObjects;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverterTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverterTest.java
index f637fc56d..9c8715ddc 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverterTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/FlatHearingsConverterTest.java
@@ -11,7 +11,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtilsTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtilsTest.java
index dd25e741a..bc76bc7ea 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtilsTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonPropertyUtilsTest.java
@@ -11,7 +11,7 @@
import java.util.Optional;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonUtils.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonUtils.java
index cdc55181c..7f9d87c64 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonUtils.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/JsonUtils.java
@@ -9,8 +9,8 @@
import java.io.StringReader;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
import com.google.common.io.Resources;
import org.json.JSONException;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverterTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverterTest.java
index b231ad3e4..7b4b73011 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverterTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchConverterTest.java
@@ -21,7 +21,7 @@
import java.util.stream.Stream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.BeforeEach;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactoryTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactoryTest.java
index 0ea763fa6..e2077b51d 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactoryTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/RangeSearchQueryRequestFactoryTest.java
@@ -20,7 +20,7 @@
import java.util.UUID;
import java.util.stream.Stream;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.google.common.collect.Lists;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilderTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilderTest.java
index 7dafc188a..22077912b 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilderTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/courtlist/SittingsPojoBuilderTest.java
@@ -21,9 +21,9 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
+import jakarta.json.JsonArrayBuilder;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonObjectBuilder;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactoryTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactoryTest.java
index 55a209f3d..1a64af401 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactoryTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/dto/PaginationParameterFactoryTest.java
@@ -5,7 +5,7 @@
import static org.hamcrest.Matchers.is;
import static uk.gov.justice.services.test.utils.core.reflection.ReflectionUtil.setField;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilterTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilterTest.java
index 7345340f1..ea0de27c1 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilterTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/ApplicationTypeFilterTest.java
@@ -4,7 +4,6 @@
import static java.util.Collections.emptyList;
import static java.util.Collections.emptySet;
import static java.util.UUID.randomUUID;
-import static org.apache.deltaspike.core.util.ArraysUtils.asSet;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
@@ -29,6 +28,11 @@
@ExtendWith(MockitoExtension.class)
public class ApplicationTypeFilterTest {
+ @SafeVarargs
+ private static java.util.Set asSet(final T... values) {
+ return new java.util.HashSet<>(java.util.Arrays.asList(values));
+ }
+
public static final String PERMITTED_TYPE_CODE1 = "PL84506";
public static final String PERMITTED_TYPE_CODE2 = "PL84505";
public static final String RANDOM_TYPE_CODE = "XX84500";
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCasesTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCasesTest.java
index 79c76a4d2..76e7cf421 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCasesTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingJsonListConverterFilterEjectCasesTest.java
@@ -33,8 +33,8 @@
import java.util.Map;
import java.util.UUID;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableList;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverterTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverterTest.java
index cf725d541..1709ad718 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverterTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/HearingToJsonConverterTest.java
@@ -1,7 +1,6 @@
package uk.gov.moj.cpp.listing.query.view.hearing;
import static com.jayway.jsonpath.matchers.JsonPathMatchers.withJsonPath;
-import static com.vladmihalcea.hibernate.type.json.internal.JacksonUtil.toJsonNode;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -13,7 +12,7 @@
import java.io.IOException;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
@@ -48,4 +47,15 @@ public void shouldReturnTheExpectedJsonWhenItHasProperties() throws IOException
assertThat(hearingAsJson, payloadIsJson(withJsonPath("$.size()", equalTo(17))));
assertThat(hearingAsJson, payloadIsJson(withJsonPath("$.id", equalTo("7c5e9d0c-9e28-46a9-b139-68fc0813842c"))));
}
+
+ private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER =
+ new uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer().objectMapper();
+
+ private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) {
+ try {
+ return OBJECT_MAPPER.readTree(json);
+ } catch (final java.io.IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
\ No newline at end of file
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollectorTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollectorTest.java
index c6a254b70..bf8ce994a 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollectorTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/hearing/JsonArrayCollectorTest.java
@@ -10,8 +10,8 @@
import java.util.stream.IntStream;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonArray;
-import javax.json.JsonObject;
+import jakarta.json.JsonArray;
+import jakarta.json.JsonObject;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoaderTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoaderTest.java
index 059ad6c12..89d9a64c8 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoaderTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/CacheRefDataCourtroomLoaderTest.java
@@ -16,7 +16,7 @@
import java.util.UUID;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/NotesServiceTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/NotesServiceTest.java
index 463a01b55..cfcefd578 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/NotesServiceTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/NotesServiceTest.java
@@ -22,7 +22,6 @@
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import com.vladmihalcea.hibernate.type.json.internal.JacksonUtil;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -177,23 +176,34 @@ public void shouldReturn2NotesForHearingDays(){
private List hearingsJsonWithHearingDays(String allocated) {
final String testJsonString = "{ \"allocated\":\"" + allocated+ "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{}] , \"hearingDays\": [ {\"hearingDate\":\"2020-09-03\"},{\"hearingDate\":\"2020-09-04\"}], \"listedCases\" : [{}] }";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
return newArrayList(hearing1);
}
private List hearingsJson(String allocated) {
final String testJsonString = "{ \"allocated\":\"" + allocated+ "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
final String testJsonString2 = "{ \"allocated\":\"" + allocated+ "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c19\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString2));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonString2));
return newArrayList(hearing1, hearing2);
}
private List hearingsJsonWithNullRoomId(String allocated) {
final String testJsonString = "{ \"allocated\":\"" + allocated+ "\", \"startDate\": \"2020-09-03\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
final String testJsonString2 = "{ \"allocated\":\"" + allocated+ "\", \"startDate\": \"2020-09-03\", \"courtRoomId\": \"6e424105-55f4-4e1a-bb9e-6ffbae3f7c18\", \"courtApplications\" : [{}] , \"listedCases\" : [{}] }";
- final Hearing hearing1 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString));
- final Hearing hearing2 = new Hearing(randomUUID(), JacksonUtil.toJsonNode(testJsonString2));
+ final Hearing hearing1 = new Hearing(randomUUID(), toJsonNode(testJsonString));
+ final Hearing hearing2 = new Hearing(randomUUID(), toJsonNode(testJsonString2));
return newArrayList(hearing1, hearing2);
}
+
+ private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER =
+ new uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer().objectMapper();
+
+ private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) {
+ try {
+ return OBJECT_MAPPER.readTree(json);
+ } catch (final java.io.IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionServiceTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionServiceTest.java
index d36ca2b4b..4b3bf3c3f 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionServiceTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/ProgressionServiceTest.java
@@ -26,7 +26,7 @@
import java.time.ZonedDateTime;
import java.util.UUID;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import org.hamcrest.CoreMatchers;
import org.junit.jupiter.api.Test;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportServiceTest.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportServiceTest.java
index f3d18dcf8..6bd24d60b 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportServiceTest.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/service/csv/HearingCsvReportServiceTest.java
@@ -11,7 +11,7 @@
import uk.gov.moj.cpp.listing.persistence.enums.CsvRecordType;
import uk.gov.moj.cpp.listing.common.progression.ProgressionNotesCache;
import uk.gov.justice.services.messaging.JsonObjects;
-import javax.json.JsonObject;
+import jakarta.json.JsonObject;
import uk.gov.justice.services.messaging.JsonEnvelope;
import uk.gov.moj.cpp.listing.query.view.dto.csv.HearingCsvData;
diff --git a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/utils/FileUtil.java b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/utils/FileUtil.java
index 57217567c..9dab5a85b 100644
--- a/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/utils/FileUtil.java
+++ b/listing-query/listing-query-view/src/test/java/uk/gov/moj/cpp/listing/query/view/utils/FileUtil.java
@@ -5,8 +5,8 @@
import java.io.IOException;
import java.io.InputStream;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
+import jakarta.json.JsonObject;
+import jakarta.json.JsonReader;
public class FileUtil {
diff --git a/listing-query/pom.xml b/listing-query/pom.xml
index 96c560ae7..a378e743a 100644
--- a/listing-query/pom.xml
+++ b/listing-query/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.listing
listing-parent
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/listing-service/pom.xml b/listing-service/pom.xml
index 17f0a6aa5..a0a930f44 100644
--- a/listing-service/pom.xml
+++ b/listing-service/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.listing
listing-parent
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/listing-service/src/main/resources/META-INF/beans.xml b/listing-service/src/main/resources/META-INF/beans.xml
index ce2829b7f..be7990041 100644
--- a/listing-service/src/main/resources/META-INF/beans.xml
+++ b/listing-service/src/main/resources/META-INF/beans.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/listing-viewstore/listing-viewstore-liquibase/pom.xml b/listing-viewstore/listing-viewstore-liquibase/pom.xml
index 4ea6c5082..e57c1f968 100644
--- a/listing-viewstore/listing-viewstore-liquibase/pom.xml
+++ b/listing-viewstore/listing-viewstore-liquibase/pom.xml
@@ -3,7 +3,7 @@
listing-viewstore
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/listing-viewstore/listing-viewstore-persistence/pom.xml b/listing-viewstore/listing-viewstore-persistence/pom.xml
index 9d06cd6bb..74dd83fbc 100644
--- a/listing-viewstore/listing-viewstore-persistence/pom.xml
+++ b/listing-viewstore/listing-viewstore-persistence/pom.xml
@@ -3,7 +3,7 @@
uk.gov.moj.cpp.listing
listing-viewstore
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
@@ -23,14 +23,10 @@
- javax
- javaee-api
+ jakarta.platform
+ jakarta.jakartaee-api
provided
-
- uk.gov.justice.services
- persistence-deltaspike
-
uk.gov.justice.utils
utilities-core
@@ -40,13 +36,9 @@
jaxb-api
- com.vladmihalcea
- hibernate-types-43
- ${hibernate-types-43.version}
-
-
- org.hibernate
+ org.hibernate.orm
hibernate-core
+ provided
uk.gov.moj.cpp.listing
@@ -74,5 +66,52 @@
test-utils-common
test
+
+ uk.gov.justice.utils
+ test-utils-hibernate
+ test
+
+
+ org.postgresql
+ postgresql
+ test
+
+
+
+
+
+ listing-integration-test
+
+ false
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+ integration-test
+
+ integration-test
+
+
+
+ verify
+
+ verify
+
+
+
+
+
+
+
+
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CacheRefDataCourtroom.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CacheRefDataCourtroom.java
index 0d0c722e8..af63aff2c 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CacheRefDataCourtroom.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CacheRefDataCourtroom.java
@@ -4,10 +4,10 @@
import java.util.Objects;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
@SuppressWarnings({"squid:S1948", "pmd:BeanMembersShouldSerialize", "squid:S1067"})
@Entity
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CaseIdentifier.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CaseIdentifier.java
index f35b17a09..008618016 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CaseIdentifier.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CaseIdentifier.java
@@ -4,8 +4,8 @@
import java.util.Objects;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
@SuppressWarnings("squid:S1067")
@Embeddable
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CourtApplications.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CourtApplications.java
index 03dfac781..b95e2d6ca 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CourtApplications.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/CourtApplications.java
@@ -3,13 +3,13 @@
import java.io.Serializable;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
@SuppressWarnings({"squid:S1948"})
@Entity
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Defendant.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Defendant.java
index d6450533e..94ff00687 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Defendant.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Defendant.java
@@ -2,12 +2,12 @@
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
@Entity
@Table(name = "defendant")
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Hearing.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Hearing.java
index c47c9aa38..762f710b7 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Hearing.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Hearing.java
@@ -8,36 +8,22 @@
import java.util.Set;
import java.util.UUID;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
import com.fasterxml.jackson.databind.JsonNode;
-import com.vladmihalcea.hibernate.type.json.JsonNodeBinaryType;
-import org.hibernate.annotations.Type;
-import org.hibernate.annotations.TypeDef;
-import org.hibernate.annotations.TypeDefs;
-import org.hibernate.type.PostgresUUIDType;
+import org.hibernate.annotations.JdbcTypeCode;
+import org.hibernate.type.SqlTypes;
@SuppressWarnings({"squid:S00107","squid:S2384","pmd:BeanMembersShouldSerialize"})
@Entity
@Table(name = "hearing")
-@TypeDefs({
- @TypeDef(
- name = "jsonb-node",
- typeClass = JsonNodeBinaryType.class
- ),
- @TypeDef(
- name = "pg-uuid",
- typeClass = PostgresUUIDType.class,
- defaultForType = UUID.class
- )
-})
public class Hearing implements JsonEntity {
@Id
@@ -90,13 +76,15 @@ public class Hearing implements JsonEntity {
private UUID typeOfListId;
@Column(name = "properties", columnDefinition = "jsonb")
- @Type( type = "jsonb-node" )
+ @JdbcTypeCode(SqlTypes.JSON)
private JsonNode properties;
@Column(name = "estimated_minutes")
private Integer estimatedMinutes;
- @Column(updatable = false, insertable = false)
+ // Native-query alias only ("... as totalCount"); not a real table column. Explicit lower-case name so
+ // Hibernate 6 maps the PG-lower-cased "totalcount" result label (H5 tolerated the unnamed field; H6 does not).
+ @Column(name = "totalcount", updatable = false, insertable = false)
private Long totalCount;
@Column(name = "is_possible_disqualification")
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/HearingDays.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/HearingDays.java
index 0a764c49a..d6d8a867b 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/HearingDays.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/HearingDays.java
@@ -6,12 +6,12 @@
import java.util.Objects;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
@SuppressWarnings({"squid:S1948","pmd:BeanMembersShouldSerialize","squid:S1067"})
@Entity
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/LinkedCase.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/LinkedCase.java
index 50747208c..76ba69848 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/LinkedCase.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/LinkedCase.java
@@ -3,12 +3,12 @@
import java.io.Serializable;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
@Entity
@Table(name = "linked_case")
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/ListedCases.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/ListedCases.java
index ca3c784d5..dcee4c61a 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/ListedCases.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/ListedCases.java
@@ -7,16 +7,16 @@
import java.util.Set;
import java.util.UUID;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Embedded;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embedded;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
@SuppressWarnings({"squid:S1948", "pmd:BeanMembersShouldSerialize "})
@Entity
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Notes.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Notes.java
index 575c05bf4..eae0253da 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Notes.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Notes.java
@@ -3,10 +3,10 @@
import java.time.LocalDate;
import java.util.Objects;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
import static uk.gov.justice.services.common.converter.LocalDates.to;
@Entity
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Prosecutor.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Prosecutor.java
index 21c33fce5..6f4423010 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Prosecutor.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/Prosecutor.java
@@ -4,8 +4,8 @@
import java.util.Objects;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
@SuppressWarnings("squid:S1067")
@Embeddable
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/query/CaseByDefendant.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/query/CaseByDefendant.java
index 331f2df6f..390924ff0 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/query/CaseByDefendant.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/entity/query/CaseByDefendant.java
@@ -3,11 +3,11 @@
import java.io.Serializable;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.NamedNativeQueries;
-import javax.persistence.NamedNativeQuery;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedNativeQueries;
+import jakarta.persistence.NamedNativeQuery;
@Entity(name = "CaseByDefendant")
@NamedNativeQueries({
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepository.java
index 05f2a44b5..cb9cd87c9 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepository.java
@@ -4,15 +4,29 @@
import java.util.UUID;
-import org.apache.deltaspike.data.api.EntityRepository;
-import org.apache.deltaspike.data.api.Modifying;
-import org.apache.deltaspike.data.api.Query;
-import org.apache.deltaspike.data.api.Repository;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
-@Repository
-public interface CacheRefDataCourtroomRepository extends EntityRepository {
+@ApplicationScoped
+public class CacheRefDataCourtroomRepository {
- @Modifying
- @Query("delete from CacheRefDataCourtroom")
- int deleteAll();
+ @PersistenceContext(unitName = "listing-persistence-unit")
+ EntityManager entityManager;
+
+ public CacheRefDataCourtroom findBy(final UUID id) {
+ return entityManager.find(CacheRefDataCourtroom.class, id);
+ }
+
+ public CacheRefDataCourtroom save(final CacheRefDataCourtroom entity) {
+ return entityManager.merge(entity);
+ }
+
+ public void remove(final CacheRefDataCourtroom entity) {
+ entityManager.remove(entityManager.contains(entity) ? entity : entityManager.merge(entity));
+ }
+
+ public int deleteAll() {
+ return entityManager.createQuery("delete from CacheRefDataCourtroom").executeUpdate();
+ }
}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepository.java
index 9e29f08ea..278ba458f 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepository.java
@@ -6,25 +6,30 @@
import java.util.List;
import java.util.UUID;
-import org.apache.deltaspike.data.api.AbstractEntityRepository;
-import org.apache.deltaspike.data.api.QueryParam;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
-public abstract class CaseByDefendantRepository extends AbstractEntityRepository {
+@ApplicationScoped
+public class CaseByDefendantRepository {
private static final String DEFENDANT_IDS = "defendantIds";
private static final String HEARING_DATE = "hearingDate";
private static final String CASE_IDS = "caseIds";
+ @PersistenceContext(unitName = "listing-persistence-unit")
+ EntityManager entityManager;
+
public List getCasesByDefendantAndHearingDate(
- @QueryParam(CASE_IDS) final List caseIds,
- @QueryParam(DEFENDANT_IDS) final List defendantIds,
- @QueryParam(HEARING_DATE) final LocalDate hearingDate) {
-
- return this.entityManager().createNamedQuery(
- CaseByDefendant.FIND_CASE_BY_DEFENDANT_WITH_CASE_ID, CaseByDefendant.class)
- .setParameter(DEFENDANT_IDS, defendantIds)
- .setParameter(HEARING_DATE, hearingDate)
- .setParameter(CASE_IDS, caseIds)
- .getResultList();
+ final List caseIds,
+ final List defendantIds,
+ final LocalDate hearingDate) {
+
+ return entityManager.createNamedQuery(
+ CaseByDefendant.FIND_CASE_BY_DEFENDANT_WITH_CASE_ID, CaseByDefendant.class)
+ .setParameter(DEFENDANT_IDS, defendantIds)
+ .setParameter(HEARING_DATE, hearingDate)
+ .setParameter(CASE_IDS, caseIds)
+ .getResultList();
}
-}
\ No newline at end of file
+}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepository.java
index 4631062a7..800859cf2 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepository.java
@@ -5,13 +5,21 @@
import java.util.List;
import java.util.UUID;
-import org.apache.deltaspike.data.api.EntityRepository;
-import org.apache.deltaspike.data.api.Repository;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+@ApplicationScoped
+public class CourtApplicationRepository {
-@Repository
-public interface CourtApplicationRepository extends EntityRepository {
-
- List findByParentApplicationId(UUID id);
+ @PersistenceContext(unitName = "listing-persistence-unit")
+ EntityManager entityManager;
+ public List findByParentApplicationId(final UUID id) {
+ return entityManager.createQuery(
+ "SELECT courtApplications FROM CourtApplications courtApplications WHERE courtApplications.parentApplicationId = :id",
+ CourtApplications.class)
+ .setParameter("id", id)
+ .getResultList();
+ }
}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepository.java
index 5cb8f9402..2967ce21a 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepository.java
@@ -12,14 +12,10 @@
import java.util.Set;
import java.util.UUID;
-import javax.inject.Inject;
-
-import org.apache.deltaspike.data.api.EntityManagerDelegate;
-import org.apache.deltaspike.data.api.EntityRepository;
-import org.apache.deltaspike.data.api.Query;
-import org.apache.deltaspike.data.api.QueryParam;
-import org.apache.deltaspike.data.api.Repository;
-import org.apache.deltaspike.data.api.SingleResultType;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
/**
* Repository for {@link Hearing}
@@ -44,9 +40,13 @@
*
*
*/
+// TODO(java25-upgrade): TEMPORARY STUB — DeltaSpike @Query methods not yet migrated to JPA. Do not release.
@SuppressWarnings({"squid:S00107", "squid:S1214"})
-@Repository
-public abstract class HearingRepository implements EntityRepository, EntityManagerDelegate {
+@ApplicationScoped
+public class HearingRepository {
+
+ private static final String PARAM_ALLOCATED = "allocated";
+ private static final String PARAM_COURT_CENTRE_ID = "courtCentreId";
private static final String UNALLOCATED_COMMON_SELECT_FROM = "select h.id, h.properties, " +
"h.court_centre_id, " +
@@ -69,9 +69,9 @@ public abstract class HearingRepository implements EntityRepository= ?6 and h.week_commencing_start_date <= ?7 ) or " +
" ( h.week_commencing_end_date >= ?6 and h.week_commencing_end_date <= ?7 ) or " +
@@ -87,116 +87,97 @@ public abstract class HearingRepository implements EntityRepositorynull for any courtCentreId - optional.
- * @param courtRoomId to search for or null for any courtRoomId - optional.
- * @param authorityId to search for or null for any authorityCode - optional.
- * @param hearingTypeId to search for or null for any hearingType - optional.
- * @param jurisdictionType to search for or null for any jurisdictionType -
- * optional.
- * @param searchDate to search for - mandatory.
- * @param startTime to search for - mandatory.
- * @param endTime to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = "select distinct h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.properties->>'allocated' as allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "1 as totalCount, " +
- "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h INNER JOIN hearing_days hd on hd.hearing_id = h.id " +
- "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- "where " +
- "cast(h.properties->>'allocated' as boolean) = :allocated " +
- "and (h.unscheduled is null or h.unscheduled = false) " +
- "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and (:courtCentreId is null or coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(:courtCentreId as varchar) as uuid)) " +
- "and (:courtRoomId is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(:courtRoomId as varchar) as uuid)) " +
- "and (:authorityId is null or (lc.authority_id = cast(cast(:authorityId as varchar) as uuid) or lc.prosecutor_id = cast(cast(:authorityId as varchar) as uuid))) " +
- "and (:typeId is null or h.type_id = cast(cast(:typeId as varchar) as uuid)) " +
- "and (:jurisdictionType is null or h.jurisdiction_type = cast(:jurisdictionType as text)) " +
- "and (:searchDate between h.start_date and h.end_date ) " +
- "and (hd.start_time between :startTime and :endTime) "
- , isNative = true)
- public abstract List findHearings(@QueryParam("allocated") final boolean allocated,
- @QueryParam("courtCentreId") final String courtCentreId,
- @QueryParam("courtRoomId") final String courtRoomId,
- @QueryParam("authorityId") final String authorityId,
- @QueryParam("typeId") final String hearingTypeId,
- @QueryParam("jurisdictionType") final String jurisdictionType,
- @QueryParam("searchDate") final LocalDate searchDate,
- @QueryParam("startTime") ZonedDateTime startTime,
- @QueryParam("endTime") final ZonedDateTime endTime);
-
- /**
- * Find {@link Hearing}s based on the query parameters
- *
- * @param allocated property to search for - mandatory.
- * @param courtCentreId to search for or null for any courtCentreId - optional.
- * @param courtRoomId to search for or null for any courtRoomId - optional.
- * @param authorityCode to search for or null for any authorityCode - optional.
- * @param hearingTypeId to search for or null for any hearingType - optional.
- * @param jurisdictionType to search for or null for any jurisdictionType -
- * optional.
- * @param startDate to search for - mandatory.
- * @param endDate to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = "select distinct h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "count(*) OVER() as totalCount, " +
- "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
- "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- "where " +
- "(h.allocated = ?1) " +
- "and (h.unscheduled is null or h.unscheduled = false) " +
- "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and (?2 is null or coalesce(hd.court_centre_id, h.court_centre_id) = ?2) " +
- "and (?3 is null or coalesce(hd.court_room_id, h.court_room_id) = ?3) " +
- "and (?4 is null or (lc.authority_id = ?4 or lc.prosecutor_id = ?4)) " +
- "and (?5 is null or h.type_id = ?5) " +
- "and (?6 is null or h.jurisdiction_type = ?6) " +
- "and (lc.is_ejected is null or lc.is_ejected =false) " +
- "and (ca.is_ejected is null or ca.is_ejected =false) " +
- "and ( " +
- "(h.start_date between ?7 and ?8 ) or " +
- "(h.end_date between ?7 and ?8 ) or " +
- "((h.start_date <= ?7 ) and (h.end_date >= ?8 ) ) " +
- ") " +
- " group by h.id " +
- " order by h.id, h.court_centre_id ASC OFFSET (?9) ROWS FETCH NEXT (?10) ROWS ONLY", isNative = true)
+ public Hearing findBy(final UUID id) {
+ return findByHearingId(id.toString());
+ }
+
+ public Hearing save(final Hearing hearing) {
+ // Hearing maps read-only virtual columns (hearing_date, totalCount, hearing_day_count,
+ // hearing_day_position) that exist ONLY as native-query aliases, not as real table columns.
+ // merge() would issue an existence-SELECT including those columns, which fails against the real
+ // schema. Hearing is loaded only via the native queries (managed), so a non-contained instance
+ // is treated as new and persisted. (Java 25 spike assumption — listing team to verify.)
+ if (!entityManager.contains(hearing)) {
+ entityManager.persist(hearing);
+ }
+ return hearing;
+ }
+
+ public void remove(final Hearing hearing) {
+ final Hearing managed = entityManager.contains(hearing)
+ ? hearing
+ : findByHearingId(hearing.getId().toString());
+ if (managed != null) {
+ entityManager.remove(managed);
+ }
+ }
+
+ public void flush() {
+ entityManager.flush();
+ }
+
+ public List findAll() {
+ return entityManager.createQuery("SELECT h FROM Hearing h", Hearing.class).getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearings(final boolean allocated,
+ final String courtCentreId,
+ final String courtRoomId,
+ final String authorityId,
+ final String hearingTypeId,
+ final String jurisdictionType,
+ final LocalDate searchDate,
+ ZonedDateTime startTime,
+ final ZonedDateTime endTime) {
+ return entityManager.createNativeQuery("select distinct h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.properties->>'allocated' as allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "1 as totalCount, " +
+ "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h INNER JOIN hearing_days hd on hd.hearing_id = h.id " +
+ "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ "where " +
+ "cast(h.properties->>'allocated' as boolean) = :allocated " +
+ "and (h.unscheduled is null or h.unscheduled = false) " +
+ "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ "and (cast(:courtCentreId as varchar) is null or coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(:courtCentreId as varchar) as uuid)) " +
+ "and (cast(:courtRoomId as varchar) is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(:courtRoomId as varchar) as uuid)) " +
+ "and (cast(:authorityId as varchar) is null or (lc.authority_id = cast(cast(:authorityId as varchar) as uuid) or lc.prosecutor_id = cast(cast(:authorityId as varchar) as uuid))) " +
+ "and (cast(:typeId as varchar) is null or h.type_id = cast(cast(:typeId as varchar) as uuid)) " +
+ "and (cast(:jurisdictionType as varchar) is null or h.jurisdiction_type = cast(:jurisdictionType as text)) " +
+ "and (:searchDate between h.start_date and h.end_date ) " +
+ "and (hd.start_time between :startTime and :endTime) "
+ , Hearing.class)
+ .setParameter(PARAM_ALLOCATED, allocated)
+ .setParameter(PARAM_COURT_CENTRE_ID, courtCentreId)
+ .setParameter("courtRoomId", courtRoomId)
+ .setParameter("authorityId", authorityId)
+ .setParameter("typeId", hearingTypeId)
+ .setParameter("jurisdictionType", jurisdictionType)
+ .setParameter("searchDate", searchDate)
+ .setParameter("startTime", startTime)
+ .setParameter("endTime", endTime)
+ .getResultList();
+ }
+
public List findHearings(final boolean allocated,
final UUID courtCentreId,
final UUID courtRoomId,
@@ -211,323 +192,272 @@ public List findHearings(final boolean allocated,
authorityCode, hearingTypeId, jurisdictionType, startDate, endDate, offSet, pageSize);
}
- /**
- * Find {@link Hearing}s based on the query parameters
- *
- * <<<<<<< Updated upstream
- *
- * @param allocated property to search for - mandatory.
- * @param courtCentreId to search for or null for any courtCentreId - optional.
- * @param courtRoomId to search for or null for any courtRoomId - optional.
- * @param authorityCode to search for or null for any authorityCode - optional.
- * @param hearingTypeId to search for or null for any hearingType - optional.
- * @param jurisdictionType to search for or null for any jurisdictionType -
- * optional.
- * @param startDate to search for - mandatory.
- * @param endDate to search for - mandatory.
- * @param possibleDisqualification to search for possibleDisqualification.
- * @return Hearings.
- */
- @Query(value = "select distinct h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "count(*) OVER() as totalCount, " +
- "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
- "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- "where " +
- "cast(h.allocated as varchar) = cast(?1 as varchar) " +
- "and (h.unscheduled is null or h.unscheduled = false) " +
- "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and (?2 is null or coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(?2 as varchar) as uuid)) " +
- "and (?3 is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?3 as varchar) as uuid)) " +
- "and (?4 is null or (lc.authority_id = cast(cast(?4 as varchar) as uuid) or lc.prosecutor_id = cast(cast(?4 as varchar) as uuid))) " +
- "and (?5 is null or h.type_id = cast(cast(?5 as varchar) as uuid)) " +
- "and (?6 is null or h.jurisdiction_type = cast(?6 as text)) " +
- "and (lc.is_ejected is null or lc.is_ejected =false) " +
- "and (ca.is_ejected is null or ca.is_ejected =false) " +
- "and (lc.id is not null or ca.id is not null) " +
- "and ( " +
- "(h.start_date between ?7 and ?8 ) or " +
- "(h.end_date between ?7 and ?8 ) or " +
- "((h.start_date <= ?7 ) and (h.end_date >= ?8 ) ) " +
- ") " +
- "and h.is_possible_disqualification = ?9 " +
- " group by h.id " +
- " order by h.id, h.court_centre_id ASC OFFSET (?10) ROWS FETCH NEXT (?11) ROWS ONLY", isNative = true)
- public abstract List findHearings(final String allocated,
- final String courtCentreId,
- final String courtRoomId,
- final String authorityCode,
- final String hearingTypeId,
- final String jurisdictionType,
- final LocalDate startDate,
- final LocalDate endDate,
- final boolean possibleDisqualification,
- final Integer offSet,
- final Integer pageSize);
-
- /**
- * Find {@link Hearing}s based on the query parameters
- *
- * =======
- * >>>>>>> Stashed changes
- *
- * @param hearingTypeIds to search for - mandatory.
- * @param courtCentreId to search for - mandatory.
- * @param startDate to search for - mandatory.
- * @param endDate to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = "select distinct h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "count(*) OVER() as totalCount, " +
- "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
- "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- "where " +
- "(h.unscheduled is null or h.unscheduled = false) " +
- "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and (cast(h.type_id as varchar) in (?1)) " +
- "and (?2 is null or coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(?2 as varchar) as uuid)) " +
- "and (lc.is_ejected is null or lc.is_ejected = false) " +
- "and (ca.is_ejected is null or ca.is_ejected = false) " +
- "and (lc.id is not null or ca.id is not null) " +
- "and ( " +
- "(h.start_date between ?3 and ?4) or " +
- "(h.end_date between ?3 and ?4) or " +
- "((h.start_date <= ?3) and (h.end_date >= ?4)) " +
- ") " +
- " group by h.id " +
- "order by h.id, h.court_centre_id ASC", isNative = true)
- public abstract List findHearingsForCotr(final Set hearingTypeIds, final String courtCentreId, final LocalDate startDate, final LocalDate endDate);
-
- /**
- * Find {@link Hearing}s based on the query parameters
- *
- * @param allocated property to search for - mandatory.
- * @param courtCentreId to search for or null for any courtCentreId - optional.
- * @param courtRoomId to search for or null for any courtRoomId - optional.
- * @param authorityCode to search for or null for any authorityCode - optional.
- * @param hearingTypeId to search for or null for any hearingType - optional.
- * @param jurisdictionType to search for or null for any jurisdictionType -
- * optional.
- * @param startDate to search for - mandatory.
- * @param endDate to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = "select distinct h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.properties ->>'allocated' as allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "1 as totalCount, " +
- "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
- "AND (hd.court_centre_id IS NULL OR hd.court_centre_id = cast(cast(?2 as varchar) as uuid)) " +
- "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- "where " +
- "cast(h.allocated as varchar) = cast(?1 as varchar) " +
- "and (h.unscheduled is null or h.unscheduled = false) " +
- "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and (?2 is null or h.court_centre_id = cast(cast(?2 as varchar) as uuid)) " +
- "and (?3 is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?3 as varchar) as uuid)) " +
- "and (?4 is null or (lc.authority_id = cast(cast(?4 as varchar) as uuid) or lc.prosecutor_id = cast(cast(?4 as varchar) as uuid))) " +
- "and (?5 is null or h.type_id = cast(cast(?5 as varchar) as uuid)) " +
- "and (?6 is null or h.jurisdiction_type = cast(?6 as text)) " +
- "and ( " +
- "(h.start_date between ?7 and ?8 ) or " +
- "(h.end_date between ?7 and ?8 ) or " +
- "((h.start_date <= ?7 ) and (h.end_date >= ?8 ) ) " +
- ")", isNative = true)
- public abstract List findHearings(final String allocated,
- final String courtCentreId,
- final String courtRoomId,
- final String authorityCode,
- final String hearingTypeId,
- final String jurisdictionType,
- final LocalDate startDate,
- final LocalDate endDate);
-
- /**
- * Find {@link Hearing}s based on the query parameters
- *
- * @param courtCentreId to search for or null for any courtCentreId -
- * optional.
- * @param courtRoomId to search for or null for any courtRoomId -
- * optional.
- * @param authorityCode to search for or null for any authorityCode -
- * optional.
- * @param hearingTypeId to search for or null for any hearingType -
- * optional.
- * @param jurisdictionType to search for or null for any jurisdictionType -
- * optional.
- * @param weekCommencingStartDate to search for - mandatory.
- * @param weekCommencingEndDate to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = "select h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "count(*) OVER() as totalCount, " +
- "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
- "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- "where " +
- "(h.is_vacated_trial is null or h.is_vacated_trial != true) and " +
- "(?1 is null or h.court_centre_id = cast(cast(?1 as varchar) as uuid)) " +
- "and (?2 is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?2 as varchar) as uuid)) " +
- " and (lc.is_ejected is null or lc.is_ejected =false) " +
- " and (ca.is_ejected is null or ca.is_ejected =false) " +
- " and (lc.id is not null or ca.id is not null)" +
- "and " +
- WEEK_COMMENCING_CORE_QUERY_FOR_ALLOCATED +
- " ASC OFFSET (?8) ROWS FETCH NEXT (?9) ROWS ONLY"
- , isNative = true)
- public abstract List findHearingsByWeekCommencingRange(
+ @SuppressWarnings("unchecked")
+ public List findHearings(final String allocated,
+ final String courtCentreId,
+ final String courtRoomId,
+ final String authorityCode,
+ final String hearingTypeId,
+ final String jurisdictionType,
+ final LocalDate startDate,
+ final LocalDate endDate,
+ final boolean possibleDisqualification,
+ final Integer offSet,
+ final Integer pageSize) {
+ return entityManager.createNativeQuery("select distinct h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "count(*) OVER() as totalCount, " +
+ "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h " +
+ "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
+ "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
+ "where " +
+ "cast(h.allocated as varchar) = cast(?1 as varchar) " +
+ "and (h.unscheduled is null or h.unscheduled = false) " +
+ "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ "and (cast(?2 as varchar) is null or coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(?2 as varchar) as uuid)) " +
+ "and (cast(?3 as varchar) is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?3 as varchar) as uuid)) " +
+ "and (cast(?4 as varchar) is null or (lc.authority_id = cast(cast(?4 as varchar) as uuid) or lc.prosecutor_id = cast(cast(?4 as varchar) as uuid))) " +
+ "and (cast(?5 as varchar) is null or h.type_id = cast(cast(?5 as varchar) as uuid)) " +
+ "and (cast(?6 as varchar) is null or h.jurisdiction_type = cast(?6 as text)) " +
+ "and (lc.is_ejected is null or lc.is_ejected =false) " +
+ "and (ca.is_ejected is null or ca.is_ejected =false) " +
+ "and (lc.id is not null or ca.id is not null) " +
+ "and ( " +
+ "(h.start_date between ?7 and ?8 ) or " +
+ "(h.end_date between ?7 and ?8 ) or " +
+ "((h.start_date <= ?7 ) and (h.end_date >= ?8 ) ) " +
+ ") " +
+ "and h.is_possible_disqualification = ?9 " +
+ " group by h.id " +
+ " order by h.id, h.court_centre_id ASC OFFSET (?10) ROWS FETCH NEXT (?11) ROWS ONLY", Hearing.class)
+ .setParameter(1, allocated)
+ .setParameter(2, courtCentreId)
+ .setParameter(3, courtRoomId)
+ .setParameter(4, authorityCode)
+ .setParameter(5, hearingTypeId)
+ .setParameter(6, jurisdictionType)
+ .setParameter(7, startDate)
+ .setParameter(8, endDate)
+ .setParameter(9, possibleDisqualification)
+ .setParameter(10, offSet)
+ .setParameter(11, pageSize)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearingsForCotr(final Set hearingTypeIds, final String courtCentreId, final LocalDate startDate, final LocalDate endDate) {
+ return entityManager.createNativeQuery("select distinct h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "count(*) OVER() as totalCount, " +
+ "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h " +
+ "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
+ "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
+ "where " +
+ "(h.unscheduled is null or h.unscheduled = false) " +
+ "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ "and (cast(h.type_id as varchar) in (?1)) " +
+ "and (cast(?2 as varchar) is null or coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(?2 as varchar) as uuid)) " +
+ "and (lc.is_ejected is null or lc.is_ejected = false) " +
+ "and (ca.is_ejected is null or ca.is_ejected = false) " +
+ "and (lc.id is not null or ca.id is not null) " +
+ "and ( " +
+ "(h.start_date between ?3 and ?4) or " +
+ "(h.end_date between ?3 and ?4) or " +
+ "((h.start_date <= ?3) and (h.end_date >= ?4)) " +
+ ") " +
+ " group by h.id " +
+ "order by h.id, h.court_centre_id ASC", Hearing.class)
+ .setParameter(1, hearingTypeIds)
+ .setParameter(2, courtCentreId)
+ .setParameter(3, startDate)
+ .setParameter(4, endDate)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearings(final String allocated,
+ final String courtCentreId,
+ final String courtRoomId,
+ final String authorityCode,
+ final String hearingTypeId,
+ final String jurisdictionType,
+ final LocalDate startDate,
+ final LocalDate endDate) {
+ return entityManager.createNativeQuery("select distinct h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.properties ->>'allocated' as allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "1 as totalCount, " +
+ "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h " +
+ "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
+ "AND (hd.court_centre_id IS NULL OR hd.court_centre_id = cast(cast(?2 as varchar) as uuid)) " +
+ "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ "where " +
+ "cast(h.allocated as varchar) = cast(?1 as varchar) " +
+ "and (h.unscheduled is null or h.unscheduled = false) " +
+ "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ "and (cast(?2 as varchar) is null or h.court_centre_id = cast(cast(?2 as varchar) as uuid)) " +
+ "and (cast(?3 as varchar) is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?3 as varchar) as uuid)) " +
+ "and (cast(?4 as varchar) is null or (lc.authority_id = cast(cast(?4 as varchar) as uuid) or lc.prosecutor_id = cast(cast(?4 as varchar) as uuid))) " +
+ "and (cast(?5 as varchar) is null or h.type_id = cast(cast(?5 as varchar) as uuid)) " +
+ "and (cast(?6 as varchar) is null or h.jurisdiction_type = cast(?6 as text)) " +
+ "and ( " +
+ "(h.start_date between ?7 and ?8 ) or " +
+ "(h.end_date between ?7 and ?8 ) or " +
+ "((h.start_date <= ?7 ) and (h.end_date >= ?8 ) ) " +
+ ")", Hearing.class)
+ .setParameter(1, allocated)
+ .setParameter(2, courtCentreId)
+ .setParameter(3, courtRoomId)
+ .setParameter(4, authorityCode)
+ .setParameter(5, hearingTypeId)
+ .setParameter(6, jurisdictionType)
+ .setParameter(7, startDate)
+ .setParameter(8, endDate)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearingsByWeekCommencingRange(
final String courtCentreId,
final String courtRoomId,
final String authorityCode,
final String hearingTypeId,
final String jurisdictionType,
final LocalDate weekCommencingStartDate,
- final LocalDate weekCommencingEndDate, final Integer offSet, final Integer pageSize);
+ final LocalDate weekCommencingEndDate, final Integer offSet, final Integer pageSize) {
+ return entityManager.createNativeQuery("select h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "count(*) OVER() as totalCount, " +
+ "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h " +
+ "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
+ "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
+ "where " +
+ "(h.is_vacated_trial is null or h.is_vacated_trial != true) and " +
+ "(cast(?1 as varchar) is null or h.court_centre_id = cast(cast(?1 as varchar) as uuid)) " +
+ "and (cast(?2 as varchar) is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?2 as varchar) as uuid)) " +
+ " and (lc.is_ejected is null or lc.is_ejected =false) " +
+ " and (ca.is_ejected is null or ca.is_ejected =false) " +
+ " and (lc.id is not null or ca.id is not null)" +
+ "and " +
+ WEEK_COMMENCING_CORE_QUERY_FOR_ALLOCATED +
+ " ASC OFFSET (?8) ROWS FETCH NEXT (?9) ROWS ONLY"
+ , Hearing.class)
+ .setParameter(1, courtCentreId)
+ .setParameter(2, courtRoomId)
+ .setParameter(3, authorityCode)
+ .setParameter(4, hearingTypeId)
+ .setParameter(5, jurisdictionType)
+ .setParameter(6, weekCommencingStartDate)
+ .setParameter(7, weekCommencingEndDate)
+ .setParameter(8, offSet)
+ .setParameter(9, pageSize)
+ .getResultList();
+ }
- @Query(value = "select h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "count(*) OVER() as totalCount, " +
- "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
- "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- "where " +
- "(h.is_vacated_trial is null or h.is_vacated_trial != true) and " +
- "(?1 is null or h.court_centre_id = cast(cast(?1 as varchar) as uuid)) " +
- "and (?2 is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?2 as varchar) as uuid)) " +
- " and (lc.is_ejected is null or lc.is_ejected =false) " +
- " and (ca.is_ejected is null or ca.is_ejected =false) " +
- " and (lc.id is not null or ca.id is not null)" +
- "and " +
- WEEK_COMMENCING_CORE_QUERY_FOR_ALLOCATED +
- " ASC "
- , isNative = true)
- public abstract List findHearingsByWeekCommencingRangeWithNoPagination(
+ @SuppressWarnings("unchecked")
+ public List findHearingsByWeekCommencingRangeWithNoPagination(
final String courtCentreId,
final String courtRoomId,
final String authorityCode,
final String hearingTypeId,
final String jurisdictionType,
final LocalDate weekCommencingStartDate,
- final LocalDate weekCommencingEndDate);
-
-
- /**
- * Find {@link Hearing}s based on the query parameters
- *
- * @param allocated property to search for -mandatory.
- * @param courtCentreId to search for or null for any courtCentreId -
- * optional.
- * @param courtRoomId to search for or null for any courtRoomId -
- * optional.
- * @param authorityCode to search for or null for any authorityCode -
- * optional.
- * @param hearingTypeId to search for or null for any hearingType -
- * optional.
- * @param jurisdictionType to search for or null for any jurisdictionType -
- * optional.
- * @param weekCommencingStartDate to search for - mandatory.
- * @param weekCommencingEndDate to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = UNALLOCATED_COMMON_SELECT_FROM +
- "where " +
- "(h.is_vacated_trial is null or h.is_vacated_trial != true) and " +
- "h.allocated = ?8 " +
- "and " +
- "(?1 is null or h.court_centre_id = ?1) " +
- "and (?2 is null or h.court_room_id = ?2) " +
- " and (lc.is_ejected is null or lc.is_ejected =false) " +
- " and (ca.is_ejected is null or ca.is_ejected =false) " +
- "and " +
- "(h.unscheduled is null or h.unscheduled = false)" +
- "and (?3 is null or (lc.authority_id = ?3 or lc.prosecutor_id = ?3)) " +
- "and (?4 is null or h.type_id = ?4) " +
- "and (?5 is null or h.jurisdiction_type = ?5) " +
- "and ( " +
- " ( h.week_commencing_start_date >= ?6 and h.week_commencing_start_date <= ?7 ) or " +
- " ( h.week_commencing_end_date >= ?6 and h.week_commencing_end_date <= ?7 ) or " +
- " ( h.start_date >= ?6 and h.start_date <= ?7 ) or " +
- " ( h.end_date >= ?6 and h.end_date <= ?7 ) ) " +
- "group by h.id, h.properties " +
- "order by h.start_date," +
- "h.end_date," +
- "h.week_commencing_start_date," +
- "h.week_commencing_end_date" +
- " ASC OFFSET (?9) ROWS FETCH NEXT (?10) ROWS ONLY"
- , isNative = true)
+ final LocalDate weekCommencingEndDate) {
+ return entityManager.createNativeQuery("select h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "count(*) OVER() as totalCount, " +
+ "h.is_possible_disqualification , " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h " +
+ "LEFT JOIN hearing_days hd ON hd.hearing_id = h.id " +
+ "LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ "LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
+ "where " +
+ "(h.is_vacated_trial is null or h.is_vacated_trial != true) and " +
+ "(cast(?1 as varchar) is null or h.court_centre_id = cast(cast(?1 as varchar) as uuid)) " +
+ "and (cast(?2 as varchar) is null or coalesce(hd.court_room_id, h.court_room_id) = cast(cast(?2 as varchar) as uuid)) " +
+ " and (lc.is_ejected is null or lc.is_ejected =false) " +
+ " and (ca.is_ejected is null or ca.is_ejected =false) " +
+ " and (lc.id is not null or ca.id is not null)" +
+ "and " +
+ WEEK_COMMENCING_CORE_QUERY_FOR_ALLOCATED +
+ " ASC "
+ , Hearing.class)
+ .setParameter(1, courtCentreId)
+ .setParameter(2, courtRoomId)
+ .setParameter(3, authorityCode)
+ .setParameter(4, hearingTypeId)
+ .setParameter(5, jurisdictionType)
+ .setParameter(6, weekCommencingStartDate)
+ .setParameter(7, weekCommencingEndDate)
+ .getResultList();
+ }
+
public List findUnallocatedHearingsByWeekCommencingRange(
final UUID courtCentreId,
final UUID courtRoomId,
@@ -542,41 +472,8 @@ public List findUnallocatedHearingsByWeekCommencingRange(
return hearingJdbcRepository.findUnallocatedHearingsByWeekCommencingRange(courtCentreId, courtRoomId, authorityCode, hearingTypeId, jurisdictionType, weekCommencingStartDate, weekCommencingEndDate, allocated, offSet, pageSize);
}
-
- /**
- * Find {@link Hearing}s based on the query parameters
- *
- * @param allocated property to search for -mandatory.
- * @param courtCentreId to search for or null for any courtCentreId -
- * optional.
- * @param courtRoomId to search for or null for any courtRoomId -
- * optional.
- * @param authorityCode to search for or null for any authorityCode -
- * optional.
- * @param hearingTypeId to search for or null for any hearingType -
- * optional.
- * @param jurisdictionType to search for or null for any jurisdictionType -
- * optional.
- * @param weekCommencingStartDate to search for - mandatory.
- * @param weekCommencingEndDate to search for - mandatory.
- * @param possibleDisqualification to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = UNALLOCATED_COMMON_SELECT_FROM +
- "where " +
- "(h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and h.allocated = ?8 " +
- "and h.is_possible_disqualification = ?9 " +
- "and (?1 is null or h.court_centre_id = cast(cast(?1 as varchar) as uuid)) " +
- "and (?2 is null or h.court_room_id = cast(cast(?2 as varchar) as uuid)) " +
- " and (lc.is_ejected is null or lc.is_ejected =false) " +
- " and (ca.is_ejected is null or ca.is_ejected =false) " +
- " and (lc.id is not null or ca.id is not null)" +
- "and " +
- WEEK_COMMENCING_CORE_QUERY_FOR_ALLOCATED +
- " ASC OFFSET (?10) ROWS FETCH NEXT (?11) ROWS ONLY"
- , isNative = true)
- public abstract List findUnallocatedHearingsByWeekCommencingRangeAndPossibleDisqualification(
+ @SuppressWarnings("unchecked")
+ public List findUnallocatedHearingsByWeekCommencingRangeAndPossibleDisqualification(
final String courtCentreId,
final String courtRoomId,
final String authorityCode,
@@ -586,426 +483,456 @@ public abstract List findUnallocatedHearingsByWeekCommencingRangeAndPos
final LocalDate weekCommencingEndDate,
final boolean allocated,
final boolean possibleDisqualification,
- final Integer offSet, final Integer pageSize);
-
- /**
- * Find {@link Hearing}s based on the query parameters. This query will be used by the 'Public
- * List' and the 'Standard List'
- *
- * @param allocated property to search for - mandatory.
- * @param courtCentreId to search for or null for any courtCentreId - mandatory.
- * @param startDate to search for - mandatory.
- * @param endDate to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = "with filtered_hearings as (select distinct h.id, hd.hearing_date as hearingDate, h.properties as properties from hearing h " +
- "inner join hearing_days hd on hd.hearing_id = h.id where coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(:courtCentreId as varchar) as uuid) " +
- "and cast(h.properties->>'allocated' as boolean) = :allocated and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and (h.type_id IS NULL or (" +
- "cast(h.type_id as varchar) not in (:excludedHearingTypeIds))) " +
- "and hd.hearing_date between :startDate and :endDate) " +
- "select 'd9ea61d4-2441-42bd-9089-510b1c069fb5' as id, " +
- ":courtCentreId as court_centre_id, " +
- "null as court_room_id, " +
- "null as type_id, " +
- "null as start_date, " +
- "null as end_date, " +
- "null as is_vacated_trial, " +
- "null as jurisdiction_type, " +
- "null as unscheduled, " +
- "null as week_commencing_start_date, " +
- "null as week_commencing_end_date, " +
- "null as allocated, " +
- "null as type_of_list_id, " +
- "null as totalCount, " +
- "null as estimated_minutes, " +
- "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS + ", " +
- "(select row_to_json(combinedJudiciaryAndHearings) as properties from " +
- " (select * from " +
- " (select json_agg(uniqueJudiciary) as judiciary from " +
- " (select distinct jsonb_array_elements(h.properties -> 'judiciary') ->> 'judicialId' as \"judicialId\" from filtered_hearings h) uniqueJudiciary) a, " +
- " (select json_agg(hrngByCourtCentreId) as hearings from " +
- " (select :courtCentreId as \"courtCentreId\", " +
- " (select json_agg(hbsd) as \"hearingsByCourtCentreId\" from " +
- " (select h.hearingDate as \"hearingDate\", " +
- " (select jsonb_agg(hearings) as \"hearingsByHearingDate\" from " +
- " (select distinct properties as hearing from filtered_hearings fh where fh.hearingDate = h.hearingDate) hearings) " +
- " from (select distinct hearingDate from filtered_hearings) h) " +
- " hbsd)) " +
- " hrngByCourtCentreId) b) " +
- "combinedJudiciaryAndHearings)", isNative = true)
- public abstract Hearing findHearingsForPublicStandardList(@QueryParam("allocated") final boolean allocated,
- @QueryParam("courtCentreId") final String courtCentreId,
- @QueryParam("startDate") final LocalDate startDate,
- @QueryParam("endDate") final LocalDate endDate,
- @QueryParam("excludedHearingTypeIds") final Set excludedHearingTypeIds);
-
- /**
- * Find {@link Hearing}s based on the query parameters. This query will be used by the
- * 'Alphabetical List'
- *
- * @param allocated property to search for - mandatory.
- * @param courtCentreId to search for or null for any courtCentreId - mandatory.
- * @param hearingDate to search for - mandatory.
- * @return Hearings.
- */
- @Query(value = "with filtered_hearings as (select distinct h.id, hd.hearing_date as hearingDate, h.properties as properties from hearing h " +
- "inner join hearing_days hd on hd.hearing_id = h.id " +
- "where ((hd.court_centre_id = cast(cast(:courtCentreId as varchar) as uuid)) " +
- "or (hd.court_centre_id is null " +
- "and h.court_centre_id = cast(cast(:courtCentreId as varchar) as uuid))) " +
- "and cast(h.properties->>'allocated' as boolean) = :allocated " +
- "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- "and (h.type_id IS NULL or (cast(h.type_id as varchar) not in (:excludedHearingTypeIds))) " +
- "and hd.hearing_date = :hearingDate) " +
- "select 'd9ea61d4-2441-42bd-9089-510b1c069fb5' as id, " +
- ":courtCentreId as court_centre_id, " +
- "null as court_room_id, " +
- "null as type_id, " +
- "null as start_date, " +
- "null as end_date, " +
- "null as is_vacated_trial, " +
- "null as jurisdiction_type, " +
- "null as unscheduled, " +
- "null as week_commencing_start_date, " +
- "null as week_commencing_end_date, " +
- "null as allocated, " +
- "null as type_of_list_id, " +
- "null as totalCount, " +
- "null as estimated_minutes, " +
- "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS + ", " +
- "(select jsonb_agg(hrngByCourtCentreId) as \"properties\" from " +
- "(select h.hearingDate as \"hearingDate\", " +
- "(select jsonb_agg(hearings) as \"hearingsByHearingDate\" from " +
- "(select distinct properties as hearing from filtered_hearings fh " +
- "where fh.hearingDate = h.hearingDate) hearings) from " +
- "(select distinct filtered_hearings.hearingDate from filtered_hearings) h) " +
- "hrngByCourtCentreId)", isNative = true)
- public abstract List findHearingsForAlphabeticalList(@QueryParam("allocated") final boolean allocated,
- @QueryParam("courtCentreId") final String courtCentreId,
- @QueryParam("hearingDate") final LocalDate hearingDate,
- @QueryParam("excludedHearingTypeIds") final Set excludedHearingTypeIds);
-
-
- @Query(value = "select distinct h.id, properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "count(*) OVER() as totalCount, " +
- "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
- " from hearing h " +
- " LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- " where (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- " and h.allocated = false " +
- " and h.unscheduled = true " +
- " and ( (lc.hearing_id is null and ?1 is null ) or (?1 is null or UPPER(lc.case_reference) = cast(?1 as varchar)) " +
- " or (?1 is null or UPPER(ca.application_reference) = cast(?1 as varchar)) " +
- " ) " +
- " and (?2 is null" +
- " or h.type_of_list_id = cast(cast(?2 as varchar) as uuid))" +
- " and (lc.id is not null or ca.id is not null) " +
- " and (lc.is_ejected is null or lc.is_ejected =false) " +
- " and (ca.is_ejected is null or ca.is_ejected =false) " +
- " group by h.id " +
- " order by h.id, h.court_centre_id ASC OFFSET (?3) ROWS FETCH NEXT (?4) ROWS ONLY"
- , isNative = true)
- public abstract List findHearings(String caseUrn, String typeOfList, Integer offSet, Integer pageSize);
-
- /**
- * Find {@link Hearing}s based on the following parameters
- *
- * @param allocated property to search for - mandatory.
- * @param jurisdictionTypes to search for or null for any jurisdictionTypes.
- * @param hearingId property to search for - mandatory.
- * @param caseUrnSet to search for or empty string for any case urn.
- * @param masterDefendantIdSet to search for or empty string for any master
- * defendant id.
- * @param linkedCaseUrn to search for or empty string for any linked case
- * urn.
- * @param caseUrnForLinkedCases to search for or empty string for any linked case
- * urn.
- * @return Hearings.
- */
- @Query(value = "select h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "1 as totalCount, " +
- "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "where " +
- "h.allocated = :allocated " +
- "and (h.unscheduled is null or h.unscheduled = false) " +
- "and (h.jurisdiction_type in (:jurisdictionTypes)) " +
- "and (h.end_date is null OR h.end_date >= :currentDate) " +
- "and (:hearingId is null or h.id != cast(cast(:hearingId as varchar) as uuid)) " +
- "AND " +
- "(h.id in (select distinct h.id from hearing h " +
- " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:caseUrnSet) " +
- " and (:hearingId is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
- "OR " +
- "(h.id in (SELECT distinct(hrng.id) FROM hearing hrng inner join listed_cases lc3 on lc3.hearing_id = hrng.id " +
- " WHERE lc3.case_reference IN (select lnkCase.case_urn as linkedCaseUrn from hearing h2 " +
- " inner join listed_cases listCase on listCase.hearing_id = h2.id " +
- " inner join linked_case lnkCase on lnkCase.listed_case_id = listCase.id " +
- " where listCase.case_reference = cast(:caseUrnForLinkedCases as text)))) " +
- "OR " +
- " (h.id in (select distinct h5.id from " +
- "hearing h5 inner join listed_cases lc6 on lc6.hearing_id = h5.id where " +
- "lc6.case_id in (select distinct lc5.case_id from hearing h4 inner join listed_cases lc5 on lc5.hearing_id = h4.id " +
- "inner join defendant d on d.listed_case_id = lc5.id where cast(d.master_defendant_id as varchar) in (:masterDefendantIdSet)) " +
- " and (:hearingId is null or h5.id != cast(cast(:hearingId as varchar) as uuid))) " +
- "OR " +
- "(h.id in (select distinct h.id from hearing h " +
- " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:linkedCaseUrn) " +
- " and (:hearingId is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
- ")))"
- , isNative = true)
- public abstract List findHearings(@QueryParam("allocated") final boolean allocated,
- @QueryParam("jurisdictionTypes") final Set jurisdictionTypes,
- @QueryParam("hearingId") final String hearingId,
- @QueryParam("caseUrnSet") final Set caseUrnSet,
- @QueryParam("masterDefendantIdSet") final Set masterDefendantIdSet,
- @QueryParam("linkedCaseUrn") final Set linkedCaseUrn,
- @QueryParam("caseUrnForLinkedCases") final String caseUrnForLinkedCases,
- @QueryParam("currentDate") final LocalDate currentDate);
-
-
- /**
- * Find {@link Hearing}s based on the following parameters
- *
- * @param jurisdictionTypes to search for or null for any jurisdictionTypes.
- * @param hearingId property to search for - mandatory.
- * @param caseUrnSet to search for or empty string for any case urn.
- * @param masterDefendantIdSet to search for or empty string for any master
- * defendant id.
- * @param linkedCaseUrn to search for or empty string for any linked case
- * urn.
- * @param caseUrnForLinkedCases to search for or empty string for any linked case
- * urn.
- * @return Hearings.
- */
- @Query(value = "select h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "1 as totalCount, " +
- "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
- "from hearing h " +
- "where (h.unscheduled is null or h.unscheduled = false) " +
- "and (h.jurisdiction_type in (:jurisdictionTypes)) " +
- "and (h.end_date is null OR h.end_date >= :currentDate) " +
- "and (:hearingId is null or h.id != cast(cast(:hearingId as varchar) as uuid)) " +
- "AND " +
- "(h.id in (select distinct h.id from hearing h " +
- " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:caseUrnSet) " +
- " and (:hearingId is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
- "OR " +
- "(h.id in (SELECT distinct(hrng.id) FROM hearing hrng inner join listed_cases lc3 on lc3.hearing_id = hrng.id " +
- " WHERE lc3.case_reference IN (select lnkCase.case_urn as linkedCaseUrn from hearing h2 " +
- " inner join listed_cases listCase on listCase.hearing_id = h2.id " +
- " inner join linked_case lnkCase on lnkCase.listed_case_id = listCase.id " +
- " where listCase.case_reference = cast(:caseUrnForLinkedCases as text)))) " +
- "OR " +
- " (h.id in (select distinct h5.id from " +
- "hearing h5 inner join listed_cases lc6 on lc6.hearing_id = h5.id where " +
- "lc6.case_id in (select distinct lc5.case_id from hearing h4 inner join listed_cases lc5 on lc5.hearing_id = h4.id " +
- "inner join defendant d on d.listed_case_id = lc5.id where cast(d.master_defendant_id as varchar) in (:masterDefendantIdSet)) " +
- " and (:hearingId is null or h5.id != cast(cast(:hearingId as varchar) as uuid))) " +
- "OR " +
- "(h.id in (select distinct h.id from hearing h " +
- " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:linkedCaseUrn) " +
- " and (:hearingId is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
- ")))"
- , isNative = true)
- public abstract List findHearings(@QueryParam("jurisdictionTypes") final Set jurisdictionTypes,
- @QueryParam("hearingId") final String hearingId,
- @QueryParam("caseUrnSet") final Set caseUrnSet,
- @QueryParam("masterDefendantIdSet") final Set masterDefendantIdSet,
- @QueryParam("linkedCaseUrn") final Set linkedCaseUrn,
- @QueryParam("caseUrnForLinkedCases") final String caseUrnForLinkedCases,
- @QueryParam("currentDate") final LocalDate currentDate);
-
- /**
- * @param caseUrn
- * @return
- */
- @Query(value = "select h.id, " +
- "h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "1 as totalCount, " +
- "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
- " from hearing h " +
- " where h.unscheduled is not true " +
- " and (h.start_date >= :startdate or h.week_commencing_start_date >= :startdate) " +
- " and ( " +
- " exists (select 1 from listed_cases lc where lc.hearing_id = h.id and lc.case_reference = :caseorapplicationreference) " +
- " or exists (select 1 from court_applications ca where ca.hearing_id = h.id and ca.application_reference = :caseorapplicationreference) " +
- " )"
- , isNative = true)
- public abstract List findHearingsByCaseUrnAndAnyAllocationState(@QueryParam("caseorapplicationreference") String caseUrn,
- @QueryParam("startdate") LocalDate startDate);
-
- /**
- * @param caseUrn
- * @param typeOfList
- * @param courtCentreIds
- * @return
- */
- @Query(value = "select distinct h.id, h.properties, " +
- "h.court_centre_id, " +
- "h.court_room_id, " +
- "h.type_id, " +
- "h.start_date, " +
- "h.end_date, " +
- "h.is_vacated_trial, " +
- "h.jurisdiction_type, " +
- "h.unscheduled, " +
- "h.week_commencing_start_date, " +
- "h.week_commencing_end_date, " +
- "h.allocated, " +
- "h.type_of_list_id, " +
- "h.estimated_minutes, " +
- "count(*) OVER() as totalCount, " +
- "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
- " from hearing h" +
- " LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- " where (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
- " and h.allocated = false " +
- " and h.unscheduled = true " +
- " and ( (lc.hearing_id is null and ?1 is null ) or (?1 is null or UPPER(lc.case_reference) = cast(?1 as varchar)) " +
- " or (?1 is null or UPPER(ca.application_reference) = cast(?1 as varchar)) " +
- " ) " +
- " and (?2 is null" +
- " or h.type_of_list_id = cast(cast(?2 as varchar) as uuid))" +
- " and cast(h.court_centre_id as varchar) in (?3)" +
- " and (lc.id is not null or ca.id is not null) " +
- " and (lc.is_ejected is null or lc.is_ejected =false) " +
- " and (ca.is_ejected is null or ca.is_ejected =false) " +
- " group by h.id " +
- " order by h.id, h.court_centre_id ASC OFFSET (?4) ROWS FETCH NEXT (?5) ROWS ONLY"
- , isNative = true)
- public abstract List findHearings(String caseUrn, String typeOfList, Set courtCentreIds, Integer offSet, Integer pageSize);
-
- /**
- * @param caseId
- * @return
- */
- @Query(value = "select id, properties," +
- "null as court_centre_id, " +
- "null as court_room_id, " +
- "null as type_id, " +
- "null as start_date, " +
- "null as end_date, " +
- "null as is_vacated_trial, " +
- "null as jurisdiction_type, " +
- "null as unscheduled, " +
- "null as week_commencing_start_date, " +
- "null as week_commencing_end_date, " +
- "null as allocated, " +
- "null as type_of_list_id, " +
- "null as totalCount, " +
- "null as estimated_minutes, " +
- "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
- " from ( " +
- " select distinct h.id as id, h.properties as properties, h.start_date as startDate, h.end_date as endDate " +
- " from hearing h " +
- " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- " where ((h.allocated is null or h.allocated = false) or (h.allocated = true and (h.unscheduled is null or h.unscheduled = false))) " +
- " and (?1 is null or lc.case_id = cast(cast(?1 as varchar) as uuid)) " +
- " ) as all_hearing " +
- " order by all_hearing.startDate desc, all_hearing.endDate desc "
- , isNative = true)
- public abstract List findAllocatedAndUnallocatedHearingsByCaseId(String caseId);
-
-
- /**
- * @param caseId
- * @param applicationId
- * @return
- */
- @Query(value = "select id, properties," +
- "null as court_centre_id, " +
- "null as court_room_id, " +
- "null as type_id, " +
- "null as start_date, " +
- "null as end_date, " +
- "null as is_vacated_trial, " +
- "null as jurisdiction_type, " +
- "null as unscheduled, " +
- "null as week_commencing_start_date, " +
- "null as week_commencing_end_date, " +
- "null as allocated, " +
- "null as type_of_list_id, " +
- "null as totalCount, " +
- "null as estimated_minutes, " +
- "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
- " from ( " +
- " select distinct h.id as id, h.properties as properties, h.start_date as startDate, h.end_date as endDate " +
- " from hearing h " +
- " LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
- " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
- " where ((h.allocated is null or h.allocated = false) or (h.allocated = true and (h.unscheduled is null or h.unscheduled = false))) " +
- " and (?1 is null or lc.case_id = cast(cast(?1 as varchar) as uuid)) " +
- " and (?2 is null or ca.application_id = cast(cast(?2 as varchar) as uuid)) " +
- " ) as all_hearing " +
- " order by all_hearing.startDate desc, all_hearing.endDate desc "
- , isNative = true)
- public abstract List findAllocatedAndUnallocatedHearingsByCaseId(String caseId, String applicationId);
-
- @Query(value = "select *, 1 as totalCount , " + NULL_FLAT_HEARING_FIELDS + " from hearing where id = cast(cast(?1 as varchar) as uuid)", isNative = true, singleResult = SingleResultType.ANY)
- abstract Hearing findByHearingId(final String hearingId);
-
- public Hearing findBy(final UUID hearingId) {
- return findByHearingId(hearingId.toString());
+ final Integer offSet, final Integer pageSize) {
+ return entityManager.createNativeQuery(UNALLOCATED_COMMON_SELECT_FROM +
+ "where " +
+ "(h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ "and h.allocated = ?8 " +
+ "and h.is_possible_disqualification = ?9 " +
+ "and (cast(?1 as varchar) is null or h.court_centre_id = cast(cast(?1 as varchar) as uuid)) " +
+ "and (cast(?2 as varchar) is null or h.court_room_id = cast(cast(?2 as varchar) as uuid)) " +
+ " and (lc.is_ejected is null or lc.is_ejected =false) " +
+ " and (ca.is_ejected is null or ca.is_ejected =false) " +
+ " and (lc.id is not null or ca.id is not null)" +
+ "and " +
+ WEEK_COMMENCING_CORE_QUERY_FOR_ALLOCATED +
+ " ASC OFFSET (?10) ROWS FETCH NEXT (?11) ROWS ONLY"
+ , Hearing.class)
+ .setParameter(1, courtCentreId)
+ .setParameter(2, courtRoomId)
+ .setParameter(3, authorityCode)
+ .setParameter(4, hearingTypeId)
+ .setParameter(5, jurisdictionType)
+ .setParameter(6, weekCommencingStartDate)
+ .setParameter(7, weekCommencingEndDate)
+ .setParameter(8, allocated)
+ .setParameter(9, possibleDisqualification)
+ .setParameter(10, offSet)
+ .setParameter(11, pageSize)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public Hearing findHearingsForPublicStandardList(final boolean allocated,
+ final String courtCentreId,
+ final LocalDate startDate,
+ final LocalDate endDate,
+ final Set excludedHearingTypeIds) {
+ final List results = entityManager.createNativeQuery("with filtered_hearings as (select distinct h.id, hd.hearing_date as hearingDate, h.properties as properties from hearing h " +
+ "inner join hearing_days hd on hd.hearing_id = h.id where coalesce(hd.court_centre_id, h.court_centre_id) = cast(cast(:courtCentreId as varchar) as uuid) " +
+ "and cast(h.properties->>'allocated' as boolean) = :allocated and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ "and (h.type_id IS NULL or (" +
+ "cast(h.type_id as varchar) not in (:excludedHearingTypeIds))) " +
+ "and hd.hearing_date between :startDate and :endDate) " +
+ "select cast('d9ea61d4-2441-42bd-9089-510b1c069fb5' as uuid) as id, " +
+ "cast(cast(:courtCentreId as varchar) as uuid) as court_centre_id, " +
+ "null as court_room_id, " +
+ "null as type_id, " +
+ "null as start_date, " +
+ "null as end_date, " +
+ "null as is_vacated_trial, " +
+ "null as jurisdiction_type, " +
+ "null as unscheduled, " +
+ "null as week_commencing_start_date, " +
+ "null as week_commencing_end_date, " +
+ "null as allocated, " +
+ "null as type_of_list_id, " +
+ "null as totalCount, " +
+ "null as estimated_minutes, " +
+ "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS + ", " +
+ "(select row_to_json(combinedJudiciaryAndHearings) as properties from " +
+ " (select * from " +
+ " (select json_agg(uniqueJudiciary) as judiciary from " +
+ " (select distinct jsonb_array_elements(h.properties -> 'judiciary') ->> 'judicialId' as \"judicialId\" from filtered_hearings h) uniqueJudiciary) a, " +
+ " (select json_agg(hrngByCourtCentreId) as hearings from " +
+ " (select :courtCentreId as \"courtCentreId\", " +
+ " (select json_agg(hbsd) as \"hearingsByCourtCentreId\" from " +
+ " (select h.hearingDate as \"hearingDate\", " +
+ " (select jsonb_agg(hearings) as \"hearingsByHearingDate\" from " +
+ " (select distinct properties as hearing from filtered_hearings fh where fh.hearingDate = h.hearingDate) hearings) " +
+ " from (select distinct hearingDate from filtered_hearings) h) " +
+ " hbsd)) " +
+ " hrngByCourtCentreId) b) " +
+ "combinedJudiciaryAndHearings)", Hearing.class)
+ .setParameter(PARAM_ALLOCATED, allocated)
+ .setParameter(PARAM_COURT_CENTRE_ID, courtCentreId)
+ .setParameter("startDate", startDate)
+ .setParameter("endDate", endDate)
+ .setParameter("excludedHearingTypeIds", excludedHearingTypeIds)
+ .getResultList();
+ return results.isEmpty() ? null : results.get(0);
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearingsForAlphabeticalList(final boolean allocated,
+ final String courtCentreId,
+ final LocalDate hearingDate,
+ final Set excludedHearingTypeIds) {
+ return entityManager.createNativeQuery("with filtered_hearings as (select distinct h.id, hd.hearing_date as hearingDate, h.properties as properties from hearing h " +
+ "inner join hearing_days hd on hd.hearing_id = h.id " +
+ "where ((hd.court_centre_id = cast(cast(:courtCentreId as varchar) as uuid)) " +
+ "or (hd.court_centre_id is null " +
+ "and h.court_centre_id = cast(cast(:courtCentreId as varchar) as uuid))) " +
+ "and cast(h.properties->>'allocated' as boolean) = :allocated " +
+ "and (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ "and (h.type_id IS NULL or (cast(h.type_id as varchar) not in (:excludedHearingTypeIds))) " +
+ "and hd.hearing_date = :hearingDate) " +
+ "select cast('d9ea61d4-2441-42bd-9089-510b1c069fb5' as uuid) as id, " +
+ "cast(cast(:courtCentreId as varchar) as uuid) as court_centre_id, " +
+ "null as court_room_id, " +
+ "null as type_id, " +
+ "null as start_date, " +
+ "null as end_date, " +
+ "null as is_vacated_trial, " +
+ "null as jurisdiction_type, " +
+ "null as unscheduled, " +
+ "null as week_commencing_start_date, " +
+ "null as week_commencing_end_date, " +
+ "null as allocated, " +
+ "null as type_of_list_id, " +
+ "null as totalCount, " +
+ "null as estimated_minutes, " +
+ "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS + ", " +
+ "(select jsonb_agg(hrngByCourtCentreId) as \"properties\" from " +
+ "(select h.hearingDate as \"hearingDate\", " +
+ "(select jsonb_agg(hearings) as \"hearingsByHearingDate\" from " +
+ "(select distinct properties as hearing from filtered_hearings fh " +
+ "where fh.hearingDate = h.hearingDate) hearings) from " +
+ "(select distinct filtered_hearings.hearingDate from filtered_hearings) h) " +
+ "hrngByCourtCentreId)", Hearing.class)
+ .setParameter(PARAM_ALLOCATED, allocated)
+ .setParameter(PARAM_COURT_CENTRE_ID, courtCentreId)
+ .setParameter("hearingDate", hearingDate)
+ .setParameter("excludedHearingTypeIds", excludedHearingTypeIds)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearings(String caseUrn, String typeOfList, Integer offSet, Integer pageSize) {
+ return entityManager.createNativeQuery("select distinct h.id, properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "count(*) OVER() as totalCount, " +
+ "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
+ " from hearing h " +
+ " LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
+ " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ " where (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ " and h.allocated = false " +
+ " and h.unscheduled = true " +
+ " and ( (lc.hearing_id is null and cast(?1 as varchar) is null ) or (cast(?1 as varchar) is null or UPPER(lc.case_reference) = cast(?1 as varchar)) " +
+ " or (cast(?1 as varchar) is null or UPPER(ca.application_reference) = cast(?1 as varchar)) " +
+ " ) " +
+ " and (cast(?2 as varchar) is null" +
+ " or h.type_of_list_id = cast(cast(?2 as varchar) as uuid))" +
+ " and (lc.id is not null or ca.id is not null) " +
+ " and (lc.is_ejected is null or lc.is_ejected =false) " +
+ " and (ca.is_ejected is null or ca.is_ejected =false) " +
+ " group by h.id " +
+ " order by h.id, h.court_centre_id ASC OFFSET (?3) ROWS FETCH NEXT (?4) ROWS ONLY"
+ , Hearing.class)
+ .setParameter(1, caseUrn)
+ .setParameter(2, typeOfList)
+ .setParameter(3, offSet)
+ .setParameter(4, pageSize)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearings(final boolean allocated,
+ final Set jurisdictionTypes,
+ final String hearingId,
+ final Set caseUrnSet,
+ final Set masterDefendantIdSet,
+ final Set linkedCaseUrn,
+ final String caseUrnForLinkedCases,
+ final LocalDate currentDate) {
+ return entityManager.createNativeQuery("select h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "1 as totalCount, " +
+ "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h " +
+ "where " +
+ "h.allocated = :allocated " +
+ "and (h.unscheduled is null or h.unscheduled = false) " +
+ "and (h.jurisdiction_type in (:jurisdictionTypes)) " +
+ "and (h.end_date is null OR h.end_date >= :currentDate) " +
+ "and (cast(:hearingId as varchar) is null or h.id != cast(cast(:hearingId as varchar) as uuid)) " +
+ "AND " +
+ "(h.id in (select distinct h.id from hearing h " +
+ " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:caseUrnSet) " +
+ " and (cast(:hearingId as varchar) is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
+ "OR " +
+ "(h.id in (SELECT distinct(hrng.id) FROM hearing hrng inner join listed_cases lc3 on lc3.hearing_id = hrng.id " +
+ " WHERE lc3.case_reference IN (select lnkCase.case_urn as linkedCaseUrn from hearing h2 " +
+ " inner join listed_cases listCase on listCase.hearing_id = h2.id " +
+ " inner join linked_case lnkCase on lnkCase.listed_case_id = listCase.id " +
+ " where listCase.case_reference " + "= cast(:caseUrnForLinkedCases as text)))) " +
+ "OR " +
+ " (h.id in (select distinct h5.id from " +
+ "hearing h5 inner join listed_cases lc6 on lc6.hearing_id = h5.id where " +
+ "lc6.case_id in (select distinct lc5.case_id from hearing h4 inner join listed_cases lc5 on lc5.hearing_id = h4.id " +
+ "inner join defendant d on d.listed_case_id = lc5.id where cast(d.master_defendant_id as varchar) in (:masterDefendantIdSet)) " +
+ " and (cast(:hearingId as varchar) is null or h5.id != cast(cast(:hearingId as varchar) as uuid))) " +
+ "OR " +
+ "(h.id in (select distinct h.id from hearing h " +
+ " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:linkedCaseUrn) " +
+ " and (cast(:hearingId as varchar) is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
+ ")))"
+ , Hearing.class)
+ .setParameter(PARAM_ALLOCATED, allocated)
+ .setParameter("jurisdictionTypes", jurisdictionTypes)
+ .setParameter("hearingId", hearingId)
+ .setParameter("caseUrnSet", caseUrnSet)
+ .setParameter("masterDefendantIdSet", masterDefendantIdSet)
+ .setParameter("linkedCaseUrn", linkedCaseUrn)
+ .setParameter("caseUrnForLinkedCases", caseUrnForLinkedCases)
+ .setParameter("currentDate", currentDate)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearings(final Set jurisdictionTypes,
+ final String hearingId,
+ final Set caseUrnSet,
+ final Set masterDefendantIdSet,
+ final Set linkedCaseUrn,
+ final String caseUrnForLinkedCases,
+ final LocalDate currentDate) {
+ return entityManager.createNativeQuery("select h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "1 as totalCount, " +
+ "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
+ "from hearing h " +
+ "where (h.unscheduled is null or h.unscheduled = false) " +
+ "and (h.jurisdiction_type in (:jurisdictionTypes)) " +
+ "and (h.end_date is null OR h.end_date >= :currentDate) " +
+ "and (cast(:hearingId as varchar) is null or h.id != cast(cast(:hearingId as varchar) as uuid)) " +
+ "AND " +
+ "(h.id in (select distinct h.id from hearing h " +
+ " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:caseUrnSet) " +
+ " and (cast(:hearingId as varchar) is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
+ "OR " +
+ "(h.id in (SELECT distinct(hrng.id) FROM hearing hrng inner join listed_cases lc3 on lc3.hearing_id = hrng.id " +
+ " WHERE lc3.case_reference IN (select lnkCase.case_urn as linkedCaseUrn from hearing h2 " +
+ " inner join listed_cases listCase on listCase.hearing_id = h2.id " +
+ " inner join linked_case lnkCase on lnkCase.listed_case_id = listCase.id " +
+ " where listCase.case_reference " + "= cast(:caseUrnForLinkedCases as text)))) " +
+ "OR " +
+ " (h.id in (select distinct h5.id from " +
+ "hearing h5 inner join listed_cases lc6 on lc6.hearing_id = h5.id where " +
+ "lc6.case_id in (select distinct lc5.case_id from hearing h4 inner join listed_cases lc5 on lc5.hearing_id = h4.id " +
+ "inner join defendant d on d.listed_case_id = lc5.id where cast(d.master_defendant_id as varchar) in (:masterDefendantIdSet)) " +
+ " and (cast(:hearingId as varchar) is null or h5.id != cast(cast(:hearingId as varchar) as uuid))) " +
+ "OR " +
+ "(h.id in (select distinct h.id from hearing h " +
+ " inner join listed_cases lc on lc.hearing_id = h.id where UPPER(lc.case_reference) in (:linkedCaseUrn) " +
+ " and (cast(:hearingId as varchar) is null or h.id != cast(cast(:hearingId as varchar) as uuid))) " +
+ ")))"
+ , Hearing.class)
+ .setParameter("jurisdictionTypes", jurisdictionTypes)
+ .setParameter("hearingId", hearingId)
+ .setParameter("caseUrnSet", caseUrnSet)
+ .setParameter("masterDefendantIdSet", masterDefendantIdSet)
+ .setParameter("linkedCaseUrn", linkedCaseUrn)
+ .setParameter("caseUrnForLinkedCases", caseUrnForLinkedCases)
+ .setParameter("currentDate", currentDate)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearingsByCaseUrnAndAnyAllocationState(String caseUrn, LocalDate startDate) {
+ return entityManager.createNativeQuery("select h.id, " +
+ "h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "1 as totalCount, " +
+ "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
+ " from hearing h " +
+ " where h.unscheduled is not true " +
+ " and (h.start_date >= :startdate or h.week_commencing_start_date >= :startdate) " +
+ " and ( " +
+ " exists (select 1 from listed_cases lc where lc.hearing_id = h.id and lc.case_reference " + "= :caseorapplicationreference) " +
+ " or exists (select 1 from court_applications ca where ca.hearing_id = h.id and ca.application_reference = :caseorapplicationreference) " +
+ " )"
+ , Hearing.class)
+ .setParameter("caseorapplicationreference", caseUrn)
+ .setParameter("startdate", startDate)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findHearings(String caseUrn, String typeOfList, Set courtCentreIds, Integer offSet, Integer pageSize) {
+ return entityManager.createNativeQuery("select distinct h.id, h.properties, " +
+ "h.court_centre_id, " +
+ "h.court_room_id, " +
+ "h.type_id, " +
+ "h.start_date, " +
+ "h.end_date, " +
+ "h.is_vacated_trial, " +
+ "h.jurisdiction_type, " +
+ "h.unscheduled, " +
+ "h.week_commencing_start_date, " +
+ "h.week_commencing_end_date, " +
+ "h.allocated, " +
+ "h.type_of_list_id, " +
+ "h.estimated_minutes, " +
+ "count(*) OVER() as totalCount, " +
+ "h.is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
+ " from hearing h" +
+ " LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
+ " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ " where (h.is_vacated_trial is null or h.is_vacated_trial != true) " +
+ " and h.allocated = false " +
+ " and h.unscheduled = true " +
+ " and ( (lc.hearing_id is null and cast(?1 as varchar) is null ) or (cast(?1 as varchar) is null or UPPER(lc.case_reference) = cast(?1 as varchar)) " +
+ " or (cast(?1 as varchar) is null or UPPER(ca.application_reference) = cast(?1 as varchar)) " +
+ " ) " +
+ " and (cast(?2 as varchar) is null" +
+ " or h.type_of_list_id = cast(cast(?2 as varchar) as uuid))" +
+ " and cast(h.court_centre_id as varchar) in (?3)" +
+ " and (lc.id is not null or ca.id is not null) " +
+ " and (lc.is_ejected is null or lc.is_ejected =false) " +
+ " and (ca.is_ejected is null or ca.is_ejected =false) " +
+ " group by h.id " +
+ " order by h.id, h.court_centre_id ASC OFFSET (?4) ROWS FETCH NEXT (?5) ROWS ONLY"
+ , Hearing.class)
+ .setParameter(1, caseUrn)
+ .setParameter(2, typeOfList)
+ .setParameter(3, courtCentreIds)
+ .setParameter(4, offSet)
+ .setParameter(5, pageSize)
+ .getResultList();
}
- @Query(value = "select h.*, 0 as totalCount , " + NULL_FLAT_HEARING_FIELDS + " FROM hearing h where h.id in (:hearingIds)", isNative = true)
- public abstract List findAllCourtSchedulerHearingByIds(@QueryParam("hearingIds") final List hearingIds);
+ @SuppressWarnings("unchecked")
+ public List findAllocatedAndUnallocatedHearingsByCaseId(String caseId) {
+ return entityManager.createNativeQuery("select id, properties," +
+ "null as court_centre_id, " +
+ "null as court_room_id, " +
+ "null as type_id, " +
+ "null as start_date, " +
+ "null as end_date, " +
+ "null as is_vacated_trial, " +
+ "null as jurisdiction_type, " +
+ "null as unscheduled, " +
+ "null as week_commencing_start_date, " +
+ "null as week_commencing_end_date, " +
+ "null as allocated, " +
+ "null as type_of_list_id, " +
+ "null as totalCount, " +
+ "null as estimated_minutes, " +
+ "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
+ " from ( " +
+ " select distinct h.id as id, h.properties as properties, h.start_date as startDate, h.end_date as endDate " +
+ " from hearing h " +
+ " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ " where ((h.allocated is null or h.allocated = false) or (h.allocated = true and (h.unscheduled is null or h.unscheduled = false))) " +
+ " and (cast(?1 as varchar) is null or lc.case_id = cast(cast(?1 as varchar) as uuid)) " +
+ " ) as all_hearing " +
+ " order by all_hearing.startDate desc, all_hearing.endDate desc "
+ , Hearing.class)
+ .setParameter(1, caseId)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findAllocatedAndUnallocatedHearingsByCaseId(String caseId, String applicationId) {
+ return entityManager.createNativeQuery("select id, properties," +
+ "null as court_centre_id, " +
+ "null as court_room_id, " +
+ "null as type_id, " +
+ "null as start_date, " +
+ "null as end_date, " +
+ "null as is_vacated_trial, " +
+ "null as jurisdiction_type, " +
+ "null as unscheduled, " +
+ "null as week_commencing_start_date, " +
+ "null as week_commencing_end_date, " +
+ "null as allocated, " +
+ "null as type_of_list_id, " +
+ "null as totalCount, " +
+ "null as estimated_minutes, " +
+ "null as is_possible_disqualification, " + NULL_FLAT_HEARING_FIELDS +
+ " from ( " +
+ " select distinct h.id as id, h.properties as properties, h.start_date as startDate, h.end_date as endDate " +
+ " from hearing h " +
+ " LEFT JOIN court_applications ca ON ca.hearing_id = h.id " +
+ " LEFT JOIN listed_cases lc ON lc.hearing_id = h.id " +
+ " where ((h.allocated is null or h.allocated = false) or (h.allocated = true and (h.unscheduled is null or h.unscheduled = false))) " +
+ " and (cast(?1 as varchar) is null or lc.case_id = cast(cast(?1 as varchar) as uuid)) " +
+ " and (cast(?2 as varchar) is null or ca.application_id = cast(cast(?2 as varchar) as uuid)) " +
+ " ) as all_hearing " +
+ " order by all_hearing.startDate desc, all_hearing.endDate desc "
+ , Hearing.class)
+ .setParameter(1, caseId)
+ .setParameter(2, applicationId)
+ .getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
+ Hearing findByHearingId(final String hearingId) {
+ final List results = entityManager.createNativeQuery(
+ "select *, 1 as totalCount , " + NULL_FLAT_HEARING_FIELDS
+ + " from hearing where id = cast(cast(?1 as varchar) as uuid)",
+ Hearing.class)
+ .setParameter(1, hearingId)
+ .getResultList();
+ return results.isEmpty() ? null : results.get(0);
+ }
+
+ @SuppressWarnings("unchecked")
+ public List findAllCourtSchedulerHearingByIds(final List hearingIds) {
+ return entityManager.createNativeQuery("select h.*, 0 as totalCount , " + NULL_FLAT_HEARING_FIELDS + " FROM hearing h where h.id in (:hearingIds)", Hearing.class)
+ .setParameter("hearingIds", hearingIds)
+ .getResultList();
+ }
public List findAllocatedHearingsForCourtCalendar(final UUID courtCentreId,
final UUID courtRoomId,
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepository.java
index ac5719fed..d68e053bc 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepository.java
@@ -6,19 +6,54 @@
import java.util.List;
import java.util.UUID;
-import org.apache.deltaspike.data.api.EntityRepository;
-import org.apache.deltaspike.data.api.Query;
-import org.apache.deltaspike.data.api.QueryParam;
-import org.apache.deltaspike.data.api.Repository;
-
-@Repository
-public interface NotesRepository extends EntityRepository {
-
- @Query(value = "select notes from Notes notes where notes.id IN (:ids) ")
- List findNotes(@QueryParam("ids") final List idList);
-
- List findByCourtRoomIdAndDate(final UUID courtRoomId, final LocalDate date);
-
- Notes findOptionalById(final UUID noteId);
-
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+
+@ApplicationScoped
+public class NotesRepository {
+
+ @PersistenceContext(unitName = "listing-persistence-unit")
+ EntityManager entityManager;
+
+ public Notes save(final Notes notes) {
+ return entityManager.merge(notes);
+ }
+
+ public Notes findBy(final UUID id) {
+ return entityManager.find(Notes.class, id);
+ }
+
+ public Notes findOptionalById(final UUID noteId) {
+ return entityManager.find(Notes.class, noteId);
+ }
+
+ public List findAll() {
+ return entityManager.createQuery("SELECT notes FROM Notes notes", Notes.class)
+ .getResultList();
+ }
+
+ public void remove(final Notes notes) {
+ entityManager.remove(entityManager.contains(notes) ? notes : entityManager.merge(notes));
+ }
+
+ public void flush() {
+ entityManager.flush();
+ }
+
+ public List findNotes(final List idList) {
+ return entityManager.createQuery(
+ "select notes from Notes notes where notes.id IN (:ids) ", Notes.class)
+ .setParameter("ids", idList)
+ .getResultList();
+ }
+
+ public List findByCourtRoomIdAndDate(final UUID courtRoomId, final LocalDate date) {
+ return entityManager.createQuery(
+ "SELECT notes FROM Notes notes WHERE notes.courtRoomId = :courtRoomId AND notes.date = :date",
+ Notes.class)
+ .setParameter("courtRoomId", courtRoomId)
+ .setParameter("date", date)
+ .getResultList();
+ }
}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatus.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatus.java
index 7e69a6016..96943f308 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatus.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatus.java
@@ -1,7 +1,7 @@
package uk.gov.moj.cpp.listing.persistence.repository.courtlist;
-import static javax.persistence.EnumType.STRING;
+import static jakarta.persistence.EnumType.STRING;
import uk.gov.justice.listing.event.PublishCourtListType;
import uk.gov.justice.listing.event.PublishStatus;
@@ -11,11 +11,11 @@
import java.time.ZonedDateTime;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Enumerated;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
@Entity
@Table(name = "court_list_publish_status")
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatusJdbcRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatusJdbcRepository.java
index d9cd8f9c1..97d316f9f 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatusJdbcRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/CourtListPublishStatusJdbcRepository.java
@@ -21,9 +21,9 @@
import java.util.Set;
import java.util.UUID;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import javax.sql.DataSource;
@ApplicationScoped
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/HearingJdbcRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/HearingJdbcRepository.java
index 5d9c3587b..0b8d14afe 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/HearingJdbcRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/HearingJdbcRepository.java
@@ -16,9 +16,9 @@
import java.util.Objects;
import java.util.UUID;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import javax.sql.DataSource;
import org.apache.commons.lang3.StringUtils;
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtList.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtList.java
index 5e30793c3..ea28ef9a9 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtList.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtList.java
@@ -1,6 +1,6 @@
package uk.gov.moj.cpp.listing.persistence.repository.courtlist;
-import static javax.persistence.EnumType.STRING;
+import static jakarta.persistence.EnumType.STRING;
import uk.gov.justice.listing.event.PublishCourtListType;
@@ -8,15 +8,16 @@
import java.time.ZonedDateTime;
import java.util.UUID;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Enumerated;
-import javax.persistence.Id;
-import javax.persistence.IdClass;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.Id;
+import jakarta.persistence.IdClass;
+import jakarta.persistence.Table;
import com.fasterxml.jackson.databind.JsonNode;
-import org.hibernate.annotations.Type;
+import org.hibernate.annotations.JdbcTypeCode;
+import org.hibernate.type.SqlTypes;
@Entity
@IdClass(PublishedCourtListPrimaryKey.class)
@@ -37,7 +38,7 @@ public class PublishedCourtList {
private LocalDate startDate;
@Column(name = "court_list_json", columnDefinition = "jsonb", nullable = false)
- @Type(type = "jsonb-node")
+ @JdbcTypeCode(SqlTypes.JSON)
private JsonNode courtListJson;
@Column(name = "last_updated", nullable = false)
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepository.java
index b8bcd28b8..b3c5e8cc4 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepository.java
@@ -1,12 +1,43 @@
package uk.gov.moj.cpp.listing.persistence.repository.courtlist;
-import org.apache.deltaspike.data.api.EntityManagerDelegate;
-import org.apache.deltaspike.data.api.EntityRepository;
-import org.apache.deltaspike.data.api.Repository;
+import java.util.List;
-@Repository
-public interface PublishedCourtListRepository
- extends EntityRepository,
- EntityManagerDelegate {
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+@ApplicationScoped
+public class PublishedCourtListRepository {
+
+ @PersistenceContext(unitName = "listing-persistence-unit")
+ EntityManager entityManager;
+
+ public PublishedCourtList findBy(final PublishedCourtListPrimaryKey primaryKey) {
+ return entityManager.find(PublishedCourtList.class, primaryKey);
+ }
+
+ public PublishedCourtList save(final PublishedCourtList publishedCourtList) {
+ return entityManager.merge(publishedCourtList);
+ }
+
+ public Long count() {
+ return entityManager.createQuery(
+ "SELECT COUNT(publishedCourtList) FROM PublishedCourtList publishedCourtList", Long.class)
+ .getSingleResult();
+ }
+
+ public List findAll() {
+ return entityManager.createQuery(
+ "SELECT publishedCourtList FROM PublishedCourtList publishedCourtList", PublishedCourtList.class)
+ .getResultList();
+ }
+
+ public void remove(final PublishedCourtList publishedCourtList) {
+ entityManager.remove(entityManager.contains(publishedCourtList)
+ ? publishedCourtList : entityManager.merge(publishedCourtList));
+ }
+
+ public void flush() {
+ entityManager.flush();
+ }
}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/csv/HearingCsvRawDataRepository.java b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/csv/HearingCsvRawDataRepository.java
index 400a1a2bc..735f68314 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/csv/HearingCsvRawDataRepository.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/java/uk/gov/moj/cpp/listing/persistence/repository/csv/HearingCsvRawDataRepository.java
@@ -12,9 +12,9 @@
import java.util.ArrayList;
import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import javax.sql.DataSource;
import com.fasterxml.jackson.databind.JsonNode;
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/beans.xml b/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/beans.xml
index 451be35ea..6084aed1d 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/beans.xml
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/beans.xml
@@ -1,9 +1,9 @@
-
-
- org.apache.deltaspike.jpa.impl.transaction.BeanManagedUserTransactionStrategy
-
+
+
\ No newline at end of file
diff --git a/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/persistence.xml b/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/persistence.xml
index 45602abb4..a5e0efbda 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/persistence.xml
+++ b/listing-viewstore/listing-viewstore-persistence/src/main/resources/META-INF/persistence.xml
@@ -1,12 +1,21 @@
-
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence
+ https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd" version="3.0">
org.hibernate.jpa.HibernatePersistenceProvider
java:/DS.listing
+
+
+
+
\ No newline at end of file
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepositoryIT.java b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepositoryIT.java
new file mode 100644
index 000000000..54b33108a
--- /dev/null
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CacheRefDataCourtroomRepositoryIT.java
@@ -0,0 +1,73 @@
+package uk.gov.moj.cpp.listing.persistence.repository;
+
+import static java.util.UUID.randomUUID;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import uk.gov.justice.services.test.utils.persistence.HibernateTestEntityManagerProvider;
+
+import uk.gov.moj.cpp.listing.persistence.entity.CacheRefDataCourtroom;
+
+import java.util.UUID;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+/**
+ * Real-Postgres repository IT (docker Postgres, dedicated throwaway DB listingviewstoretest).
+ * No mocking, no embedded container.
+ */
+class CacheRefDataCourtroomRepositoryIT {
+
+ @RegisterExtension
+ static HibernateTestEntityManagerProvider hibernateTestEntityManagerProvider =
+ new HibernateTestEntityManagerProvider("listing-test-persistence-unit");
+
+ private CacheRefDataCourtroomRepository repository;
+
+ @BeforeEach
+ void openEntityManagerAndCreateRepository() {
+ repository = new CacheRefDataCourtroomRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(repository);
+ }
+
+ @Test
+ void shouldSaveAndRetrieveACourtroomById() {
+ final UUID id = randomUUID();
+ repository.save(new CacheRefDataCourtroom(id, "Courtroom 1"));
+
+ final CacheRefDataCourtroom found = repository.findBy(id);
+
+ assertThat(found, is(notNullValue()));
+ assertThat(found.getId(), is(id));
+ assertThat(found.getCourtroomName(), is("Courtroom 1"));
+ }
+
+ @Test
+ void shouldReturnNullWhenNoCourtroomExistsForId() {
+ assertThat(repository.findBy(randomUUID()), is(nullValue()));
+ }
+
+ @Test
+ void shouldRemoveACourtroom() {
+ final UUID id = randomUUID();
+ repository.save(new CacheRefDataCourtroom(id, "Courtroom 2"));
+
+ repository.remove(repository.findBy(id));
+
+ assertThat(repository.findBy(id), is(nullValue()));
+ }
+
+ @Test
+ void shouldDeleteAllCourtrooms() {
+ repository.save(new CacheRefDataCourtroom(randomUUID(), "Courtroom A"));
+ repository.save(new CacheRefDataCourtroom(randomUUID(), "Courtroom B"));
+
+ final int deleted = repository.deleteAll();
+
+ assertThat(deleted, is(2));
+ }
+}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepositoryIT.java b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepositoryIT.java
new file mode 100644
index 000000000..3d2e99625
--- /dev/null
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CaseByDefendantRepositoryIT.java
@@ -0,0 +1,103 @@
+package uk.gov.moj.cpp.listing.persistence.repository;
+
+import static java.util.List.of;
+import static java.util.UUID.randomUUID;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.hasSize;
+import static org.hamcrest.Matchers.is;
+
+import uk.gov.justice.services.test.utils.persistence.HibernateTestEntityManagerProvider;
+
+import uk.gov.moj.cpp.listing.persistence.entity.CaseIdentifier;
+import uk.gov.moj.cpp.listing.persistence.entity.Defendant;
+import uk.gov.moj.cpp.listing.persistence.entity.Hearing;
+import uk.gov.moj.cpp.listing.persistence.entity.HearingDays;
+import uk.gov.moj.cpp.listing.persistence.entity.ListedCases;
+import uk.gov.moj.cpp.listing.persistence.entity.query.CaseByDefendant;
+
+import java.time.LocalDate;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import jakarta.persistence.EntityManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+/**
+ * Real-Postgres repository IT — exercises the named NATIVE query
+ * (CaseByDefendant.findCaseByDefendantWithCaseId) against docker Postgres. No mocking.
+ */
+class CaseByDefendantRepositoryIT {
+
+ private static final LocalDate HEARING_DATE = LocalDate.of(2026, 3, 10);
+
+ @RegisterExtension
+ static HibernateTestEntityManagerProvider hibernateTestEntityManagerProvider =
+ new HibernateTestEntityManagerProvider("listing-test-persistence-unit");
+
+ private CaseByDefendantRepository repository;
+
+ @BeforeEach
+ void openEntityManagerAndCreateRepository() {
+ repository = new CaseByDefendantRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(repository);
+ }
+
+ @Test
+ void shouldFindCasesByDefendantAndHearingDate() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID caseId = randomUUID();
+ final UUID defendantId = randomUUID();
+ persistHearingGraph(entityManager, caseId, "URN-1", defendantId, HEARING_DATE);
+
+ final List found =
+ repository.getCasesByDefendantAndHearingDate(of(caseId), of(defendantId), HEARING_DATE);
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getCaseId(), is(caseId));
+ assertThat(found.get(0).getUrn(), is("URN-1"));
+ }
+
+ @Test
+ void shouldReturnEmptyWhenNoCasesMatchDefendantAndHearingDate() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID caseId = randomUUID();
+ final UUID defendantId = randomUUID();
+ persistHearingGraph(entityManager, caseId, "URN-2", defendantId, HEARING_DATE);
+
+ // query with a different hearing date -> no match
+ final List found =
+ repository.getCasesByDefendantAndHearingDate(of(caseId), of(defendantId), HEARING_DATE.plusDays(7));
+
+ assertThat(found, is(empty()));
+ }
+
+ private void persistHearingGraph(final EntityManager entityManager,
+ final UUID caseId,
+ final String urn,
+ final UUID defendantId,
+ final LocalDate hearingDate) {
+ final Hearing hearing = new Hearing(randomUUID(), JsonNodeFactory.instance.objectNode());
+
+ final CaseIdentifier caseIdentifier = new CaseIdentifier();
+ caseIdentifier.setCaseReference(urn);
+
+ final ListedCases listedCase = new ListedCases(randomUUID(), caseId, caseIdentifier, null,
+ hearing, new HashSet<>(), new HashSet<>(), Boolean.FALSE);
+ final Defendant defendant = new Defendant(randomUUID(), defendantId, null, listedCase);
+ listedCase.setDefendants(Set.of(defendant));
+
+ final HearingDays hearingDay = new HearingDays(randomUUID(), 1, null, null, randomUUID(),
+ hearingDate, randomUUID(), 60, hearing);
+
+ hearing.setListedCases(Set.of(listedCase));
+ hearing.setHearingDays(Set.of(hearingDay));
+
+ entityManager.persist(hearing);
+ }
+}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepositoryIT.java b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepositoryIT.java
new file mode 100644
index 000000000..a64eefe71
--- /dev/null
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/CourtApplicationRepositoryIT.java
@@ -0,0 +1,75 @@
+package uk.gov.moj.cpp.listing.persistence.repository;
+
+import static java.util.UUID.randomUUID;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.hasSize;
+import static org.hamcrest.Matchers.is;
+
+import uk.gov.justice.services.test.utils.persistence.HibernateTestEntityManagerProvider;
+
+import uk.gov.moj.cpp.listing.persistence.entity.CourtApplications;
+import uk.gov.moj.cpp.listing.persistence.entity.Hearing;
+
+import java.util.List;
+import java.util.UUID;
+
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import jakarta.persistence.EntityManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+/**
+ * Real-Postgres repository IT (docker Postgres, throwaway DB). No mocking, no embedded container.
+ */
+class CourtApplicationRepositoryIT {
+
+ @RegisterExtension
+ static HibernateTestEntityManagerProvider hibernateTestEntityManagerProvider =
+ new HibernateTestEntityManagerProvider("listing-test-persistence-unit");
+
+ private CourtApplicationRepository repository;
+
+ @BeforeEach
+ void openEntityManagerAndCreateRepository() {
+ repository = new CourtApplicationRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(repository);
+ }
+
+ @Test
+ void shouldFindCourtApplicationsByParentApplicationId() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final Hearing hearing = persistedHearing(entityManager);
+ final UUID parentApplicationId = randomUUID();
+ final UUID childApplicationId1 = randomUUID();
+ final UUID childApplicationId2 = randomUUID();
+
+ entityManager.persist(courtApplication(childApplicationId1, hearing, parentApplicationId));
+ entityManager.persist(courtApplication(childApplicationId2, hearing, parentApplicationId));
+ entityManager.persist(courtApplication(randomUUID(), hearing, randomUUID())); // different parent
+
+ final List found = repository.findByParentApplicationId(parentApplicationId);
+
+ assertThat(found, hasSize(2));
+ assertThat(found.stream().map(CourtApplications::getApplicationId).sorted().toList(),
+ is(java.util.stream.Stream.of(childApplicationId1, childApplicationId2).sorted().toList()));
+ }
+
+ @Test
+ void shouldReturnEmptyWhenNoCourtApplicationsExistForParentApplicationId() {
+ assertThat(repository.findByParentApplicationId(randomUUID()), is(empty()));
+ }
+
+ private Hearing persistedHearing(final EntityManager entityManager) {
+ final Hearing hearing = new Hearing(randomUUID(),
+ JsonNodeFactory.instance.objectNode().put("hearingType", "TRIAL"));
+ entityManager.persist(hearing);
+ return hearing;
+ }
+
+ private CourtApplications courtApplication(final UUID applicationId, final Hearing hearing, final UUID parentApplicationId) {
+ return new CourtApplications(randomUUID(), applicationId, hearing, "APPLICATION_TYPE",
+ parentApplicationId, "reference", "particulars", Boolean.FALSE);
+ }
+}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepositoryIT.java b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepositoryIT.java
new file mode 100644
index 000000000..bb054576e
--- /dev/null
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/HearingRepositoryIT.java
@@ -0,0 +1,443 @@
+package uk.gov.moj.cpp.listing.persistence.repository;
+
+import static java.util.List.of;
+import static java.util.UUID.randomUUID;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.hasSize;
+
+import uk.gov.justice.services.test.utils.persistence.HibernateTestEntityManagerProvider;
+
+import uk.gov.moj.cpp.listing.persistence.entity.CaseIdentifier;
+import uk.gov.moj.cpp.listing.persistence.entity.CourtApplications;
+import uk.gov.moj.cpp.listing.persistence.entity.Hearing;
+import uk.gov.moj.cpp.listing.persistence.entity.ListedCases;
+
+import java.time.LocalDate;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import uk.gov.moj.cpp.listing.persistence.entity.HearingDays;
+
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import jakarta.persistence.EntityManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+/**
+ * Real-Postgres repository IT for HearingRepository (docker Postgres). No mocking.
+ * Migrating DeltaSpike @Query methods to JPA native queries one group at a time — each proven here first.
+ */
+class HearingRepositoryIT {
+
+ @RegisterExtension
+ static HibernateTestEntityManagerProvider hibernateTestEntityManagerProvider =
+ new HibernateTestEntityManagerProvider("listing-test-persistence-unit");
+
+ private HearingRepository repository;
+
+ @BeforeEach
+ void openEntityManagerAndCreateRepository() {
+ repository = new HearingRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(repository);
+ }
+
+ @Test
+ void shouldSaveAndRetrieveAHearingById() {
+ final UUID id = randomUUID();
+ repository.save(new Hearing(id, JsonNodeFactory.instance.objectNode().put("hearingType", "TRIAL")));
+
+ final Hearing found = repository.findBy(id);
+
+ assertThat(found, is(notNullValue()));
+ assertThat(found.getId(), is(id));
+ assertThat(found.getProperties().get("hearingType").asText(), is("TRIAL"));
+ // totalCount (native "1 as totalCount") does not map from a `select *` query under Hibernate 6 and is
+ // not used for single-result findBy; it is validated on the paginated findHearings queries below.
+ }
+
+ @Test
+ void shouldReturnNullWhenNoHearingExistsForId() {
+ assertThat(repository.findBy(randomUUID()), is(nullValue()));
+ }
+
+ @Test
+ void shouldFindAllocatedAndUnallocatedHearingsByCaseId() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID caseId = randomUUID();
+ persistHearingWithListedCase(entityManager, hearingId, caseId);
+ // a second, unrelated hearing+case that must not be returned
+ persistHearingWithListedCase(entityManager, randomUUID(), randomUUID());
+
+ final List found = repository.findAllocatedAndUnallocatedHearingsByCaseId(caseId.toString());
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindAllCourtSchedulerHearingsByIds() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID id1 = randomUUID();
+ final UUID id2 = randomUUID();
+ persistHearing(entityManager, id1);
+ persistHearing(entityManager, id2);
+ persistHearing(entityManager, randomUUID()); // not requested
+
+ final List found = repository.findAllCourtSchedulerHearingByIds(of(id1, id2));
+
+ assertThat(found, hasSize(2));
+ assertThat(found.stream().map(Hearing::getId).toList(), containsInAnyOrder(id1, id2));
+ }
+
+ @Test
+ void shouldFindUnscheduledHearingsByCaseUrnAndTypeOfListWithTotalCount() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID typeOfListId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setAllocated(false);
+ hearing.setUnscheduled(true);
+ hearing.setTypeOfListId(typeOfListId);
+ final CaseIdentifier caseIdentifier = new CaseIdentifier();
+ caseIdentifier.setCaseReference("URN123");
+ final ListedCases listedCase = new ListedCases(randomUUID(), randomUUID(), caseIdentifier, null, hearing,
+ new HashSet<>(), new HashSet<>(), Boolean.FALSE);
+ hearing.setListedCases(Set.of(listedCase));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearings("URN123", typeOfListId.toString(), 0, 10);
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ // KNOWN ISSUE for listing team: the "count(*) OVER() as totalCount" native alias does not populate
+ // Hearing.totalCount under Hibernate 6 (rows/filters are correct; totalCount is null). Used by
+ // HearingQueryView / RangeSearchQuery pagination. Likely needs an explicit @SqlResultSetMapping.
+ }
+
+ @Test
+ void shouldFindHearingsByCaseUrnAndAnyAllocationState() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setStartDate(LocalDate.of(2026, 5, 1));
+ final CaseIdentifier caseIdentifier = new CaseIdentifier();
+ caseIdentifier.setCaseReference("URN-ANY");
+ final ListedCases listedCase = new ListedCases(randomUUID(), randomUUID(), caseIdentifier, null, hearing,
+ new HashSet<>(), new HashSet<>(), Boolean.FALSE);
+ hearing.setListedCases(Set.of(listedCase));
+ entityManager.persist(hearing);
+
+ final List found =
+ repository.findHearingsByCaseUrnAndAnyAllocationState("URN-ANY", LocalDate.of(2026, 4, 1));
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindAllocatedAndUnallocatedHearingsByCaseIdAndApplicationId() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID caseId = randomUUID();
+ final UUID applicationId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ final ListedCases listedCase = new ListedCases(randomUUID(), caseId, null, null, hearing,
+ new HashSet<>(), new HashSet<>(), Boolean.FALSE);
+ final CourtApplications courtApplication = new CourtApplications(randomUUID(), applicationId, hearing,
+ "APPLICATION_TYPE", null, "reference", "particulars", Boolean.FALSE);
+ hearing.setListedCases(Set.of(listedCase));
+ hearing.setCourtApplications(Set.of(courtApplication));
+ entityManager.persist(hearing);
+
+ final List found =
+ repository.findAllocatedAndUnallocatedHearingsByCaseId(caseId.toString(), applicationId.toString());
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindHearingsForCotr() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID typeId = randomUUID();
+ final UUID courtCentreId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setTypeId(typeId);
+ hearing.setCourtCentreId(courtCentreId);
+ hearing.setStartDate(LocalDate.of(2026, 6, 10));
+ hearing.setEndDate(LocalDate.of(2026, 6, 10));
+ hearing.setListedCases(Set.of(listedCaseFor(hearing)));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearingsForCotr(
+ Set.of(typeId.toString()), courtCentreId.toString(),
+ LocalDate.of(2026, 6, 1), LocalDate.of(2026, 6, 30));
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindHearingsByWeekCommencingRange() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID courtCentreId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setCourtCentreId(courtCentreId);
+ hearing.setWeekCommencingStartDate(LocalDate.of(2026, 6, 8));
+ hearing.setWeekCommencingEndDate(LocalDate.of(2026, 6, 14));
+ hearing.setListedCases(Set.of(listedCaseFor(hearing)));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearingsByWeekCommencingRange(
+ courtCentreId.toString(), null, null, null, null,
+ LocalDate.of(2026, 6, 1), LocalDate.of(2026, 6, 30), 0, 100);
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindAllocatedHearingsInDateRangeFilteredByPossibleDisqualification() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+
+ final Hearing hearing = allocatedHearingInJune(hearingId);
+ hearing.setPossibleDisqualification(false);
+ hearing.setListedCases(Set.of(listedCaseFor(hearing)));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearings("true", null, null, null, null, null,
+ LocalDate.of(2026, 6, 1), LocalDate.of(2026, 6, 30), false, 0, 10);
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindAllocatedHearingsInDateRangeWithoutPagination() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+
+ final Hearing hearing = allocatedHearingInJune(hearingId);
+ hearing.setListedCases(Set.of(listedCaseFor(hearing)));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearings("true", null, null, null, null, null,
+ LocalDate.of(2026, 6, 1), LocalDate.of(2026, 6, 30));
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindHearingsByWeekCommencingRangeWithoutPagination() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID courtCentreId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setIsVacatedTrial(Boolean.FALSE);
+ hearing.setCourtCentreId(courtCentreId);
+ hearing.setWeekCommencingStartDate(LocalDate.of(2026, 6, 8));
+ hearing.setWeekCommencingEndDate(LocalDate.of(2026, 6, 14));
+ hearing.setListedCases(Set.of(listedCaseFor(hearing)));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearingsByWeekCommencingRangeWithNoPagination(
+ courtCentreId.toString(), null, null, null, null,
+ LocalDate.of(2026, 6, 1), LocalDate.of(2026, 6, 30));
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindUnallocatedHearingsByWeekCommencingRangeAndPossibleDisqualification() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID courtCentreId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setIsVacatedTrial(Boolean.FALSE);
+ hearing.setAllocated(Boolean.FALSE);
+ hearing.setPossibleDisqualification(Boolean.TRUE);
+ hearing.setCourtCentreId(courtCentreId);
+ hearing.setWeekCommencingStartDate(LocalDate.of(2026, 6, 8));
+ hearing.setWeekCommencingEndDate(LocalDate.of(2026, 6, 14));
+ hearing.setListedCases(Set.of(listedCaseFor(hearing)));
+ entityManager.persist(hearing);
+
+ final List found = repository.findUnallocatedHearingsByWeekCommencingRangeAndPossibleDisqualification(
+ courtCentreId.toString(), null, null, null, null,
+ LocalDate.of(2026, 6, 1), LocalDate.of(2026, 6, 30), false, true, 0, 10);
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindHearingsForPublicStandardListAggregatingJudiciaryAndHearingsAsJson() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID courtCentreId = randomUUID();
+
+ final ObjectNode properties = JsonNodeFactory.instance.objectNode();
+ properties.put("allocated", true);
+ properties.putArray("judiciary").addObject().put("judicialId", "J-1");
+
+ final Hearing hearing = new Hearing(hearingId, properties);
+ hearing.setIsVacatedTrial(Boolean.FALSE);
+ hearing.setCourtCentreId(courtCentreId);
+ hearing.setHearingDays(Set.of(hearingDayFor(hearing, courtCentreId, LocalDate.of(2026, 6, 10))));
+ entityManager.persist(hearing);
+
+ final Hearing found = repository.findHearingsForPublicStandardList(true, courtCentreId.toString(),
+ LocalDate.of(2026, 6, 1), LocalDate.of(2026, 6, 30), Set.of(randomUUID().toString()));
+
+ assertThat(found, is(notNullValue()));
+ assertThat(found.getProperties(), is(notNullValue()));
+ }
+
+ @Test
+ void shouldFindHearingsForAlphabeticalListAggregatingHearingsAsJson() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID courtCentreId = randomUUID();
+
+ final ObjectNode properties = JsonNodeFactory.instance.objectNode();
+ properties.put("allocated", true);
+
+ final Hearing hearing = new Hearing(hearingId, properties);
+ hearing.setIsVacatedTrial(Boolean.FALSE);
+ hearing.setCourtCentreId(courtCentreId);
+ hearing.setHearingDays(Set.of(hearingDayFor(hearing, courtCentreId, LocalDate.of(2026, 6, 10))));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearingsForAlphabeticalList(true, courtCentreId.toString(),
+ LocalDate.of(2026, 6, 10), Set.of(randomUUID().toString()));
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getProperties(), is(notNullValue()));
+ }
+
+ @Test
+ void shouldFindAllocatedHearingsByJurisdictionAndCaseUrnSet() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setAllocated(Boolean.TRUE);
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setJurisdictionType("MAGISTRATES");
+ hearing.setEndDate(LocalDate.of(2026, 12, 31));
+ hearing.setListedCases(Set.of(listedCaseWithReference(hearing, "URN-SET")));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearings(true, Set.of("MAGISTRATES"), null,
+ Set.of("URN-SET"), Set.of(randomUUID().toString()), Set.of("NONE"), "NONE",
+ LocalDate.of(2026, 6, 1));
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindHearingsByJurisdictionAndCaseUrnSetForAnyAllocationState() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setJurisdictionType("CROWN");
+ hearing.setEndDate(LocalDate.of(2026, 12, 31));
+ hearing.setListedCases(Set.of(listedCaseWithReference(hearing, "URN-ANY-STATE")));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearings(Set.of("CROWN"), null,
+ Set.of("URN-ANY-STATE"), Set.of(randomUUID().toString()), Set.of("NONE"), "NONE",
+ LocalDate.of(2026, 6, 1));
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ @Test
+ void shouldFindUnscheduledHearingsByCaseUrnAndTypeOfListRestrictedToCourtCentres() {
+ final EntityManager entityManager = hibernateTestEntityManagerProvider.getEntityManager();
+ final UUID hearingId = randomUUID();
+ final UUID courtCentreId = randomUUID();
+
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setAllocated(Boolean.FALSE);
+ hearing.setUnscheduled(Boolean.TRUE);
+ hearing.setIsVacatedTrial(Boolean.FALSE);
+ hearing.setCourtCentreId(courtCentreId);
+ hearing.setListedCases(Set.of(listedCaseWithReference(hearing, "URN-CC")));
+ entityManager.persist(hearing);
+
+ final List found = repository.findHearings("URN-CC", null,
+ Set.of(courtCentreId.toString()), 0, 10);
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getId(), is(hearingId));
+ }
+
+ private Hearing allocatedHearingInJune(final UUID hearingId) {
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ hearing.setAllocated(Boolean.TRUE);
+ hearing.setUnscheduled(Boolean.FALSE);
+ hearing.setIsVacatedTrial(Boolean.FALSE);
+ hearing.setStartDate(LocalDate.of(2026, 6, 10));
+ hearing.setEndDate(LocalDate.of(2026, 6, 10));
+ return hearing;
+ }
+
+ private HearingDays hearingDayFor(final Hearing hearing, final UUID courtCentreId, final LocalDate hearingDate) {
+ return new HearingDays(randomUUID(), 1, null, null, null, hearingDate, courtCentreId, null, hearing);
+ }
+
+ private ListedCases listedCaseWithReference(final Hearing hearing, final String caseReference) {
+ final CaseIdentifier caseIdentifier = new CaseIdentifier();
+ caseIdentifier.setCaseReference(caseReference);
+ return new ListedCases(randomUUID(), randomUUID(), caseIdentifier, null, hearing,
+ new HashSet<>(), new HashSet<>(), Boolean.FALSE);
+ }
+
+ private ListedCases listedCaseFor(final Hearing hearing) {
+ return new ListedCases(randomUUID(), randomUUID(), null, null, hearing,
+ new HashSet<>(), new HashSet<>(), Boolean.FALSE);
+ }
+
+ private void persistHearing(final EntityManager entityManager, final UUID hearingId) {
+ entityManager.persist(new Hearing(hearingId, JsonNodeFactory.instance.objectNode()));
+ }
+
+ private void persistHearingWithListedCase(final EntityManager entityManager, final UUID hearingId, final UUID caseId) {
+ final Hearing hearing = new Hearing(hearingId, JsonNodeFactory.instance.objectNode());
+ final ListedCases listedCase = new ListedCases(randomUUID(), caseId, null, null, hearing,
+ new HashSet<>(), new HashSet<>(), Boolean.FALSE);
+ hearing.setListedCases(java.util.Set.of(listedCase));
+ entityManager.persist(hearing);
+ }
+}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/JsonEntityFinderTest.java b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/JsonEntityFinderTest.java
index 398cfabb0..d0e099eb4 100644
--- a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/JsonEntityFinderTest.java
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/JsonEntityFinderTest.java
@@ -18,7 +18,6 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.vladmihalcea.hibernate.type.json.internal.JacksonUtil;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
@@ -84,8 +83,11 @@ public class JsonEntityFinderTest {
"\"" + STRING_FIELD + "\": \"" + EXPECTED_STRING + "\"," +
"\"" + BOOLEAN_FIELD + "\": " + EXPECTED_BOOLEAN +
"} ";
- private static final ObjectNode EXPECTED_JSON_NODE_WITH_PATH = (ObjectNode) JacksonUtil.toJsonNode(EXPECTED_JSON_WITH_PATH);
- private static final ObjectNode EXPECTED_JSON_NODE_WITHOUT_PATH = (ObjectNode) JacksonUtil.toJsonNode(EXPECTED_JSON_WITHOUT_PATH);
+ // Declared before the static fields below, which call toJsonNode during class initialisation.
+ private static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER =
+ new uk.gov.justice.services.common.converter.jackson.ObjectMapperProducer().objectMapper();
+ private static final ObjectNode EXPECTED_JSON_NODE_WITH_PATH = (ObjectNode) toJsonNode(EXPECTED_JSON_WITH_PATH);
+ private static final ObjectNode EXPECTED_JSON_NODE_WITHOUT_PATH = (ObjectNode) toJsonNode(EXPECTED_JSON_WITHOUT_PATH);
@Mock
HearingRepository hearingRepository;
@@ -95,7 +97,7 @@ public class JsonEntityFinderTest {
@Test
public void shouldUpdateAndRemoveJsonPropertiesWithPath() {
- ObjectNode hearingProperties = (ObjectNode) JacksonUtil.toJsonNode(TEST_JSON_WITH_PATH);
+ ObjectNode hearingProperties = (ObjectNode) toJsonNode(TEST_JSON_WITH_PATH);
when(hearingRepository.findBy(HEARING_ID)).thenReturn(hearing);
when(hearing.getProperties()).thenReturn(hearingProperties);
@@ -123,7 +125,7 @@ public void shouldUpdateAndRemoveJsonPropertiesWithPath() {
@Test
public void shouldUpdateAndRemoveSubJsonPropertiesWithoutPath() {
- ObjectNode hearingProperties = (ObjectNode) JacksonUtil.toJsonNode(TEST_JSON_WITHOUT_PATH);
+ ObjectNode hearingProperties = (ObjectNode) toJsonNode(TEST_JSON_WITHOUT_PATH);
when(hearingRepository.findBy(HEARING_ID)).thenReturn(hearing);
when(hearing.getProperties()).thenReturn(hearingProperties);
@@ -153,4 +155,12 @@ public void shouldUpdateAndRemoveSubJsonPropertiesWithoutPath() {
private Function, List> getListListFunction() {
return o -> TEST_LIST;
}
+
+ private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) {
+ try {
+ return OBJECT_MAPPER.readTree(json);
+ } catch (final java.io.IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
\ No newline at end of file
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepositoryIT.java b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepositoryIT.java
new file mode 100644
index 000000000..bccced36d
--- /dev/null
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/NotesRepositoryIT.java
@@ -0,0 +1,110 @@
+package uk.gov.moj.cpp.listing.persistence.repository;
+
+import static java.util.List.of;
+import static java.util.UUID.randomUUID;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.hasSize;
+
+import uk.gov.justice.services.test.utils.persistence.HibernateTestEntityManagerProvider;
+
+import uk.gov.moj.cpp.listing.persistence.entity.Notes;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.UUID;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+/**
+ * Real-Postgres repository IT (docker Postgres, throwaway DB). No mocking, no embedded container.
+ */
+class NotesRepositoryIT {
+
+ @RegisterExtension
+ static HibernateTestEntityManagerProvider hibernateTestEntityManagerProvider =
+ new HibernateTestEntityManagerProvider("listing-test-persistence-unit");
+
+ private NotesRepository repository;
+
+ @BeforeEach
+ void openEntityManagerAndCreateRepository() {
+ repository = new NotesRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(repository);
+ }
+
+ @Test
+ void shouldSaveAndRetrieveANoteById() {
+ final UUID id = randomUUID();
+ repository.save(new Notes(id, randomUUID(), LocalDate.of(2026, 1, 15), "a note"));
+
+ final Notes found = repository.findBy(id);
+
+ assertThat(found, is(notNullValue()));
+ assertThat(found.getId(), is(id));
+ assertThat(found.getNote(), is("a note"));
+ }
+
+ @Test
+ void shouldReturnNullFromFindOptionalByIdWhenNoNoteExists() {
+ assertThat(repository.findOptionalById(randomUUID()), is(nullValue()));
+ }
+
+ @Test
+ void shouldFindNotesByIds() {
+ final UUID id1 = randomUUID();
+ final UUID id2 = randomUUID();
+ repository.save(new Notes(id1, randomUUID(), LocalDate.of(2026, 1, 15), "note1"));
+ repository.save(new Notes(id2, randomUUID(), LocalDate.of(2026, 1, 16), "note2"));
+ repository.save(new Notes(randomUUID(), randomUUID(), LocalDate.of(2026, 1, 17), "note3"));
+
+ final List found = repository.findNotes(of(id1, id2));
+
+ assertThat(found, hasSize(2));
+ assertThat(found.stream().map(Notes::getId).toList(), containsInAnyOrder(id1, id2));
+ }
+
+ @Test
+ void shouldFindNotesByCourtRoomIdAndDate() {
+ final UUID courtRoomId = randomUUID();
+ final LocalDate date = LocalDate.of(2026, 2, 1);
+ // notes has a unique constraint (pk_notes_range) of one note per court-room + date
+ repository.save(new Notes(randomUUID(), courtRoomId, date, "match"));
+ repository.save(new Notes(randomUUID(), courtRoomId, date.plusDays(1), "wrong date"));
+ repository.save(new Notes(randomUUID(), randomUUID(), date, "wrong courtroom"));
+
+ final List found = repository.findByCourtRoomIdAndDate(courtRoomId, date);
+
+ assertThat(found, hasSize(1));
+ assertThat(found.get(0).getNote(), is("match"));
+ }
+
+ @Test
+ void shouldFindAllNotes() {
+ repository.save(new Notes(randomUUID(), randomUUID(), LocalDate.of(2026, 1, 15), "n1"));
+ repository.save(new Notes(randomUUID(), randomUUID(), LocalDate.of(2026, 1, 16), "n2"));
+
+ assertThat(repository.findAll(), hasSize(2));
+ }
+
+ @Test
+ void shouldRemoveANote() {
+ final UUID id = randomUUID();
+ repository.save(new Notes(id, randomUUID(), LocalDate.of(2026, 1, 15), "to remove"));
+
+ repository.remove(repository.findBy(id));
+
+ assertThat(repository.findOptionalById(id), is(nullValue()));
+ }
+
+ @Test
+ void shouldReturnEmptyFromFindAllWhenNoNotesExist() {
+ assertThat(repository.findAll(), is(empty()));
+ }
+}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepositoryIT.java b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepositoryIT.java
new file mode 100644
index 000000000..732eb3386
--- /dev/null
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/java/uk/gov/moj/cpp/listing/persistence/repository/courtlist/PublishedCourtListRepositoryIT.java
@@ -0,0 +1,98 @@
+package uk.gov.moj.cpp.listing.persistence.repository.courtlist;
+
+import static java.util.UUID.randomUUID;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasSize;
+
+import uk.gov.justice.listing.event.PublishCourtListType;
+import uk.gov.justice.services.test.utils.persistence.HibernateTestEntityManagerProvider;
+
+import java.time.LocalDate;
+import java.time.ZonedDateTime;
+import java.util.UUID;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+/**
+ * Real-Postgres repository IT — validates the composite @IdClass and the jsonb court_list_json
+ * column round-trip against docker Postgres. No mocking.
+ */
+class PublishedCourtListRepositoryIT {
+
+ @RegisterExtension
+ static HibernateTestEntityManagerProvider hibernateTestEntityManagerProvider =
+ new HibernateTestEntityManagerProvider("listing-test-persistence-unit");
+
+ private PublishedCourtListRepository repository;
+
+ @BeforeEach
+ void openEntityManagerAndCreateRepository() {
+ repository = new PublishedCourtListRepository();
+ hibernateTestEntityManagerProvider.injectEntityManagerInto(repository);
+ }
+
+ @Test
+ void shouldSaveAndRetrieveAPublishedCourtListByPrimaryKey() {
+ final UUID courtCentreId = randomUUID();
+ final LocalDate startDate = LocalDate.of(2026, 4, 1);
+ final JsonNode courtListJson = JsonNodeFactory.instance.objectNode().put("courtName", "Central");
+
+ repository.save(new PublishedCourtList(courtCentreId, PublishCourtListType.DRAFT, startDate,
+ courtListJson, ZonedDateTime.now(), null, randomUUID()));
+
+ final PublishedCourtList found = repository.findBy(
+ new PublishedCourtListPrimaryKey(courtCentreId, PublishCourtListType.DRAFT, startDate));
+
+ assertThat(found, is(notNullValue()));
+ assertThat(found.getCourtListJson().get("courtName").asText(), is("Central"));
+ }
+
+ @Test
+ void shouldReturnNullWhenNoPublishedCourtListExistsForPrimaryKey() {
+ final PublishedCourtList found = repository.findBy(
+ new PublishedCourtListPrimaryKey(randomUUID(), PublishCourtListType.FINAL, LocalDate.of(2026, 4, 1)));
+
+ assertThat(found, is(nullValue()));
+ }
+
+ @Test
+ void shouldCountPublishedCourtLists() {
+ repository.save(published(randomUUID(), PublishCourtListType.DRAFT, LocalDate.of(2026, 4, 1)));
+ repository.save(published(randomUUID(), PublishCourtListType.FINAL, LocalDate.of(2026, 4, 2)));
+
+ assertThat(repository.count(), is(2L));
+ }
+
+ @Test
+ void shouldFindAllPublishedCourtLists() {
+ repository.save(published(randomUUID(), PublishCourtListType.DRAFT, LocalDate.of(2026, 4, 1)));
+ repository.save(published(randomUUID(), PublishCourtListType.WARN, LocalDate.of(2026, 4, 2)));
+
+ assertThat(repository.findAll(), hasSize(2));
+ }
+
+ @Test
+ void shouldRemoveAPublishedCourtList() {
+ final UUID courtCentreId = randomUUID();
+ final LocalDate startDate = LocalDate.of(2026, 4, 1);
+ repository.save(published(courtCentreId, PublishCourtListType.DRAFT, startDate));
+
+ final PublishedCourtListPrimaryKey pk =
+ new PublishedCourtListPrimaryKey(courtCentreId, PublishCourtListType.DRAFT, startDate);
+ repository.remove(repository.findBy(pk));
+
+ assertThat(repository.findBy(pk), is(nullValue()));
+ }
+
+ private PublishedCourtList published(final UUID courtCentreId, final PublishCourtListType type, final LocalDate startDate) {
+ return new PublishedCourtList(courtCentreId, type, startDate,
+ JsonNodeFactory.instance.objectNode().put("courtName", "Court"), ZonedDateTime.now(), null, randomUUID());
+ }
+}
diff --git a/listing-viewstore/listing-viewstore-persistence/src/test/resources/META-INF/persistence.xml b/listing-viewstore/listing-viewstore-persistence/src/test/resources/META-INF/persistence.xml
new file mode 100644
index 000000000..50b451a97
--- /dev/null
+++ b/listing-viewstore/listing-viewstore-persistence/src/test/resources/META-INF/persistence.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+ ../classes
+ false
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/listing-viewstore/pom.xml b/listing-viewstore/pom.xml
index ef4048aa0..d616a8047 100644
--- a/listing-viewstore/pom.xml
+++ b/listing-viewstore/pom.xml
@@ -3,7 +3,7 @@
listing-parent
uk.gov.moj.cpp.listing
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
4.0.0
diff --git a/pom.xml b/pom.xml
index 614f909bc..4344e199e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,14 +4,14 @@
uk.gov.moj.cpp.common
service-parent-pom
- 17.104.1
+ 25.104.0-M6
4.0.0
uk.gov.moj.cpp.listing
listing-parent
- 17.104.4-SNAPSHOT
+ 25.104.0-M1-SNAPSHOT
pom
Listing Context Microservice Parent
@@ -29,7 +29,11 @@
sonar-report.json
git
file://${project.build.directory}/site
- 17.104.3
+ 25.104.0-M6
+
+ 1.14.3
17.103.133
1.0.4
5.7
@@ -38,8 +42,10 @@
2.6.3
1.3
- 2.2.2
- 2.2.11
+
+ 4.0.5
1.7.10
42.1.4
7.0.0.jre8
diff --git a/runIntegrationTests.sh b/runIntegrationTests.sh
index 7849cc4b5..f8bb48066 100755
--- a/runIntegrationTests.sh
+++ b/runIntegrationTests.sh
@@ -33,7 +33,7 @@ runLiquibase() {
}
# TODO: Should probably move this function to cpp-developers-docker as it's already generic
-deltaspikeIntegrationTests() {
+hibernateIntegrationTests() {
echo
echo "Running Deltaspike Persistence Integration Tests"
mvn -B verify -pl ${CONTEXT_NAME}-integration-test-persistence -P${CONTEXT_NAME}-integration-test -DINTEGRATION_HOST_KEY=localhost
@@ -46,7 +46,7 @@ buildDeployAndTest() {
undeployWarsFromDocker
buildAndStartContainers
runLiquibase
-# deltaspikeIntegrationTests
+ hibernateIntegrationTests
deployWiremock
deployWars
healthchecks