@Override public Header getHeader() { return new Header(0L, "Poison record", new Date()); }
@Override public Record readRecord() throws Exception { String payload = scanner.nextLine(); boolean stop = payload != null && !payload.isEmpty() && payload.equalsIgnoreCase(terminationInput); if (stop) { return null; } Header header = new Header(++recordNumber, getDataSourceName(), new Date()); return new StringRecord(header, payload); }
@Override public FileRecord readRecord() { Header header = new Header(++currentRecordNumber, getDataSourceName(), new Date()); if (iterator.hasNext()) { return new FileRecord(header, iterator.next()); } else { return null; } }
@Override public GenericRecord readRecord() throws Exception { Header header = new Header(++currentRecordNumber, getDataSourceName(), new Date()); if (iterator.hasNext()) { return new GenericRecord<>(header, iterator.next()); } else { return null; } }
@Override public StringRecord readRecord() { Header header = new Header(currentRecordNumber++, getDataSourceName(), new Date()); String payload = scanner.hasNextLine() ? scanner.nextLine() : null; return payload == null ? null : new StringRecord(header, payload); }
@Override public StringRecord readRecord() { Header header = new Header(++currentRecordNumber, getDataSourceName(), new Date()); if (scanner.hasNextLine()) { return new StringRecord(header, scanner.nextLine()); } else { return null; } }
@Override public void afterJobEnd(final JobReport jobReport) { try { broadcastJmsQueueRecordWriter.writeRecords(new Batch(new JmsPoisonRecord(new Header(0L, "Poison record", new Date()), new JmsPoisonMessage()))); } catch (Exception e) { throw new RuntimeException("Unable to broadcast poison record.", e); } }
@Override public JmsRecord readRecord() throws Exception { if (hasNextRecord()) { Message message = queueReceiver.receive(); String type = message.getJMSType(); stop = message instanceof JmsPoisonMessage || (type != null && JmsPoisonMessage.TYPE.equals(type)); Header header = new Header(++currentRecordNumber, getDataSourceName(), new Date()); return new JmsRecord(header, message); } else { return null; } }