Uploaded image for project: 'Blossom'
  1. Blossom
  2. BLOSSOM-321

Allow injection of Spring managed components in template availability method

    XMLWordPrintable

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

        Attachments

          Activity

            People

              mgeljic Mikaël Geljić
              beschle Björn Eschle
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Checklists

                  Task DoD