[
https://issues.apache.org/jira/browse/FINERACT-1174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17207953#comment-17207953
]
Petri Tuomola commented on FINERACT-1174:
-----------------------------------------
[~vorburger] - that sounds like a fun problem! :)
A couple of options that come to mind:
* Would it be OK if we just had one package for such reporting plugins and
clearly indicated that it is for 3rdparty / external plugins in the package
name? e.g. org.apache.fineract.reporting.plugins.external or something? Then we
could have a ComponentScan annotation for that
* Alternatively we could move the package name for 3rd party plugins into a
config property to allow the plugin provider to choose it - e.g.
@ComponentScan(basePackages = "${scan.packages}") and have scan.packages as an
JVM property? The problem with that would be that you could only specify one
property - so if you have two plugins in different packages, you'd have a
problem...
* Find a way to pass multiple configuration values for packages to scan - so
that you can configure multiple packages in a configuration file. I think you
might be able to pass a string array to @ComponentScan? Or alternatively I
think we could scan the packages in the WebApplicationInitializer class
onStartup method?
> Allow Spring to component-scan plugins in non org.apache.fineract packages
> --------------------------------------------------------------------------
>
> Key: FINERACT-1174
> URL: https://issues.apache.org/jira/browse/FINERACT-1174
> Project: Apache Fineract
> Issue Type: Improvement
> Reporter: Michael Vorburger
> Priority: Major
>
> Allow Spring to component-scan plugins in non org.apache.fineract packages
> One of a number of problems that I ran into in FINERACT-1127 was that I
> initially tried to have the PentahoReportingProcessServiceImpl in
> https://github.com/vorburger/fineract-pentaho/ in {{package
> org.mifos.fineract.pentaho}} (which I made up).
> This seemed better than {{package
> org.apache.fineract.infrastructure.report.service}}, because... well,
> https://github.com/vorburger/fineract-pentaho IS NOT part of Apache Fineract
> core, and will never be (due to the incompatible license), but is a "plugin".
> However, this didn't work, because, of course we only
> {{context:component-scan base-package="org.apache.fineract.accounting.*,
> ...}} et al. in
> fineract-provider/src/main/resources/META-INF/spring/appContext.xml (BTW see
> FINERACT-tbd / PR which proposes to simplify that).
> I've temporarily moved PentahoReportingProcessServiceImpl back to {{package
> org.apache.fineract}} for the fineract-pentaho POC, but it does raise an
> interesting general question.. if we want to move in the direction of
> supporting external plugins in Fineract, what package should we allow them to
> live in - and how we do component-scan for them?! I can't think of a good
> answer.
> [~ptuomola] [~aleks] you perhaps have any thoughts about this?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)