|
|
|
@ -7,6 +7,7 @@ import java.nio.file.Path;
|
|
|
|
|
import java.nio.file.Paths;
|
|
|
|
|
import java.util.LinkedHashMap;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
|
|
import java.util.concurrent.Future;
|
|
|
|
|
import java.util.logging.Level;
|
|
|
|
@ -25,22 +26,24 @@ public class FileFollowEventManager {
|
|
|
|
|
ExecutorService executorService,
|
|
|
|
|
ClassLoader classLoader) {
|
|
|
|
|
this.eventServiceMap = new LinkedHashMap<>();
|
|
|
|
|
for (Map.Entry<String, Settings> followfiles : settings.getGroups("event.filefollow").entrySet()) {
|
|
|
|
|
Settings definition = followfiles.getValue();
|
|
|
|
|
String baseStr = definition.get("base");
|
|
|
|
|
String patternStr = definition.get("pattern");
|
|
|
|
|
if (baseStr != null && patternStr != null) {
|
|
|
|
|
Path base = Paths.get(baseStr);
|
|
|
|
|
Pattern pattern = Pattern.compile(patternStr);
|
|
|
|
|
String className = definition.get("class", DefaultFileFollowEvent.class.getName());
|
|
|
|
|
for (Map.Entry<String, Settings> entry : settings.getGroups("event.filefollow").entrySet()) {
|
|
|
|
|
Settings definition = entry.getValue();
|
|
|
|
|
if (definition.getAsBoolean("enabled", true)) {
|
|
|
|
|
String baseStr = definition.get("base");
|
|
|
|
|
Objects.requireNonNull(baseStr);
|
|
|
|
|
String patternStr = definition.get("pattern");
|
|
|
|
|
Objects.requireNonNull(patternStr);
|
|
|
|
|
try {
|
|
|
|
|
Path base = Paths.get(baseStr);
|
|
|
|
|
Pattern pattern = Pattern.compile(patternStr);
|
|
|
|
|
String className = definition.get("class", DefaultFileFollowEvent.class.getName());
|
|
|
|
|
Class<? extends FileFollowEvent> eventClass = (Class<? extends FileFollowEvent>) classLoader.loadClass(className);
|
|
|
|
|
FileFollowEventService fileFollowEventService = new FileFollowEventService(definition, eventBus, base, pattern, eventClass);
|
|
|
|
|
Future<?> future = executorService.submit(fileFollowEventService);
|
|
|
|
|
eventServiceMap.put(future, fileFollowEventService);
|
|
|
|
|
logger.log(Level.INFO, "file follow service " + followfiles.getKey() + " with base " + base + " and pattern " + pattern + " added, event class " + className);
|
|
|
|
|
logger.log(Level.INFO, "file follow service " + entry.getKey() + " with base " + base + " and pattern " + pattern + " added, event class " + className);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.log(Level.SEVERE, "unable to create file follow service " + followfiles.getKey() + ", reason " + e.getMessage(), e);
|
|
|
|
|
logger.log(Level.SEVERE, "unable to create file follow service " + entry.getKey() + ", reason " + e.getMessage(), e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|