try { if (requireNonNull(port).getTargetExists()) { throw new IllegalStateException("Cannot remove Remote Port " + port.getIdentifier() + " because it still exists on the Remote Instance"); if (outputPorts.containsKey(port.getIdentifier())) { outputPorts.remove(port.getIdentifier()); } else { if (!inputPorts.containsKey(port.getIdentifier())) { throw new IllegalStateException("Cannot remove Remote Port because it does not belong to this Remote Process Group"); inputPorts.remove(port.getIdentifier());
processGroup.findAllRemoteProcessGroups().stream() .flatMap(rpg -> Stream.concat(rpg.getInputPorts().stream(), rpg.getOutputPorts().stream())) .map(component -> revisionManager.getRevision(component.getIdentifier())) .forEach(revisions::add);
private void applyVersionedComponentIds(final ProcessGroup processGroup, final Function<String, String> lookup) { processGroup.setVersionedComponentId(lookup.apply(processGroup.getIdentifier())); processGroup.getConnections() .forEach(component -> component.setVersionedComponentId(lookup.apply(component.getIdentifier()))); processGroup.getProcessors() .forEach(component -> component.setVersionedComponentId(lookup.apply(component.getIdentifier()))); processGroup.getInputPorts() .forEach(component -> component.setVersionedComponentId(lookup.apply(component.getIdentifier()))); processGroup.getOutputPorts() .forEach(component -> component.setVersionedComponentId(lookup.apply(component.getIdentifier()))); processGroup.getLabels() .forEach(component -> component.setVersionedComponentId(lookup.apply(component.getIdentifier()))); processGroup.getFunnels() .forEach(component -> component.setVersionedComponentId(lookup.apply(component.getIdentifier()))); processGroup.getControllerServices(false) .forEach(component -> component.setVersionedComponentId(lookup.apply(component.getIdentifier()))); processGroup.getRemoteProcessGroups() .forEach(rpg -> { rpg.setVersionedComponentId(lookup.apply(rpg.getIdentifier())); rpg.getInputPorts().forEach(port -> port.setVersionedComponentId(lookup.apply(port.getIdentifier()))); rpg.getOutputPorts().forEach(port -> port.setVersionedComponentId(lookup.apply(port.getIdentifier()))); }); for (final ProcessGroup childGroup : processGroup.getProcessGroups()) { if (childGroup.getVersionControlInformation() == null) { applyVersionedComponentIds(childGroup, lookup); } else if (!childGroup.getVersionedComponentId().isPresent()) { childGroup.setVersionedComponentId(lookup.apply(childGroup.getIdentifier())); } } }
private void addRemoteGroupPort(final Element parentElement, final RemoteGroupPort port, final String elementName, final ScheduledStateLookup scheduledStateLookup) { final Document doc = parentElement.getOwnerDocument(); final Element element = doc.createElement(elementName); parentElement.appendChild(element); addTextElement(element, "id", port.getIdentifier()); addTextElement(element, "versionedComponentId", port.getVersionedComponentId()); addTextElement(element, "name", port.getName()); addPosition(element, port.getPosition()); addTextElement(element, "comments", port.getComments()); addTextElement(element, "scheduledState", scheduledStateLookup.getScheduledState(port).name()); addTextElement(element, "targetId", port.getTargetIdentifier()); addTextElement(element, "maxConcurrentTasks", port.getMaxConcurrentTasks()); addTextElement(element, "useCompression", String.valueOf(port.isUseCompression())); final Integer batchCount = port.getBatchCount(); if (batchCount != null && batchCount > 0) { addTextElement(element, "batchCount", batchCount); } final String batchSize = port.getBatchSize(); if (batchSize != null && batchSize.length() > 0) { addTextElement(element, "batchSize", batchSize); } final String batchDuration = port.getBatchDuration(); if (batchDuration != null && batchDuration.length() > 0) { addTextElement(element, "batchDuration", batchDuration); } parentElement.appendChild(element); }
public VersionedRemoteGroupPort mapRemotePort(final RemoteGroupPort remotePort, final ComponentType componentType) { final VersionedRemoteGroupPort port = new InstantiatedVersionedRemoteGroupPort(remotePort.getIdentifier(), remotePort.getRemoteProcessGroup().getIdentifier()); port.setIdentifier(getId(remotePort.getVersionedComponentId(), remotePort.getIdentifier())); port.setGroupIdentifier(getGroupId(remotePort.getRemoteProcessGroup().getIdentifier())); port.setComments(remotePort.getComments()); port.setConcurrentlySchedulableTaskCount(remotePort.getMaxConcurrentTasks()); port.setRemoteGroupId(getGroupId(remotePort.getRemoteProcessGroup().getIdentifier())); port.setName(remotePort.getName()); port.setUseCompression(remotePort.isUseCompression()); port.setBatchSize(mapBatchSettings(remotePort)); port.setTargetId(remotePort.getTargetIdentifier()); port.setComponentType(componentType); return port; }
public RemoteProcessGroupPortDTO createRemoteProcessGroupPortDto(final RemoteGroupPort port) { if (port == null) { return null; } final RemoteProcessGroupPortDTO dto = new RemoteProcessGroupPortDTO(); dto.setId(port.getIdentifier()); dto.setGroupId(port.getRemoteProcessGroup().getIdentifier()); dto.setTargetId(port.getTargetIdentifier()); dto.setName(port.getName()); dto.setComments(port.getComments()); dto.setTransmitting(port.isRunning()); dto.setTargetRunning(port.isTargetRunning()); dto.setConcurrentlySchedulableTaskCount(port.getMaxConcurrentTasks()); dto.setUseCompression(port.isUseCompression()); dto.setExists(port.getTargetExists()); dto.setVersionedComponentId(port.getVersionedComponentId().orElse(null)); final BatchSettingsDTO batchDTO = new BatchSettingsDTO(); batchDTO.setCount(port.getBatchCount()); batchDTO.setSize(port.getBatchSize()); batchDTO.setDuration(port.getBatchDuration()); dto.setBatchSettings(batchDTO); // determine if this port is currently connected to another component locally if (ConnectableType.REMOTE_OUTPUT_PORT.equals(port.getConnectableType())) { dto.setConnected(!port.getConnections().isEmpty()); } else { dto.setConnected(port.hasIncomingConnection()); } return dto; }