use of com.adaptris.core.lms.LargeFsConsumer in project interlok by adaptris.
the class FsMessageConsumerTest method testConsumeBug3304OversizedFiles.
@Test
public void testConsumeBug3304OversizedFiles() throws Exception {
String subDir = new GuidGenerator().safeUUID();
MockMessageListener stub = new MockMessageListener(10);
FsConsumer fs = createConsumer(subDir);
if (fs instanceof LargeFsConsumer) {
// The large FS consumer should (by definition) handle large files
return;
}
fs.setReacquireLockBetweenMessages(true);
AtomicBoolean pollFired = new AtomicBoolean(false);
fs.setPoller(new FixedIntervalPoller(new TimeInterval(300L, TimeUnit.MILLISECONDS)).withPollerCallback(e -> {
pollFired.set(true);
}));
fs.fsWorker = new SizeLimitedWorker();
StandaloneConsumer sc = new StandaloneConsumer(fs);
sc.registerAdaptrisMessageListener(stub);
int count = 1;
File parentDir = FsHelper.createFileReference(FsHelper.createUrlFromString(PROPERTIES.getProperty(BASE_KEY), true));
try {
File baseDir = new File(parentDir, subDir);
LifecycleHelper.init(sc);
File largeFile = File.createTempFile("3304", null, baseDir);
RandomAccessFile raf = new RandomAccessFile(largeFile, "rw");
// Set the size to be 10Mb.
raf.setLength(0x00100000 * 10);
LifecycleHelper.prepare(sc);
LifecycleHelper.start(sc);
waitForPollCallback(pollFired);
assertTrue(stub.getMessages().size() == 0);
} finally {
stop(sc);
FileUtils.deleteQuietly(new File(parentDir, subDir));
}
}
Aggregations