code: public RepositoryMethodDescriptor createMethodDescriptor(final DescriptorContext context) {
          final Annotation annotation = ExtUtils.findMethodAnnotation(context.method);
          context.extensionAnnotation = annotation.annotationType();
          context.extensionType = annotation.annotationType().getAnnotation(RepositoryMethod.class).value();
          final Provider<? extends RepositoryMethodExtension> extension = injector.getProvider(context.extensionType);
          @SuppressWarnings("unchecked")
          final RepositoryMethodDescriptor<?> descriptor = extension.get().createDescriptor(context, annotation);
          descriptor.methodExtension = extension;
          return descriptor;
      }
docs: Finds method extension annotation and resolve extension instance from it.
  Implicitly updates incoming context with extension type (other extensions could use it).
  Updates descriptor, created by extension with extension provider.
  
  @param context repository method context
  @return descriptor object created by extension