You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ra...@apache.org on 2016/02/02 04:15:22 UTC

incubator-fineract git commit: removed Pentaho from validation and template

Repository: incubator-fineract
Updated Branches:
  refs/heads/develop 5903a851f -> c9afea91f


removed Pentaho from validation and template


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

Branch: refs/heads/develop
Commit: c9afea91fe55c7ed2c44a25577b5966ad68f6154
Parents: 5903a85
Author: pramod <pr...@confluxtechnologies.com>
Authored: Mon Feb 1 16:19:46 2016 +0530
Committer: pramod <pr...@confluxtechnologies.com>
Committed: Mon Feb 1 16:19:46 2016 +0530

----------------------------------------------------------------------
 .../dataqueries/api/ReportsApiResource.java       |  8 ++++----
 .../dataqueries/data/ReportData.java              |  6 ++----
 .../infrastructure/dataqueries/domain/Report.java | 18 +++++++++---------
 .../dataqueries/service/ReadReportingService.java |  2 ++
 .../service/ReadReportingServiceImpl.java         | 14 +++++++++++++-
 .../service/ReportWritePlatformServiceImpl.java   |  8 +++++---
 .../provider/ReportingProcessServiceProvider.java |  6 ++++++
 7 files changed, 41 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/c9afea91/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java
index 77b3c07..f77be4e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/ReportsApiResource.java
@@ -54,8 +54,8 @@ import org.springframework.stereotype.Component;
 @Scope("singleton")
 public class ReportsApiResource {
 
-    private final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "reportName", "reportType",
-            "reportSubType", "reportCategory", "description", "reportSql", "coreReport", "useReport", "reportParameters"));
+    private final Set<String> RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "reportName", "reportType", "reportSubType",
+            "reportCategory", "description", "reportSql", "coreReport", "useReport", "reportParameters"));
 
     private final String resourceNameForPermissions = "REPORT";
     private final PlatformSecurityContext context;
@@ -102,7 +102,7 @@ public class ReportsApiResource {
         final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
 
         if (settings.isTemplate()) {
-            result.appendedTemplate(this.readReportingService.getAllowedParameters());
+            result.appendedTemplate(this.readReportingService.getAllowedParameters(), this.readReportingService.getAllowedReportTypes());
         }
         return this.toApiJsonSerializer.serialize(settings, result, this.RESPONSE_DATA_PARAMETERS);
     }
@@ -116,7 +116,7 @@ public class ReportsApiResource {
         this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermissions);
 
         final ReportData result = new ReportData();
-        result.appendedTemplate(this.readReportingService.getAllowedParameters());
+        result.appendedTemplate(this.readReportingService.getAllowedParameters(), this.readReportingService.getAllowedReportTypes());
 
         final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
         return this.toApiJsonSerializer.serialize(settings, result, this.RESPONSE_DATA_PARAMETERS);

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/c9afea91/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
index c55602b..e80ee67 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
@@ -86,12 +86,10 @@ final public class ReportData {
         this.allowedParameters = null;
     }
 
