@Override public void nextTuple() { try (BufferedReader br = new BufferedReader(Files.newBufferedReader(Paths.get(path), StandardCharsets.UTF_8))) { String line; while ((line = br.readLine()) != null) { String[] result = line.split(delimiter); if (result.length != 2) { LOG.error("Format of input file not as expected. Expecting {} separated first name and last name", delimiter); } else { List<Object> values = new ArrayList<>(); values.add(StreamlineEventImpl.builder().sourceStream(outputStream).put(FIRST_NAME, result[0].trim()).put(LAST_NAME, result[1].trim()) .build()); spoutOutputCollector.emit(outputStream, values, UUID.randomUUID()); } } } catch (IOException e) { LOG.error("Got exception while reading file at {}", path); throw new RuntimeException(e); } }
public static StreamlineEvent fromString(String s) { ObjectMapper mapper = new ObjectMapper(); try { Map<String, Object> event = mapper.readValue( s.substring(s.indexOf(TO_STRING_PREFIX) + TO_STRING_PREFIX.length()), new TypeReference<Map<String, Object>>() {}); return StreamlineEventImpl.builder() .header((Map<String, Object>) event.get("header")) .sourceStream((String) event.get("sourceStream")) .auxiliaryFieldsAndValues((Map<String, Object>) event.get("auxiliaryFieldsAndValues")) .dataSourceId((String) event.get("dataSourceId")) .putAll((Map<String, Object>) event.get("fieldsAndValues")) .build(); } catch (IOException e) { throw new RuntimeException(e); } }
private StreamlineEvent createPartitionEvent(StreamlineEvent event, String groupId, int partNo, String stream, int totalParts) { Map<String, Object> headers = new HashMap<>(); if (event.getHeader() != null) { headers.putAll(event.getHeader()); } headers.put(SplitActionRuntime.SPLIT_GROUP_ID, groupId); headers.put(SplitActionRuntime.SPLIT_PARTITION_ID, partNo); headers.put(SplitActionRuntime.SPLIT_TOTAL_PARTITIONS_ID, totalParts); return StreamlineEventImpl.builder().from(event).header(headers).sourceStream(stream).build(); }
.sourceStream(input.getSourceStreamId()) .fieldsAndValues(mappedEventMap) .build(); .sourceStream(outputStream) .fieldsAndValues(newFieldsAndValues) .build();
@Override public StreamlineEvent convert(CorrelatedValues input, StreamlineEvent inputEvent) { if (this.eventCorrelationInjector == null) { this.eventCorrelationInjector = new EventCorrelationInjector(); } StreamlineEvent result; if (input == null) { return null; } else if (outputFields != null && !outputFields.isEmpty()) { StreamlineEventImpl.Builder builder = StreamlineEventImpl.builder(); for (int i = 0; i < outputFields.size(); i++) { builder.put(outputFields.get(i), input.get(i)); } if (inputEvent != null) { result = builder.dataSourceId(inputEvent.getDataSourceId()) .header(inputEvent.getHeader()) .sourceStream(inputEvent.getSourceStream()) .build(); } else { result = builder.build(); } } else { result = inputEvent; } return eventCorrelationInjector.injectCorrelationInformation(result, input.getCorrelated()); }
private StreamlineEvent getStreamlineEventWithStream(StreamlineEvent event, Tuple tuple) { return StreamlineEventImpl.builder().from(event).sourceStream(tuple.getSourceStreamId()).build(); }
public void process(Tuple inputTuple, StreamlineEvent event) throws Exception { LOG.debug("Normalizing received StreamlineEvent: [{}] with tuple: [{}]", event, inputTuple); //todo this bolt will be replaced with custom baseprocessor bolt. StreamlineEventImpl eventWithStream = StreamlineEventImpl.builder() .from(event) .sourceStream(inputTuple.getSourceStreamId()) .build(); List<Result> outputEvents = normalizationProcessorRuntime.process(eventWithStream); LOG.debug("Emitting events to collector: [{}]", outputEvents); for (Result outputEvent : outputEvents) { for (StreamlineEvent e : outputEvent.events) { collector.emit(outputEvent.stream, inputTuple, new Values(e)); } } }
private StreamlineEvent getStreamlineEvent(StreamlineEvent event, String stream) { return StreamlineEventImpl.builder().from(event).sourceStream(stream).build(); }
private StreamlineEvent getStreamlineEventWithStream(StreamlineEvent event, Tuple tuple) { return StreamlineEventImpl.builder().from(event).sourceStream(tuple.getSourceStreamId()).build(); }
private StreamlineEvent getStreamlineEventWithStream(StreamlineEvent event, Tuple tuple) { StreamlineEventImpl newEvent = StreamlineEventImpl.builder().from(event).sourceStream(tuple.getSourceStreamId()).build(); return new IdPreservedStreamlineEvent(newEvent, event.getId()); }
public Builder from(StreamlineEvent other) { return this.header(other.getHeader()) .sourceStream(other.getSourceStream()) .dataSourceId(other.getDataSourceId()) .auxiliaryFieldsAndValues(other.getAuxiliaryFieldsAndValues()) .putAll(other); }