@Override public RemoteProcessGroupSchema convert() { Map<String, Object> result = mapSupplier.get(); result.put(NAME_KEY, name); result.put(URL_KEY, url); result.put(COMMENT_KEY, comment); result.put(TIMEOUT_KEY, timeout); result.put(YIELD_PERIOD_KEY, yieldPeriod); putListIfNotNull(result, INPUT_PORTS_KEY, inputPorts); return new RemoteProcessGroupSchema(result); }
public Set<String> getPortIds() { Set<String> result = new HashSet<>(); inputPortSchemas.stream().map(PortSchema::getId).forEachOrdered(result::add); outputPortSchemas.stream().map(PortSchema::getId).forEachOrdered(result::add); remoteProcessGroups.stream().flatMap(r -> r.getInputPorts().stream()).map(RemotePortSchema::getId).forEachOrdered(result::add); remoteProcessGroups.stream().flatMap(r -> r.getOutputPorts().stream()).map(RemotePortSchema::getId).forEachOrdered(result::add); processGroupSchemas.stream().flatMap(p -> p.getPortIds().stream()).forEachOrdered(result::add); return result; }
protected List<RemoteProcessGroupSchema> getRemoteProcessGroupSchemas() { Set<UUID> ids = new HashSet<>(); List<RemoteProcessGroupSchema> rpgSchemas= new ArrayList<>(remoteProcessingGroups.size()); for (RemoteProcessGroupSchemaV1 rpg : remoteProcessingGroups) { RemoteProcessGroupSchema rpgSchema = rpg.convert(); rpgSchema.setId(getUniqueId(ids, rpgSchema.getName())); rpgSchemas.add(rpgSchema); } return rpgSchemas; } @Override
public RemoteProcessGroupSchema(Map map) { super(map, "RemoteProcessGroup(id: {id}, name: {name})"); String wrapperName = getWrapperName(); urls = getRequiredKeyAsType(map, URL_KEY, String.class, wrapperName); inputPorts = convertListToType(getOptionalKeyAsType(map, INPUT_PORTS_KEY, List.class, wrapperName, new ArrayList<>()), "input port", RemotePortSchema.class, INPUT_PORTS_KEY); addIssuesIfNotNull(inputPorts); outputPorts = convertListToType(getOptionalKeyAsType(map, OUTPUT_PORTS_KEY, List.class, wrapperName, new ArrayList<>()), "output port", RemotePortSchema.class, OUTPUT_PORTS_KEY); addIssuesIfNotNull(outputPorts); addValidationIssue("Expected either '" + INPUT_PORTS_KEY + "', '" + OUTPUT_PORTS_KEY + "' in section '" + wrapperName + "' to have value(s)"); comment = getOptionalKeyAsType(map, COMMENT_KEY, String.class, wrapperName, DEFAULT_COMMENT); timeout = getOptionalKeyAsType(map, TIMEOUT_KEY, String.class, wrapperName, DEFAULT_TIMEOUT); yieldPeriod = getOptionalKeyAsType(map, YIELD_PERIOD_KEY, String.class, wrapperName, DEFAULT_YIELD_PERIOD); transportProtocol = getOptionalKeyAsType(map, TRANSPORT_PROTOCOL_KEY, String.class, wrapperName, DEFAULT_TRANSPORT_PROTOCOL); addValidationIssue(TRANSPORT_PROTOCOL_KEY, wrapperName, "it must be either 'RAW' or 'HTTP' but is '" + transportProtocol + "'"); localNetworkInterface = getOptionalKeyAsType(map, LOCAL_NETWORK_INTERFACE_KEY, String.class, wrapperName, DEFAULT_NETWORK_INTERFACE); proxyHost = getOptionalKeyAsType(map, PROXY_HOST_KEY, String.class, wrapperName, DEFAULT_PROXY_HOST); proxyPort = getOptionalKeyAsType(map, PROXY_PORT_KEY, Integer.class, wrapperName, DEFAULT_PROXY_PORT); proxyUser = getOptionalKeyAsType(map, PROXY_USER_KEY, String.class, wrapperName, DEFAULT_PROXY_USER); proxyPassword = getOptionalKeyAsType(map, PROXY_PASSWORD_KEY, String.class, wrapperName, DEFAULT_PROXY_PASSWORD); addValidationIssue(PROXY_PORT_KEY, wrapperName, EXPECTED_PROXY_HOST_IF_PROXY_PORT);
final Element element = doc.createElement("remoteProcessGroup"); parentElement.appendChild(element); addTextElement(element, "id", remoteProcessGroupProperties.getId()); addTextElement(element, "name", remoteProcessGroupProperties.getName()); addPosition(element); addTextElement(element, "comment", remoteProcessGroupProperties.getComment()); addTextElement(element, "url", Arrays.asList(remoteProcessGroupProperties.getUrls().split(",")).get(0)); addTextElement(element, "urls", remoteProcessGroupProperties.getUrls()); addTextElement(element, "timeout", remoteProcessGroupProperties.getTimeout()); addTextElement(element, "yieldPeriod", remoteProcessGroupProperties.getYieldPeriod()); addTextElement(element, "transmitting", "true"); addTextElement(element, "transportProtocol", remoteProcessGroupProperties.getTransportProtocol()); addTextElement(element, "proxyHost", remoteProcessGroupProperties.getProxyHost()); if (remoteProcessGroupProperties.getProxyPort() != null) { addTextElement(element, "proxyPort", Integer.toString(remoteProcessGroupProperties.getProxyPort())); addTextElement(element, "proxyUser", remoteProcessGroupProperties.getProxyUser()); if (!StringUtils.isEmpty(remoteProcessGroupProperties.getProxyPassword())) { addTextElement(element, "proxyPassword", remoteProcessGroupProperties.getProxyPassword()); List<RemotePortSchema> remoteInputPorts = remoteProcessGroupProperties.getInputPorts(); for (RemotePortSchema remoteInputPortSchema : remoteInputPorts) { addRemoteGroupPort(element, remoteInputPortSchema, "inputPort"); List<RemotePortSchema> remoteOutputPorts = remoteProcessGroupProperties.getOutputPorts(); for (RemotePortSchema remoteOutputPortSchema : remoteOutputPorts) { addRemoteGroupPort(element, remoteOutputPortSchema, "outputPort");
protected static void getRemotePortParentIdMap(ProcessGroupSchema processGroupSchema, Map<String, String> output, Function<RemoteProcessGroupSchema, List<RemotePortSchema>> getPortsFunction) { for (RemoteProcessGroupSchema remoteProcessGroupSchema : processGroupSchema.getRemoteProcessGroups()) { for (RemotePortSchema remotePortSchema : getPortsFunction.apply(remoteProcessGroupSchema)) { output.put(remotePortSchema.getId(), remoteProcessGroupSchema.getId()); } } processGroupSchema.getProcessGroupSchemas().forEach(p -> getRemotePortParentIdMap(p, output, getPortsFunction)); }
List<String> allConnectionIds = allConnectionSchemas.stream().map(ConnectionSchema::getId).collect(Collectors.toList()); List<String> allRemoteProcessGroupNames = allRemoteProcessGroups.stream().map(RemoteProcessGroupSchema::getName).collect(Collectors.toList()); List<String> allRemoteInputPortIds = allRemoteProcessGroups.stream().filter(r -> r.getInputPorts() != null) .flatMap(r -> r.getInputPorts().stream()).map(RemotePortSchema::getId).collect(Collectors.toList()); List<String> allRemoteOutputPortIds = allRemoteProcessGroups.stream().filter(r -> r.getOutputPorts() != null) .flatMap(r -> r.getOutputPorts().stream()).map(RemotePortSchema::getId).collect(Collectors.toList()); List<String> allInputPortIds = allProcessGroups.stream().flatMap(p -> p.getInputPortSchemas().stream()).map(PortSchema::getId).collect(Collectors.toList()); List<String> allOutputPortIds = allProcessGroups.stream().flatMap(p -> p.getOutputPortSchemas().stream()).map(PortSchema::getId).collect(Collectors.toList());
@Override public RemoteProcessGroupSchema convert() { Map<String, Object> result = idAndName.toMap(); result.put(URL_KEY, url); result.put(COMMENT_KEY, comment); result.put(TIMEOUT_KEY, timeout); result.put(YIELD_PERIOD_KEY, yieldPeriod); result.put(TRANSPORT_PROTOCOL_KEY, transportProtocol); putListIfNotNull(result, INPUT_PORTS_KEY, inputPorts); return new RemoteProcessGroupSchema(result); }
return new RemoteProcessGroupSchema(map);
return new RemoteProcessGroupSchema(map);
map.put(RemoteProcessGroupSchema.PROXY_PASSWORD_KEY, remoteProcessGroupDTO.getProxyPassword()); map.put(RemoteProcessGroupSchema.LOCAL_NETWORK_INTERFACE_KEY, remoteProcessGroupDTO.getLocalNetworkInterface()); return new RemoteProcessGroupSchema(map);
map.put(RemoteProcessGroupSchema.PROXY_PASSWORD_KEY, remoteProcessGroupDTO.getProxyPassword()); map.put(RemoteProcessGroupSchema.LOCAL_NETWORK_INTERFACE_KEY, remoteProcessGroupDTO.getLocalNetworkInterface()); return new RemoteProcessGroupSchema(map);