cloudevents / cloudevents/sdk-java
Spring CloudEventMessageConverter content-type header name
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 446
- Forks
- 172
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Spring CloudEventMessageConverter content-type header name uses the Spring Messaging contentType header name which differs fom the cloud events spec content-type which is used by Kafka serializer for instance.
This leads to a message from a project using structured mode and kafka serializer (sdk-kafka) to not be deserialized by another project using (sdk-spring).
The current code is as follows on sdk-spring:
if (message.containsKey(MessageHeaders.CONTENT_TYPE)) {
return String.valueOf(message.get(MessageHeaders.CONTENT_TYPE));
}
if (message.containsKey(CloudEventsHeaders.CONTENT_TYPE)) {
return String.valueOf(message.get(CloudEventsHeaders.CONTENT_TYPE));
}
Unfortunately the CloudEventsHeaders.CONTENT_TYPE is CE_PREFIX + "datacontenttype" which is not exactly the same property we are looking here.
I would be happy to create a merge request where a another fallback is introduced to have the spec header name (content-type) which would enable the sdk-spring to deserialize messages.
This would add the support while still keeping it compatible with different versions and services.
Ideally, also the spring-sdk serializer should be checked and changed, but i would rather have this small mr fixed and dive on the serializer in a different issue.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Lokalisieren Sie den Code von Spring CloudEventMessageConverter in sdk-spring und prüfen Sie, wie er content-type-Header liest. Überprüfen Sie die im Issue beschriebene Interaktion zwischen Serializer und Deserializer und behalten Sie die bestehenden Fallbacks bei, während Sie die Header-Namenskonvention der CloudEvents-Spezifikation unterstützen; als abgeschlossen gilt die Aufgabe, wenn strukturierte Nachrichten aus sdk-kafka über sdk-spring deserialisiert werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java, kafka, spring
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100