Is it possible to use a plugin 1 to override DefaultIssueLinkManager in jira 5?
I would like to add some custom code to the existing DefaultIssueLinkManager, but I tried it with plugin 1, it seem not work. Does anybody know this even possible in jira 5?
Thank!
I have finally got this working by using the properties: jira.extension.container.provider
Here is what I did if somebody else needs it:
1. first add the following property to jpm.xml
<property> <key>jira.extension.container.provider</key> <description>Extension container provider</description> <default-value>com.xxx.plugins.IssueLinkEventContainerProvider</default-value> <type>list&lt;string&gt;</type> <user-editable>false</user-editable> </property>
2. implements your own container provider (make sure two things: using MutablePicoContainer rather than DefaultPicoContainer to avoid NPE; Unregister the previous component class, in this case, IssueLinkManager)
public class IssueLinkEventContainerProvider implements ContainerProvider { private static final Logger log = LoggerFactory.getLogger(IssueLinkEventContainerProvider.class); private MutablePicoContainer container; @Override public MutablePicoContainer getContainer(PicoContainer parent) { if (container == null) buildContainer(parent); return container; } private void buildContainer(PicoContainer parent) { this.container = (MutablePicoContainer) parent; container.unregisterComponent(IssueLinkManager.class); container.registerComponentImplementation(IssueLinkManager.class, ExtendDefaultIssueLinkManagerImpl.class); } }
I know this extension container provider feature is not suppored by Jira anymore, but this at least provides a relative clean way for us to implement some important business logic without modifying the source code at all.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.