private void validateStreamInfo(TopologyStream topologyStream) { if (topologyStream.getFields().isEmpty()) { throw new IllegalArgumentException("Stream with empty fields: " + topologyStream); } StorageUtils.ensureUnique(topologyStream, this::listStreamInfos, QueryParam.params(TopologyStream.TOPOLOGYID, topologyStream.getTopologyId().toString(), TopologyStream.VERSIONID, topologyStream.getVersionId().toString(), TopologyStream.STREAMID, topologyStream.getStreamId())); }
private void setReconfigureTarget(TopologyStream stream) { // reconfigure all targets of processors that use this output stream List<QueryParam> params = QueryParam.params( TopologyProcessorStreamMap.FIELD_VERSION_ID, String.valueOf(stream.getVersionId()), TopologyProcessorStreamMap.FIELD_STREAM_ID, String.valueOf(stream.getId())); listTopologyProcessorStreamMapping(params) .stream() .map(sm -> getTopologyProcessor(stream.getTopologyId(), sm.getProcessorId(), sm.getVersionId())) .flatMap(p -> getEdgesFrom(p).stream()) .filter(e -> e.getStreamGroupings().stream().map(StreamGrouping::getStreamId).anyMatch(sgid -> sgid.equals(stream.getId()))) .forEach(e -> setReconfigureTarget(e, stream)); // reconfigure all targets of source that use this output stream params = QueryParam.params( TopologySourceStreamMap.FIELD_VERSION_ID, String.valueOf(stream.getVersionId()), TopologySourceStreamMap.FIELD_STREAM_ID, String.valueOf(stream.getId())); listTopologySourceStreamMapping(params) .stream() .map(sm -> getTopologySource(stream.getTopologyId(), sm.getSourceId(), sm.getVersionId())) .flatMap(source -> getEdgesFrom(source).stream()) .filter(e -> e.getStreamGroupings().stream().map(StreamGrouping::getStreamId).anyMatch(sgid -> sgid.equals(stream.getId()))) .forEach(e -> setReconfigureTarget(e, stream)); }
public TopologyStream(TopologyStream other) { if (other != null) { setId(other.getId()); setVersionId(other.getVersionId()); setStreamId(other.getStreamId()); setDescription(other.getDescription()); setTopologyId(other.getTopologyId()); if (other.getFields() != null) { setFields(other.getFields().stream().map(Field::copy).collect(Collectors.toList())); } setVersionTimestamp(other.getVersionTimestamp()); } }
public TopologyStream getStreamInfo(Long topologyId, Long streamId, Long versionId) { TopologyStream topologyStream = new TopologyStream(); topologyStream.setId(streamId); topologyStream.setVersionId(versionId); TopologyStream result = dao.get(new StorableKey(STREAMINFO_NAMESPACE, topologyStream.getPrimaryKey())); if (result == null || !result.getTopologyId().equals(topologyId)) { return null; } result.setVersionTimestamp(getVersionTimestamp(versionId)); return result; }