From d988077f2f84026d526fafea746c5af57c1b2f5c Mon Sep 17 00:00:00 2001 From: sdibernardo Date: Thu, 5 Jul 2018 15:12:56 +0200 Subject: [PATCH 1/3] Update pom.xml --- pom.xml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 8795bee7..7bab09ee 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ de.viadee viadeeProcessApplicationValidator - 2.6.0 + 2.6.1-SNAPSHOT maven-plugin @@ -94,11 +94,6 @@ spring-expression ${spring.version} - - org.apache.ant - ant - 1.10.1 - org.springframework spring-context From 7792af746876bb62e168287aacde1ef6fab20be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frank=20K=C3=B6hne?= Date: Mon, 9 Jul 2018 08:59:39 +0200 Subject: [PATCH 2/3] Replace path delimiters to make hashes independent from operating systems --- .../processing/model/data/CheckerIssue.java | 822 +++++++++--------- .../model/data/IssueIDHashingTest.java | 40 + 2 files changed, 454 insertions(+), 408 deletions(-) create mode 100644 src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java diff --git a/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java b/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java index 12f3e60f..5d20b394 100644 --- a/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java +++ b/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java @@ -39,416 +39,422 @@ import de.viadee.bpm.vPAV.processing.model.graph.Path; /** - * Class for holding issues (errors, warnings, infos) from the checkers. Used to create an issue which can be - * represented graphically in the HTML output + * Class for holding issues (errors, warnings, infos) from the checkers. Used to + * create an issue which can be represented graphically in the HTML output * */ public class CheckerIssue implements Comparable { - private String ruleName; - - private String ruleDescription; - - private CriticalityEnum classification; - - private String bpmnFile; - - private String resourceFile; - - private String elementId; - - private String elementName; - - private String variable; - - private Anomaly anomaly; - - private List invalidPaths; - - private String message; - - private String elementDescription; - - /** - * CheckerIssue - * - * @param ruleName - * Name of the Rule - * @param ruleDescription - * Issue ruleDescription - * @param classification - * Classification (Info, Warning or Error) of the rule - * @param bpmnFile - * Path to the BPMNFile - * @param resourceFile - * Path to resource file (e.g. dmn oder java) - * @param elementId - * Id of the Element with issue - * @param elementName - * Name of the Element woth issue - * @param variable - * Name of variable - * @param anomaly - * Type of anomaly (DD, DU, UR) - * @param invalidPaths - * Invalid path - * @param message - * Issue message - * @param elementDescription - * Issue elementDescription - */ - public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, - final String bpmnFile, final String resourceFile, final String elementId, - final String elementName, final String variable, final Anomaly anomaly, - final List invalidPaths, final String message, final String elementDescription) { - super(); - this.ruleName = ruleName; - this.ruleDescription = ruleDescription; - this.variable = variable; - this.anomaly = anomaly; - this.invalidPaths = invalidPaths; - this.classification = classification; - this.bpmnFile = bpmnFile; - this.resourceFile = resourceFile; - this.elementId = elementId; - this.elementName = elementName; - this.message = message; - this.elementDescription = elementDescription; - } - - /** - * CheckerIssue - * - * @param ruleName - * Name of the Rule - * @param ruleDescription - * Issue ruleDescription - * @param classification - * Classification (Info, Warning or Error) of the rule - * @param bpmnFile - * Path to the BPMNFile - * @param resourceFile - * Path to resource file (e.g. dmn oder java) - * @param elementId - * Id of the Element with issue - * @param elementName - * Name of the Element with issue - * @param variable - * Variable - * @param anomaly - * Type of anomaly (DD, DU, UR) - * @param invalidPaths - * Invalid path - * @param message - * Issue message - */ - public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, - final String bpmnFile, final String resourceFile, final String elementId, - final String elementName, final String variable, final Anomaly anomaly, - final List invalidPaths, final String message) { - super(); - this.ruleName = ruleName; - this.ruleDescription = ruleDescription; - this.variable = variable; - this.anomaly = anomaly; - this.invalidPaths = invalidPaths; - this.classification = classification; - this.bpmnFile = bpmnFile; - this.resourceFile = resourceFile; - this.elementId = elementId; - this.elementName = elementName; - this.message = message; - } - - /** - * CheckerIssue - * - * @param ruleName - * Name of the Rule - * @param ruleDescription - * Issue ruleDescription - * @param classification - * Classification (Info, Warning or Error) of the rule - * @param bpmnFile - * Path to the BPMNFile - * @param resourceFile - * Path to resource file (e.g. dmn oder java) - * @param elementId - * Id of the Element with issue - * @param elementName - * Name of the Element woth issue - * @param message - * Issue message - * @param elementDescription - * Issue elementDescription - */ - public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, - final String bpmnFile, final String resourceFile, final String elementId, - final String elementName, final String message, final String elementDescription) { - super(); - this.ruleName = ruleName; - this.ruleDescription = ruleDescription; - this.classification = classification; - this.bpmnFile = bpmnFile; - this.resourceFile = resourceFile; - this.elementId = elementId; - this.elementName = elementName; - this.message = message; - this.elementDescription = elementDescription; - } - - /** - * CheckerIssue - * - * @param ruleName - * Name of the Rule - * @param ruleDescription - * Issue ruleDescription - * @param classification - * Classification (Info, Warning or Error) of the rule - * @param bpmnFile - * Path to the BPMNFile - * @param elementId - * Id of the Element with issue - * @param elementName - * Name of the Element woth issue - * @param message - * Issue message - * @param elementDescription - * Issue elementDescription - */ - public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, - final String bpmnFile, final String elementId, - final String elementName, final String message, final String elementDescription) { - super(); - this.ruleName = ruleName; - this.ruleDescription = ruleDescription; - this.classification = classification; - this.bpmnFile = bpmnFile; - this.elementId = elementId; - this.elementName = elementName; - this.message = message; - this.elementDescription = elementDescription; - } - - /** - * CheckerIssue - * - * @param ruleName - * Name of the Rule - * @param ruleDescription - * Issue ruleDescription - * @param classification - * Classification (Info, Warning or Error) of the rule - * @param bpmnFile - * Path to the BPMNFile - * @param elementId - * Id of the Element with issue - * @param elementName - * Name of the Element woth issue - * @param message - * Issue message - */ - public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, - final String bpmnFile, final String elementId, - final String elementName, final String message) { - super(); - this.ruleName = ruleName; - this.ruleDescription = ruleDescription; - this.classification = classification; - this.bpmnFile = bpmnFile; - this.elementId = elementId; - this.elementName = elementName; - this.message = message; - - } - - /** - * CheckerIssue - * - * @param ruleName - * Name of the Rule - * @param classification - * Classification (Info, Warning or Error) of the rule - * @param bpmnFile - * BpmnFile - * @param elementId - * Id of the Element with issue - * @param elementName - * Name of the Element woth issue - * @param message - * Issue message - */ - public CheckerIssue(final String ruleName, final CriticalityEnum classification, - final String bpmnFile, final String elementId, - final String elementName, final String message) { - super(); - this.ruleName = ruleName; - this.classification = classification; - this.bpmnFile = bpmnFile; - this.elementId = elementId; - this.elementName = elementName; - this.message = message; - } - - /** - * CheckerIssue - * - * @param ruleName - * Name of the Rule - * @param ruleDescription - * Issue ruleDescription - * @param classification - * Classification (Info, Warning or Error) of the rule - * @param bpmnFile - * Path to the BPMNFile - * @param resourceFile - * Path to resource file (e.g. dmn oder java) - * @param elementId - * Id of the Element with issue - * @param elementName - * Name of the Element woth issue - * @param variable - * Name of variable - * @param message - * Issue message - * @param description - * Issue description - */ - public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, - final String bpmnFile, final String resourceFile, final String elementId, final String elementName, - final String variable, final String message, final String description) { - super(); - this.ruleName = ruleName; - this.ruleDescription = ruleDescription; - this.classification = classification; - this.bpmnFile = bpmnFile; - this.resourceFile = resourceFile; - this.elementId = elementId; - this.elementName = elementName; - this.variable = variable; - this.message = message; - this.elementDescription = description; - } - - public String getId() { - return getMD5( - ruleName + "_" + bpmnFile + "_" + resourceFile + "_" + elementId + "_" + variable + "_" + message); - } - - public String getRuleName() { - return ruleName; - } - - public String getRuleDescription() { - return ruleDescription; - } - - public String getVariable() { - return variable; - } - - public Anomaly getAnomaly() { - return anomaly; - } - - public List getInvalidPaths() { - return invalidPaths; - } - - public CriticalityEnum getClassification() { - return classification; - } - - public String getBpmnFile() { - return bpmnFile; - } - - public String getResourceFile() { - return resourceFile; - } - - public String getElementId() { - return elementId; - } - - public String getElementName() { - return elementName; - } - - public String getMessage() { - return message; - } - - public String getElementDescription() { - return elementDescription; - } - - public void setClassification(final CriticalityEnum classification) { - this.classification = classification; - } - - public void setBpmnFile(final String bpmnFile) { - this.bpmnFile = bpmnFile; - } - - public void setElementId(final String elementId) { - this.elementId = elementId; - } - - public void setElementName(final String elementName) { - this.elementName = elementName; - } - - public void setMessage(final String message) { - this.message = message; - } - - public void setElementDescription(final String elementDescription) { - this.elementDescription = elementDescription; - } - - public void setRuleDescription(final String ruleDescription) { - this.ruleDescription = ruleDescription; - } - - /** - * - * @param input - * String - * @return hashed Input - */ - public static String getMD5(String input) { - try { - MessageDigest messageDigest = MessageDigest.getInstance("MD5"); - byte[] messageDigestByteArray = messageDigest.digest(input.getBytes()); - BigInteger number = new BigInteger(1, messageDigestByteArray); - String hashtext = number.toString(16); - // Now we need to zero pad it if you actually want the full 32 chars. - while (hashtext.length() < 32) { - hashtext = "0" + hashtext; - } - return hashtext; - } catch (final NoSuchAlgorithmException e) { - throw new RuntimeException(e); - } - } - - @Override - public int compareTo(CheckerIssue cI) { - return this.classification.compareTo(cI.getClassification()) * (-1); - } - - @Override - public boolean equals(Object obj) { - if (obj.hashCode() == this.hashCode()) - return true; - else - return false; - } - - @Override - public int hashCode() { - return (elementId + elementName).hashCode(); - } + private final String ruleName; + + private String ruleDescription; + + private CriticalityEnum classification; + + private String bpmnFile; + + private String resourceFile; + + private String elementId; + + private String elementName; + + private String variable; + + private Anomaly anomaly; + + private List invalidPaths; + + private String message; + + private String elementDescription; + + /** + * CheckerIssue + * + * @param ruleName + * Name of the Rule + * @param ruleDescription + * Issue ruleDescription + * @param classification + * Classification (Info, Warning or Error) of the rule + * @param bpmnFile + * Path to the BPMNFile + * @param resourceFile + * Path to resource file (e.g. dmn oder java) + * @param elementId + * Id of the Element with issue + * @param elementName + * Name of the Element woth issue + * @param variable + * Name of variable + * @param anomaly + * Type of anomaly (DD, DU, UR) + * @param invalidPaths + * Invalid path + * @param message + * Issue message + * @param elementDescription + * Issue elementDescription + */ + public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, + final String bpmnFile, final String resourceFile, final String elementId, final String elementName, + final String variable, final Anomaly anomaly, final List invalidPaths, final String message, + final String elementDescription) { + super(); + this.ruleName = ruleName; + this.ruleDescription = ruleDescription; + this.variable = variable; + this.anomaly = anomaly; + this.invalidPaths = invalidPaths; + this.classification = classification; + this.bpmnFile = bpmnFile; + this.resourceFile = resourceFile; + this.elementId = elementId; + this.elementName = elementName; + this.message = message; + this.elementDescription = elementDescription; + } + + /** + * CheckerIssue + * + * @param ruleName + * Name of the Rule + * @param ruleDescription + * Issue ruleDescription + * @param classification + * Classification (Info, Warning or Error) of the rule + * @param bpmnFile + * Path to the BPMNFile + * @param resourceFile + * Path to resource file (e.g. dmn oder java) + * @param elementId + * Id of the Element with issue + * @param elementName + * Name of the Element with issue + * @param variable + * Variable + * @param anomaly + * Type of anomaly (DD, DU, UR) + * @param invalidPaths + * Invalid path + * @param message + * Issue message + */ + public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, + final String bpmnFile, final String resourceFile, final String elementId, final String elementName, + final String variable, final Anomaly anomaly, final List invalidPaths, final String message) { + super(); + this.ruleName = ruleName; + this.ruleDescription = ruleDescription; + this.variable = variable; + this.anomaly = anomaly; + this.invalidPaths = invalidPaths; + this.classification = classification; + this.bpmnFile = bpmnFile; + this.resourceFile = resourceFile; + this.elementId = elementId; + this.elementName = elementName; + this.message = message; + } + + /** + * CheckerIssue + * + * @param ruleName + * Name of the Rule + * @param ruleDescription + * Issue ruleDescription + * @param classification + * Classification (Info, Warning or Error) of the rule + * @param bpmnFile + * Path to the BPMNFile + * @param resourceFile + * Path to resource file (e.g. dmn oder java) + * @param elementId + * Id of the Element with issue + * @param elementName + * Name of the Element woth issue + * @param message + * Issue message + * @param elementDescription + * Issue elementDescription + */ + public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, + final String bpmnFile, final String resourceFile, final String elementId, final String elementName, + final String message, final String elementDescription) { + super(); + this.ruleName = ruleName; + this.ruleDescription = ruleDescription; + this.classification = classification; + this.bpmnFile = bpmnFile; + this.resourceFile = resourceFile; + this.elementId = elementId; + this.elementName = elementName; + this.message = message; + this.elementDescription = elementDescription; + } + + /** + * CheckerIssue + * + * @param ruleName + * Name of the Rule + * @param ruleDescription + * Issue ruleDescription + * @param classification + * Classification (Info, Warning or Error) of the rule + * @param bpmnFile + * Path to the BPMNFile + * @param elementId + * Id of the Element with issue + * @param elementName + * Name of the Element woth issue + * @param message + * Issue message + * @param elementDescription + * Issue elementDescription + */ + public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, + final String bpmnFile, final String elementId, final String elementName, final String message, + final String elementDescription) { + super(); + this.ruleName = ruleName; + this.ruleDescription = ruleDescription; + this.classification = classification; + this.bpmnFile = bpmnFile; + this.elementId = elementId; + this.elementName = elementName; + this.message = message; + this.elementDescription = elementDescription; + } + + /** + * CheckerIssue + * + * @param ruleName + * Name of the Rule + * @param ruleDescription + * Issue ruleDescription + * @param classification + * Classification (Info, Warning or Error) of the rule + * @param bpmnFile + * Path to the BPMNFile + * @param elementId + * Id of the Element with issue + * @param elementName + * Name of the Element woth issue + * @param message + * Issue message + */ + public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, + final String bpmnFile, final String elementId, final String elementName, final String message) { + super(); + this.ruleName = ruleName; + this.ruleDescription = ruleDescription; + this.classification = classification; + this.bpmnFile = bpmnFile; + this.elementId = elementId; + this.elementName = elementName; + this.message = message; + + } + + /** + * CheckerIssue + * + * @param ruleName + * Name of the Rule + * @param classification + * Classification (Info, Warning or Error) of the rule + * @param bpmnFile + * BpmnFile + * @param elementId + * Id of the Element with issue + * @param elementName + * Name of the Element woth issue + * @param message + * Issue message + */ + public CheckerIssue(final String ruleName, final CriticalityEnum classification, final String bpmnFile, + final String elementId, final String elementName, final String message) { + super(); + this.ruleName = ruleName; + this.classification = classification; + this.bpmnFile = bpmnFile; + this.elementId = elementId; + this.elementName = elementName; + this.message = message; + } + + /** + * CheckerIssue + * + * @param ruleName + * Name of the Rule + * @param ruleDescription + * Issue ruleDescription + * @param classification + * Classification (Info, Warning or Error) of the rule + * @param bpmnFile + * Path to the BPMNFile + * @param resourceFile + * Path to resource file (e.g. dmn oder java) + * @param elementId + * Id of the Element with issue + * @param elementName + * Name of the Element woth issue + * @param variable + * Name of variable + * @param message + * Issue message + * @param description + * Issue description + */ + public CheckerIssue(final String ruleName, final String ruleDescription, final CriticalityEnum classification, + final String bpmnFile, final String resourceFile, final String elementId, final String elementName, + final String variable, final String message, final String description) { + super(); + this.ruleName = ruleName; + this.ruleDescription = ruleDescription; + this.classification = classification; + this.bpmnFile = bpmnFile; + this.resourceFile = resourceFile; + this.elementId = elementId; + this.elementName = elementName; + this.variable = variable; + this.message = message; + elementDescription = description; + } + + public String getId() { + String resourceFileClean = null; + + if (resourceFile != null) { + resourceFileClean = resourceFile.replace('/', '\\'); + // by replacing this way, ignored issues from a windows + // system remain ignored on a linux based CI system + // (only relevant for old issues) + } + + return getMD5(ruleName + "_" + bpmnFile.replace('/', '\\') + "_" + resourceFileClean + "_" + elementId + "_" + + variable + "_" + message); + } + + public String getRuleName() { + return ruleName; + } + + public String getRuleDescription() { + return ruleDescription; + } + + public String getVariable() { + return variable; + } + + public Anomaly getAnomaly() { + return anomaly; + } + + public List getInvalidPaths() { + return invalidPaths; + } + + public CriticalityEnum getClassification() { + return classification; + } + + public String getBpmnFile() { + return bpmnFile; + } + + public String getResourceFile() { + return resourceFile; + } + + public String getElementId() { + return elementId; + } + + public String getElementName() { + return elementName; + } + + public String getMessage() { + return message; + } + + public String getElementDescription() { + return elementDescription; + } + + public void setClassification(final CriticalityEnum classification) { + this.classification = classification; + } + + public void setBpmnFile(final String bpmnFile) { + this.bpmnFile = bpmnFile; + } + + public void setElementId(final String elementId) { + this.elementId = elementId; + } + + public void setElementName(final String elementName) { + this.elementName = elementName; + } + + public void setMessage(final String message) { + this.message = message; + } + + public void setElementDescription(final String elementDescription) { + this.elementDescription = elementDescription; + } + + public void setRuleDescription(final String ruleDescription) { + this.ruleDescription = ruleDescription; + } + + /** + * + * @param input + * String + * @return hashed Input + */ + public static String getMD5(String input) { + try { + final MessageDigest messageDigest = MessageDigest.getInstance("MD5"); + final byte[] messageDigestByteArray = messageDigest.digest(input.getBytes()); + final BigInteger number = new BigInteger(1, messageDigestByteArray); + String hashtext = number.toString(16); + // Now we need to zero pad it if you actually want the full 32 chars. + while (hashtext.length() < 32) { + hashtext = "0" + hashtext; + } + return hashtext; + } catch (final NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } + + @Override + public int compareTo(CheckerIssue cI) { + return classification.compareTo(cI.getClassification()) * (-1); + } + + @Override + public boolean equals(Object obj) { + if (obj.hashCode() == this.hashCode()) + return true; + else + return false; + } + + @Override + public int hashCode() { + return (elementId + elementName).hashCode(); + } } diff --git a/src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java b/src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java new file mode 100644 index 00000000..81176d6f --- /dev/null +++ b/src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java @@ -0,0 +1,40 @@ +package de.viadee.bpm.vPAV.processing.model.data; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +import org.junit.Test; + +public class IssueIDHashingTest { + + /** + * Hashes are used to identify (and ignore) issues. Hence, they need to depend + * on BPMN element IDs. + */ + @Test + public void testElementIDsShouldImpactHash() { + final CheckerIssue issue1 = new CheckerIssue("ruleName", "ruleDescription", CriticalityEnum.ERROR, + "folder/file.bpmn", "elementId123", "elementName Some Name", "Message to be displayed"); + final CheckerIssue issue2 = new CheckerIssue("ruleName", "ruleDescription", CriticalityEnum.ERROR, + "folder/file.bpmn", "elementId888", "elementName Some Name", "Message to be displayed"); + + assertNotEquals("Element ID does not impact an issues hash", issue1.getId(), issue2.getId()); + } + + /** + * Hashes are used to identify (and ignore) issues on development and CI systems + * with different operating systems. Hence, they may not depend on operating + * system specific path delimiters. + */ + @Test + public void testPathDelimitersShouldNotImpactHash() { + final CheckerIssue issue1 = new CheckerIssue("ruleName", "ruleDescription", CriticalityEnum.ERROR, + "folder/file.bpmn", "elementId123", "elementName Some Name", "Message to be displayed"); + final CheckerIssue issue2 = new CheckerIssue("ruleName", "ruleDescription", CriticalityEnum.ERROR, + "folder\\file.bpmn", "elementId123", "elementName Some Name", "Message to be displayed"); + + assertEquals("Issue hash may not depend on operating systeme specific path delimiters", issue1.getId(), + issue2.getId()); + } + +} From 3ca5c4ed7d48fc46f8613dfa0b10349978d966c8 Mon Sep 17 00:00:00 2001 From: Sascha Di Bernardo Date: Tue, 10 Jul 2018 10:06:22 +0200 Subject: [PATCH 3/3] #64 small changes --- .../processing/model/data/CheckerIssue.java | 22 +++++++------ .../model/data/IssueIDHashingTest.java | 31 +++++++++++++++++++ 2 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java b/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java index 5d20b394..cc775544 100644 --- a/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java +++ b/src/main/java/de/viadee/bpm/vPAV/processing/model/data/CheckerIssue.java @@ -329,17 +329,21 @@ public CheckerIssue(final String ruleName, final String ruleDescription, final C } public String getId() { - String resourceFileClean = null; + + return getMD5( + ruleName + "_" + cleanPath(bpmnFile) + "_" + cleanPath(resourceFile) + "_" + elementId + "_" + variable + "_" + message); + } - if (resourceFile != null) { - resourceFileClean = resourceFile.replace('/', '\\'); - // by replacing this way, ignored issues from a windows - // system remain ignored on a linux based CI system - // (only relevant for old issues) + // by replacing this way, ignored issues from a windows system remain ignored on + // a linux based CI system (only relevant for old issues) + private String cleanPath(final String path) { + String cleanedPath = null; + + if (path != null) { + cleanedPath = path.replace('/', '\\'); } - - return getMD5(ruleName + "_" + bpmnFile.replace('/', '\\') + "_" + resourceFileClean + "_" + elementId + "_" - + variable + "_" + message); + + return cleanedPath; } public String getRuleName() { diff --git a/src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java b/src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java index 81176d6f..301ef9df 100644 --- a/src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java +++ b/src/test/java/de/viadee/bpm/vPAV/processing/model/data/IssueIDHashingTest.java @@ -1,3 +1,34 @@ +/** + * BSD 3-Clause License + * + * Copyright © 2018, viadee Unternehmensberatung GmbH + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ package de.viadee.bpm.vPAV.processing.model.data; import static org.junit.Assert.assertEquals;