Dear Camel Technologists,
I am at my wits end figuring out what is wrong with my code as I have been
now trying for more than a week to dynamically update the
'exchangeAuthenticator' bean values by unbinding and then binding it to the
'DefaultRegistry' in 'CamelContext'.
Please help me as to what I am doing wrong below:
ublic void updateAuthenticator() {
String tenantId = emailConfigBean.getTenantId();
String clientId = emailConfigBean.getClientId();
String clientSecret = emailConfigBean.getClientSecret();
String wsAdapterMailBox = emailConfigBean.getWSAdapterMailBox();
try {
log.info("@#$@#$@#$ trying new default registry...");
log.info("@#$@#%$@#$ Updating authenticator bean: tenantId {}
clientId {} clientSecret {} userName {}", tenantId,
clientId, clientSecret, wsAdapterMailBox);
MicrosoftExchangeOnlineOAuth2MailAuthenticator
newExchangeAuthenticator = new
MicrosoftExchangeOnlineOAuth2MailAuthenticator(
tenantId, clientId, clientSecret, wsAdapterMailBox);
// Get the registry
DefaultRegistry defaultRegistry = (DefaultRegistry)
camelContext.getRegistry();
// Unbind the existing 'exchangeAuthenticator' bean
MicrosoftExchangeOnlineOAuth2MailAuthenticator exchangeAuthenticator =
(MicrosoftExchangeOnlineOAuth2MailAuthenticator) defaultRegistry
.lookupByName("exchangeAuthenticator");
if (null != exchangeAuthenticator) {
log.info("@#$@#$@#$ removing the existing
exchangeAuthenticator....");
defaultRegistry.unbind("exchangeAuthenticator");
}
// Bind the new 'exchangeAuthenticator' bean
defaultRegistry.bind("exchangeAuthenticator",
newExchangeAuthenticator);
log.info("@#$@#$@#$ bound a new bean exchangeAuthenticator....");
defaultRegistry.setCamelContext(camelContext);
log.info("@#$@#$@#$ now set the default registry to camel context
back");
} catch (Exception e) {
log.error("Exception in updating authenticator bean: {}",
e.getMessage());
}
}
Regards,
Dipak.