How to make a JIRA Patch for 7.5 version

The below reference is pointed to 6.4 version. Is there updated documentation available for 7.5 version?

https://confluence.atlassian.com/jira/how-to-make-a-jira-patch-201550.html

Hi @srinivas.patruni1

What are you trying to achieve? If you want to add features to your Jira Server instance I would recommend writing a Jira Server App. Documentation on how to do this can be found in ourJira Server developer documentation.

If you tried the steps in the article and they failed, can you please provide a detailed description of that failure by clicking the Provide feedback on this article link on the article page?

It used to be possible to build Jira from the source code that Atlassian provides. I’m guessing that’s what they’re trying to do.

However, with the latest versions of Jira - there are references to the internal artifact repositories (there’s a post somewhere around here about it) so it’s no longer possible… https://jira.atlassian.com/browse/JRASERVER-66224 .

1 Like

We are planning to upgrade JIRA and it require to update the source of some custom plugins. It requires some JIRA source files also to be updated in order to make the custom plugins work.

I am getting many build errors when tried to compile the source for eclipse. In the documentation it was mentioned to use Maven 2.1.0 but I got errors and updated to 3.1.0 version. Though I resolved some dependency issues, I am not able to proceed further. Please find the below error.

c:\atlassian-jira-software-7.5.1-source\jira-project>mvn eclipse:eclipse
[INFO] Scanning for projects…
[WARNING] The POM for com.atlassian.maven.plugins:artifactory-staging-maven-plugin:jar:1.0.3 is missing, no dependency information available
[WARNING] The POM for com.atlassian.maven.plugins:maven-jira-plugin:jar:5.1.18 is missing, no dependency information available
[WARNING] The POM for com.atlassian.plugins.rest:atlassian-rest-doclet:jar:3.2.14 is missing, no dependency information available
[WARNING] The POM for biz.aQute.bnd:biz.aQute.bndlib:jar:2.4.1-pr-916-atlassian-002 is missing, no dependency information available
[WARNING] The POM for com.atlassian.maven.plugins:maven-jira-plugin:jar:6.2.4 is missing, no dependency information available
[WARNING] The POM for com.atlassian.maven.plugins:maven-jira-plugin:jar:6.2.9 is missing, no dependency information available
[WARNING] Error injecting: com.atlassian.maven.plugins.artifactory.staging.LifecycleParticipant
com.google.inject.ProvisionException: Guice provision errors:

  1. No implementation for com.atlassian.maven.plugins.artifactory.staging.ArtifactoryStagingExecutionListener was bound.
    while locating com.atlassian.maven.plugins.artifactory.staging.LifecycleParticipant

1 error
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1006)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1032)
at org.eclipse.sisu.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:44)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
at org.eclipse.sisu.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:134)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:109)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1054)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:997)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1047)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:993)
at org.eclipse.sisu.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
at org.eclipse.sisu.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:52)
at org.eclipse.sisu.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:111)
at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
at org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:540)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:268)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:414)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:357)
[ERROR] Internal error: com.google.inject.ProvisionException: Guice provision errors:
[ERROR]
[ERROR] 1) No implementation for com.atlassian.maven.plugins.artifactory.staging.ArtifactoryStagingExecutionListener was bound.
[ERROR] while locating com.atlassian.maven.plugins.artifactory.staging.LifecycleParticipant
[ERROR] at ClassRealm[extension>com.atlassian.maven.plugins:artifactory-staging-maven-plugin:1.0.3, parent: sun.misc.Launcher$AppClassLoader@25154f]
[ERROR] at ClassRealm[extension>com.atlassian.maven.plugins:artifactory-staging-maven-plugin:1.0.3, parent: sun.misc.Launcher$AppClassLoader@25154f]
[ERROR] while locating org.apache.maven.AbstractMavenLifecycleParticipant annotated with @com.google.inject.name.Named(value=com.atlassian.maven.plugins.LifecyclePaticipant)
[ERROR]
[ERROR] 1 error
[ERROR] -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: com.google.inject.ProvisionException: Guice provision errors:

  1. No implementation for com.atlassian.maven.plugins.artifactory.staging.ArtifactoryStagingExecutionListener was bound.
    while locating com.atlassian.maven.plugins.artifactory.staging.LifecycleParticipant
    at ClassRealm[extension>com.atlassian.maven.plugins:artifactory-staging-maven-plugin:1.0.3, parent: sun.misc.Launcher$AppClassLoader@25154f]
    at ClassRealm[extension>com.atlassian.maven.plugins:artifactory-staging-maven-plugin:1.0.3, parent: sun.misc.Launcher$AppClassLoader@25154f]
    while locating org.apache.maven.AbstractMavenLifecycleParticipant annotated with @com.google.inject.name.Named(value=com.atlassian.maven.plugins.LifecyclePaticipant)

1 error
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:165)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:414)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:357)
Caused by: com.google.inject.ProvisionException: Guice provision errors:

  1. No implementation for com.atlassian.maven.plugins.artifactory.staging.ArtifactoryStagingExecutionListener was bound.
    while locating com.atlassian.maven.plugins.artifactory.staging.LifecycleParticipant
    at ClassRealm[extension>com.atlassian.maven.plugins:artifactory-staging-maven-plugin:1.0.3, parent: sun.misc.Launcher$AppClassLoader@25154f]
    at ClassRealm[extension>com.atlassian.maven.plugins:artifactory-staging-maven-plugin:1.0.3, parent: sun.misc.Launcher$AppClassLoader@25154f]
    while locating org.apache.maven.AbstractMavenLifecycleParticipant annotated with @com.google.inject.name.Named(value=com.atlassian.maven.plugins.LifecyclePaticipant)

1 error
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1006)
at org.eclipse.sisu.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
at org.eclipse.sisu.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:52)
at org.eclipse.sisu.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:111)
at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
at org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:540)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:268)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:153)
… 11 more
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorException
c:\Srinivas\workspace\7.5.1\JIRASOURCE\atlassian-jira-software-7.5.1-source\jira-project>

I’ve run into that several times. The short answer is “get rid of the plugins”. If they are not compatible with the Jira source, they won’t work for the target system either.

1 Like

Make sure you use the sdk to compile things and things will be better. That said - I’ll echo what @nic said - rewrite Addons. The plugin system is changing with every release and you’re going to have a hard time migrating the Addons. Especially if you’re going from a pre 7.0 version.

Hi Nic, We are decommissioning some custom plugins but we have one plugin that encrypts outgoing emails using gnupg library. I did not find any add-ons in marketplace and being the feature mandatory, I am looking for building the source code to apply the patch. As @pvandevoorde suggested, I will try to build the 7.3 version and see if that compiles. Do you have any recommendations on pgp encryption for outgoing emails for JIRA?

1 Like