private void loadAnnotationAttributes(Annotation annotation) throws ClassNotFoundException {
    Class<? extends Annotation> annotationType = annotation.annotationType();
    loadClassDependencies(annotationType);
    Method[] methods = annotationType.getDeclaredMethods();
    for (Method method : methods) {
      try {
        method.invoke(annotation);
      }
      catch (IllegalAccessException e) {
        // for example internal jdk annotations -> do nothing
      }
      catch (InvocationTargetException e) {
        Throwable cause = e.getCause();
        if (cause instanceof TypeNotPresentException) {
          throw (TypeNotPresentException)cause;
        }
        throw new RuntimeException(e);
      }
    }
  }
private void loadAnnotationAttributes(Annotation annotation)