@Override protected List<AbstractDynamicCommand.DynamicOption> getDynamicOptions(State state) throws Exception { if (state == null) { return Collections.emptyList(); } List<AbstractDynamicCommand.DynamicOption> options = new ArrayList<>(); ProvisioningRuntime rt = state.getRuntime(); Set<ProvisioningOption> opts = getPluginOptions(rt); for (ProvisioningOption opt : opts) { AbstractDynamicCommand.DynamicOption dynOption = new AbstractDynamicCommand.DynamicOption(opt.getName(), opt.isRequired()); options.add(dynOption); } return options; }
@Override protected List<DynamicOption> getDynamicOptions(State state) throws Exception { List<DynamicOption> options = new ArrayList<>(); FeaturePackLocation fpl = pmSession.getResolvedLocation(getInstallationDirectory(pmSession.getAeshContext()), getId(pmSession)); Set<ProvisioningOption> pluginOptions = getPluginOptions(fpl); for (ProvisioningOption opt : pluginOptions) { DynamicOption dynOption = new DynamicOption(opt.getName(), opt.isRequired()); options.add(dynOption); } return options; }
private void processOptions(Iterable<? extends ProvisioningOption> pluginOptions, Map<String, String> extraOptions, final Map<String, ProvisioningOption> recognizedOptions, final List<ProvisioningOption> overridenOptions) throws ProvisioningException { for(ProvisioningOption pluginOption : pluginOptions) { final String optionName = pluginOption.getName(); if(!options.containsKey(optionName)) { if(pluginOption.isRequired()) { throw new ProvisioningException(Errors.pluginOptionRequired(optionName)); } continue; } final ProvisioningOption existing = recognizedOptions.put(optionName, pluginOption); // options should probably not be shared between plugins but just in case make sure non-persistent option // doesn't override a persistent one if (existing != null && existing.isPersistent() && !pluginOption.isPersistent()) { recognizedOptions.put(existing.getName(), existing); } else if (pluginOption.isPersistent() || extraOptions.containsKey(optionName) && config.hasOption(optionName)) { overridenOptions.add(pluginOption); } } }
public String getOptionValue(ProvisioningOption option, String defaultValue) throws ProvisioningException { final String value = layout.getOptionValue(option.getName()); if(value == null) { if(defaultValue != null) { return defaultValue; } defaultValue = option.getDefaultValue(); if(defaultValue != null) { return defaultValue; } if(option.isRequired()) { throw new ProvisioningException("Required plugin option " + option.getName() + " has not been provided"); } return null; } if(!option.getValueSet().isEmpty() && !option.getValueSet().contains(value)) { final StringBuilder buf = new StringBuilder(); buf.append("Plugin option ").append(option.getName()).append(" is set to ").append(value).append(" but expects one of "); StringUtils.append(buf, option.getValueSet()); throw new ProvisioningException(buf.toString()); } return value; }
@Override protected List<DynamicOption> getDynamicOptions(State state) throws Exception { List<DynamicOption> options = new ArrayList<>(); Set<ProvisioningOption> opts; String file = getFile(); if (file == null) { return Collections.emptyList(); } ProvisioningConfig config = ProvisioningXmlParser.parse(getAbsolutePath(file, pmSession.getAeshContext())); opts = pmSession.getResolver().get(null, PluginResolver.newResolver(pmSession, config)).getInstall(); for (ProvisioningOption opt : opts) { DynamicOption dynOption = new DynamicOption(opt.getName(), opt.isRequired()); options.add(dynOption); } return options; }
public String getOptionValue(ProvisioningOption option) throws ProvisioningException { final String setValue = options.get(option.getName()); if(setValue == null) { if(option.isRequired() && (!options.containsKey(option.getName()) && option.getDefaultValue() == null)) { throw new ProvisioningException(Errors.pluginOptionRequired(option.getName())); } return option.getDefaultValue(); } if(!option.getValueSet().isEmpty() && !option.getValueSet().contains(setValue)) { throw new ProvisioningException(Errors.pluginOptionIllegalValue(option.getName(), setValue, option.getValueSet())); } return setValue; }
private static String buildOptionsTable(Set<ProvisioningOption> options) { Table t = new Table(Headers.OPTION, Headers.REQUIRED, Headers.DEFAULT_VALUE); for (ProvisioningOption opt : options) { t.addLine("--" + opt.getName() + "=", opt.isRequired() ? "Y" : "N", opt.getDefaultValue() == null ? "" : opt.getDefaultValue()); } t.sort(Table.SortType.ASCENDANT); return t.build(); }
@Override protected List<DynamicOption> getDynamicOptions(State state) throws Exception { String targetDirArg = (String) getValue(DIR_OPTION_NAME); if (targetDirArg == null) { // Check in argument or option, that is the option completion case. targetDirArg = getOptionValue(DIR_OPTION_NAME); } Path installation = getAbsolutePath(targetDirArg, pmSession.getAeshContext()); ProvisioningConfig config = pmSession.newProvisioningManager(installation, false).getProvisioningConfig(); Set<ProvisioningOption> opts = pmSession.getResolver().get(null, PluginResolver.newResolver(pmSession, config)).getDiff(); List<DynamicOption> options = new ArrayList<>(); for (ProvisioningOption opt : opts) { DynamicOption dynOption = new DynamicOption(opt.getName(), opt.isRequired()); options.add(dynOption); } return options; }
for (ProvisioningOption opt : opts) { DynamicOption dynOption = new DynamicOption(opt.getName(), opt.isRequired()); options.add(dynOption);