NIFI-2159: Fixed bug that caused relationship names not to get added to fingerprint

This closes #612

Signed-off-by: jpercivall <joepercivall@yahoo.com>
This commit is contained in:
Mark Payne 2016-07-06 14:35:51 -04:00 committed by jpercivall
parent c5889314ca
commit 4f2d17a8d4
4 changed files with 14 additions and 9 deletions

View File

@ -856,11 +856,13 @@ public final class FingerprintFactory {
// destination type
appendFirstValue(builder, DomUtils.getChildNodesByTagName(connectionElem, "destinationType"));
appendFirstValue(builder, DomUtils.getChildNodesByTagName(connectionElem, "name"));
// relationships
final NodeList relationshipElems = DomUtils.getChildNodesByTagName(connectionElem, "relationship");
final List<Element> sortedRelationshipElems = sortElements(relationshipElems, getConnectionRelationshipsComparator());
for (final Element relationshipElem : sortedRelationshipElems) {
addConnectionRelationshipFingerprint(builder, relationshipElem);
builder.append(getValue(relationshipElem, "NO_VALUE"));
}
return builder;
@ -885,12 +887,6 @@ public final class FingerprintFactory {
return builder;
}
private StringBuilder addConnectionRelationshipFingerprint(final StringBuilder builder, final Element relationshipElem) throws FingerprintException {
// destination type
appendFirstValue(builder, DomUtils.getChildNodesByTagName(relationshipElem, "relationship"));
return builder;
}
private StringBuilder addFunnelFingerprint(final StringBuilder builder, final Element funnelElem) throws FingerprintException {
// id
appendFirstValue(builder, DomUtils.getChildNodesByTagName(funnelElem, "id"));

View File

@ -18,10 +18,12 @@ package org.apache.nifi.fingerprint;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
@ -52,6 +54,13 @@ public class FingerprintFactoryTest {
assertFalse(fp1.equals(fp2));
}
@Test
public void testResourceValueInFingerprint() throws IOException {
final String fingerprint = fingerprinter.createFingerprint(getResourceBytes("/nifi/fingerprint/flow1a.xml"), null);
assertEquals(3, StringUtils.countMatches(fingerprint, "success"));
assertTrue(fingerprint.contains("In Connection"));
}
private byte[] getResourceBytes(final String resource) throws IOException {
return IOUtils.toByteArray(FingerprintFactoryTest.class.getResourceAsStream(resource));
}

View File

@ -89,7 +89,7 @@
</outputPort>
<connection>
<id>b25c3c8f-8dfe-4dda-950e-b6edfb6c99f4</id>
<name>In</name>
<name>In Connection</name>
<bendPoints/>
<labelIndex>1</labelIndex>
<zIndex>0</zIndex>

View File

@ -89,7 +89,7 @@
</outputPort>
<connection>
<id>b25c3c8f-8dfe-4dda-950e-b6edfb6c99f4</id>
<name>In</name>
<name>In Connection</name>
<bendPoints/>
<labelIndex>1</labelIndex>
<zIndex>0</zIndex>