From 0a837687bdd293700ea1ae93a08883fcb028129e Mon Sep 17 00:00:00 2001 From: Joe Percivall Date: Fri, 16 Jun 2017 12:39:26 -0400 Subject: [PATCH] NIFI-4075 Updating 'addRemoteProcessGroup' in StandardFlowSerializer to properly use ScheduledStateLookup --- .../serialization/StandardFlowSerializer.java | 12 ++++++------ .../nifi/fingerprint/FingerprintFactoryTest.java | 14 ++++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/StandardFlowSerializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/StandardFlowSerializer.java index 702932cce66e..4a9a0f768f7c 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/StandardFlowSerializer.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/StandardFlowSerializer.java @@ -188,7 +188,7 @@ private void addProcessGroup(final Element parentElement, final ProcessGroup gro } for (final RemoteProcessGroup remoteRef : group.getRemoteProcessGroups()) { - addRemoteProcessGroup(element, remoteRef); + addRemoteProcessGroup(element, remoteRef, scheduledStateLookup); } for (final Connection connection : group.getConnections()) { @@ -261,7 +261,7 @@ private void addFunnel(final Element parentElement, final Funnel funnel) { addPosition(element, funnel.getPosition()); } - private void addRemoteProcessGroup(final Element parentElement, final RemoteProcessGroup remoteRef) { + private void addRemoteProcessGroup(final Element parentElement, final RemoteProcessGroup remoteRef, final ScheduledStateLookup scheduledStateLookup) { final Document doc = parentElement.getOwnerDocument(); final Element element = doc.createElement("remoteProcessGroup"); parentElement.appendChild(element); @@ -290,20 +290,20 @@ private void addRemoteProcessGroup(final Element parentElement, final RemoteProc for (final RemoteGroupPort port : remoteRef.getInputPorts()) { if (port.hasIncomingConnection()) { - addRemoteGroupPort(element, port, "inputPort"); + addRemoteGroupPort(element, port, "inputPort", scheduledStateLookup); } } for (final RemoteGroupPort port : remoteRef.getOutputPorts()) { if (!port.getConnections().isEmpty()) { - addRemoteGroupPort(element, port, "outputPort"); + addRemoteGroupPort(element, port, "outputPort", scheduledStateLookup); } } parentElement.appendChild(element); } - private void addRemoteGroupPort(final Element parentElement, final RemoteGroupPort port, final String elementName) { + 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); @@ -311,7 +311,7 @@ private void addRemoteGroupPort(final Element parentElement, final RemoteGroupPo addTextElement(element, "name", port.getName()); addPosition(element, port.getPosition()); addTextElement(element, "comments", port.getComments()); - addTextElement(element, "scheduledState", port.getScheduledState().name()); + addTextElement(element, "scheduledState", scheduledStateLookup.getScheduledState(port).name()); addTextElement(element, "maxConcurrentTasks", port.getMaxConcurrentTasks()); addTextElement(element, "useCompression", String.valueOf(port.isUseCompression())); final Integer batchCount = port.getBatchCount(); diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java index 67f1ad4e855a..1e52cbbde4d7 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java @@ -16,6 +16,7 @@ */ package org.apache.nifi.fingerprint; +import static org.apache.nifi.controller.serialization.ScheduledStateLookup.IDENTITY_LOOKUP; import static org.apache.nifi.fingerprint.FingerprintFactory.FLOW_CONFIG_XSD; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @@ -33,6 +34,7 @@ import org.apache.nifi.connectable.Position; import org.apache.nifi.controller.ScheduledState; import org.apache.nifi.controller.serialization.FlowSerializer; +import org.apache.nifi.controller.serialization.ScheduledStateLookup; import org.apache.nifi.controller.serialization.StandardFlowSerializer; import org.apache.nifi.encrypt.StringEncryptor; import org.apache.nifi.groups.RemoteProcessGroup; @@ -169,7 +171,7 @@ public void fatalError(SAXParseException e) throws SAXException { } private Element serializeElement(final StringEncryptor encryptor, final Class componentClass, final T component, - final String serializerMethodName) throws Exception { + final String serializerMethodName, ScheduledStateLookup scheduledStateLookup) throws Exception { final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); final DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); @@ -177,10 +179,10 @@ private Element serializeElement(final StringEncryptor encryptor, final Clas final FlowSerializer flowSerializer = new StandardFlowSerializer(encryptor); final Method serializeMethod = StandardFlowSerializer.class.getDeclaredMethod(serializerMethodName, - Element.class, componentClass); + Element.class, componentClass, ScheduledStateLookup.class); serializeMethod.setAccessible(true); final Element rootElement = doc.createElement("root"); - serializeMethod.invoke(flowSerializer, rootElement, component); + serializeMethod.invoke(flowSerializer, rootElement, component, scheduledStateLookup); return rootElement; } @@ -234,7 +236,7 @@ public void testRemoteProcessGroupFingerprintRaw() throws Exception { "NO_VALUE" + "NO_VALUE"; - final Element rootElement = serializeElement(encryptor, RemoteProcessGroup.class, component, "addRemoteProcessGroup"); + final Element rootElement = serializeElement(encryptor, RemoteProcessGroup.class, component, "addRemoteProcessGroup", IDENTITY_LOOKUP); final Element componentElement = (Element) rootElement.getElementsByTagName("remoteProcessGroup").item(0); assertEquals(expected, fingerprint("addRemoteProcessGroupFingerprint", Element.class, componentElement)); @@ -271,7 +273,7 @@ public void testRemoteProcessGroupFingerprintWithProxy() throws Exception { "proxy-user" + "proxy-pass"; - final Element rootElement = serializeElement(encryptor, RemoteProcessGroup.class, component, "addRemoteProcessGroup"); + final Element rootElement = serializeElement(encryptor, RemoteProcessGroup.class, component, "addRemoteProcessGroup", IDENTITY_LOOKUP); final Element componentElement = (Element) rootElement.getElementsByTagName("remoteProcessGroup").item(0); assertEquals(expected.toString(), fingerprint("addRemoteProcessGroupFingerprint", Element.class, componentElement)); } @@ -310,7 +312,7 @@ public void testRemotePortFingerprint() throws Exception { "64KB" + "10sec"; - final Element rootElement = serializeElement(encryptor, RemoteProcessGroup.class, groupComponent, "addRemoteProcessGroup"); + final Element rootElement = serializeElement(encryptor, RemoteProcessGroup.class, groupComponent, "addRemoteProcessGroup", IDENTITY_LOOKUP); final Element componentElement = (Element) rootElement.getElementsByTagName("inputPort").item(0); assertEquals(expected.toString(), fingerprint("addRemoteGroupPortFingerprint", Element.class, componentElement)); }