`ToCloudEventTransformer`: binary mode sets `contentType` to `application/cloudevents`
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 86/100
Línea de trabajo
Lee ToCloudEventTransformer.java alrededor de la línea 347 y las aserciones del modo binario en ToCloudEventTransformerTests alrededor de las líneas 167 y 225. Comprueba cómo el transformador establece contentType cuando conserva el payload y escribe encabezados ce-*. Actualiza la expectativa del modo binario para que se conserve el tipo de contenido de entrada application/json y, después, confirma que la prueba cubre el tipo de contenido y el payload esperados de los datos de CloudEvent.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Spring Integration 7.1.2, cloudevents-spring 5.1.0.
In binary mode, ToCloudEventTransformer keeps the event data as the payload and writes the attributes as ce-* headers, but it also replaces contentType with application/cloudevents (MessageBuilderMessageWriter#create(…), line 347). The CloudEvents bindings use that media type to mark structured mode; in binary mode the content type is the datacontenttype (HTTP binding §3 and §3.1.1, AMQP binding §3 and §3.1.1). So the CloudEvents SDK can't read the output:
Message<byte[]> input = MessageBuilder.withPayload("{\"order\":42}".getBytes(StandardCharsets.UTF_8))
.setHeader(MessageHeaders.CONTENT_TYPE, "application/json")
.build();
Message<?> output = (Message<?>) toCloudEventTransformer.transform(input);
new CloudEventMessageConverter().fromMessage(output, CloudEvent.class);
- Expected: a
CloudEventwithdatacontenttypeapplication/jsonand the payload as its data. - Actual:
CloudEventRWException: Could not parse. Unknown encoding. Invalid content type or spec version.
With contentType set back to application/json, the same message reads correctly.
Suggested fix: in binary mode, keep the input's contentType, since the payload doesn't change. ToCloudEventTransformerTests asserts the current value at lines 167 and 225.
- Lenguaje dominante
- Java
- Estrellas
- 1.6k
- Forks
- 1.2k
- Merge medio
- 20 h 16 min
- PR fusionados (30 d)
- 79
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de spring-projects/spring-integration
-
status: waiting-for-triage type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
spring-projects/spring-integration#11654 ·
Los mantenedores suelen responder en 1 día
-
MQTT v5 outbound adapter drops the trace context that the integration observation puts into the messagePosiblemente ocupada @Hyunsdb la tomó hace 8 días. Abiertoin: mqtt type: enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
spring-projects/spring-integration#11562 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Add Java DSL for `spring-integration-mqtt-client` modulePosiblemente ocupada @yeomin4242 la tomó hace 12 días. Abiertoideal-for-user-contribution in: dsl in: mqtt type: enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
spring-projects/spring-integration#11537 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
status: waiting-for-reporter type: enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
spring-projects/spring-integration#10672 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
in: sftp type: enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
spring-projects/spring-integration#9971 ·
Los mantenedores suelen responder en 1 día
Todos los issues de spring-projects/spring-integration
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
a2aproject/a2a-java#1275 ·
Los mantenedores suelen responder en 1 día
-
module/ftp Type/Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ballerina-platform/ballerina-library#9476 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
anwilli5/coin-collection-android-US#515 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 70/100
Vakore/ZappierGames#248 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
processing/processing4#1592 ·