001// *************************************************************************************************************************** 002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * 003// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * 004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * 005// * with the License. You may obtain a copy of the License at * 006// * * 007// * http://www.apache.org/licenses/LICENSE-2.0 * 008// * * 009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * 010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * 011// * specific language governing permissions and limitations under the License. * 012// *************************************************************************************************************************** 013package org.apache.juneau.microservice.console; 014 015import java.io.*; 016import java.util.*; 017 018import org.apache.juneau.config.*; 019import org.apache.juneau.microservice.*; 020import org.apache.juneau.utils.*; 021 022/** 023 * Implements the 'config' console command to get or set configuration. 024 */ 025public class ConfigCommand extends ConsoleCommand { 026 027 private final MessageBundle mb = MessageBundle.create(ConfigCommand.class, "Messages"); 028 029 @Override /* ConsoleCommand */ 030 public String getName() { 031 return "config"; 032 } 033 034 @Override /* ConsoleCommand */ 035 public String getSynopsis() { 036 return "config [get|set]"; 037 } 038 039 @Override /* ConsoleCommand */ 040 public String getInfo() { 041 return mb.getString("info"); 042 } 043 044 @Override /* ConsoleCommand */ 045 public String getDescription() { 046 return mb.getString("description"); 047 } 048 049 @Override /* ConsoleCommand */ 050 public boolean execute(Scanner in, PrintWriter out, Args args) { 051 Config conf = Microservice.getInstance().getConfig(); 052 if (args.size() > 2) { 053 String option = args.getArg(1); 054 String key = args.getArg(2); 055 if (option.equals("get")) { 056 // config get <key> 057 if (args.size() == 3) { 058 String val = conf.getString(key); 059 if (val != null) 060 out.println(val); 061 else 062 out.println(mb.getString("KeyNotFound", key)); 063 } else { 064 out.println(mb.getString("TooManyArguments")); 065 } 066 } else if (option.equals("set")) { 067 // config set <key> <value> 068 if (args.size() == 4) { 069 conf.set(key, args.getArg(3)); 070 out.println(mb.getString("ConfigSet")); 071 } else if (args.size() < 4) { 072 out.println(mb.getString("InvalidArguments")); 073 } else { 074 out.println(mb.getString("TooManyArguments")); 075 } 076 } else if (option.equals("remove")) { 077 // config remove <key> 078 if (args.size() == 3) { 079 if (conf.getString(key) != null) { 080 conf.remove(key); 081 out.println(mb.getString("ConfigRemove", key)); 082 } else { 083 out.println(mb.getString("KeyNotFound", key)); 084 } 085 } else { 086 out.println(mb.getString("TooManyArguments")); 087 } 088 } else { 089 out.println(mb.getString("InvalidArguments")); 090 } 091 } else { 092 out.println(mb.getString("InvalidArguments")); 093 } 094 return false; 095 } 096}