public static List<ConfigValues> getConfigValues(ConfigSchema schema, ConfigResponse config) { List<ConfigValues> values = new ArrayList<ConfigValues>(); if (schema == null) { return values; } List options = schema.getOptions(); int size = options.size(); for (int i = 0; i < size; i++) { ConfigOption option = (ConfigOption) options.get(i); String value = config.getValue(option.getName(), true); if (option instanceof StringConfigOption) { StringConfigOption strOption = (StringConfigOption) option; if (strOption.isHidden()) { continue; // Ignore } } else if (option instanceof BooleanConfigOption) { if (value == null) { value = String.valueOf(false); } } values.add(new ConfigValues(option.getName(), value)); } return values; }
/** * Extracts request parameters corresponding to the {@link ConfigOption} formal argument. * * <p><b>Note:</b> Multiple values corresponding to a single parameter would be concatenated to a * whitespace delimited string.<br> * <b>Note:</b> Boolean request parameters missing from the request would be considered as * provided with a <code>false</code> value. * * @param configOption Request parameter metadata. * @param prefix Request parameter name prefix. * @param request {@link HttpServletRequest} instance. * @return */ public static final String getRequestConfigOption( final ConfigOption configOption, final String prefix, final HttpServletRequest request) { String value = null; final String reqParamName = prefix + configOption.getName(); String[] arrRequestParams = request.getParameterValues(reqParamName); if (arrRequestParams == null) { // if the if (configOption instanceof BooleanConfigOption) { value = Boolean.FALSE.toString(); } else { return null; } // EO else if the configuration was not of a boolean nature. } else if (arrRequestParams.length > 1) { value = ""; for (int regExps = 0; regExps < arrRequestParams.length; regExps++) { value += arrRequestParams[regExps] + " "; } // EO while there are more values } // EO else if option had more than one value else { value = arrRequestParams[0]; } // EO else if there was a single value return value; } // EOM
private ServerResource createTcRuntimeServerResource( String catalinaHome, String catalinaBase, String[] processArgs, MxProcess process) throws PluginException { String query = PROC_JAVA + ",Args.*.eq=-D" + getProcHomeProperty() + "=" + catalinaBase; // Create the server resource ServerResource server = newServerResource(catalinaBase); server.setDescription(getServerDescription(server.getInstallPath())); adjustClassPath(catalinaBase); ConfigResponse config = new ConfigResponse(); ConfigSchema schema = getConfigSchema(getTypeInfo().getName(), ProductPlugin.CFGTYPE_IDX_PRODUCT); if (schema != null) { ConfigOption option = schema.getOption(PROP_PROCESS_QUERY); if (option != null) { // Configure process.query config.setValue(option.getName(), query); } } if (process.getURL() != null) { config.setValue(mxUtil.getJmxUrlProperty(), process.getURL()); } else { String[] args = process.getArgs(); for (int j = 0; j < args.length; j++) { if (configureListenerMxURL(config, catalinaBase)) { break; } else if (configureMxURL(config, args[j])) { break; } else if (configureLocalMxURL(config, args[j], query)) { // continue as .port might come later } } } storeProcessUserAndGroup(process, config); config.setValue(SERVER_RESOURCE_CONFIG_CATALINA_BASE, catalinaBase); config.setValue(SERVER_RESOURCE_CONFIG_CATALINA_HOME, catalinaHome); // default anything not auto-configured config.setValue("jmx.password", getJMXPassword(catalinaBase)); setProductConfig(server, config, process.getPid()); discoverServerConfig(server, process.getPid()); server.setMeasurementConfig(); // must set control config now so user doesn't have to enter config // properties prior to executing control actions server.setControlConfig(); server.setName( getPlatformName() + " " + getServerName("tc Runtime") + " " + getBaseDirectoryName(catalinaBase)); ConfigResponse controlConfig = new ConfigResponse(); String controlProgram = determineControlProgram(catalinaHome, catalinaBase); controlConfig.setValue(ServerControlPlugin.PROP_PROGRAM, controlProgram); server.setControlConfig(controlConfig); return server; }