private List<Long> getOutputStreamIds(TopologyProcessor topologyProcessor) { List<Long> streamIds = new ArrayList<>(); if (topologyProcessor != null) { QueryParam qp1 = new QueryParam(TopologyProcessorStreamMap.FIELD_PROCESSOR_ID, String.valueOf(topologyProcessor.getId())); QueryParam qp2 = new QueryParam(TopologyProcessorStreamMap.FIELD_VERSION_ID, String.valueOf(topologyProcessor.getVersionId())); for (TopologyProcessorStreamMap mapping : listTopologyProcessorStreamMapping(ImmutableList.of(qp1, qp2))) { streamIds.add(mapping.getStreamId()); } } return streamIds; }
private void validateTopologyProcessor(TopologyProcessor topologyProcessor) { StorageUtils.ensureUnique(topologyProcessor, this::listTopologyProcessors, QueryParam.params(TopologyProcessor.TOPOLOGYID, topologyProcessor.getTopologyId().toString(), TopologyProcessor.VERSIONID, topologyProcessor.getVersionId().toString(), TopologyProcessor.NAME, topologyProcessor.getName())); }
private List<TopologyStream> getOutputStreams(TopologyProcessor topologyProcessor) { List<TopologyStream> streams = new ArrayList<>(); if (topologyProcessor != null) { QueryParam qp1 = new QueryParam(TopologyProcessorStreamMap.FIELD_PROCESSOR_ID, String.valueOf(topologyProcessor.getId())); QueryParam qp2 = new QueryParam(TopologyProcessorStreamMap.FIELD_VERSION_ID, String.valueOf(topologyProcessor.getVersionId())); for (TopologyProcessorStreamMap mapping : listTopologyProcessorStreamMapping(ImmutableList.of(qp1, qp2))) { TopologyStream topologyStream = getStreamInfo(topologyProcessor.getTopologyId(), mapping.getStreamId(), topologyProcessor.getVersionId()); if (topologyStream != null) { streams.add(topologyStream); } } } return streams; }
private void addProcessorStreamMapping(TopologyProcessor topologyProcessor, List<Long> streamIds) { for (Long outputStreamId : streamIds) { dao.<TopologyProcessorStreamMap>add(new TopologyProcessorStreamMap(topologyProcessor.getId(), topologyProcessor.getVersionId(), outputStreamId)); } }
private void removeProcessorStreamMapping(TopologyProcessor topologyProcessor, List<Long> streamIds) { if (topologyProcessor != null) { for (Long outputStreamId : streamIds) { TopologyProcessorStreamMap mapping = new TopologyProcessorStreamMap(topologyProcessor.getId(), topologyProcessor.getVersionId(), outputStreamId); dao.<TopologyProcessorStreamMap>remove(mapping.getStorableKey()); } } }
private void setReconfigureRules(List<TopologyProcessor> processors, List<TopologyStream> affectedStreams) { Map<Long, BiFunction<TopologyProcessor, Long, BaseTopologyRule>> bundles = new HashMap<>(); TopologyComponentBundle bundle = getCurrentTopologyComponentBundle(TopologyComponentBundle.TopologyComponentType.PROCESSOR, ComponentTypes.RULE); bundles.put(bundle.getId(), (p, r) -> getRule(p.getTopologyId(), r, p.getVersionId())); bundle = getCurrentTopologyComponentBundle(TopologyComponentBundle.TopologyComponentType.PROCESSOR, ComponentTypes.BRANCH); bundles.put(bundle.getId(), (p, r) -> getBranchRule(p.getTopologyId(), r, p.getVersionId())); bundle = getCurrentTopologyComponentBundle(TopologyComponentBundle.TopologyComponentType.PROCESSOR, ComponentTypes.PROJECTION); bundles.put(bundle.getId(), (p, r) -> getRule(p.getTopologyId(), r, p.getVersionId())); bundle = getCurrentTopologyComponentBundle(TopologyComponentBundle.TopologyComponentType.PROCESSOR, ComponentTypes.WINDOW); bundles.put(bundle.getId(), (p, r) -> getWindow(p.getTopologyId(), r, p.getVersionId()));
private void createProcessorStreamMapping(TopologyProcessor topologyProcessor, List<TopologyStream> streams) { for (TopologyStream outputStream : streams) { TopologyStream addedStream = addStreamInfo(topologyProcessor.getTopologyId(), outputStream); dao.<TopologyProcessorStreamMap>add(new TopologyProcessorStreamMap(topologyProcessor.getId(), topologyProcessor.getVersionId(), addedStream.getId())); } }