spring-data-mongodb icon indicating copy to clipboard operation
spring-data-mongodb copied to clipboard

Add serializers to GeoJsonModule jackson module constructor

Open MuravlevAS opened this issue 7 months ago • 4 comments

https://github.com/spring-projects/spring-data-mongodb/blame/eaa80e3337f4ee42341faecfc886bd5beb9cf285/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/geo/GeoJsonModule.java#L54

Problem:

When I create GeoJsonModule with constructor, I have expected that it will register both serializers and deserializers and will correctly serialize geo json objects into json. But this not happens. When I serialize object it serializes fields not correctly, so that I cannot deserialize object back to original type. It is not obvious that module with such general name not registers serializers.

There is also TODO comment in code, so I decided to fix this TODO and my problem.

Demo project with tests: https://github.com/MuravlevAS/spring-demo/tree/master/src/test/java/com/example/demo

MuravlevAS avatar Apr 18 '25 07:04 MuravlevAS

If you would like us to spend some time helping you to diagnose the problem, please spend some time describing it and, ideally, providing a minimal yet complete sample that reproduces the problem. You can share it with us by pushing it to a separate repository on GitHub or by zipping it up and attaching it to this issue.

mp911de avatar Apr 22 '25 06:04 mp911de

@mp911de I have created pull request. Look: https://github.com/spring-projects/spring-data-mongodb/pull/4955

MuravlevAS avatar Apr 22 '25 11:04 MuravlevAS

Can we discuss what you're intending to fix or change before submitting a pull request?

mp911de avatar Apr 22 '25 12:04 mp911de

@mp911de When I create GeoJsonModule with constructor, I have expected that it will register both serializers and deserializers and will correctly serialize geo json objects into json. But this not happens. When I serialize object it serializes fields not correctly, so that I cannot deserialize object back to original type. It is not obvious that module with such general name not registers serializers.

There is also TODO comment in code, so I decided to fix this TODO and my problem.

Demo project with tests: https://github.com/MuravlevAS/spring-demo/tree/master/src/test/java/com/example/demo

MuravlevAS avatar Apr 22 '25 14:04 MuravlevAS