Repository: incubator-unomi Updated Branches: refs/heads/master 2c32e4f5d -> bcb77c5c8
UNOMI-101 : multi-value delimiter default value Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/bcb77c5c Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/bcb77c5c Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/bcb77c5c Branch: refs/heads/master Commit: bcb77c5c88e86231690ebbd2a77cd84226ec7367 Parents: 2c32e4f Author: Abdelkader Midani <amid...@apache.org> Authored: Tue Aug 15 00:24:55 2017 +0200 Committer: Abdelkader Midani <amid...@apache.org> Committed: Tue Aug 15 00:24:55 2017 +0200 ---------------------------------------------------------------------- .../core/processor/LineSplitProcessor.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/bcb77c5c/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java index 081a9ef..1e66374 100644 --- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java +++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java @@ -33,10 +33,7 @@ import org.apache.unomi.router.core.exception.BadProfileDataFormatException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; /** * Created by amidani on 29/12/2016. @@ -105,6 +102,8 @@ public class LineSplitProcessor implements Processor { for (String fieldMappingKey : fieldsMapping.keySet()) { PropertyType propertyType = RouterUtils.getPropertyTypeById(profileService.getAllPropertyTypes("profiles"), fieldMappingKey); + logger.debug("$$$$ : LineSplitProcessor : PropType value : {}", profileData[fieldsMapping.get(fieldMappingKey)].trim()); + if (profileData.length > fieldsMapping.get(fieldMappingKey)) { try { if (propertyType.getValueTypeId().equals("string") || propertyType.getValueTypeId().equals("email")) { @@ -113,8 +112,16 @@ public class LineSplitProcessor implements Processor { if (StringUtils.isNotBlank(multiValueDelimiter) && multiValueDelimiter.length() == 2) { multivalueArray = multivalueArray.replaceAll("\\" + multiValueDelimiter.charAt(0), "").replaceAll("\\" + multiValueDelimiter.charAt(1), ""); } - String[] valuesArray = multivalueArray.split("\\" + multiValueSeparator); - properties.put(fieldMappingKey, valuesArray); + if(multivalueArray.contains(multiValueSeparator)) { + String[] valuesArray = multivalueArray.split("\\" + multiValueSeparator); + properties.put(fieldMappingKey, valuesArray); + } else { + if(StringUtils.isNotBlank(multivalueArray)) { + properties.put(fieldMappingKey, multivalueArray); + } else { + properties.put(fieldMappingKey, new String[]{}); + } + } } else { String singleValue = profileData[fieldsMapping.get(fieldMappingKey)].trim(); properties.put(fieldMappingKey, singleValue);