Найти в Дзене
Radik Zainullin

Заметки по практике создания plugin'ов для Confluence Server-а

Специфика программирования java-плагинов для Confluence Server-а состоит в том, что: 1. Мало работающих примеров, которые можно сразу использовать для создания своих плагинов. Было бы идеально иметь что-нибудь типа SpringBoot для создания плагинов. Даже те примеры, которые есть в интернете, почти все для Confluence Cloud и непереносимы в Confluence Server. 2. Очень большая требовательность к компьютеру для развертывания полноценного рабочего места разработчика. Мне удалось комфортно себя чувствовать когда я купил себе ноутбук Dell Precision M7720, с 64GB оперативки. До этого любое тестирование превращалось в часовую тягомотину. 3. Atlassian дает пробный период для тестирования Confluence сервера, который быстро заканчивается. Нормально тестировать через atlas-debug мне так и не удалось. Пришлось ставить Oracle VM VirtualBox, ставить windows операционку и т.д. Обратите внимание - нужно дать виртуальной машине не менее 32ГБ операционки. Не забудьте прописать побольше памяти в файле

Специфика программирования java-плагинов для Confluence Server-а состоит в том, что:

1. Мало работающих примеров, которые можно сразу использовать для создания своих плагинов. Было бы идеально иметь что-нибудь типа SpringBoot для создания плагинов. Даже те примеры, которые есть в интернете, почти все для Confluence Cloud и непереносимы в Confluence Server.

2. Очень большая требовательность к компьютеру для развертывания полноценного рабочего места разработчика. Мне удалось комфортно себя чувствовать когда я купил себе ноутбук Dell Precision M7720, с 64GB оперативки. До этого любое тестирование превращалось в часовую тягомотину.

3. Atlassian дает пробный период для тестирования Confluence сервера, который быстро заканчивается. Нормально тестировать через atlas-debug мне так и не удалось. Пришлось ставить Oracle VM VirtualBox, ставить windows операционку и т.д. Обратите внимание - нужно дать виртуальной машине не менее 32ГБ операционки. Не забудьте прописать побольше памяти в файле инициализации сервера (setenv.bat), например так:

set CATALINA_OPTS=-Xms4096m -Xmx4096m -XX:+UseG1GC %CATALINA_OPTS%

4. Очень важно помнить - нужно использовать Maven в плагине только из установки Alassian SDK! Иначе будет куча не опознаваемых ошибок и ошибочные ссылки на "несуществующие" библиотеки.

5. Я использовал с Confluence Server СУБД PostgreSQL. СУБД надо поставить и настроить до установки Confluence Server. От системного пользователя postgres (СУБД PostgreSQL) надо выполнить

create user conf_user with password XXXXX;

create database confluence with encoding='UTF8' LC_COLLATE='ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8' owner=conf_user connection limit=-1 template template0 tablespace pg_default;

grant all privileges on database confluence to conf_user;

данные команды. Я использовал для работы с PostgreSQL замечательную IDE Navicat.

Если в процессе установки Confluence он завис или еще какие-то проблемы - сносите все и ставьте заново. Даже если вы уже использовали код активации от Atlassian, вы получите его снова без проблем, на тот же email, который вы уже использовали. Но, конечно, если вы не просрочили trial время использования вашего экземпляра Confluence.

6. Не сразу, но неизбежно перешел на собирание своей библиотеки решений для плагинов.

Например, сделал тестовый плагин с встроенным логированием и АОП (аспектно-ориентированное программирование). https://github.com/sbergile/Aop

Хотел еще сделать плагины со Spring datasource, Spring ORM и так далее по всему зонтику технологий Spring, но перешел на другой проект.

7. Для отслеживания логов Confluence Server можно использовать сторонние плагины типа LastLog, LogDownloader, которые бесплатно можно скачать с MarketPlace.

Итак, за мои 2 месяца интенсивного мучения с разработкой плагинов к Confluence Server удалось добиться устойчивых результатов.

Удачи!