code: @Override
      public AnnotationDefinition resolveAnnotationDefinition(
              String resourceLocation)
              throws AnnotationDefinitionResolutionException {
  
          synchronized (resourceLocation) {
              // return if cached
              if (annotations.containsKey(resourceLocation)) {
                  return annotations.get(resourceLocation);
              }
  
              // resolve and parse
              AnnotationDefinition annotationDefinition =
                      cacheableAnnotationDefinitionService
                              .resolveAnnotationDefinition(resourceLocation);
  
              // cache annotation definition and return
              annotations.put(resourceLocation, annotationDefinition);
              return annotationDefinition;
          }
      }
docs: {@inheritDoc}