You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by dg...@apache.org on 2017/09/04 14:05:49 UTC

[14/35] incubator-unomi git commit: Refactoring of propertyType list retrieval

Refactoring of propertyType list retrieval


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/34c64e2a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/34c64e2a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/34c64e2a

Branch: refs/heads/feature-UNOMI-117
Commit: 34c64e2a28680944de0f23e3146489f3000eea5e
Parents: 69cdb58
Author: Abdelkader Midani <am...@apache.org>
Authored: Thu Aug 17 12:52:13 2017 +0200
Committer: Abdelkader Midani <am...@apache.org>
Committed: Thu Aug 17 12:52:13 2017 +0200

----------------------------------------------------------------------
 .../router/api/services/ProfileExportService.java  |  4 ++--
 .../router/core/processor/LineBuildProcessor.java  | 12 +-----------
 .../core/processor/LineSplitFailureHandler.java    |  2 +-
 .../router/core/processor/LineSplitProcessor.java  |  7 ++++---
 .../route/ProfileExportProducerRouteBuilder.java   |  2 --
 .../rest/ExportConfigurationServiceEndPoint.java   |  3 +--
 .../router/services/ProfileExportServiceImpl.java  | 17 +++++++++--------
 7 files changed, 18 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/34c64e2a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ProfileExportService.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ProfileExportService.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ProfileExportService.java
