Fix CloudEvent prefix and fix the name of CloudEventAttributesProvider.java

This commit is contained in:
Oleg Zhurakousky
2020-11-13 16:07:33 +01:00
parent 719ad3e949
commit 632e73caf9
13 changed files with 59 additions and 28 deletions

View File

@@ -26,7 +26,7 @@ import org.springframework.messaging.MessageHeaders;
* @author Oleg Zhurakousky
* @since 3.1
*/
public interface CloudEventAtttributesProvider {
public interface CloudEventAttributesProvider {
/**
* Will construct instance of {@link CloudEventAttributes} setting its required attributes.

View File

@@ -90,7 +90,11 @@ public class CloudEventDataContentTypeMessagePreProcessor implements Function<Me
}
private Message<?> buildCeMessageFromStructured(Map<String, Object> structuredCloudEvent) {
MessageBuilder<?> builder = MessageBuilder.withPayload(structuredCloudEvent.get(CloudEventMessageUtils.DATA));
MessageBuilder<?> builder = MessageBuilder.withPayload(
structuredCloudEvent.containsKey(CloudEventMessageUtils.CE_DATA)
? structuredCloudEvent.get(CloudEventMessageUtils.CE_DATA)
: structuredCloudEvent.get(CloudEventMessageUtils.DATA));
structuredCloudEvent.remove(CloudEventMessageUtils.CE_DATA);
structuredCloudEvent.remove(CloudEventMessageUtils.DATA);
builder.copyHeaders(structuredCloudEvent);
return builder.build();

View File

@@ -49,7 +49,7 @@ public final class CloudEventMessageUtils {
/**
* Prefix for attributes.
*/
public static String ATTR_PREFIX = "ce_";
public static String ATTR_PREFIX = "ce-";
/**
* Value for 'data' attribute.

View File

@@ -37,7 +37,7 @@ import org.springframework.util.StringUtils;
* @since 3.1
*
*/
public class DefaultCloudEventAttributesProvider implements CloudEventAtttributesProvider, ApplicationContextAware {
public class DefaultCloudEventAttributesProvider implements CloudEventAttributesProvider, ApplicationContextAware {
private ConfigurableApplicationContext applicationContext;

View File

@@ -33,7 +33,7 @@ import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils;
import org.springframework.cloud.function.cloudevent.CloudEventAtttributesProvider;
import org.springframework.cloud.function.cloudevent.CloudEventAttributesProvider;
import org.springframework.cloud.function.context.FunctionProperties;
import org.springframework.cloud.function.context.FunctionRegistration;
import org.springframework.cloud.function.context.FunctionRegistry;
@@ -57,7 +57,7 @@ public class BeanFactoryAwareFunctionRegistry extends SimpleFunctionRegistry imp
private GenericApplicationContext applicationContext;
@Autowired(required = false)
private CloudEventAtttributesProvider cloudEventAtttributesProvider;
private CloudEventAttributesProvider cloudEventAtttributesProvider;
public BeanFactoryAwareFunctionRegistry(ConversionService conversionService, CompositeMessageConverter messageConverter, JsonMapper jsonMapper) {

View File

@@ -866,7 +866,7 @@ public class SimpleFunctionRegistry implements FunctionRegistry, FunctionInspect
output = enhancer.apply(output);
}
if (ObjectUtils.isEmpty(contentType)) {
if (ObjectUtils.isEmpty(contentType) && !(output instanceof Publisher)) {
return output;
}

View File

@@ -30,7 +30,7 @@ import com.google.gson.Gson;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.function.cloudevent.CloudEventAtttributesProvider;
import org.springframework.cloud.function.cloudevent.CloudEventAttributesProvider;
import org.springframework.cloud.function.cloudevent.CloudEventDataContentTypeMessagePreProcessor;
import org.springframework.cloud.function.cloudevent.CloudEventJsonMessageConverter;
import org.springframework.cloud.function.cloudevent.DefaultCloudEventAttributesProvider;
@@ -76,7 +76,7 @@ public class ContextFunctionCatalogAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CloudEventAtttributesProvider cloudEventAttributesProvider() {
public CloudEventAttributesProvider cloudEventAttributesProvider() {
return new DefaultCloudEventAttributesProvider();
}

View File

@@ -45,7 +45,7 @@ public class CloudEventTypeConversionTests {
@Test
public void testFromMessageBinaryPayloadMatchesType() {
SmartCompositeMessageConverter messageConverter = this.configure(DummyConfiguration.class);
CloudEventAtttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributes ceAttributes = ceAttrProvider
.get(UUID.randomUUID().toString(), "1.0", "https://spring.io/", "org.springframework");
ceAttributes.setDataContentType("text/plain");
@@ -58,7 +58,7 @@ public class CloudEventTypeConversionTests {
@Test
public void testFromMessageBinaryPayloadDoesNotMatchType() {
SmartCompositeMessageConverter messageConverter = this.configure(DummyConfiguration.class);
CloudEventAtttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributes ceAttributes = ceAttrProvider
.get(UUID.randomUUID().toString(), "1.0", "https://spring.io/", "org.springframework");
Message<byte[]> message = MessageBuilder.withPayload("Hello Ricky".getBytes())
@@ -74,7 +74,7 @@ public class CloudEventTypeConversionTests {
// this works
public void testFromMessageBinaryPayloadNoDataContentTypeToString() {
SmartCompositeMessageConverter messageConverter = this.configure(DummyConfiguration.class);
CloudEventAtttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributes ceAttributes = ceAttrProvider
.get(UUID.randomUUID().toString(), "1.0", "https://spring.io/", "org.springframework");
Message<byte[]> message = MessageBuilder.withPayload("Hello Ricky".getBytes())
@@ -89,7 +89,7 @@ public class CloudEventTypeConversionTests {
@Test // Unlike the previous test the type here is POJO so no special treatement
public void testFromMessageBinaryPayloadNoDataContentTypeToPOJO() {
SmartCompositeMessageConverter messageConverter = this.configure(DummyConfiguration.class);
CloudEventAtttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributes ceAttributes = ceAttrProvider.get("https://spring.io/", "org.springframework");
Message<byte[]> message = MessageBuilder.withPayload("Hello Ricky".getBytes())
.copyHeaders(ceAttributes)
@@ -103,7 +103,7 @@ public class CloudEventTypeConversionTests {
@Test // will fall on default CT which is json
public void testFromMessageBinaryPayloadNoDataContentTypeToPOJOThatWorks() {
SmartCompositeMessageConverter messageConverter = this.configure(DummyConfiguration.class);
CloudEventAtttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributesProvider ceAttrProvider = new DefaultCloudEventAttributesProvider();
CloudEventAttributes ceAttributes = ceAttrProvider.get("https://spring.io/", "org.springframework");
Message<byte[]> message = MessageBuilder.withPayload("{\"name\":\"Ricky\"}".getBytes())
.copyHeaders(ceAttributes)