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); } }
@Override public List<StreamlineEvent> execute(StreamlineEvent input) { Map<String, Object> header = new HashMap<>(input.getHeader()); if(addHeaderTransform.getFixedHeader() != null) { header.putAll(addHeaderTransform.getFixedHeader()); } header.put(HEADER_FIELD_DATASOURCE_IDS, Collections.singletonList(input.getDataSourceId())); header.put(HEADER_FIELD_EVENT_IDS, Collections.singletonList(input.getId())); header.put(HEADER_FIELD_TIMESTAMP, System.currentTimeMillis()); return Collections.singletonList( StreamlineEventImpl.builder().from(input).header(header).build()); }
.header(header) .build();
.fieldsAndValues(fieldsMap) .dataSourceId("notificationsTestBolt") .header(header) .build(); collector.emit(consoleNotificationStream, new Values(streamlineEvent)); .fieldsAndValues(fieldsMap) .dataSourceId("notificationsTestBolt") .header(header) .build(); collector.emit(emailNotificationStream, new Values(streamlineEvent));
@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()); }
/** * Returns a new Streamline event with the given headers added to the existing headers. * All the other fields are copied from this event. * @param headers the map of fieldsAndValues to add or overwrite * @return the new StreamlineEvent */ @Override public StreamlineEvent addHeaders(Map<String, Object> headers) { Map<String, Object> headerMap = new HashMap<>(); headerMap.putAll(this.getHeader()); headerMap.putAll(headers); return StreamlineEventImpl.builder().from(this) .header(headerMap) .build(); }
public Builder from(StreamlineEvent other) { return this.header(other.getHeader()) .sourceStream(other.getSourceStream()) .dataSourceId(other.getDataSourceId()) .auxiliaryFieldsAndValues(other.getAuxiliaryFieldsAndValues()) .putAll(other); }
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(); }