in software/webapp/src/main/java/org/apache/brooklyn/entity/dns/AbstractGeoDnsServiceImpl.java [341:368]
protected String inferHostname(Entity entity) {
String hostname = entity.getAttribute(Attributes.HOSTNAME);
URI url = entity.getAttribute(Attributes.MAIN_URI);
if (url!=null) {
try {
URL u = url.toURL();
String hostname2 = u.getHost();
if (hostname==null) {
if (!entitiesWithoutGeoInfo.contains(entity)) //don't log repeatedly
log.warn("GeoDns "+this+" using URL {} to redirect to {} (HOSTNAME attribute is preferred, but not available)", url, entity);
hostname = hostname2;
} else if (!hostname.equals(hostname2)) {
if (!entitiesWithoutGeoInfo.contains(entity)) //don't log repeatedly
log.warn("GeoDns "+this+" URL {} of "+entity+" does not match advertised HOSTNAME {}; using hostname, not URL", url, hostname);
}
if (u.getPort() > 0 && u.getPort() != 80 && u.getPort() != 443) {
if (!entitiesWithoutGeoInfo.contains(entity)) //don't log repeatedly
log.warn("GeoDns "+this+" detected non-standard port in URL {} for {}; forwarding may not work", url, entity);
}
} catch (MalformedURLException e) {
log.warn("Invalid URL {} for entity {} in {}", new Object[] {url, entity, this});
}
}
return hostname;
}