index 38aae4a..dc0d81d 100644
--- a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ProfileExportService.java
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ProfileExportService.java
@@ -27,8 +27,8 @@ import java.util.Collection;
  */
 public interface ProfileExportService {
 
-    String extractProfilesBySegment(ExportConfiguration exportConfiguration, Collection<PropertyType> propertiesDef);
+    String extractProfilesBySegment(ExportConfiguration exportConfiguration);
 
-    String convertProfileToCSVLine(Profile profile, ExportConfiguration exportConfiguration, Collection<PropertyType> propertiesDef);
+    String convertProfileToCSVLine(Profile profile, ExportConfiguration exportConfiguration);
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/34c64e2a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineBuildProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineBuildProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineBuildProcessor.java
index 1da4c13..6dfcf69 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineBuildProcessor.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineBuildProcessor.java
@@ -35,7 +35,6 @@ public class LineBuildProcessor implements Processor {
     private static final Logger logger = LoggerFactory.getLogger(LineBuildProcessor.class);
 
     private ProfileExportService profileExportService;
-    private Collection<PropertyType> propertiesDef;
 
     public LineBuildProcessor(ProfileExportService profileExportService) {
         this.profileExportService = profileExportService;
@@ -46,18 +45,9 @@ public class LineBuildProcessor implements Processor {
         ExportConfiguration exportConfiguration = (ExportConfiguration) exchange.getIn().getHeader("exportConfig");
         Profile profile = exchange.getIn().getBody(Profile.class);
 
-        String lineToWrite = profileExportService.convertProfileToCSVLine(profile, exportConfiguration, propertiesDef);
+        String lineToWrite = profileExportService.convertProfileToCSVLine(profile, exportConfiguration );
 
         exchange.getIn().setBody(lineToWrite, String.class);
     }
 
-    /**
-     * Sets the Property definitions list.
-     *
-     * @param propertiesDef Property definitions list
-     */
-    public void setPropertiesDef(Collection<PropertyType> propertiesDef) {
-        this.propertiesDef = propertiesDef;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/34c64e2a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
index 96afaac..78ecf5b 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
@@ -20,7 +20,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.unomi.router.api.ImportLineError;
 import org.apache.unomi.router.api.RouterConstants;
-import org.apache.unomi.router.core.exception.BadProfileDataFormatException;
+import org.apache.unomi.router.api.exceptions.BadProfileDataFormatException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/34c64e2a/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 1e66374..5b753c9 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
@@ -29,7 +29,7 @@ import org.apache.unomi.router.api.ImportConfiguration;
 import org.apache.unomi.router.api.ProfileToImport;
 import org.apache.unomi.router.api.RouterConstants;
 import org.apache.unomi.router.api.RouterUtils;
-import org.apache.unomi.router.core.exception.BadProfileDataFormatException;
+import org.apache.unomi.router.api.exceptions.BadProfileDataFormatException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -117,7 +117,7 @@ public class LineSplitProcessor implements Processor {
                                     properties.put(fieldMappingKey, valuesArray);
                                 } else {
                                     if(StringUtils.isNotBlank(multivalueArray)) {
-                                        properties.put(fieldMappingKey, multivalueArray);
+                                        properties.put(fieldMappingKey, new String[]{multivalueArray});
                                     } else {
                                         properties.put(fieldMappingKey, new String[]{});
                                     }
@@ -132,7 +132,8 @@ public class LineSplitProcessor implements Processor {
                             properties.put(fieldMappingKey, new Integer(profileData[fieldsMapping.get(fieldMappingKey)].trim()));
                         }
                     } catch (Exception e) {
-                        throw new BadProfileDataFormatException("Unable to convert '" + profileData[fieldsMapping.get(fieldMappingKey)].trim() + "' to " + propertyType.getValueTypeId(), new Throwable("DATA_TYPE"));
+                        e.printStackTrace();
+                        throw new BadProfileDataFormatException("Unable to convert '" + profileData[fieldsMapping.get(fieldMappingKey)].trim() + "' to " + propertyType!=null?propertyType.getValueTypeId():"Null propertyType ", new Throwable("DATA_TYPE"));
                     }
 
                 }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/34c64e2a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportProducerRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportProducerRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportProducerRouteBuilder.java
index 50d758e..9f25c3b 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportProducerRouteBuilder.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportProducerRouteBuilder.java
@@ -60,8 +60,6 @@ public class ProfileExportProducerRouteBuilder extends RouterAbstractRouteBuilde
         }
 
         LineBuildProcessor processor = new LineBuildProcessor(profileExportService);
-        processor.setPropertiesDef(profileService.getAllPropertyTypes("profiles"));
-
 
         rtDef.unmarshal(jacksonDataFormat)
                 .process(processor)

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/34c64e2a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
index 201b341..bd28b1d 100644
--- a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
+++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
@@ -118,8 +118,7 @@ public class ExportConfigurationServiceEndPoint extends AbstractConfigurationSer
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces("text/csv")
     public Response processOneshotImportConfigurationCSV(ExportConfiguration exportConfiguration) {
-        String csvContent = profileExportService.extractProfilesBySegment(exportConfiguration,
-                profileService.getAllPropertyTypes("profiles"));
+        String csvContent = profileExportService.extractProfilesBySegment(exportConfiguration);
         Response.ResponseBuilder response = Response.ok(csvContent);
         response.header("Content-Disposition",
                 "attachment; filename=Profiles_export_" + new SimpleDateFormat("yyyy-MM-dd-HH-mm").format(new Date()) + ".csv");

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/34c64e2a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileExportServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileExportServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileExportServiceImpl.java
index 9e5b792..f02a406 100644
--- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileExportServiceImpl.java
+++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileExportServiceImpl.java
@@ -39,15 +39,14 @@ public class ProfileExportServiceImpl extends AbstractCustomServiceImpl implemen
 
     private ConfigSharingService configSharingService;
 
-    public String extractProfilesBySegment(ExportConfiguration exportConfiguration, Collection<PropertyType> propertiesDef) {
+    public String extractProfilesBySegment(ExportConfiguration exportConfiguration) {
         List<Profile> profileList = persistenceService.query("segments", (String) exportConfiguration.getProperty("segment"), null, Profile.class);
         StringBuilder csvContent = new StringBuilder();
         for (Profile profile : profileList) {
-            csvContent.append(convertProfileToCSVLine(profile, exportConfiguration, propertiesDef));
+            csvContent.append(convertProfileToCSVLine(profile, exportConfiguration));
             csvContent.append(RouterUtils.getCharFromLineSeparator(exportConfiguration.getLineSeparator()));
         }
         logger.debug("Exporting {} extracted profiles.", profileList.size());
-        Map<String, Object> returnMap = new HashMap();
 
         Map execution = new HashMap();
         execution.put(RouterConstants.KEY_EXECS_DATE, new Date().getTime());
@@ -56,20 +55,22 @@ public class ProfileExportServiceImpl extends AbstractCustomServiceImpl implemen
         exportConfiguration = (ExportConfiguration) RouterUtils.addExecutionEntry(exportConfiguration, execution, Integer.parseInt((String) configSharingService.getProperty(RouterConstants.KEY_HISTORY_SIZE)));
         persistenceService.save(exportConfiguration);
 
-        returnMap.put(RouterConstants.KEY_CSV_CONTENT, csvContent);
-        returnMap.put(RouterConstants.KEY_EXECS, execution);
-
         return csvContent.toString();
     }
 
-    public String convertProfileToCSVLine(Profile profile, ExportConfiguration exportConfiguration, Collection<PropertyType> propertiesDef) {
+    public String convertProfileToCSVLine(Profile profile, ExportConfiguration exportConfiguration) {
+        Collection<PropertyType> propertiesDef = persistenceService.query("target", "profiles", null, PropertyType.class);
         Map<String, String> mapping = (Map<String, String>) exportConfiguration.getProperty("mapping");
         String lineToWrite = "";
         for (int i = 0; i < mapping.size(); i++) {
             String propertyName = mapping.get(String.valueOf(i));
+            if (propertyName == null) {
+                logger.error("No index {} found in the provided mapping!", i);
+                return "";
+            }
             PropertyType propType = RouterUtils.getPropertyTypeById(propertiesDef, propertyName);
             Object propertyValue = profile.getProperty(propertyName);
-            if (BooleanUtils.isTrue(propType.isMultivalued())) {
+            if (propType != null && BooleanUtils.isTrue(propType.isMultivalued())) {
                 List<String> multiValue = (List<String>) propertyValue;
 
                 lineToWrite += StringUtils.isNotBlank(exportConfiguration.getMultiValueDelimiter()) ? exportConfiguration.getMultiValueDelimiter().charAt(0) : "";