@SuppressWarnings("unchecked")
@Override
public Configuration buildConfiguration() throws AnnotationRequired {
if (annotationFinder().isAnnotationPresent(UsingGroovy.class)) {
Class<GroovyClassLoader> classLoaderClass = annotationFinder().getAnnotatedValue(UsingGroovy.class,
Class.class, "classLoader");
Class<GroovyResourceFinder> resourceFinderClass = annotationFinder().getAnnotatedValue(UsingGroovy.class,
Class.class, "resourceFinder");
try {
GroovyClassLoader classLoader = super.instanceOf(classLoaderClass, classLoaderClass);
GroovyResourceFinder resourceFinder = super.instanceOf(resourceFinderClass, resourceFinderClass);
context = createGroovyContext(classLoader, resourceFinder);
} catch (Exception e) {
annotationMonitor().elementCreationFailed(GroovyContext.class, e);
}
} else {
annotationMonitor().annotationNotFound(UsingGroovy.class, annotatedClass());
}
return super.buildConfiguration();
}