When developing a plugin, sometimes one really needs to connect to an existing JIRA/Confluence – for instance, to test with real data. In the past that could be done with
ATLAS_OPTS="-Dusername=jturner -Dpassword=$WIKIPASS" atlas-cli --server wiki.redradishtech.com -p 80 --context-path / --cli-port 4330
atlas-cli emits a scary warning:
[WARNING] >>> WARNING: atlas-cli and fastdev are DEPRECATED in favour of QuickReload <<< [WARNING] [WARNING] >>> WARNING: Support for atlas-cli and fastdev will be completely removed in the next AMPS version. <<<
This leads to my question: how does one get Quick Reload working in an existing instance? Brad's doc on QuickReload is fun but entirely unhelpful, as it assumes plugin development always takes place by running
atlas-debug within the plugin root directory.
After a day's researching..
In your product, go to Manage add-ons, click 'All add-ons' and verify that the 'Confluence Quick Reload Plugin' (com.atlassian.confluence.plugins.quickreload) or 'JIRA Quick Reload Plugin' or equivalent is present. This plugin is pre-installed, product-specific, and not sufficient on its own.
Install the com.atlassian.labs.plugins.quickreload.reloader plugin manually:
First, find the correct version (the latest bleeding-edge didn't work for me). View the source for the latest AmpsDefaults.java, and note the QUICK_RELOAD version number:
public static final String DEFAULT_QUICK_RELOAD_VERSION = "1.24.1";
This tells you what quickreload version would be deployed by
atlas-run and friends.
Go to https://maven.atlassian.com/content/repositories/atlassian-public/com/atlassian/labs/plugins/quickreload/, click the right version ('1.24.1' in this example), and copy the jar URL.
/rest/qr/1.0/tracked to your app URL, and verify you get JSON output starting with:
Tell the Quick Reload plugin to monitor a particular directory (note that "directories" in the JSON above is  aka. empty). As per the docs, this can be done via
quickreload.properties file, or
-Dquickreload.tracked=... properties in your
bin/setenv.sh, but I find it easiest to do via a POST call to $BASEURL/rest/qr/1.0/tracked/$DIRECTORY. For instance:
curl -H 'X-Atlassian-Token: nocheck' -X POST 'http://wiki.redradishtech.com/rest/qr/1.0/tracked/home/jturner/src/bitbucket.org/redradishtech/testplugin/target'
To remove a path, change
-X POST to
/rest/qr/1.0/api, you'll note the plugin allows unauthenticated installing, enabling and disabling of plugins, so should only be installed in a trusted development environment.
Hi Jeff! Thanks you for this! I haven't switched to QuickReload up to now because I've always preferred to install my plugins on standalone systems. I have different CLI configurations configured as aliases for different servers. Can you tell me what the current status of your approach is? Is this answer still up-to-date? Felix
I've followed all the steps up to step 3 where I need to tell quickreload which directory to monitor. I was wondering where to put the quickreload.properties file? Is there anyway to hook quickreload up to an existing Jira instance without having to shut Jira down?
(If anybody else has a solution, the input would be greatly appreciated)
I have a problem with resources loading on simple page refresh.
I have a standalone JIRA running and as @Jeff Turner suggests, I added target folder of my plugin to tracked folders using
It works fine, when I package the project using 'mvn package', new version of plugin is succesfully installed and can be used immediatelly. But how should I do it to use my CSS and JS resources from project's resources folder instead of using resources bundled to JAR file? Is it possible? Do you have any idea how to do it?
I already tried to do:
Thank you very much for any advice...
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
We're bringing product updates and pro tips on teamwork to ten cities around the world.Save your spot