PDJB-697: remove journey framework#1119
Conversation
9d83062 to
eca1967
Compare
There was a problem hiding this comment.
Pull request overview
This PR decommissions the legacy forms-based journey framework and migrates remaining code/tests to the newer journeys framework, primarily by deleting legacy framework classes/services and updating references to the new step/state APIs.
Changes:
- Removed legacy
formsjourney framework code (steps/pages/journeys/tasks), legacy journey-data services, and related tests. - Updated controllers/services/entities/test helpers to use
uk.gov.communities.prsdb.webapp.journeys(JourneyData,PageData, map helpers) and new step route-segment constants. - Reworked
ComplianceStatusDataModelto derive certificate statuses directly fromJourneyDatawithout the deleted legacy extension helpers.
Reviewed changes
Copilot reviewed 110 out of 110 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/test/kotlin/uk/gov/communities/prsdb/webapp/urlProviders/PropertyComplianceInfoUrlTests.kt | Updates property compliance CYA route-segment usage for new framework. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/urlProviders/LandlordDashboardUrlTests.kt | Updates property compliance CYA route-segment usage; removes legacy beans. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/urlProviders/InvitationUrlTests.kt | Removes legacy JourneyDataService test bean usage. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/builders/TestIteratorBuilder.kt | Removes legacy forms iterator test builder. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/builders/JourneyDataBuilder.kt | Migrates test journey data helper to journeys.JourneyData and new step segments; removes legacy helpers. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/api/requestModels/SetJourneyDataRequestModel.kt | Switches to journeys JourneyData + map helper. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/testHelpers/JourneyDataDeserializer.kt | Switches to journeys.JourneyData. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/services/LocalCouncilInvitationServiceTests.kt | Removes unused legacy journey-data service variable. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/services/LegacyIncompletePropertyFormContextServiceTests.kt | Removes legacy incomplete-property context service tests. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/services/JourneyDataServiceTests.kt | Removes legacy JourneyDataService tests. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/UploadCertificateFormModelTests.kt | Switches to journeys.objectToStringKeyedMap. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/CheckAnswersFormModelTests.kt | Switches to journeys.JourneyData. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/models/dataModels/ComplianceStatusDataModelTests.kt | Switches to journeys.JourneyData. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/journeys/builders/JourneyBuilderTest.kt | Switches to journeys.objectToTypedStringKeyedMap. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyStateServiceTests.kt | Removes legacy forms JourneyData/map helper imports. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyDataTests.kt | Aligns test package to journeys. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/integration/pageObjects/Navigator.kt | Updates integration navigator to use new step route-segment constants and journeys.JourneyData. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/integration/ErrorPageTests.kt | Removes CYA error-route integration coverage after endpoint removal. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/PropertyComplianceJourneyDataExtensionsTests.kt | Removes tests for deleted legacy journey-data extensions. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/JourneyDataExtensionsTests.kt | Removes tests for deleted legacy journey-data extensions. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/PropertyRegistrationJourneyDataHelperTests.kt | Removes tests for deleted legacy property registration journey-data helper. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/helpers/JourneyDataHelperTests.kt | Updates helper tests to use new step route-segment constants and journeys.JourneyData. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/TaskListTests.kt | Removes tests for deleted legacy forms task list. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/StepTests.kt | Removes tests for deleted legacy forms Step. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/LookupAddressStepTests.kt | Removes tests for deleted legacy forms LookupAddressStep. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/PageWithContentProviderTests.kt | Removes tests for deleted legacy forms PageWithContentProvider. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/PageTests.kt | Removes tests for deleted legacy forms Page. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/CheckAnswersPageTests.kt | Removes tests for deleted legacy forms CheckAnswersPage. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/GroupedUpdateJourneyTests.kt | Removes tests for deleted legacy forms grouped update journeys. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/GroupedJourneyTests.kt | Removes tests for deleted legacy forms grouped journeys. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/forms/ReachableStepDetailsIteratorTests.kt | Removes tests for deleted legacy forms reachable-step iterator. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/LandlordControllerTests.kt | Removes legacy beans from controller test wiring. |
| src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/CustomErrorControllerTests.kt | Removes tests for removed CYA error endpoint. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/services/factories/JourneyDataServiceFactory.kt | Removes legacy JourneyDataServiceFactory. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/services/RegisteredAddressCache.kt | Switches to journeys.objectToStringKeyedMap. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/services/PropertyComplianceService.kt | Refactors when formatting in MEES-only email update-type selection. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/services/LegacyIncompletePropertyFormContextService.kt | Removes legacy incomplete property form-context service. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/services/JourneyDataService.kt | Removes legacy session/form-context backed journey data service. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/models/viewModels/taskModels/TaskListItemViewModel.kt | Removes factory overload tied to legacy forms.steps.StepId. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/FormModel.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/models/requestModels/formModels/CheckAnswersFormModel.kt | Switches to journeys.JourneyData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/models/dataModels/ComplianceStatusDataModel.kt | Reimplements compliance status derivation without deleted legacy extensions (now uses JourneyDataHelper + route segments). |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/shared/stepConfig/AbstractCheckYourAnswersStepConfig.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/propertyRegistration/steps/InviteJointLandlordStepConfig.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/landlordDeregistration/stepConfig/AreYouSureStepConfig.kt | Normalizes file formatting and switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/StepLifecycleOrchestrator.kt | Removes legacy forms.PageData import (uses journeys.PageData). |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyStep.kt | Removes legacy forms.PageData import (uses journeys.PageData). |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyStateService.kt | Removes legacy forms imports; relies on journeys map helpers. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyState.kt | Removes legacy forms.PageData import (uses journeys.PageData). |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/JourneyData.kt | Moves/standardizes JourneyData + PageData typealiases and map helpers into journeys package. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/AbstractStepConfig.kt | Removes legacy forms.PageData import (uses journeys.PageData). |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/journeys/AbstractJourneyState.kt | Removes legacy imports; uses journeys.objectToStringKeyedMap. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/PropertyComplianceJourneyDataExtensions.kt | Removes legacy property compliance journey-data extensions. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/JourneyExtensions.kt | Removes legacy journey extensions helper. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/extensions/journeyExtensions/JourneyDataExtensions.kt | Removes legacy journey-data extensions helper. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/PropertyRegistrationJourneyDataHelper.kt | Removes legacy property registration journey-data helper. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/JourneyDataHelper.kt | Migrates helper types to journeys.JourneyData/journeys.PageData and map helper. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/helpers/CertificateUploadHelper.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/TaskListViewModelFactory.kt | Removes legacy forms task-list view-model factory. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/JourneyTask.kt | Removes legacy forms task model. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/tasks/JourneySection.kt | Removes legacy forms section model. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/UpdatePropertyDetailsStepId.kt | Removes legacy forms step-id enum. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/StepId.kt | Removes legacy forms step-id interfaces. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/StepDetails.kt | Removes legacy forms step details model. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/Step.kt | Removes legacy forms Step implementation. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/RegisterPropertyStepId.kt | Removes legacy forms property registration step-id enum. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/PropertyComplianceStepId.kt | Removes legacy forms property compliance step-id enum. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/steps/LookupAddressStep.kt | Removes legacy forms lookup-address step implementation. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/UnvisitablePage.kt | Removes legacy forms unvisitable page. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/PageWithContentProvider.kt | Removes legacy forms content-provider page. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/Page.kt | Removes legacy forms basic page. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/FileUploadPage.kt | Removes legacy forms file-upload page. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/CheckAnswersPage.kt | Removes legacy forms check-answers page implementation. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/BasicCheckAnswersPage.kt | Removes legacy forms basic check-answers page implementation. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/AlreadyRegisteredPage.kt | Removes legacy forms already-registered page. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/pages/AbstractPage.kt | Removes legacy forms base page abstraction. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/UpdateJourney.kt | Removes legacy forms update-journey abstraction. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/StepRouter.kt | Removes legacy forms step router implementations. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/JourneyWithTaskList.kt | Removes legacy forms task-list journey base class. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/Journey.kt | Removes legacy forms journey base class. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/journeys/GroupedUpdateJourney.kt | Removes legacy forms grouped update journey base class. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/forms/ReachableStepDetailsIterator.kt | Removes legacy forms reachable-step iterator. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/exceptions/CyaDataHasChangedException.kt | Removes legacy exception used by removed forms CYA flow. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/database/entity/FormContext.kt | Switches to journeys JourneyData + map helper. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/controllerAdvice/GlobalExceptionHandler.kt | Removes CYA data-changed exception handling and redirect. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateRentIncludesBillsController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateRentFrequencyAndAmountController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateOwnershipTypeController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateOccupancyController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLicensingController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordPhoneNumberController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordNameController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordEmailController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateLandlordDateOfBirthController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateHouseholdsAndTenantsController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateFurnishedStatusController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/UpdateBedroomsController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/RegisterPropertyController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/RegisterLocalCouncilUserController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/RegisterLandlordController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/PropertyComplianceController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/JoinPropertyController.kt | Switches PageData import to journeys.PageData and normalizes file formatting. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/DeregisterPropertyController.kt | Switches PageData import to journeys.PageData. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/DeregisterLandlordController.kt | Switches PageData import to journeys.PageData and simplifies confirmation handler signature. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/CustomErrorController.kt | Removes CYA error endpoint/route constant. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/enums/NonStepJourneyDataKey.kt | Removes legacy looked-up-addresses non-step key. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/UrlSegmentConstants.kt | Removes legacy CYA error URL segment constant. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/SessionAttributes.kt | Removes legacy CONTEXT_ID session attribute constant. |
| src/main/kotlin/uk/gov/communities/prsdb/webapp/constants/JourneyNames.kt | Removes unused legacy update URL constant. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a23cb89 to
33a734e
Compare
Travis-Softwire
left a comment
There was a problem hiding this comment.
A few comments about the custom exception (which I think we'll still want, but we might not currently be using) + the supporting tests & classes. Also a few places where I'm surprised we're keeping files, it might be that some need renaming/ moving rather than deleting though
33a734e to
da749dd
Compare
Travis-Softwire
left a comment
There was a problem hiding this comment.
A few further comments, but happy for this to be merged once they're addressed, including raising a ticket for addressing the second tab/stale data issue in the new framework (shout if you need more context on that).
Ticket number
PDJB-697
Goal of change
Decommission the old journey framework
Description of main change(s)
Deletes all files in the old "forms" folder, and fixes the remaining functionality in the codebase.
Anything you'd like to highlight to the reviewer?
There's a few changes I'm unsure about which I will flag in comments.
Checklist
Delete any that are not applicable, and add explanation below for any that are applicable but haven't been done