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<>();