- Detaillierter Plan zur Migration von alter zu neuer Modulstruktur - Umfasst Überführung von shared-kernel zu core-Modulen - Definiert Migration von Fachdomänen zu bounded contexts: * master-data → masterdata-Module * member-management → members-Module * horse-registry → horses-Module * event-management → events-Module - Beschreibt Verlagerung von api-gateway zu infrastructure/gateway - Strukturiert nach Domain-driven Design Prinzipien - Berücksichtigt Clean Architecture Layering (domain, application, infrastructure, api)
13 KiB
13 KiB
Migrationsplan für die Meldestelle-Projekt-Restrukturierung
Dieses Dokument beschreibt den Plan zur Migration von Code aus der alten Modulstruktur in die neue Modulstruktur, wie in den Projekt-Restrukturierungsanforderungen beschrieben.
1. Shared-Kernel zu Core-Modulen
Core-Domain
shared-kernel/src/commonMain/kotlin/at/mocode/dto/base/BaseDto.kt→core/core-domain/src/main/kotlin/at/mocode/core/domain/model/shared-kernel/src/commonMain/kotlin/at/mocode/enums/Enums.kt→core/core-domain/src/main/kotlin/at/mocode/core/domain/model/
Core-Utils
shared-kernel/src/commonMain/kotlin/at/mocode/serializers/Serialization.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/serialization/shared-kernel/src/commonMain/kotlin/at/mocode/validation/ApiValidationUtils.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/validation/shared-kernel/src/commonMain/kotlin/at/mocode/validation/ValidationResult.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/validation/shared-kernel/src/commonMain/kotlin/at/mocode/validation/ValidationUtils.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/validation/shared-kernel/src/jvmMain/kotlin/at/mocode/shared/config/AppConfig.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/config/shared-kernel/src/jvmMain/kotlin/at/mocode/shared/config/AppEnvironment.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/config/shared-kernel/src/jvmMain/kotlin/at/mocode/shared/database/DatabaseConfig.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/database/shared-kernel/src/jvmMain/kotlin/at/mocode/shared/database/DatabaseFactory.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/database/shared-kernel/src/jvmMain/kotlin/at/mocode/shared/database/DatabaseMigrator.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/database/shared-kernel/src/jvmMain/kotlin/at/mocode/shared/discovery/ServiceRegistration.kt→core/core-utils/src/main/kotlin/at/mocode/core/utils/discovery/
Tests
shared-kernel/src/jvmTest/kotlin/at/mocode/shared/database/test/SimpleDatabaseTest.kt→core/core-utils/src/test/kotlin/at/mocode/core/utils/database/shared-kernel/src/jvmTest/kotlin/at/mocode/validation/test/ValidationTest.kt→core/core-utils/src/test/kotlin/at/mocode/core/utils/validation/
2. Master-Data zu Masterdata-Modulen
Masterdata-Domain
master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/AltersklasseDefinition.kt→masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/BundeslandDefinition.kt→masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/LandDefinition.kt→masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/model/Platz.kt→masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/model/master-data/src/commonMain/kotlin/at/mocode/masterdata/domain/repository/LandRepository.kt→masterdata/masterdata-domain/src/main/kotlin/at/mocode/masterdata/domain/repository/
Masterdata-Application
master-data/src/commonMain/kotlin/at/mocode/masterdata/application/usecase/CreateCountryUseCase.kt→masterdata/masterdata-application/src/main/kotlin/at/mocode/masterdata/application/usecase/master-data/src/commonMain/kotlin/at/mocode/masterdata/application/usecase/GetCountryUseCase.kt→masterdata/masterdata-application/src/main/kotlin/at/mocode/masterdata/application/usecase/
Masterdata-Infrastructure
master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/repository/LandRepositoryImpl.kt→masterdata/masterdata-infrastructure/src/main/kotlin/at/mocode/masterdata/infrastructure/persistence/master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/repository/LandTable.kt→masterdata/masterdata-infrastructure/src/main/kotlin/at/mocode/masterdata/infrastructure/persistence/master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/table/LandTable.kt→masterdata/masterdata-infrastructure/src/main/kotlin/at/mocode/masterdata/infrastructure/persistence/
Masterdata-API
master-data/src/jvmMain/kotlin/at/mocode/masterdata/infrastructure/api/CountryController.kt→masterdata/masterdata-api/src/main/kotlin/at/mocode/masterdata/api/rest/
Client UI
master-data/src/jsMain/kotlin/at/mocode/masterdata/ui/components/StammdatenListe.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/components/masterdata/
3. Member-Management zu Members-Modulen
Members-Domain
member-management/src/commonMain/kotlin/at/mocode/members/domain/model/*.kt→members/members-domain/src/main/kotlin/at/mocode/members/domain/model/member-management/src/commonMain/kotlin/at/mocode/members/domain/repository/*.kt→members/members-domain/src/main/kotlin/at/mocode/members/domain/repository/member-management/src/commonMain/kotlin/at/mocode/members/domain/service/*.kt→members/members-domain/src/main/kotlin/at/mocode/members/domain/service/member-management/src/jvmMain/kotlin/at/mocode/members/domain/service/*.kt→members/members-domain/src/main/kotlin/at/mocode/members/domain/service/
Members-Application
member-management/src/commonMain/kotlin/at/mocode/members/application/usecase/*.kt→members/members-application/src/main/kotlin/at/mocode/members/application/usecase/
Members-Infrastructure
member-management/src/jvmMain/kotlin/at/mocode/members/infrastructure/repository/*.kt→members/members-infrastructure/src/main/kotlin/at/mocode/members/infrastructure/persistence/member-management/src/jvmMain/kotlin/at/mocode/members/infrastructure/table/*.kt→members/members-infrastructure/src/main/kotlin/at/mocode/members/infrastructure/persistence/
Client UI
member-management/src/jsMain/kotlin/at/mocode/members/ui/components/*.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/components/members/
4. Horse-Registry zu Horses-Modulen
Horses-Domain
horse-registry/src/commonMain/kotlin/at/mocode/horses/domain/model/DomPferd.kt→horses/horses-domain/src/main/kotlin/at/mocode/horses/domain/model/horse-registry/src/commonMain/kotlin/at/mocode/horses/domain/repository/HorseRepository.kt→horses/horses-domain/src/main/kotlin/at/mocode/horses/domain/repository/
Horses-Application
horse-registry/src/commonMain/kotlin/at/mocode/horses/application/usecase/*.kt→horses/horses-application/src/main/kotlin/at/mocode/horses/application/usecase/
Horses-Infrastructure
horse-registry/src/jvmMain/kotlin/at/mocode/horses/infrastructure/repository/HorseRepositoryImpl.kt→horses/horses-infrastructure/src/main/kotlin/at/mocode/horses/infrastructure/persistence/horse-registry/src/jvmMain/kotlin/at/mocode/horses/infrastructure/repository/HorseTable.kt→horses/horses-infrastructure/src/main/kotlin/at/mocode/horses/infrastructure/persistence/
Horses-API
horse-registry/src/jvmMain/kotlin/at/mocode/horses/infrastructure/api/HorseController.kt→horses/horses-api/src/main/kotlin/at/mocode/horses/api/rest/
Client UI
horse-registry/src/jsMain/kotlin/at/mocode/horses/ui/components/PferdeListe.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/components/horses/
5. Event-Management zu Events-Modulen
Events-Domain
event-management/src/commonMain/kotlin/at/mocode/events/domain/model/Veranstaltung.kt→events/events-domain/src/main/kotlin/at/mocode/events/domain/model/event-management/src/commonMain/kotlin/at/mocode/events/domain/repository/VeranstaltungRepository.kt→events/events-domain/src/main/kotlin/at/mocode/events/domain/repository/event-management/src/commonMain/kotlin/at/mocode/events/EventManagement.kt→events/events-domain/src/main/kotlin/at/mocode/events/
Events-Application
event-management/src/commonMain/kotlin/at/mocode/events/application/usecase/*.kt→events/events-application/src/main/kotlin/at/mocode/events/application/usecase/
Events-Infrastructure
event-management/src/jvmMain/kotlin/at/mocode/events/infrastructure/repository/VeranstaltungRepositoryImpl.kt→events/events-infrastructure/src/main/kotlin/at/mocode/events/infrastructure/persistence/event-management/src/jvmMain/kotlin/at/mocode/events/infrastructure/repository/VeranstaltungTable.kt→events/events-infrastructure/src/main/kotlin/at/mocode/events/infrastructure/persistence/
Events-API
event-management/src/jvmMain/kotlin/at/mocode/events/infrastructure/api/VeranstaltungController.kt→events/events-api/src/main/kotlin/at/mocode/events/api/rest/
Client UI
event-management/src/jsMain/kotlin/at/mocode/events/ui/components/VeranstaltungsListe.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/components/events/event-management/src/jsMain/kotlin/at/mocode/events/ui/utils/EventComponent.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/components/events/
6. API-Gateway zu Infrastructure/Gateway
Infrastructure/Gateway
api-gateway/src/jvmMain/kotlin/at/mocode/gateway/Application.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/auth/*.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/auth/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/config/*.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/config/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/discovery/*.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/discovery/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/migrations/*.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/migrations/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/plugins/*.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/plugins/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/routing/*.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/routing/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/validation/*.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/validation/api-gateway/src/jvmMain/kotlin/at/mocode/gateway/module.kt→infrastructure/gateway/src/main/kotlin/at/mocode/infrastructure/gateway/api-gateway/src/jvmMain/resources/openapi/documentation.yaml→infrastructure/gateway/src/main/resources/openapi/api-gateway/src/jvmMain/resources/static/docs/*→infrastructure/gateway/src/main/resources/static/docs/api-gateway/src/test/kotlin/at/mocode/gateway/ApiIntegrationTest.kt→infrastructure/gateway/src/test/kotlin/at/mocode/infrastructure/gateway/
7. ComposeApp zu Client-Modulen
Client/Common-UI
composeApp/src/commonMain/kotlin/at/mocode/ui/theme/Theme.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/theme/composeApp/src/commonMain/kotlin/at/mocode/di/AppDependencies.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/di/composeApp/src/commonMain/kotlin/App.kt→client/common-ui/src/main/kotlin/at/mocode/client/common/
Client/Web-App
composeApp/src/commonMain/kotlin/at/mocode/ui/screens/*.kt→client/web-app/src/main/kotlin/at/mocode/client/web/screens/composeApp/src/commonMain/kotlin/at/mocode/ui/viewmodel/*.kt→client/web-app/src/main/kotlin/at/mocode/client/web/viewmodel/composeApp/src/jsMain/kotlin/main.kt→client/web-app/src/main/kotlin/at/mocode/client/web/composeApp/src/commonTest/kotlin/at/mocode/ui/viewmodel/*.kt→client/web-app/src/test/kotlin/at/mocode/client/web/viewmodel/
Client/Desktop-App
composeApp/src/desktopMain/kotlin/main.kt→client/desktop-app/src/main/kotlin/at/mocode/client/desktop/
Migrationsprozess
Für jede zu migrierende Datei:
- Zielverzeichnis erstellen, falls es nicht existiert
- Datei an den Zielort kopieren
- Paket-Deklaration in der Datei entsprechend der neuen Paketstruktur aktualisieren
- Imports entsprechend der neuen Paketstruktur aktualisieren
- Alle Referenzen zu alten Modulnamen im Code aktualisieren
Verifikation
Nach der Migration:
- Build ausführen, um sicherzustellen, dass alle Module korrekt kompilieren
- Tests ausführen, um die Funktionalität zu verifizieren
- Verbleibende Migrationsaufgaben dokumentieren
Letzte Aktualisierung: 25. Juli 2025