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