Обновление XWiki
Общее описание процесса
Обновление XWiki - достаточно нетривиальная процедура, сложность которой связана с тем, что XWiki фактически "размазана" по огромному количеству файлов, расположенных в сложной структуре папок и подпапок, причем в кучу файлов приходится вносить собственные исправления, да и еще добавлять в разные папки свои файлы. А как такового инсталлятора у XWiki нет вообще. Соответственно всему этому, нельзя просто распаковать новую версию "поверх" поверх старой.
Фактически, процесс обновления XWiki превращается в процедуру сравнения огромного количества файлов, составляющих само приложение (как перечня файлов, так и их содержимого). Чтобы не сравнивать содержимое вообще всех файлов подряд (а их тысячи) в процессе повседневной работы и настройки необходимо фиксировать, в какие файлы вносились изменения и какие файлы добавлялись.
Итак, процедура обновления версии XWiki состоит из следующих этапов:
- Подготовительные действия - backup, настройка окружения, вспомогательные утилиты и пр.
- Сравнение и обновление содержимого измененных файлов - необходимо вести их учет
- Сравнение перечня файлов по папкам - здесь правда легче: в основном все "добавки" располагаются в папке \xwiki\WEB-INF\lib
- Запуск новой версии XWiki - хорошо, что при этом хотя бы база в Oracle обновляется автоматом.
- Обновление xar-файла XWiki (набор базовых web-страниц)
Далее эти этапы будут рассмотрены более подробно.
Подготовительные действия
- Сделайте backup базы данных средствами Oracle. Вот примеры bat-файлов на импорт/экспорт данных в/из Oracle (directory в Oracle должен быть заранее определен):
Импорт: impdp \"sys/sys@orcl as sysdba\" schemas=(xwiki) directory=archiv dumpfile=xwiki
- Также можно сделать экспорт всего содержимого XWiki стандартными средствами приложения:
меню "XWiki", далее "Управление Wiki", далее - "Export". Правда для больших БД эта процедура может занять очень много времени.
- Далее останавливаем используемый Application Server (Jetty или Glassfish), под которым и крутится XWiki.
- Копируем всю папку xwiki из папки \glassfishv3\glassfish\domains\domain1\applications (или аналогично для jetty) в заранее определенную папку - например C:\Temp\Update\old.
- В соседнюю папку, например C:\Temp\Update\new распаковываем содержимое war-файла с новой версией XWiki.
На этом подготовительный этап можно считать законченным.
Примечание. Также не забываем читать release notes к новой версии с сайта http://XWiki.org, где могут быть описаны дополнительные действия, требуемые при обновлении версий.
Сравнение содержимого измененных файлов
Предварительные комментарии:
- Для выполнения этой процедуры нам понадобиться удобное средство сравнения содержимого файлов, например Beyond Compare.
- Также в процессе ежедневной работы, по мере внесения ваших изменений в файлы XWiki, необходимо вести перечень таких изменяемых файлов, т.к. проверять все файлы на предмет изменения их содержимого нереально. Сопоставлять содержимое будем только у тех файлов, которые были нами учтены ранее.
Список файлов для сравнения содержимого:
| Имя файла | Путь к файлу |
|---|---|
| hibernate.cfg.xml | \xwiki\WEB-INF\ |
| xwiki.cfg | \xwiki\WEB-INF\ |
| xwiki.properties | \xwiki\WEB-INF\ |
| web.xml | \xwiki\WEB-INF\ |
| attachmentsinline.vm | \xwiki\templates\ |
| macros.vm | \xwiki\templates\ |
| print.css | \xwiki\skins\colibri\ |
| tablefilterNsort.js | \xwiki\resources\js\xwiki\table\ |
Сама процедура сравнения - это построчное сравнение содержимого указанных файлов, с переносом тех строк из старого файла, которые были добавлены нами.
Сравнение перечня файлов по папкам
Следует сравнить все папки из старой и новой версии, на предмет выявления файлов, которые были добавлены нами. Обычно все они представляют собой плагины, которые все лежат в папке \xwiki\WEB-INF\lib\, но могут быть и исключения. Добавленные плагины также должны быть прописаны в файле xwiki.cfg, в соответствующем разделе.
Запуск новой версии XWiki
- Следует скопировать уже новую папку XWiki (с приложением новой версии) в соответствующую папку Application Server \glassfishv3\glassfish\domains\domain1\applications (или аналогично для Jetty).
- Запускаем сервис Glassfish (или Jetty).
На этом обновление приложения можно считать законченным. Приложение XWiki новой версии запущено и готово к использованию.
Обновление xar-файла XWiki
В принципе данный этап можно пропускать, однако его целесообразно проводить, так как в часть "системных" страниц, где содержится вспомогательный код или сервисная функциональность (макросы, приложения, скрипты) также могут вноситься изменения. Следует также внимательно читать release notes к новой версии, на предмет обязательной замены тех или иных страниц.
Сама процедура стандартна - импорт xar-файла средствами приложения. Однако следует быть внимательным и исключить часть страниц при импорте, т.к. эти страницы содержат настройки админ-группы (например, домашнюю страницу и пр.).
Перечень страниц для исключения:
| Название страницы | Описание |
|---|---|
| XWiki.XWikiPreferences | общие настройки самой XWiki |
| XWiki.WebPreferences | настройки раздела XWiki |
| Main.WebPreferences | настройки раздела Main |
| SandBox.WebPreferences | настройки раздела SandBox |
| XWiki.XWikiAllGroup - | список пользователей в группе AllGroup |
| XWiki.XWikiAdminGroup | список администраторов |
| Main.WebHome | начальная страница |
| ??? | слетает логотип |