[ 
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)

Reply via email to