Remove functionType deprecations

This commit is contained in:
Oleg Zhurakousky
2022-07-27 17:41:09 +02:00
parent d1eb0341b1
commit a7a8217f58
2 changed files with 9 additions and 60 deletions

View File

@@ -42,6 +42,7 @@ import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils; import org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils;
import org.springframework.cloud.function.context.FunctionRegistration; import org.springframework.cloud.function.context.FunctionRegistration;
import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry.FunctionInvocationWrapper;
import org.springframework.cloud.function.context.config.FunctionContextUtils; import org.springframework.cloud.function.context.config.FunctionContextUtils;
import org.springframework.cloud.function.context.config.RoutingFunction; import org.springframework.cloud.function.context.config.RoutingFunction;
import org.springframework.context.support.GenericApplicationContext; import org.springframework.context.support.GenericApplicationContext;
@@ -260,11 +261,10 @@ public final class FunctionTypeUtils {
} }
} }
public static int getInputCount(Type functionType) { public static int getInputCount(FunctionInvocationWrapper function) {
assertSupportedTypes(functionType); int inputCount = function.isSupplier() ? 0 : 1;
int inputCount = isSupplier(functionType) ? 0 : 1; if (inputCount > 0) {
if (functionType instanceof ParameterizedType && !isSupplier(functionType)) { Type inputType = function.getInputType();
Type inputType = ((ParameterizedType) functionType).getActualTypeArguments()[0];
if (isMulti(inputType)) { if (isMulti(inputType)) {
inputCount = ((ParameterizedType) inputType).getActualTypeArguments().length; inputCount = ((ParameterizedType) inputType).getActualTypeArguments().length;
} }
@@ -272,11 +272,10 @@ public final class FunctionTypeUtils {
return inputCount; return inputCount;
} }
public static int getOutputCount(Type functionType) { public static int getOutputCount(FunctionInvocationWrapper function) {
assertSupportedTypes(functionType); int outputCount = function.isConsumer() ? 0 : 1;
int outputCount = isConsumer(functionType) ? 0 : 1; if (outputCount > 0) {
if (functionType instanceof ParameterizedType && !isConsumer(functionType)) { Type outputType = function.getOutputType();
Type outputType = ((ParameterizedType) functionType).getActualTypeArguments()[isSupplier(functionType) ? 0 : 1];
if (isMulti(outputType)) { if (isMulti(outputType)) {
outputCount = ((ParameterizedType) outputType).getActualTypeArguments().length; outputCount = ((ParameterizedType) outputType).getActualTypeArguments().length;
} }

View File

@@ -66,56 +66,6 @@ public class FunctionTypeUtilsTests<T> {
System.out.println(); System.out.println();
} }
@Test
public void testInputCount() throws Exception {
int inputCount = FunctionTypeUtils.getInputCount(getReturnType("function"));
assertThat(inputCount).isEqualTo(1);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("typelessFunction"));
assertThat(inputCount).isEqualTo(1);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("multiInputOutputFunction"));
assertThat(inputCount).isEqualTo(2);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("multiInputOutputPublisherFunction"));
assertThat(inputCount).isEqualTo(2);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("multiInputOutputPublisherFunctionComplexTypes"));
assertThat(inputCount).isEqualTo(2);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("consumer"));
assertThat(inputCount).isEqualTo(1);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("typelessConsumer"));
assertThat(inputCount).isEqualTo(1);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("multiInputConsumer"));
assertThat(inputCount).isEqualTo(2);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("supplier"));
assertThat(inputCount).isEqualTo(0);
inputCount = FunctionTypeUtils.getInputCount(getReturnType("typelessSupplier"));
assertThat(inputCount).isEqualTo(0);
}
@Test
public void testOutputCount() throws Exception {
int outputCount = FunctionTypeUtils.getOutputCount(getReturnType("function"));
assertThat(outputCount).isEqualTo(1);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("typelessFunction"));
assertThat(outputCount).isEqualTo(1);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("multiInputOutputFunction"));
assertThat(outputCount).isEqualTo(3);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("multiInputOutputPublisherFunction"));
assertThat(outputCount).isEqualTo(3);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("multiInputOutputPublisherFunctionComplexTypes"));
assertThat(outputCount).isEqualTo(3);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("consumer"));
assertThat(outputCount).isEqualTo(0);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("typelessConsumer"));
assertThat(outputCount).isEqualTo(0);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("multiInputConsumer"));
assertThat(outputCount).isEqualTo(0);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("supplier"));
assertThat(outputCount).isEqualTo(1);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("typelessSupplier"));
assertThat(outputCount).isEqualTo(1);
outputCount = FunctionTypeUtils.getOutputCount(getReturnType("multiOutputSupplier"));
assertThat(outputCount).isEqualTo(2);
}
@Test @Test
public void testFunctionTypeByClassDiscovery() { public void testFunctionTypeByClassDiscovery() {
Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(Function.class); Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(Function.class);