-
Notifications
You must be signed in to change notification settings - Fork 454
Closed
Labels
Milestone
Description
Parent: #4179
Goal
Make Mapper an interface (@MorphiaInternal), rename current implementation to ReflectiveMapper, add mapper() config to MorphiaConfig.
Details
Tasks
- Create
MapperTypeenum (LEGACY, CRITTER) - Add
mapper()toMorphiaConfiginterface with default LEGACY - Add
mapperfield toManualMorphiaConfig - Convert
Mapperclass to interface - Create
AbstractMapperwith shared logic (registration, discriminator, listeners, config) - Create
ReflectiveMapper extends AbstractMapper(current implementation) - Update
MorphiaDatastoreto use factory method for mapper creation - Add Sofia error message for invalid config
- Verify all existing tests pass unchanged
Constraint
Any changes to the Mapper interface contract require explicit review.
Progress Tracking
phase_percentage = (completed_tasks / 9) * 100, rounded to nearest integer
gh issue edit 4184 --repo MorphiaOrg/morphia --title "[XX%] Phase 1: Extract Mapper interface and add config option"
parent_percentage = (total_completed_tasks_across_all_phases / 53) * 100, rounded to nearest integer
gh issue edit 4179 --repo MorphiaOrg/morphia --title "[XX%] Integrate critter-core into morphia-core"
When all tasks are complete (100%), close this issue and check its box in #4179.
Reactions are currently unavailable