Comments (4)
Hey Guys @baulea, @a1shadows, Thanks for looking at it. But imo gson is still fine as long as it doesn't do any harm, also it's great where it has solved a usecase easily.
I don't think we will gain a lot by replacing this with jackson as currently this only does the serde tasks around 1% of the scenarios(e.g. kafka headers etc).
So my advice would be to keep this as a low proprity TECHDEBT or withdraw this ticket until it blocks anyone or any problem scenario.
It's worth checking other functional issues which have ben raised recently as well the old ones which might benefit the framework's overall capability.
Thanks for understanding...
from zerocode.
Hi @a1shadows ,
I could have a look at that next week.
from zerocode.
Hi @a1shadows
GSON internally uses a ToNumberPolicy.DOUBLE and converts JSON numbers into Double.
E.g. in kafka-testing/src/test/resources/kafka/produce/test_kafka_produce_int_key.json, the request contains an "Integer" key "101" in the produce operation, but during the unload operation the assertion checks for a "Double" key.
{
"scenarioName": "Produce a message to kafka topic - int Key",
"steps": [
{...
"operation": "produce",
"request": {
"recordType" : "RAW",
"records": [
{
**"key": 101,**
"value": "Hello World"
}
]
}, ...
},
{ ...
"operation": "unload",
...
"assertions": {
"size": 1,
"records": [
{
**"key": 101.0,**
"value": "Hello World"
}
]
}
}
]
}
Moving to Jackson, I did not find a suitable build-in replacement for this mechanism. So we would have recreate this behaviour programmatically to prevent the tests from failing.
I don't know whether this implicit conversion Integer->Double just sneaked in because GSON had been used or if it is an important feature.
Could we change "key" in the produce section of the unit tests to double? This would break the current functionality, but it would be more consistent in my opinion.
from zerocode.
Hey, I'll take a look at this and get back to you
from zerocode.
Related Issues (20)
- Release with Lombok dependency (with a RC version)
- Support for multiple parameters in the Java method invocation Step HOT 6
- [BUG] seekTo throws NPE when no offset found for a timestamp
- [TECH-DEBT] Add an Integration test scenario with multi partition topic to reproduce NPE for seekTimestamp feature
- Improvement of seek functionality in kafka consumer HOT 1
- [TECH-DEBT] Move to jackson json provider in JsonPath instead of jsonsmart HOT 4
- [M3][ERROR] Failed to execute goal com.github.os72:protoc-jar-maven-plugin:3.11.4:run (default) on project kafka-testing: Error extracting protoc for version 3.11.4: Unsupported platform: protoc-3.11.4-osx-aarch_64.exe -> [Help 1] HOT 4
- Validator does not dig to resolve jsonpath and other type of value placeholders HOT 4
- recordType does not take into account differences between key and value for kafka HOT 3
- Crash on Kafka consume when key is string with `recordType: JSON` HOT 4
- Generating Current Timestamp with microsecond with "SSSSSS" - Works but with padding three zeroes HOT 9
- Tokens in csvSource parameter sources computed at usage HOT 9
- Vaue lookup tokens don't work in kakfa JSON value HOT 2
- [Feature Request] Conditional execution of Steps HOT 2
- [Feature Request] gRPC Support HOT 1
- [ERROR] Failed to execute goal com.github.os72:protoc-jar-maven-plugin:3.11.4:run (default) on project kafka-testing: protoc-jar failed for C:\Users\usr\IdeaProjects\zerocode\kafka-testing\src\main\proto\Persons.proto. Exit code -1073741515 -> [Help 1] HOT 1
- When body is blank and hitting POST request getting "Length Required" error 411 HOT 3
- r
- How to encode some data, which we need to use in consecutive requests HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zerocode.