Gesamtübersicht
Migrationsmatrix
Einheitliche Sicht auf Zielbild, Risiko und Testschwerpunkt aller Module.
| Modul | Kategorie | Stufe | Risiko | Technischer Übergang | Hauptrisiko | Testschwerpunkt |
|---|---|---|---|---|---|---|
| 01 · Dependency Injection | Enterprise | 1 | NIEDRIG | Service Locator / manuelle Verdrahtung → Spring Constructor Injection | hidden dependencies, global state | constructor-level unit tests and context smoke test |
| 02 · AOP | Enterprise | 3 | NIEDRIG | JDK Dynamic Proxy → Spring AOP mit @Aspect | proxy limitations and cross-cutting coupling | aspect activation, exception and ordering tests |
| 03 · REST | Integration | 3 | NIEDRIG | JAX-RS 2.1 mit javax.ws.rs → Spring Boot REST mit jakarta.validation | HTTP contract drift and validation gaps | status codes, validation, error payload and actuator exposure |
| 04 · Persistenz | Daten | 4 | NIEDRIG | JDBC und DAO → Spring Data JPA | schema drift, lazy loading and transaction boundaries | repository slice, service transaction and rollback tests |
| 05 · Transaktionen | Daten | 4 | NIEDRIG | manuelles Commit/Rollback → @Transactional | partial writes and incorrect rollback rules | success, checked/unchecked failure and rollback assertions |
| 06 · Batch | Integration | 5 | MITTEL | manueller CSV-Ablauf → Spring Batch Pipeline | restartability, duplicate processing and bad-record policy | job launch, restart, skip/retry and idempotency tests |
| 07 · Messaging | Integration | 5 | MITTEL | javax.jms und ActiveMQ Classic → Spring JMS mit jakarta.jms | duplicate delivery, poison messages and vulnerable legacy broker | redelivery, idempotency, DLQ and serialization tests |
| 08 · XML und JAXB | XML | 3 | NIEDRIG | javax.xml.bind → jakarta.xml.bind | namespace and schema compatibility | round-trip, invalid XML, encoding and XXE-negative tests |
| 09 · Servlet und Web | Web | 3 | NIEDRIG | javax.servlet → Spring MVC auf jakarta.servlet | container/API migration and endpoint compatibility | web slice, content type, health and malformed request tests |
| 10 · SOAP | Integration | 3 | MITTEL | javax JAX-WS → Jakarta XML Web Services | WSDL/namespace compatibility and fault mapping | contract, SOAP fault and interoperability tests |
| 11 · Java-Grundlagen | Java Core | 2 | NIEDRIG | mutable JavaBean und Hilfsklassen → Records, Pattern Matching und Value Objects | serialization/equality behavior changes | equals/hashCode, validation and immutability tests |
| 12 · Collections | Java Core | 2 | NIEDRIG | Vector, Hashtable und Enumeration → generische Collections und unveränderliche Sichten | mutation leaks and ordering semantics | aliasing, null, duplicates and ordering tests |
| 13 · Generics | Java Core | 2 | NIEDRIG | Raw Types und Casts → typsichere generische Repositorys | runtime ClassCastException versus compile-time safety | generic boundaries, absent values and repository identity tests |
| 14 · Annotations und Reflection | Java Core | 2 | NIEDRIG | Namenskonventionen und Reflection-Strings → Annotation-gesteuertes Command Registry | illegal access, duplicate commands and startup failures | duplicate annotation, missing method and invocation failure tests |
| 15 · Lambda und Streams | Java Core | 2 | NIEDRIG | imperative Schleifen und anonyme Klassen → Stream Pipeline mit Records und Collectors | ordering, short-circuit and null semantics | empty input, duplicates, precision and parallel-safety tests |
| 16 · Concurrency | Java Core | 2 | NIEDRIG | plattformgebundener Thread Pool → Virtual Threads und sichere Aggregation | race conditions, leaks and nondeterministic tests | timeouts, cancellation, interruption and repeated stress tests |
| 17 · Java I/O und NIO | Java Core | 2 | NIEDRIG | File und manuelles Ressourcenmanagement → Path, Files und Try-with-resources | resource handling, overwrite and atomicity | permissions, missing files, overwrite and large-file tests |
| 18 · Exception Handling und Logging | Java Core | 1 | NIEDRIG | Catch-all, null und System.err → Domain Exceptions und System.Logger | lost root cause and unstable error contracts | cause preservation, log context and negative-path tests |
| 19 · JUnit und Testdesign | Testing | 1 | NIEDRIG | JUnit 4 und einzelne Beispielwerte → JUnit 5 Parameterized Tests | test lifecycle and assertion migration | parameter boundaries, lifecycle and failure-message tests |
| 20 · HTTP-Client und Webtest | Testing | 2 | NIEDRIG | HttpURLConnection → Java HttpClient mit Transport-Port | timeouts, redirects and encoding | timeout, non-2xx, headers, redirect and body-size tests |
| 21 · Maven Properties und Konfiguration | Build | 1 | NIEDRIG | String-Properties und Build-Filterung → typisierte Konfiguration mit Validierung | missing keys, precedence and environment drift | default, override, malformed and encoding tests |
| 22 · Spring JDBC | Daten | 4 | NIEDRIG | Statement, ResultSet und manuelles Mapping → JdbcClient und RowMapper | SQL mapping, transaction and resource handling | row mapping, empty result, duplicate key and rollback tests |
| 23 · Hibernate und JPA | Daten | 4 | NIEDRIG | proprietäres Hibernate Session API → Jakarta Persistence und Spring Data Repository | entity lifecycle, schema and query differences | entity mapping, repository query, transaction and N+1 checks |
| 24 · MongoDB | Daten | 4 | NIEDRIG | MongoDB Document und manueller Mapper → Spring Data MongoDB Document/Repository | document shape and mapping compatibility | mapping, missing fields, query and index assumptions |
| 25 · JNDI und Service-Auflösung | Enterprise | 5 | NIEDRIG | InitialContext und Service Locator → Constructor Injection und explizite Ports | runtime lookup failure and hidden dependency | binding failure, constructor contract and context startup |
| 26 · JMX und Monitoring | Observability | 5 | NIEDRIG | Standard MBean und direkte Registrierung → Actuator und Micrometer Counter | metric/endpoint naming and exposure | endpoint exposure, health detail and unauthorized access tests |
| 27 · EJB und Services | Enterprise | 5 | NIEDRIG | EJB-2-artige Home/Remote-Schnittstellen → Spring Service und REST Facade | transaction/security semantics and remote contract drift | service contract, web adapter and transaction tests |
| 28 · JPMS / Jigsaw | Modularisierung | 5 | MITTEL | Classpath und globale Sichtbarkeit → module-info, exports und Service Provider | split packages, exports and readability | module-path compile, forbidden access and service-loading tests |
| 29 · Service Registry und ServiceLoader | Modularisierung | 5 | NIEDRIG | dynamische Service Registry → Java SPI mit ServiceLoader | provider discovery, ordering and duplicates | no provider, multiple provider and packaging tests |
| 30 · XML Parser | XML | 3 | NIEDRIG | DOM lädt vollständigen Objektbaum → StAX verarbeitet Streaming-Events | XXE, entity expansion and malformed XML | XXE-negative, namespace, large input and error-position tests |
| 31 · XSLT | XML | 3 | NIEDRIG | Transformer pro Aufruf mit Defaults → vorkompilierte Templates mit Secure Processing | external access, thread safety and cache invalidation | external resource denial, concurrency and invalid stylesheet tests |
| 32 · Kryptografie | Security | 5 | NIEDRIG | deterministische AES-ECB-Demo → AES-GCM mit PBKDF2, Salt und IV | confidentiality/integrity failure and nonce misuse | tamper, wrong key, nonce uniqueness and empty payload tests |
| 33 · SMTP und Mail | Integration | 3 | NIEDRIG | javax.mail MimeMessage → Jakarta Mail und Mail Gateway | header injection, transport errors and charset drift | recipient validation, Unicode, transport failure and header tests |
| 34 · Patterns und Refactoring | Architecture | 1 | NIEDRIG | Switch-basierte Preislogik → Strategy, Factory und Value Objects | branch growth and unsupported customer types | all strategies, factory completeness and unknown type tests |