Trying my first plugin
Asked by Johannes Franke:

Hi all,

here's another total newbie. I am getting more and more involved in a company (as a freelancer) that has a Confluence-based product which they are selling "manually", i.e. the marketplace is not used yet. Customer and demo instances need to be set up with extensive scripting and a lot of manual work. This is time-consuming on our end, and is also difficult for customers who just want to take a look. Get access to a running instance means contacting the representative and having a dedicated demo environment set up for them.

I am a software developer who focused a lot on Microsoft in the entire career. No technical skills in the Atlassian world yet. But I have a concept in mind and would like to validate that here.

What the company is selling is very content-heavy, and as the content is related to official regulations such as DIN EN 9001, we should be capable of creating updated content which is automatically distributed to customers. At the moment, there is a lot of "static" content, and no homemade active code. This will change in the future but for now the main question is how we can create a plugin from an existing "template" instance of the product which me maintain to be up-to-date in any aspect. How would one go about extracting all content and making it deployable on any other Confluence installation in the form of a regular marketplace plugin?

The next challenge is referenced add-ons. The solution uses around 10 add-ons, some of which are vital and others are optional. Anyway, how can a plugin ensure that mandatory add-ons are installed along with it?

Thank you all for reading.

Best regards,

Johannes

Beyondsolutions GmbH


Answers:
author: Timothy
body: > Customer and demo instances need to be set up with extensive scripting and a lot of manual work.

For demo instances, this is where Configuration Management tools come in handy. You could either rebuild a Confluence instance with a backup or apply imports to Confluence.
> how we can create a plugin from an existing "template" instance of the product which me maintain to be up-to-date in any aspect

This really depends on what kind of content the you are referring too. Are they just Confluence pages? If yes, a simple space import will do. As to how import the space, you could build a plugin that pulls the space import from your repository and restores it.
> The next challenge is referenced add-ons. The solution uses around 10 add-ons, some of which are vital and others are optional.

The PluginManager in your plugin should be able to scan your the available add-ons in the Confluence instance to determine if the right add-ons have been installed. You can also create an administration screen to perform the sanity checks that you need.
> How would one go about extracting all content and making it deployable on any other Confluence installation in the form of a regular marketplace plugin?
>
> I am a software developer who focused a lot on Microsoft in the entire career. No technical skills in the Atlassian world yet

You'll have to get acquainted with the Confluence SDK and APIs to be able to perform such a task. And it's all in Java.

comments: author: Johannes Franke
body: Dear Timothy, thanks for your reply. I know I'll have to dig into Java, the SDK and everything else but we need to lay out a rough plan because this needs to be sponsored and we need an estimate on the efforts. As there is nobody around with enough experience, we begin looking around.

Again, thank you very much, I'll have a look at what I can find and you helped guide us.

Have a good day!

Regards,

Johannes


Tags: confluence-server

server