@Override public Extractor getExtractor(WorkUnitState state) throws IOException { return new KafkaSimpleStreamingExtractor<S, D>(state); } }
.thenReturn(committedWatermarks); kSSE.start(mockWatermarkStorage); RecordEnvelope<byte[]> record = kSSE.readRecordEnvelope(); Assert.assertEquals(record.getRecord(), record_1); record = kSSE.readRecordEnvelope(); Assert.assertEquals(record.getRecord(), record_2); kSSE.start(mockWatermarkStorage); record = kSSE.readRecordEnvelope();
/** * Test that the extractor barfs on not calling start */ @Test(timeOut = 10000) public void testExtractorStart() { final String topic = "testExtractorStart"; final KafkaSimpleStreamingExtractor<String, byte[]> kSSE = getStreamingExtractor(topic); try { kSSE.readRecordEnvelope(); Assert.fail("Should have thrown an exception"); } catch (IOException e) { } catch (Exception e) { Assert.fail("Should only throw IOException"); } }
waitingThread.start(); try { kSSE.close(); waitingThread.join(); } catch (Exception e) {
public void run () { TopicPartition tP = new TopicPartition(topic, 0); KafkaSimpleStreamingExtractor.KafkaWatermark kwm = new KafkaSimpleStreamingExtractor.KafkaWatermark(tP, new LongWatermark(0)); byte[] reuse = new byte[1]; RecordEnvelope<byte[]> oldRecord = new RecordEnvelope<>(reuse, kwm); try { RecordEnvelope<byte[]> record = kSSE.readRecordEnvelope(); } catch (Exception e) { Assert.assertTrue((e instanceof WakeupException) || (e instanceof ClosedChannelException)); } } };
private KafkaSimpleStreamingExtractor<String, byte[]> getStreamingExtractor(String topic) { _kafkaTestHelper.provisionTopic(topic); List<WorkUnit> lWu = getWorkUnits(topic); WorkUnit wU = lWu.get(0); WorkUnitState wSU = new WorkUnitState(wU, new State()); wSU.setProp(ConfigurationKeys.KAFKA_BROKERS, "localhost:" + _kafkaTestHelper.getKafkaServerPort()); wSU.setProp(KafkaSimpleStreamingSource.TOPIC_WHITELIST, topic); wSU.setProp(ConfigurationKeys.JOB_NAME_KEY, topic); wSU.setProp(KafkaSimpleStreamingSource.TOPIC_KEY_DESERIALIZER, "org.apache.kafka.common.serialization.StringDeserializer"); wSU.setProp(KafkaSimpleStreamingSource.TOPIC_VALUE_DESERIALIZER, "org.apache.kafka.common.serialization.ByteArrayDeserializer"); // Create an extractor return new KafkaSimpleStreamingExtractor<String, byte[]>(wSU); }