/** * @param isAbsolute if url should be absolute or relative. * @return base url, where web resources is mounted to. */ public String getBaseUrl(boolean isAbsolute) { try { return joinWithSlashWithoutEmpty(urlProvider.getBaseUrl(isAbsolute ? UrlMode.ABSOLUTE : UrlMode.RELATIVE), AbstractFileServerServlet.SERVLET_PATH); } catch (AssertionError e) { // For unknown reason some links in Confluence (like /confluence/setup/setupstart.action ) doesn't // support the absolute base url, catching such cases and trying to use relative base url. if (isAbsolute && e.getMessage().contains("Unsupported URLMode")) { return getBaseUrl(false); } else { throw e; } } }
private String defaultIconUrl(String iconUrl, String defaultLocation) { if (isBlank(iconUrl)) { UrlBuilder urlBuilder = new UrlBuilder(webResourceUrlProvider.getBaseUrl(UrlMode.ABSOLUTE), false) .addPath("images") .addPath("project-templates") .addPath(defaultLocation); return urlBuilder.asUrlString(); } return iconUrl; } }