docs: public static final void injectEndpoints(final Object target, final TestContext context) {
          ReflectionUtils.doWithFields(target.getClass(), new ReflectionUtils.FieldCallback() {
              @Override
              public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
                  log.debug(String.format("Injecting Citrus endpoint on test class field '%s'", field.getName()));
                  CitrusEndpoint endpointAnnotation = field.getAnnotation(CitrusEndpoint.class);
  
                  for (Annotation annotation : field.getAnnotations()) {
                      if (annotation.annotationType().getAnnotation(CitrusEndpointConfig.class) != null) {
                          ReflectionUtils.setField(field, target, context.getEndpointFactory().create(getEndpointName(field), annotation, context));
                          return;
                      }
                  }
  
                  Endpoint endpoint;
                  if (StringUtils.hasText(endpointAnnotation.name())) {
                      endpoint = context.getReferenceResolver().resolve(endpointAnnotation.name(), (Class<Endpoint>) field.getType());
                  } else {
                      endpoint = context.getReferenceResolver().resolve((Class<Endpoint>) field.getType());
                  }
  
                  ReflectionUtils.setField(field, target, endpoint);
              }
          }, new ReflectionUtils.FieldFilter() {
              @Override
              public boolean matches(Field field) {
                  if (field.isAnnotationPresent(CitrusEndpoint.class) &&
                          Endpoint.class.isAssignableFrom(field.getType())) {
                      if (!field.isAccessible()) {
                          ReflectionUtils.makeAccessible(field);
                      }
  
                      return true;
                  }
  
                  return false;
              }
          });
      }