fineract-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GitBox <...@apache.org>
Subject [GitHub] [fineract] vidakovic commented on pull request #1416: FINERACT-1190: Add fineract-api module
Date Sun, 18 Oct 2020 01:47:09 GMT

vidakovic commented on pull request #1416:
URL: https://github.com/apache/fineract/pull/1416#issuecomment-711104595


   @vorburger I've made this more concrete now. As per your suggestion I've added fineract-api
as a dependency to fineract-provider. I've also replaced the existing reporting interface
with the new one in:
   
   *   org.apache.fineract.infrastructure.report.provider.ReportingProcessServiceProvider
   *   org.apache.fineract.infrastructure.reportmailingjob.service.ReportMailingJobWritePlatformServiceImpl
   *   org.apache.fineract.infrastructure.dataqueries.api.RunreportsApiResource
   
   Note that there is a new utility class "org.apache.fineract.infrastructure.report.util.ParameterUtil"
with static function "toSingleValueMap" that I use to translate the JAX-RS multi-value maps
to single value/normal maps. I've checked the details of the Pentaho implementation, something
similar is happening there anyway (see function "getReportParams" in class "org.apache.fineract.infrastructure.report.service.PentahoReportingProcessServiceImpl"
in vorburger/fineract-pentaho). Just to say: we are not losing any information here. And I
still think it's important to keep the API interfaces free from any technology decisions like
JAX-RS.
   
   I've also allowed myself to reduce the code in org.apache.fineract.infrastructure.report.provider.ReportingProcessServiceProvider.
We can use a "feature" of Spring dependency injection to make this a lot easier: see the new
constructor where we inject a list of all available implementations of org.apache.fineract.api.ReportingProcessService
currently available in the application context. We add those references then to a hash map
and can use this then immediately without any further initialization or a direct reference
to application context. This also removes any need for the "ReportService" annotation, because
we have already enough information to retrieve the service instances.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



Mime
View raw message