SDC can not handle complex string in tosca yaml 15/73515/2
authorTal Gitelman <tal.gitelman@att.com>
Sun, 25 Nov 2018 09:49:39 +0000 (11:49 +0200)
committerMichael Lando <michael.lando@intl.att.com>
Mon, 26 Nov 2018 17:17:39 +0000 (17:17 +0000)
Issue-ID: SDC-1918

Change-Id: I86957b5d4bf0dab5ca749623efbccd6f4b535f10
Signed-off-by: Tal Gitelman <tal.gitelman@att.com>
catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java
common-app-api/src/main/java/org/openecomp/sdc/common/util/ValidationUtils.java
common-app-api/src/test/java/org/openecomp/sdc/common/test/CommonUtilsTest.java
test-apis-ci/pom.xml
test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/utils/CsarToscaTester.java

index e816900..d128d53 100644 (file)
@@ -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<String, DataTypeDefinition> dataTypes,
index 0ee097b..adfa457 100644 (file)
@@ -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) {
index e59f6a0..9806bff 100644 (file)
@@ -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"));
        }
 
index c66f98a..156e8cc 100644 (file)
         <dependency>
             <groupId>org.onap.sdc.sdc-tosca</groupId>
             <artifactId>sdc-tosca</artifactId>
-            <version>1.4.1</version>
+            <version>1.4.6</version>
             <scope>compile</scope>
         </dependency>
 
index 0b62f4a..7ea59ab 100644 (file)
@@ -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;