The current approach of in-VM plugins incurs a very high cost in development, QA, and support time. This is due to tight coupling and increased security and stability risks.
The Atlassian Remote Apps project aims to bring the benefit of third-party extensibility to OnDemand by dramatically lowering the costs and risks related to third-party code.
We investigated the possibilities to setup a remote app for enabling Numbered Headings for OnDemand. Here are our findings…
We made our tests on a local Confluence 4.2 instance with the RemoteApps plugin installed. RemoteApps is developed as a plugin into the different Atlassian applications. This plugin allows a user to enter a url to a registration xml where the description of the remote app can be found. The remote app is installed on a webserver of your choice. It can be as simple as an apache server serving the registration xml and some static HTML file. The examples really start that simple!
After playing around with the technology for a bit it turned out to be quite simple. Confluence just sends the content and the metadata needed to the url provided by the RemoteApp, using simple request parameters. The parameters also contain the body content of your macro, just like a real plugin.
With RemoteApps you can create new pages and macros in Confluence, event triggers in Jira, etc. There are many possibilities. But think before you act…
Our conclusion after playing with it for a while is that you should use RemoteApps exactly as the name implies; for applications that you want to embed into your Atlassian tool, but from a remote location. Gliffy would be a good example. Any plugin that does not modify or format content but really provides some extra external functionality would fit perfectly.
But macro plugins that handle formatting of content will not work. First, you will need to send the complete body content over the internet to a third party. This will be slow and risky. Second, formatting macros are not really remote applications but real add-ons. It will slow down performance considerably.
To conclude: It’s a nice new feature that will enable third-parties to extend the functionality of the applications on the OnDemand platform, without having to make the plugins part of the platform. But unfortunately, not all the scenarios applying to plugins are applicable to RemoteApps.