From 6535675526d608c835f4702b2ee57799da250fbe Mon Sep 17 00:00:00 2001 From: Tal Gitelman Date: Sun, 25 Nov 2018 11:49:39 +0200 Subject: SDC can not handle complex string in tosca yaml Issue-ID: SDC-1918 Change-Id: I86957b5d4bf0dab5ca749623efbccd6f4b535f10 Signed-off-by: Tal Gitelman --- .../openecomp/sdc/be/tosca/PropertyConvertor.java | 2 +- .../openecomp/sdc/common/util/ValidationUtils.java | 30 +++++++++++++++++++++- .../openecomp/sdc/common/test/CommonUtilsTest.java | 2 +- test-apis-ci/pom.xml | 2 +- .../sdc/ci/tests/utils/CsarToscaTester.java | 2 +- 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java index e8169006d2..d128d5349f 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java @@ -198,7 +198,7 @@ public class PropertyConvertor { } private boolean valueStartsWithNonJsonChar(String value) { - return value.startsWith("/") || value.startsWith(":"); + return value.startsWith("/") || value.startsWith(":") || value.startsWith("#"); } public void convertAndAddValue(Map dataTypes, diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java index 0ee097b979..adfa457166 100644 --- a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java +++ b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java @@ -259,7 +259,35 @@ public class ValidationUtils { } public static String normaliseWhitespace(String str) { - return StringUtil.normaliseWhitespace(str); + StringBuilder sb = new StringBuilder(str.length()); + appendNormalisedWhitespace(sb, str, false); + return sb.toString(); + } + + private static void appendNormalisedWhitespace(StringBuilder accum, String string, boolean stripLeading) { + boolean lastWasWhite = false; + boolean reachedNonWhite = false; + + int len = string.length(); + int c; + for (int i = 0; i < len; i+= Character.charCount(c)) { + c = string.codePointAt(i); + if (isWhitespace(c)) { + if ((stripLeading && !reachedNonWhite) || lastWasWhite) + continue; + accum.append(' '); + lastWasWhite = true; + } + else { + accum.appendCodePoint(c); + lastWasWhite = false; + reachedNonWhite = true; + } + } + } + + private static boolean isWhitespace(int c){ + return c == ' '; } public static String stripOctets(String str) { diff --git a/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java b/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java index e59f6a061f..9806bffc5e 100644 --- a/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java +++ b/common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java @@ -146,7 +146,7 @@ public class CommonUtilsTest { public void testnormaliseWhitespace() { assertEquals("goo boo", ValidationUtils.normaliseWhitespace("goo boo")); - assertEquals("goo boo ", ValidationUtils.normaliseWhitespace("goo boo ")); + assertEquals("goo boo ", ValidationUtils.normaliseWhitespace("goo boo ")); assertEquals("goo boo", ValidationUtils.normaliseWhitespace("goo boo")); } diff --git a/test-apis-ci/pom.xml b/test-apis-ci/pom.xml index c66f98a48e..156e8ccc15 100644 --- a/test-apis-ci/pom.xml +++ b/test-apis-ci/pom.xml @@ -302,7 +302,7 @@ org.onap.sdc.sdc-tosca sdc-tosca - 1.4.1 + 1.4.6 compile diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java index 0b62f4a2d0..7ea59ab486 100644 --- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java +++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java @@ -1,9 +1,9 @@ package org.openecomp.sdc.ci.tests.utils; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; +import org.onap.sdc.tosca.parser.enums.SdcTypes; import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; -import org.onap.sdc.tosca.parser.impl.SdcTypes; import org.onap.sdc.toscaparser.api.Group; import org.onap.sdc.toscaparser.api.NodeTemplate; import org.onap.sdc.toscaparser.api.elements.Metadata; -- cgit 1.2.3-korg