private void updateRemoteProcessGroup(final RemoteProcessGroup rpg, final VersionedRemoteProcessGroup proposed, final String componentIdSeed) { rpg.setComments(proposed.getComments()); rpg.setCommunicationsTimeout(proposed.getCommunicationsTimeout()); rpg.setInputPorts(proposed.getInputPorts() == null ? Collections.emptySet() : proposed.getInputPorts().stream() .map(port -> createPortDescriptor(port, componentIdSeed, rpg.getIdentifier())) .collect(Collectors.toSet()), false); rpg.setName(proposed.getName()); rpg.setNetworkInterface(proposed.getLocalNetworkInterface()); rpg.setOutputPorts(proposed.getOutputPorts() == null ? Collections.emptySet() : proposed.getOutputPorts().stream() .map(port -> createPortDescriptor(port, componentIdSeed, rpg.getIdentifier())) .collect(Collectors.toSet()), false); rpg.setPosition(new Position(proposed.getPosition().getX(), proposed.getPosition().getY())); rpg.setProxyHost(proposed.getProxyHost()); rpg.setProxyPort(proposed.getProxyPort()); rpg.setProxyUser(proposed.getProxyUser()); rpg.setTransportProtocol(SiteToSiteTransportProtocol.valueOf(proposed.getTransportProtocol())); rpg.setYieldDuration(proposed.getYieldDuration()); }
private RemoteProcessGroup addRemoteProcessGroup(final ProcessGroup destination, final VersionedRemoteProcessGroup proposed, final String componentIdSeed) { final RemoteProcessGroup rpg = flowManager.createRemoteProcessGroup(generateUuid(proposed.getIdentifier(), destination.getIdentifier(), componentIdSeed), proposed.getTargetUris()); rpg.setVersionedComponentId(proposed.getIdentifier()); destination.addRemoteProcessGroup(rpg); updateRemoteProcessGroup(rpg, proposed, componentIdSeed); return rpg; }
@Override public RemoteProcessGroupSchema apply(VersionedRemoteProcessGroup versionedRemoteProcessGroup) { Map<String, Object> map = new HashMap<>(); map.put(CommonPropertyKeys.ID_KEY, versionedRemoteProcessGroup.getIdentifier()); map.put(CommonPropertyKeys.NAME_KEY, versionedRemoteProcessGroup.getName()); map.put(RemoteProcessGroupSchema.URL_KEY, versionedRemoteProcessGroup.getTargetUri()); Set<VersionedRemoteGroupPort> inputPorts = versionedRemoteProcessGroup.getInputPorts(); if (inputPorts != null) { map.put(CommonPropertyKeys.INPUT_PORTS_KEY, inputPorts.stream() Set<VersionedRemoteGroupPort> outputPorts = versionedRemoteProcessGroup.getOutputPorts(); if (outputPorts != null) { map.put(CommonPropertyKeys.OUTPUT_PORTS_KEY, outputPorts.stream() map.put(CommonPropertyKeys.COMMENT_KEY, versionedRemoteProcessGroup.getComments()); map.put(RemoteProcessGroupSchema.TIMEOUT_KEY, versionedRemoteProcessGroup.getCommunicationsTimeout()); map.put(CommonPropertyKeys.YIELD_PERIOD_KEY, versionedRemoteProcessGroup.getYieldDuration()); map.put(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY, versionedRemoteProcessGroup.getTransportProtocol()); map.put(RemoteProcessGroupSchema.PROXY_HOST_KEY, versionedRemoteProcessGroup.getProxyHost()); map.put(RemoteProcessGroupSchema.PROXY_PORT_KEY, versionedRemoteProcessGroup.getProxyPort()); map.put(RemoteProcessGroupSchema.PROXY_USER_KEY, versionedRemoteProcessGroup.getProxyUser()); map.put(RemoteProcessGroupSchema.LOCAL_NETWORK_INTERFACE_KEY, versionedRemoteProcessGroup.getLocalNetworkInterface()); return new RemoteProcessGroupSchema(map);
private void compare(final VersionedRemoteProcessGroup rpgA, final VersionedRemoteProcessGroup rpgB, final Set<FlowDifference> differences) { if (compareComponents(rpgA, rpgB, differences, false, true, false)) { // do not compare comments for RPG because they come from remote system, not our local flow return; } addIfDifferent(differences, DifferenceType.RPG_COMMS_TIMEOUT_CHANGED, rpgA, rpgB, VersionedRemoteProcessGroup::getCommunicationsTimeout); addIfDifferent(differences, DifferenceType.RPG_NETWORK_INTERFACE_CHANGED, rpgA, rpgB, VersionedRemoteProcessGroup::getLocalNetworkInterface); addIfDifferent(differences, DifferenceType.RPG_PROXY_HOST_CHANGED, rpgA, rpgB, VersionedRemoteProcessGroup::getProxyHost); addIfDifferent(differences, DifferenceType.RPG_PROXY_PORT_CHANGED, rpgA, rpgB, VersionedRemoteProcessGroup::getProxyPort); addIfDifferent(differences, DifferenceType.RPG_PROXY_USER_CHANGED, rpgA, rpgB, VersionedRemoteProcessGroup::getProxyUser); addIfDifferent(differences, DifferenceType.RPG_TRANSPORT_PROTOCOL_CHANGED, rpgA, rpgB, VersionedRemoteProcessGroup::getTransportProtocol); addIfDifferent(differences, DifferenceType.YIELD_DURATION_CHANGED, rpgA, rpgB, VersionedRemoteProcessGroup::getYieldDuration); differences.addAll(compareComponents(rpgA.getInputPorts(), rpgB.getInputPorts(), this::compare)); differences.addAll(compareComponents(rpgA.getOutputPorts(), rpgB.getOutputPorts(), this::compare)); }
final RemoteProcessGroup rpg = rpgsByVersionedId.get(proposedRpg.getIdentifier()); if (rpg == null) { final RemoteProcessGroup added = addRemoteProcessGroup(group, proposedRpg, componentIdSeed); LOG.info("Added {} to {}", added, this); } else if (updatedVersionedComponentIds.contains(proposedRpg.getIdentifier())) { updateRemoteProcessGroup(rpg, proposedRpg, componentIdSeed); LOG.info("Updated {}", rpg); } else { rpg.setPosition(new Position(proposedRpg.getPosition().getX(), proposedRpg.getPosition().getY())); rpgsRemoved.remove(proposedRpg.getIdentifier());
@Override public RemoteProcessGroupSchema apply(VersionedRemoteProcessGroup versionedRemoteProcessGroup) { Map<String, Object> map = new HashMap<>(); map.put(CommonPropertyKeys.ID_KEY, versionedRemoteProcessGroup.getIdentifier()); map.put(CommonPropertyKeys.NAME_KEY, versionedRemoteProcessGroup.getName()); map.put(RemoteProcessGroupSchema.URL_KEY, versionedRemoteProcessGroup.getTargetUri()); Set<VersionedRemoteGroupPort> inputPorts = versionedRemoteProcessGroup.getInputPorts(); if (inputPorts != null) { map.put(CommonPropertyKeys.INPUT_PORTS_KEY, inputPorts.stream() Set<VersionedRemoteGroupPort> outputPorts = versionedRemoteProcessGroup.getOutputPorts(); if (outputPorts != null) { map.put(CommonPropertyKeys.OUTPUT_PORTS_KEY, outputPorts.stream() map.put(CommonPropertyKeys.COMMENT_KEY, versionedRemoteProcessGroup.getComments()); map.put(RemoteProcessGroupSchema.TIMEOUT_KEY, versionedRemoteProcessGroup.getCommunicationsTimeout()); map.put(CommonPropertyKeys.YIELD_PERIOD_KEY, versionedRemoteProcessGroup.getYieldDuration()); map.put(RemoteProcessGroupSchema.TRANSPORT_PROTOCOL_KEY, versionedRemoteProcessGroup.getTransportProtocol()); map.put(RemoteProcessGroupSchema.PROXY_HOST_KEY, versionedRemoteProcessGroup.getProxyHost()); map.put(RemoteProcessGroupSchema.PROXY_PORT_KEY, versionedRemoteProcessGroup.getProxyPort()); map.put(RemoteProcessGroupSchema.PROXY_USER_KEY, versionedRemoteProcessGroup.getProxyUser()); map.put(RemoteProcessGroupSchema.LOCAL_NETWORK_INTERFACE_KEY, versionedRemoteProcessGroup.getLocalNetworkInterface()); return new RemoteProcessGroupSchema(map);
final Set<VersionedRemoteGroupPort> rpgInputPorts = nullToEmpty(remoteProcessGroup.getInputPorts()); final Set<VersionedRemoteGroupPort> rpgOutputPorts = nullToEmpty(remoteProcessGroup.getOutputPorts());
final Set<VersionedRemoteGroupPort> rpgInputPorts = nullToEmpty(remoteProcessGroup.getInputPorts()); final Set<VersionedRemoteGroupPort> rpgOutputPorts = nullToEmpty(remoteProcessGroup.getOutputPorts());