Details
-
Improvement
-
Resolution: Unresolved
-
Medium
-
None
-
None
-
None
-
None
Description
Hello,
with BLOSSOM-295 you implemented the feature to delegate param resolver to spring's
HandlerMethodArgumentResolvers.
Can you also implement this for getTemplateAvailabilityParameters?
TemplateDefinitionBuilder.getTemplateAvailabilityParameters(Node node, TemplateDefinition templateDefinition)
We have currently implemented this on our own by extending TemplateDefinitionBuilder
and overriding resolveTemplateAvailability (Method is required for ArgumentResolverParameterResolver, applicationContext is injected):
@Override protected TemplateAvailability resolveTemplateAvailability(final HandlerMetaData template) { final Method method = resolveTemplateAvailabilityMethod(template); if (method != null) { return (node, templateDefinition) -> (Boolean) MethodInvocationUtils.invoke( method, template.getHandler(), new ArgumentResolverParameterResolver(method, applicationContext.getAutowireCapableBeanFactory()) { @Override public Object resolveParameter(final Class<?> parameterType) { if(parameterType.equals(Node.class)) { return node; } if (parameterType.equals(TemplateDefinition.class)) { return templateDefinition; } return super.resolveParameter(parameterType); } } ); } return super.resolveTemplateAvailability(template); }
Checklists
Acceptance criteria