Wiki source code of Обновление XWiki

Last modified by Eugen Colesnicov on 2010/08/09 21:35

Show last authors
1 {{box cssClass="floatinginfobox" title="**Содержание**"}}
2 {{toc start="3"/}}
3 {{/box}}
4
5 === Общее описание процесса ===
6 Обновление XWiki - достаточно нетривиальная процедура, сложность которой связана с тем, что XWiki фактически "размазана" по огромному количеству файлов, расположенных в сложной структуре папок и подпапок, причем в кучу файлов приходится вносить собственные исправления, да и еще добавлять в разные папки свои файлы. А как такового инсталлятора у XWiki нет вообще. Соответственно всему этому, нельзя просто распаковать новую версию "поверх" поверх старой.
7
8 Фактически, процесс обновления XWiki превращается в процедуру сравнения огромного количества файлов, составляющих само приложение (как перечня файлов, так и их содержимого). Чтобы не сравнивать содержимое вообще всех файлов подряд (а их тысячи) в процессе повседневной работы и настройки необходимо фиксировать, в какие файлы вносились изменения и какие файлы добавлялись.
9
10 Итак, процедура обновления версии XWiki состоит из следующих этапов:
11 1. Подготовительные действия - backup, настройка окружения, вспомогательные утилиты и пр.
12 1. Сравнение и обновление содержимого измененных файлов - необходимо вести их учет
13 1. Сравнение перечня файлов по папкам - здесь правда легче: в основном все "добавки" располагаются в папке ##\xwiki\WEB-INF\lib##
14 1. Запуск новой версии XWiki - хорошо, что при этом хотя бы база в Oracle обновляется автоматом.
15 1. Обновление xar-файла XWiki (набор базовых web-страниц)
16
17 Далее эти этапы будут рассмотрены более подробно.
18
19 === Подготовительные действия ===
20 * Сделайте backup базы данных средствами Oracle. Вот примеры bat-файлов на импорт/экспорт данных в/из Oracle (directory в Oracle должен быть заранее определен):
21
22 {{code}}
23 Экспорт: expdp \"sys/sys@orcl as sysdba\" schemas=(xwiki) directory=archiv dumpfile=xwiki
24 Импорт: impdp \"sys/sys@orcl as sysdba\" schemas=(xwiki) directory=archiv dumpfile=xwiki
25 {{/code}}
26
27 * Также можно сделать экспорт всего содержимого XWiki стандартными средствами приложения:
28 меню "XWiki", далее "Управление Wiki", далее - "Export". Правда для больших БД эта процедура может занять очень много времени.
29
30 * Далее останавливаем используемый Application Server (Jetty или Glassfish), под которым и крутится XWiki.
31
32 * Копируем всю папку xwiki из папки ##\glassfishv3\glassfish\domains\domain1\applications## (или аналогично для jetty) в заранее определенную папку - например ##C:\Temp\Update\old##.
33
34 * В соседнюю папку, например ##C:\Temp\Update\new## распаковываем содержимое war-файла с новой версией XWiki.
35
36 На этом подготовительный этап можно считать законченным.
37
38 //Примечание. Также не забываем читать release notes к новой версии с сайта http://XWiki.org, где могут быть описаны дополнительные действия, требуемые при обновлении версий.//
39
40 === Сравнение содержимого измененных файлов ===
41
42 Предварительные комментарии:
43 * Для выполнения этой процедуры нам понадобиться удобное средство сравнения содержимого файлов, например [[Beyond Compare>>http://www.scootersoftware.com/download.php]].
44 * Также в процессе ежедневной работы, по мере внесения ваших изменений в файлы XWiki, необходимо вести перечень таких изменяемых файлов, т.к. проверять все файлы на предмет изменения их содержимого нереально. Сопоставлять содержимое будем только у тех файлов, которые были нами учтены ранее.
45
46 Список файлов для сравнения содержимого:
47 |=Имя файла|=Путь к файлу
48 |hibernate.cfg.xml |\xwiki\WEB-INF\
49 |xwiki.cfg |\xwiki\WEB-INF\
50 |xwiki.properties |\xwiki\WEB-INF\
51 |web.xml |\xwiki\WEB-INF\
52 |attachmentsinline.vm |\xwiki\templates\
53 |macros.vm |\xwiki\templates\
54 |print.css |\xwiki\skins\colibri\
55 |tablefilterNsort.js |\xwiki\resources\js\xwiki\table\
56
57 Сама **процедура сравнения** - это построчное сравнение содержимого указанных файлов, с переносом тех строк из старого файла, которые были добавлены нами.
58
59 === Сравнение перечня файлов по папкам ===
60
61 Следует сравнить все папки из старой и новой версии, на предмет выявления файлов, которые были добавлены нами. Обычно все они представляют собой плагины, которые все лежат в папке \xwiki\WEB-INF\lib\, но могут быть и исключения. Добавленные плагины также должны быть прописаны в файле xwiki.cfg, в соответствующем разделе.
62
63 === Запуск новой версии XWiki ===
64
65 * Следует скопировать уже новую папку XWiki (с приложением новой версии) в соответствующую папку Application Server ##\glassfishv3\glassfish\domains\domain1\applications## (или аналогично для Jetty).
66
67 * Запускаем сервис Glassfish (или Jetty).
68
69 На этом обновление приложения можно считать законченным. Приложение XWiki новой версии запущено и готово к использованию.
70
71 === Обновление xar-файла XWiki ===
72
73 В принципе данный этап можно пропускать, однако его целесообразно проводить, так как в часть "системных" страниц, где содержится вспомогательный код или сервисная функциональность (макросы, приложения, скрипты) также могут вноситься изменения. Следует также внимательно читать release notes к новой версии, на предмет обязательной замены тех или иных страниц.
74
75 Сама процедура стандартна - импорт xar-файла средствами приложения. Однако следует быть внимательным и исключить часть страниц при импорте, т.к. эти страницы содержат настройки админ-группы (например, домашнюю страницу и пр.).
76
77
78 Перечень страниц для исключения:
79 |=Название страницы |=Описание
80 |XWiki.XWikiPreferences |общие настройки самой XWiki
81 |XWiki.WebPreferences |настройки раздела XWiki
82 |Main.WebPreferences |настройки раздела Main
83 |SandBox.WebPreferences |настройки раздела SandBox
84 |XWiki.XWikiAllGroup - |список пользователей в группе AllGroup
85 |XWiki.XWikiAdminGroup |список администраторов
86 |Main.WebHome |начальная страница
87 |??? |слетает логотип
88
89