in src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java [97:138]
public boolean connect() {
if (isOpen()) {
logger.atInfo().log(MSG("Already connected."));
return true;
}
AMQP amqp = properties.getSection(AMQP.class);
logger.atInfo().log(MSG("Connect to %s..."), amqp.uri);
ConnectionFactory factory = new ConnectionFactory();
try {
if (StringUtils.isNotEmpty(amqp.uri)) {
factory.setUri(amqp.uri);
if (StringUtils.isNotEmpty(amqp.username)) {
factory.setUsername(amqp.username);
}
Gerrit gerrit = properties.getSection(Gerrit.class);
String securePassword = gerrit.getAMQPUserPassword(amqp.username);
if (StringUtils.isNotEmpty(securePassword)) {
factory.setPassword(securePassword);
} else if (StringUtils.isNotEmpty(amqp.password)) {
factory.setPassword(amqp.password);
}
connection = factory.newConnection();
connection.addShutdownListener(
cause -> {
if (cause.isInitiatedByApplication()) {
logger.atInfo().log(MSG("Connection closed by application."));
} else {
logger.atWarning().log(MSG("Connection closed. Cause: %s"), cause.getMessage());
}
});
logger.atInfo().log(MSG("Connection established."));
return true;
}
} catch (URISyntaxException ex) {
logger.atSevere().log(MSG("URI syntax error: %s"), amqp.uri);
} catch (IOException | TimeoutException ex) {
logger.atSevere().withCause(ex).log(MSG("Connection cannot be opened."));
} catch (KeyManagementException | NoSuchAlgorithmException ex) {
logger.atSevere().withCause(ex).log(MSG("Security error when opening connection."));
}
return false;
}