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) : "";