Refine search
@Override public boolean isOptional(AnnotatedElement element, Param annotation) { String name = CommandModel.getParamName(annotation, element); CommandModel.ParamModel param = model.getModelFor(name); return param.getParam().optional(); }
options = new ParameterMap(); options.set("help", "true"); operands = Collections.emptyList(); } else { Parser rcp = new Parser(argv, 1, commandModel.getParameters(), commandModel.unknownOptionsAreOperands()); options = rcp.getOptions(); operands = rcp.getOperands(); if (commandModel.unknownOptionsAreOperands() && operands.size() > 0 && operands.get(0).equals("--")) operands.remove(0);
@Override public void execute(final AdminCommandContext context) { Thread t = new Thread() { @Override public void run() { try { command.execute(context); } catch (RuntimeException e) { logger.log(Level.SEVERE, e.getMessage(), e); } } }; t.setPriority(async.priority()); t.start(); report.setActionExitCode(ActionReport.ExitCode.SUCCESS); report.setMessage(MessageFormat.format(strings.getString("command.launch"), model.getCommandName())); } };
/** * Returns a collection of parameter model for all the parameters supported * by this command. * * @return the command's parameters models. */ public Collection<ParamModel> getParameters() { ArrayList<ParamModel> copy = new ArrayList<ParamModel>(); for (String name : getParametersNames()) { copy.add(getModelFor(name)); } return copy; }
private ParameterMap processParams(ParameterMap opts) throws CommandException { if (opts == null) { opts = new ParameterMap(); options = new ParameterMap(); for (Map.Entry<String, List<String>> o : opts.entrySet()) { String key = o.getKey(); List<String> value = o.getValue(); ParameterMap result = new ParameterMap(); ParamModel operandParam = null; for (ParamModel opt : commandModel.getParameters()) { if (opt.getParam().primary()) { operandParam = opt; continue; List<String> paramValues = new ArrayList<String>(options.get(paramName.toLowerCase(Locale.ENGLISH))); if (!opt.getParam().alias().isEmpty() && !paramName.equalsIgnoreCase(opt.getParam().alias())) { paramValues.addAll(options.get(opt.getParam().alias().toLowerCase(Locale.ENGLISH)));
ActionReport report = inv.report(); if (!fromCheckpoint) { report.setActionDescription(model.getCommandName() + " command"); report.setActionExitCode(ActionReport.ExitCode.SUCCESS); ActionReport.ExitCode postSupplementalReturn = ActionReport.ExitCode.SUCCESS; CommandRunnerProgressHelper progressHelper = new CommandRunnerProgressHelper(command, model.getCommandName(), job, inv.progressStatusChild); supplementalExecutor.listSuplementalCommands(model.getCommandName()); try { BufferedReader in = getManPage(model.getCommandName(), model); String manPage = encodeManPage(in); org.glassfish.api.admin.ExecuteOn clAnnotation = model.getClusteringAttributes(); if (clAnnotation == null) { runtimeTypes.add(RuntimeType.DAS); , model.getCommandName())); return; String targetName = parameters.getOne("target"); if (targetName == null || model.getModelFor("target").getParam().obsolete()) { if (command instanceof DeploymentTargetResolver) { targetName = ((DeploymentTargetResolver) command).getTarget(parameters); targetName, model.getCommandName(), validTypes.toString())); return;
public void postConstruct() { super.postConstruct(); listing = targetMethod.getAnnotation(Listing.class); resolverType = listing.resolver(); try { // we pass false for "useAnnotations" as the @Param declarations on // the target type are not used for the List method parameters. model = new GenericCommandModel(targetType, false, null, listing.i18n(), new LocalStringManagerImpl(targetType), habitat.getComponent(DomDocument.class), commandName, listing.resolver(), null); if (logger.isLoggable(level)) { for (String paramName : model.getParametersNames()) { CommandModel.ParamModel param = model.getModelFor(paramName); logger.fine("I take " + param.getName() + " parameters"); } } } catch(Exception e) { String msg = localStrings.getLocalString(GenericCrudCommand.class, "GenericCreateCommand.command_model_exception", "Exception while creating the command model for the generic command {0} : {1}", commandName, e.getMessage()); logger.severe(msg); throw new ComponentException(msg, e); } }
StringBuffer usageText = new StringBuffer(); usageText.append( adminStrings.getLocalString("adapter.usage", "Usage: ")); usageText.append(model.getCommandName()); usageText.append(" "); StringBuffer operand = new StringBuffer(); for (CommandModel.ParamModel pModel : model.getParameters()) { final Param param = pModel.getParam(); final String paramName = if (param.password()) { continue; if (param.obsolete()) { continue; final boolean optional = param.optional(); final Class<?> ftype = pModel.getType(); Object fvalue = null;
private static void checkAgainstAcceptableValues( AnnotatedElement target, String paramValueStr) { Param param = target.getAnnotation(Param.class); String acceptable = param.acceptableValues(); String paramName = CommandModel.getParamName(param, target); if (ok(acceptable) && ok(paramValueStr)) { String[] ss = acceptable.split(","); for (String s : ss) { if (paramValueStr.equals(s.trim())) { return; // matched, value is good } } // didn't match any, error throw new UnacceptableValueException( adminStrings.getLocalString( "adapter.command.unacceptableValue", "Invalid parameter: {0}. Its value is {1} " + "but it isn''t one of these acceptable values: {2}", paramName, paramValueStr, acceptable)); } } }
cmd.addProperty("name", model.getCommandName()); if (model.unknownOptionsAreOperands()) { cmd.addProperty("unknown-options-are-operands", "true"); String usage = model.getUsageText(); if (ok(usage)) { cmd.addProperty("usage", usage); for (CommandModel.ParamModel p : model.getParameters()) { Param param = p.getParam(); if (param.primary()) { primary = p; continue; ppart.addProperty("name", p.getName()); ppart.addProperty("type", typeOf(p)); ppart.addProperty("optional", Boolean.toString(param.optional())); if (param.obsolete()) // don't include it if it's false
private void extract(final Object target, final Collection<String> parameterNamesToExclude, final ParameterMap paramMap) throws IllegalArgumentException, IllegalAccessException { for (Field f : target.getClass().getFields()) { final Param param = f.getAnnotation(Param.class); if (param != null && ! parameterNamesToExclude.contains(f.getName())) { final Object fieldValue = f.get(target); if (fieldValue != null) { final String paramName = param.primary() ? "DEFAULT" : CommandModel.getParamName(param, f); if (param.multiple()) { paramMap.set(paramName, multipleValue(param, f.get(target))); } else { paramMap.set(paramName, singleValue(param, f.get(target))); } } } } }
tag.append(cm.getCommandName()); if (cm.isManagedJob()) { tag.append('m'); if (cm.unknownOptionsAreOperands()) { tag.append('o'); if (cm.getParameters() != null) { for (ParamModel paramModel : cm.getParameters()) { tree.add(paramModel); if (param.multiple()) { tag.append('M'); if (param.optional()) { tag.append('P'); if (param.primary()) { tag.append('1');
boolean sawPassword = false; for (Map.Entry<String, List<String>> param : options.entrySet()) { String paramName = param.getKey(); if (paramName.equals("DEFAULT")) // operands handled below continue; ParamModel opt = commandModel.getModelFor(paramName); if (opt != null && opt.getType() == File.class) { sawFile = true; final File optionFile = new File(options.getOne(opt.getName())); sawDirectory |= optionFile.isDirectory(); sawUploadableFile |= optionFile.isFile(); else if (opt != null && opt.getParam().password()) { sawPassword = true; ParameterMap noptions = new ParameterMap(); for (Map.Entry<String, List<String>> e : options.entrySet()) { if (!e.getKey().equals("upload"))
Param param = e.getAnnotation(Param.class); CommandModel.ParamModel paramModel = null; for (CommandModel.ParamModel pModel : model.getParameters()) { if (pModel.getParam().equals(param)) { paramModel = pModel; if (param.primary()) { errorMsg = adminStrings.getLocalString("commandrunner.operand.required", "Operand required."); } else if (param.password()) { errorMsg = adminStrings.getLocalString("adapter.param.missing.passwordfile", "{0} command requires the passwordfile " + "parameter containing {1} entry.", model.getCommandName(), paramName); } else if (paramDesc != null) { errorMsg = adminStrings.getLocalString("admin.param.missing", "{0} command requires the {1} parameter ({2})", model.getCommandName(), paramName, paramDesc); errorMsg = adminStrings.getLocalString("admin.param.missing.nodesc", "{0} command requires the {1} parameter", model.getCommandName(), paramName); errorMsg = adminStrings.getLocalString("admin.param.missing.nofound", "Cannot find {1} in {0} command model, file a bug", model.getCommandName(), e.getUnsatisfiedName()); checkAgainstBeanConstraints(injectionTarget, model.getCommandName()); return true;
Param param = target.getAnnotation(Param.class); if (!param.multiple()) { if (paramValList.size() == 1) return convertStringToObject(target, type, paramValList.get(0)); throw new UnacceptableValueException( localStrings.getLocalString("TooManyValues", "Invalid parameter: {0}. This parameter may not have " + "more than one value.", CommandModel.getParamName(param, target)));
for (Map.Entry<String, List<String>> param : options.entrySet()) { String paramName = param.getKey(); if (paramName.equals("DEFAULT")) // operands handled below continue; ParamModel opt = commandModel.getModelFor(paramName); if (opt != null && (opt.getType() == File.class || opt.getType() == File[].class)) { sawFile = true; for (String fname : options.get(opt.getName())) { final File optionFile = new File(fname); sawDirectory |= optionFile.isDirectory(); ParameterMap noptions = new ParameterMap(); for (Map.Entry<String, List<String>> e : options.entrySet()) { if (!e.getKey().equals("upload"))
} else if (Singleton.class.equals(myScope)) { if (commandModel.getParameters().size() > 0) { throw new CommandException(strings.get("HasParams", name)); for (ParamModel opt : commandModel.getParameters()) { if (opt.getParam().password()) continue; // passwords are handled later if (opt.getParam().obsolete() && getOption(opt.getName()) != null) logger.info( strings.get("ObsoleteOption", opt.getName())); if (opt.getParam().optional()) continue; if (opt.getParam().primary()) String val = cons.readLine(); if (ok(val)) options.set(opt.getName(), val);
for (Map.Entry<String, List<String>> entry : parameters.entrySet()) { String key = entry.getKey(); if (adds == null) adds = new ParameterMap(); adds.add(key, entry.getValue().get(0)); for (CommandModel.ParamModel pModel : model.getParameters()) { validOption = pModel.isParamId(key); if (validOption) {
String argv[] = operands.toArray(new String[operands.size()]); parser = new Parser(argv, 0, commandModel.getParameters(), false); ParameterMap options = parser.getOptions(); operands = parser.getOperands(); options.set("DEFAULT", operands); if (commandModel.getModelFor("terse") != null) options.set("terse", Boolean.toString(terse)); if (globalOptions.size() > 0) { String pwfile = globalOptions.getOne(ProgramOptions.PASSWORDFILE); if (pwfile != null && pwfile.length() > 0) { Map<String, String> passwords = CLIUtil.readPasswordFileOptions(pwfile, true); for (CommandModel.ParamModel opt : commandModel.getParameters()) { if (opt.getParam().password()) { String pwdname = opt.getName(); String pwd = passwords.get(pwdname);
model = new CommandModelImpl(command.getClass()); org.glassfish.api.admin.ExecuteOn clAnnotation = model.getClusteringAttributes(); List<RuntimeType> runtimeTypes = new ArrayList<RuntimeType>(); if(clAnnotation == null) { String targetName = parameters.getOne("target"); if(targetName == null) targetName = "server"; ActionReport aReport = context.getActionReport().addSubActionsReport(); aReport.setActionExitCode(ActionReport.ExitCode.WARNING); aReport.setMessage(strings.getLocalString("glassfish.clusterexecutor.dynrecfgdisabled", "WARNING: The command was not replicated to all cluster instances because the" + " dynamic-reconfig-enabled flag is set to false for cluster {0}", targetName)); ActionReport aReport = context.getActionReport().addSubActionsReport(); aReport.setActionExitCode(ActionReport.ExitCode.WARNING); aReport.setMessage(strings.getLocalString("glassfish.clusterexecutor.dynrecfgdisabled", "WARNING: The command was not replicated to all cluster instances because the" + " dynamic-reconfiguration-enabled flag is set to false for cluster(s) {0}", clusterNoReplication)); ActionReport aReport = context.getActionReport().addSubActionsReport(); aReport.setActionExitCode(ActionReport.ExitCode.SUCCESS); aReport.setMessage(strings.getLocalString("glassfish.clusterexecutor.notargets", "Did not find any suitable instances for target {0}; command executed on DAS only", targetName)); return ActionReport.ExitCode.SUCCESS;