public void fixConfiguration(final JiraConfig config, final CheckOptions options) { final List<ConfigDashboard> dashboards = config.getDashboards(); for (Iterator<ConfigDashboard> dashboardIterator = dashboards.iterator(); dashboardIterator.hasNext(); ) { ConfigDashboard dashboard = dashboardIterator.next(); if (options.checkEnabled(CHECKID_DASHBOARDS) && !dashboard.isSystem()) { dashboardIterator.remove(); } else if (!dashboard.getGadgets().isEmpty()) { checkGadgets(config, options, dashboard); } } if (options.checkEnabled(CHECKID_EXTERNAL)) { config.getExternalGadgets().clear(); } }
public Result checkConfiguration(final JiraConfig config, final CheckOptions options) { final CheckResultBuilder builder = new CheckResultBuilder(); final List<ConfigDashboard> dashboards = config.getDashboards(); final Set<String> externalUrls = getExternalGadgetUrls(config); for (final ConfigDashboard dashboard : dashboards) { if (options.checkEnabled(CHECKID_DASHBOARDS) && !dashboard.isSystem()) { // If there exists a dashboard and it is not the system dashboard then we may have an error. builder.error( String.format( "Non-system dashboard '%s' (%d) exists.", getName(dashboard), dashboard.getId()), CHECKID_DASHBOARDS); } else if (!dashboard.getGadgets().isEmpty()) { if (options.checkEnabled(CHECKID_GADGETS)) { builder.error( String.format( "Gadget on dashboard '%s' (%d).", getName(dashboard), dashboard.getId()), CHECKID_GADGETS); } else if (options.checkEnabled(CHECKID_ABSOLUTE)) { for (ConfigGadget gadget : dashboard.getGadgets()) { if (!externalUrls.contains(toLowerCase(gadget.getGadgetXml())) && isAbsoluteUrl(gadget)) { builder.error( String.format( "Gadget URL '%s' is absolute on dashboard '%s' (%d).", gadget.getGadgetXml(), getName(dashboard), dashboard.getId()), CHECKID_ABSOLUTE); } } } } } if (options.checkEnabled(CHECKID_EXTERNAL)) { for (String externalUrl : externalUrls) { builder.error( String.format("External gadget '%s' configured.", externalUrl), CHECKID_EXTERNAL); } } return builder.buildResult(); }