Files
elink-online-common/src/main/java/com/eactive/eai/agent/eaimessage/ReloadEAIMessageCommand.java
T
Rinjae aacc1a389e init
2025-09-05 18:57:45 +09:00

75 lines
2.0 KiB
Java

package com.eactive.eai.agent.eaimessage;
import com.eactive.eai.agent.command.Command;
import com.eactive.eai.agent.command.CommandException;
import com.eactive.eai.common.message.EAIMessageManager;
import com.eactive.eai.common.util.Logger;
public class ReloadEAIMessageCommand extends Command {
private static final long serialVersionUID = 1L;
public ReloadEAIMessageCommand() {
super("ReloadEAIMessageCommand");
}
public Object execute() throws CommandException {
Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
if (logger.isInfo()) {
logger.info(this.name + " is executed");
}
if (!(args instanceof String)) {
throwCommandException("RECEAIMCM001", null);
}
try {
EAIMessageManager manager = EAIMessageManager.getInstance();
String keyName = (String) args;
if (keyName != null) {
if ("ALL".equals(keyName)) {
manager.reload();
if (logger.isWarn()) {
logger.warn(this.name + "] all rule Reload.");
}
} else {
if (keyName.contains(",")) {
reloadKeys(manager, keyName);
} else {
manager.reload(keyName.trim());
if (logger.isWarn()) {
logger.warn(this.name + "] " + keyName + " Reload.");
}
}
}
}
} catch (Exception e) {
throwCommandException("RECEAIMCM002", e);
}
return "success";
}
private void reloadKeys(EAIMessageManager manager, String keyName) throws Exception {
Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
if (logger.isWarn()) {
logger.warn(this.name + "] Array [" + keyName + "] Reload.");
}
String[] keys = keyName.split(",");
for (String key : keys) {
if (key != null) {
manager.reload(key.trim());
}
}
}
private void throwCommandException(String errorCode, Exception exception) throws CommandException {
Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
String msg = makeException(errorCode, exception);
if (logger.isError()) {
logger.error(msg, exception);
}
throw new CommandException(msg);
}
}