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 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())); } }
public TopologyProcessor getTopologyProcessor(Long topologyId, Long processorId, Long versionId) { TopologyProcessor topologyProcessor = new TopologyProcessor(); topologyProcessor.setId(processorId); topologyProcessor.setVersionId(versionId); TopologyProcessor processor = dao.get(new StorableKey(TOPOLOGY_PROCESSOR_NAMESPACE, topologyProcessor.getPrimaryKey())); if (processor == null || !processor.getTopologyId().equals(topologyId)) { return null; } fillProcessorStreams(processor); processor.setVersionTimestamp(getVersionTimestamp(versionId)); return processor; }