GH-932 Fix registration of AWSTypesMessageConverter for functional spring applications

Resolves #932
This commit is contained in:
Oleg Zhurakousky
2022-11-10 12:13:57 +01:00
parent fd5a78e8a9
commit 672066b43a
9 changed files with 60 additions and 15 deletions

View File

@@ -8,6 +8,9 @@ import org.springframework.cloud.function.context.catalog.FunctionTypeUtils;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.support.GenericApplicationContext;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
@SpringBootConfiguration
public class FunctionConfiguration implements ApplicationContextInitializer<GenericApplicationContext> {
@@ -24,6 +27,15 @@ public class FunctionConfiguration implements ApplicationContextInitializer<Gene
public void initialize(GenericApplicationContext context) {
Function<String, String> function = (str) -> str + str.toUpperCase();
context.registerBean("uppercase", FunctionRegistration.class,
<<<<<<< HEAD
() -> new FunctionRegistration<>(function).type(FunctionTypeUtils.functionType(String.class, String.class)));
=======
() -> new FunctionRegistration<>(function).type(
FunctionType.from(String.class).to(String.class)));
context.registerBean("testFunction", FunctionRegistration.class,
() -> new FunctionRegistration<>(new TestFunction()).type(
FunctionType.from(APIGatewayProxyRequestEvent.class).to(APIGatewayProxyResponseEvent.class)));
>>>>>>> 3cb9dde6... GH-932 Fix registration of AWSTypesMessageConverter for functional spring applications
}
}

View File

@@ -0,0 +1,13 @@
package example;
import java.util.function.Function;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
public class TestFunction implements Function<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
@Override
public APIGatewayProxyResponseEvent apply(APIGatewayProxyRequestEvent apiGatewayProxyRequestEvent) {
return new APIGatewayProxyResponseEvent().withStatusCode(200).withBody("ok");
}
}