Polished adapter initializers consolidation effort

- Added ability to retrieve input type from FunctionRegistration (if available) in AbstractSpringFunctionAdapterInitializer
- Removed azure/AzureSpringFunctionInitializer and aws/SpringFunctionInitializer
- Added additional tests in AWS and Azure modules
- See 0189c578ef for additional info
This commit is contained in:
Oleg Zhurakousky
2019-02-25 19:37:34 +01:00
parent 41f66e9b48
commit cdca44f714
11 changed files with 102 additions and 558 deletions

View File

@@ -65,6 +65,8 @@ public abstract class AbstractSpringFunctionAdapterInitializer<C> implements Clo
private Supplier<Publisher<?>> supplier;
private FunctionRegistration<?> functionRegistration;
private AtomicBoolean initialized = new AtomicBoolean();
@Autowired(required = false)
@@ -119,6 +121,9 @@ public abstract class AbstractSpringFunctionAdapterInitializer<C> implements Clo
if (this.inspector != null) {
return this.inspector.getInputType(function());
}
else if (functionRegistration != null) {
return functionRegistration.getType().getInputType();
}
return Object.class;
}
@@ -274,13 +279,15 @@ public abstract class AbstractSpringFunctionAdapterInitializer<C> implements Clo
@SuppressWarnings({ "unchecked", "rawtypes" })
private <T> T getAndInstrumentFromContext(String name) {
FunctionRegistration<?> functionRegistration =
this.functionRegistration =
new FunctionRegistration(context.getBean(name), name);
Type type = FunctionContextUtils.
findType(name, (ConfigurableListableBeanFactory) this.context.getBeanFactory());
FunctionType functionType = new FunctionType(type);
return (T) functionRegistration.type(functionType).wrap().getTarget();
this.functionRegistration = functionRegistration.type(new FunctionType(type)).wrap();
return (T) functionRegistration.getTarget();
}
private void initFunctionConsumerOrSupplierFromContext(Object targetContext) {