log.log(INFO, "Qualifiers configured {0}", providerQualifiersConfigured);
Annotation qual = null;
try {
qual = getSingleProviderRelatedQualifier(annotatedMember, false);
} catch (AgoravaException e) {
pp.addDefinitionError(new AgoravaException("OAuthAppSettings producers should be annotated with a Service " +
"Provider on " + annotatedMember.getJavaMember().getName() + " in " + annotatedMember.getJavaMember()
.getDeclaringClass()));
}
if (annotatedMember.isAnnotationPresent(OAuthApplication.class)) {
if (annotatedMember instanceof AnnotatedField) {
final OAuthApplication app = annotatedMember.getAnnotation(OAuthApplication.class);
OAuthAppSettingsBuilder builderOAuthApp = null;
Class<? extends OAuthAppSettingsBuilder> builderClass = app.builder();
if (builderClass == OAuthAppSettingsBuilder.class) {
log.info("You didn't provide a Concrete OAuthAppSettingsBuilder class using the default " +
"PropertyOAuthAppSettingsBuilder class");
builderClass = PropertyOAuthAppSettingsBuilder.class;
}
try {
builderOAuthApp = builderClass.newInstance();
} catch (Exception e) {
pp.addDefinitionError(new AgoravaException("Unable to create Settings Builder with class " +
builderClass, e));
}
builderOAuthApp.qualifier(qual)
.params(app.params());
pp.setProducer(new OAuthAppSettingsProducerWithBuilder(builderOAuthApp, qual));
} else
pp.addDefinitionError(new AgoravaException("@OAuthApplication are only supported on Field. Agorava cannot " +
"process producer " + annotatedMember.getJavaMember().getName() + " in class " + annotatedMember
.getJavaMember().getDeclaringClass()));
} else {
final Producer<OAuthAppSettings> oldProducer = pp.getProducer();
pp.setProducer(new OAuthAppSettingsProducerDecorator(oldProducer, qual));