in src/main/java/org/apache/sling/discovery/base/connectors/ping/TopologyConnectorClient.java [445:495]
public void disconnect() {
final String uri = connectorUrl.toString()+"."+clusterViewService.getSlingId()+".json";
if (logger.isDebugEnabled()) {
logger.debug("disconnect: connectorUrl=" + connectorUrl + ", complete uri="+uri);
}
if (lastInheritedAnnouncement != null) {
announcementRegistry
.unregisterAnnouncement(lastInheritedAnnouncement
.getOwnerId());
}
final HttpClientContext clientContext = HttpClientContext.create();
final CloseableHttpClient httpClient = createHttpClient();
final HttpDelete deleteRequest = new HttpDelete(uri);
// setting the connection timeout (idle connection, configured in seconds)
deleteRequest.setConfig(RequestConfig.
custom().
setConnectTimeout(1000*config.getSocketConnectTimeout()).
build());
try {
String userInfo = connectorUrl.getUserInfo();
if (userInfo != null) {
Credentials c = new UsernamePasswordCredentials(userInfo);
clientContext.getCredentialsProvider().setCredentials(
new AuthScope(deleteRequest.getURI().getHost(), deleteRequest
.getURI().getPort()), c);
}
requestValidator.trustMessage(deleteRequest, null);
final CloseableHttpResponse response = httpClient.execute(deleteRequest, clientContext);
if (logger.isDebugEnabled()) {
logger.debug("disconnect: done. code=" + response.getStatusLine().getStatusCode()
+ " - " + response.getStatusLine().getReasonPhrase());
}
// ignoring the actual statuscode though as there's little we can
// do about it after this point
} catch (IOException e) {
logger.warn("disconnect: got IOException: " + e);
} catch (RuntimeException re) {
logger.error("disconnect: got RuntimeException: " + re, re);
} finally {
deleteRequest.releaseConnection();
try {
httpClient.close();
} catch (IOException e) {
logger.error("disconnect: could not close httpClient: "+e, e);
}
}
}