Wiki source code of Обновление XWiki
Last modified by Eugen Colesnicov on 2010/08/09 21:35
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 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 |