-    public void appendedTemplate(final Collection<ReportParameterData> allowedParameters) {
+    public void appendedTemplate(final Collection<ReportParameterData> allowedParameters, final Collection<String> allowedReportTypes) {
 
         final List<String> reportTypes = new ArrayList<>();
-        reportTypes.add("Table");
-        reportTypes.add("Pentaho");
-        reportTypes.add("Chart");
+        reportTypes.addAll(allowedReportTypes);
         this.allowedReportTypes = reportTypes;
 
         final List<String> reportSubTypes = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/c9afea91/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java
index 9668f4b..799f003 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/domain/Report.java
@@ -19,6 +19,7 @@
 package org.apache.fineract.infrastructure.dataqueries.domain;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -77,7 +78,7 @@ public final class Report extends AbstractPersistable<Long> {
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "report", orphanRemoval = true)
     private final Set<ReportParameterUsage> reportParameterUsages = new HashSet<>();
 
-    public static Report fromJson(final JsonCommand command) {
+    public static Report fromJson(final JsonCommand command, final Collection<String> reportTypes) {
 
         String reportName = null;
         String reportType = null;
@@ -109,7 +110,7 @@ public final class Report extends AbstractPersistable<Long> {
             reportSql = command.stringValueOfParameterNamed("reportSql");
         }
 
-        return new Report(reportName, reportType, reportSubType, reportCategory, description, useReport, reportSql);
+        return new Report(reportName, reportType, reportSubType, reportCategory, description, useReport, reportSql, reportTypes);
     }
 
     protected Report() {
@@ -117,7 +118,7 @@ public final class Report extends AbstractPersistable<Long> {
     }
 
     public Report(final String reportName, final String reportType, final String reportSubType, final String reportCategory,
-            final String description, final boolean useReport, final String reportSql) {
+            final String description, final boolean useReport, final String reportSql, final Collection<String> reportTypes) {
         this.reportName = reportName;
         this.reportType = reportType;
         this.reportSubType = reportSubType;
@@ -126,10 +127,10 @@ public final class Report extends AbstractPersistable<Long> {
         this.coreReport = false;
         this.useReport = useReport;
         this.reportSql = reportSql;
-        validate();
+        validate(reportTypes);
     }
 
-    public Map<String, Object> update(final JsonCommand command) {
+    public Map<String, Object> update(final JsonCommand command, final Collection<String> reportTypes) {
 
         final Map<String, Object> actualChanges = new LinkedHashMap<>(8);
 
@@ -184,7 +185,7 @@ public final class Report extends AbstractPersistable<Long> {
             }
         }
 
-        validate();
+        validate(reportTypes);
 
         if (!actualChanges.isEmpty()) {
             if (isCoreReport()) {
@@ -214,15 +215,14 @@ public final class Report extends AbstractPersistable<Long> {
         return reportParameterUsage;
     }
 
-    private void validate() {
+    private void validate(final Collection<String> reportTypes) {
 
         final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
         final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("report");
 
         baseDataValidator.reset().parameter("reportName").value(this.reportName).notBlank().notExceedingLengthOf(100);
 
-        baseDataValidator.reset().parameter("reportType").value(this.reportType).notBlank()
-                .isOneOfTheseValues(new Object[] { "Table", "Pentaho", "Chart" });
+        baseDataValidator.reset().parameter("reportType").value(this.reportType).notBlank().isOneOfTheseValues(reportTypes.toArray());
 
         baseDataValidator.reset().parameter("reportSubType").value(this.reportSubType).notExceedingLengthOf(20);
 

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/c9afea91/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingService.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingService.java
index 4891d55..eb75fe0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingService.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingService.java
@@ -42,4 +42,6 @@ public interface ReadReportingService {
     Collection<ReportParameterData> getAllowedParameters();
 
     ReportData retrieveReport(final Long id);
+
+    Collection<String> getAllowedReportTypes();
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/c9afea91/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingServiceImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingServiceImpl.java
index 672e70f..69c8056 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadReportingServiceImpl.java
@@ -45,6 +45,7 @@ import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeader
 import org.apache.fineract.infrastructure.dataqueries.data.ResultsetRowData;
 import org.apache.fineract.infrastructure.dataqueries.exception.ReportNotFoundException;
 import org.apache.fineract.infrastructure.documentmanagement.contentrepository.FileSystemContentRepository;
+import org.apache.fineract.infrastructure.report.provider.ReportingProcessServiceProvider;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.useradministration.domain.AppUser;
 import org.slf4j.Logger;
@@ -69,15 +70,17 @@ public class ReadReportingServiceImpl implements ReadReportingService {
     private final DataSource dataSource;
     private final PlatformSecurityContext context;
     private final GenericDataService genericDataService;
+    private final ReportingProcessServiceProvider reportingProcessServiceProvider;
 
     @Autowired
     public ReadReportingServiceImpl(final PlatformSecurityContext context, final RoutingDataSource dataSource,
-            final GenericDataService genericDataService) {
+            final GenericDataService genericDataService, final ReportingProcessServiceProvider reportingProcessServiceProvider) {
 
         this.context = context;
         this.dataSource = dataSource;
         this.jdbcTemplate = new JdbcTemplate(this.dataSource);
         this.genericDataService = genericDataService;
+        this.reportingProcessServiceProvider = reportingProcessServiceProvider;
     }
 
     @Override
@@ -389,6 +392,15 @@ public class ReadReportingServiceImpl implements ReadReportingService {
         return parameters;
     }
 
+    @Override
+    public Collection<String> getAllowedReportTypes() {
+        final List<String> reportTypes = new ArrayList<>();
+        reportTypes.add("Table");
+        reportTypes.add("Chart");
+        reportTypes.addAll(this.reportingProcessServiceProvider.findAllReportingTypes());
+        return reportTypes;
+    }
+
     private static final class ReportParameterJoinMapper implements RowMapper<ReportParameterJoinData> {
 
         public String schema(final Long reportId) {

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/c9afea91/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReportWritePlatformServiceImpl.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReportWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReportWritePlatformServiceImpl.java
index 548b156..eb54824 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReportWritePlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReportWritePlatformServiceImpl.java
@@ -61,18 +61,20 @@ public class ReportWritePlatformServiceImpl implements ReportWritePlatformServic
     private final ReportParameterUsageRepository reportParameterUsageRepository;
     private final ReportParameterRepository reportParameterRepository;
     private final PermissionRepository permissionRepository;
+    private final ReadReportingService readReportingService;
 
     @Autowired
     public ReportWritePlatformServiceImpl(final PlatformSecurityContext context,
             final ReportCommandFromApiJsonDeserializer fromApiJsonDeserializer, final ReportRepository reportRepository,
             final ReportParameterRepository reportParameterRepository, final ReportParameterUsageRepository reportParameterUsageRepository,
-            final PermissionRepository permissionRepository) {
+            final PermissionRepository permissionRepository, final ReadReportingService readReportingService) {
         this.context = context;
         this.fromApiJsonDeserializer = fromApiJsonDeserializer;
         this.reportRepository = reportRepository;
         this.reportParameterRepository = reportParameterRepository;
         this.reportParameterUsageRepository = reportParameterUsageRepository;
         this.permissionRepository = permissionRepository;
+        this.readReportingService = readReportingService;
     }
 
     @Transactional
@@ -84,7 +86,7 @@ public class ReportWritePlatformServiceImpl implements ReportWritePlatformServic
 
             this.fromApiJsonDeserializer.validate(command.json());
 
-            final Report report = Report.fromJson(command);
+            final Report report = Report.fromJson(command, this.readReportingService.getAllowedReportTypes());
             final Set<ReportParameterUsage> reportParameterUsages = assembleSetOfReportParameterUsages(report, command);
             report.update(reportParameterUsages);
 
@@ -115,7 +117,7 @@ public class ReportWritePlatformServiceImpl implements ReportWritePlatformServic
             final Report report = this.reportRepository.findOne(reportId);
             if (report == null) { throw new ReportNotFoundException(reportId); }
 
-            final Map<String, Object> changes = report.update(command);
+            final Map<String, Object> changes = report.update(command, this.readReportingService.getAllowedReportTypes());
 
             if (changes.containsKey("reportParameters")) {
                 final Set<ReportParameterUsage> reportParameterUsages = assembleSetOfReportParameterUsages(report, command);

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/c9afea91/fineract-provider/src/main/java/org/apache/fineract/infrastructure/report/provider/ReportingProcessServiceProvider.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/report/provider/ReportingProcessServiceProvider.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/report/provider/ReportingProcessServiceProvider.java
index 8d1c0fe..e8ef16b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/report/provider/ReportingProcessServiceProvider.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/report/provider/ReportingProcessServiceProvider.java
@@ -18,6 +18,7 @@
  */
 package org.apache.fineract.infrastructure.report.provider;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -58,6 +59,11 @@ public class ReportingProcessServiceProvider implements ApplicationContextAware
         this.initializeRegistry();
     }
 
+    public Collection<String> findAllReportingTypes() {
+        return this.reportingProcessServices.keySet();
+
+    }
+
     private void initializeRegistry() {
         if (this.reportingProcessServices == null) {
             this.reportingProcessServices = new HashMap<>();