Am using the following code in the jira plugin for jira <7.5.3:
public static String convertJiraDescriptionToHtml(String jiraDescription) {
EventPublisher eventPublisher = ComponentAccessor.getOSGiComponentInstanceOfType (EventPublisher.class);
VelocityRequestContextFactory velocityRequestContextFactory = ComponentAccessor.getOSGiComponentInstanceOfType(VelocityRequestContextFactory.class);
ApplicationProperties app = ComponentAccessor.getApplicationProperties();
AtlassianWikiRenderer wikiRenderer = new AtlassianWikiRenderer(eventPublisher, app, velocityRequestContextFactory, featureManager);
return wikiRenderer.render(JiraDescriptionConverter.replaceJiraSpecialCharacters(jiraDescription), null);
}
The AttlasianWikiRenderer has been changed in the 7.6.0 Wiki
So the code should be now like this:
public static String convertJiraDescriptionToHtml(String jiraDescription) {
EventPublisher eventPublisher = ComponentAccessor.getOSGiComponentInstanceOfType (EventPublisher.class);
VelocityRequestContextFactory velocityRequestContextFactory = ComponentAccessor.getOSGiComponentInstanceOfType(VelocityRequestContextFactory.class);
FeatureManager featureManager = ComponentAccessor.getComponent(FeatureManager.class);
ApplicationProperties app = ComponentAccessor.getApplicationProperties();
AtlassianWikiRenderer wikiRenderer = new AtlassianWikiRenderer(eventPublisher, app, velocityRequestContextFactory, featureManager);
return wikiRenderer.render(JiraDescriptionConverter.replaceJiraSpecialCharacters(jiraDescription), null);
}
Consider that we need to add new FeatureManager param.
The problem is, that when we compile plugin for jira 7.6 and install plugin on <7.6, the new implementaion throws NoSuchMethodError.
How to provide compatibility for both <7.6 and 7.6.X version?