Currently we are using "atlassian-plugin.xml" to register services to be wired with Spring for a JIRA server plugin.
For example:
<component key="periodAOService" class="com.theplugin.period.ao.PeriodAOServiceImpl"
interface="com.theplugin.period.ao.PeriodAOService" public="false"/>
I want to add caching externally by decorating the interface above.
public class PeriodConfigurationAOServiceCache implements PeriodConfigurationAOService {
private final PeriodConfigurationAOService periodConfigurationAOService;
public PeriodConfigurationAOServiceLogger(PeriodConfigurationAOService periodConfigurationAOService) {
this.periodConfigurationAOService = periodConfigurationAOService;
}
@Override
public Collection<PeriodConfiguration> getPeriodConfigurations() {
//TODO: ADD caching
return periodConfigurationAOService.getPeriodConfigurations();
}
Then I would like to register the decorated class PeriodConfigurationAOServiceCache so that when a services requires a PeriodConfigurationAOService it receives a PeriodConfigurationAOServiceCache decorating PeriodConfigurationAOServiceImpl.
I have tried various things like:
META-INF.spring/plugin-context.xml but fail to see how I can register beans that depend on services registred in atlassian-plugin.xml.
Has anyone done this and could share his code or provide me with tips on how to solve this?