working on path events
parent
ef9528c1ad
commit
65d6f33edb
@ -0,0 +1,41 @@
|
|||||||
|
package org.xbib.event.path;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.xbib.event.common.EventManager;
|
||||||
|
import org.xbib.settings.Settings;
|
||||||
|
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
public class PathEventManagerTest {
|
||||||
|
|
||||||
|
private static final Logger logger = Logger.getLogger(PathEventManagerTest.class.getName());
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPathEvents() throws IOException, InterruptedException {
|
||||||
|
Path path = Files.createTempDirectory("testpath");
|
||||||
|
TestPathEventConsumer consumer = new TestPathEventConsumer();
|
||||||
|
Settings settings = Settings.settingsBuilder()
|
||||||
|
.put("event.path.testpathevent.enabled", "true")
|
||||||
|
.put("event.path.testpathevent.path", path.toString())
|
||||||
|
.build();
|
||||||
|
EventManager eventManager = EventManager.builder()
|
||||||
|
.setSettings(settings)
|
||||||
|
.register(consumer)
|
||||||
|
.build();
|
||||||
|
Thread.sleep(1000L);
|
||||||
|
Path testTxt = path.resolve("incoming").resolve("test.txt");
|
||||||
|
try (BufferedWriter bufferedWriter = Files.newBufferedWriter(testTxt)) {
|
||||||
|
bufferedWriter.write("Hello");
|
||||||
|
logger.log(Level.INFO, "Hello written");
|
||||||
|
}
|
||||||
|
Thread.sleep(1000L);
|
||||||
|
Files.delete(testTxt);
|
||||||
|
Files.delete(path);
|
||||||
|
eventManager.close();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package org.xbib.event.path;
|
||||||
|
|
||||||
|
import org.xbib.event.EventConsumer;
|
||||||
|
import org.xbib.event.PathEvent;
|
||||||
|
import org.xbib.event.bus.AllowConcurrentEvents;
|
||||||
|
import org.xbib.event.bus.Subscribe;
|
||||||
|
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
public class TestPathEventConsumer implements EventConsumer {
|
||||||
|
|
||||||
|
private static final Logger logger = Logger.getLogger(TestPathEventConsumer.class.getName());
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
@AllowConcurrentEvents
|
||||||
|
void onEvent(PathEvent event) {
|
||||||
|
logger.log(Level.INFO, "received path event, path = " + event.getPath() + " content = " + event.getMessage());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue