Difference between revisions of "Изменения в версии 3.0"

From EjudgeWiki
(Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/[[Изменения в в...")
 
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.0]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.0]]
  
Время выхода: ?? августа 2014 г.
+
Время выхода: 28 августа 2014 г.
 +
 
 +
В данной версии произведена переработка внутренней архитектуры. Генерация HTML-страниц вынесена в отдельные модули, которые подгружаются динамически при работе системы. Генерация страниц выполняется по шаблонам страниц в специальном формате CSP. Формат похож на JSP (java server pages) и расширен поддержкой специальных тегов, похожих не теги struts2.
 +
 
 +
Разработан препроцессор ej-page-gen, который преобразовывает шаблон в формате CSP в код на языке Си. Далее этот код компилируется в динамическую библиотеку, готовую к подгрузке в работающую систему.
 +
 
 +
Поддерживается динамическое обновление шаблонов. Если файл шаблона был обновлен в процессе работы системы, он будет автоматически перекомпилирован и заменит собой текущий вариант страницы. Проверка обновлений страницы происходит один раз в минуту, таким образом максимальное время от обновления файла шаблона до отображения нового варианта страницы составляет около одной минуты.
 +
 
 +
В инсталлированной системе шаблоны страниц располагаются в каталоге <tt>${prefix}/share/ejudge/csp</tt>. В подкаталоге <tt>contests</tt> находятся шаблоны интерфейса пользователя и администратора для проведения турнира и интерфейс пользователя для регистрации (master, judge, client, register). В подкаталоге <tt>super-server</tt> находятся шаблоны для настройки турнира (serve-control).
 +
 
 +
Каталог <tt>${prefix}/share/ejudge/csp</tt> перезаписывается при каждом обновлении системы. Альтернативное место для файлов шаблонов - каталог <tt>${contests_home_dir}</tt>. Файлы, находящиеся в этом каталоге, не перезаписываются при обновлении. Они имеют более высокий приоритет, чем файлы шаблонов в каталоге инсталляции системы. То есть, если файл шаблона обнаружен здесь, будет использоваться он, а не файл из каталога инсталляции системы.
 +
 
 +
В связи с переходом на новый механизм генерации страниц более не поддерживается включение файлов в генерируемые HTML-страницы, управляемое элементами <tt>[[contest.xml:priv_header_file|priv_header_file]]</tt>, <tt>[[contest.xml:priv_footer_file|priv_footer_file]]</tt>, <tt>[[contest.xml:register_header_file|register_header_file]]</tt>, <tt>[[contest.xml:register_footer_file|register_footer_file]]</tt>, <tt>[[contest.xml:register_head_style|register_head_style]]</tt>, <tt>[[contest.xml:register_par_style|register_par_style]]</tt>, <tt>[[contest.xml:register_table_style|register_table_style]]</tt>, <tt>[[contest.xml:team_header_file|team_header_file]]</tt>, <tt>[[contest.xml:team_footer_file|team_footer_file]]</tt>, <tt>[[contest.xml:team_separator_file|team_separator_file]]</tt>, <tt>[[contest.xml:team_menu_1_file|team_menu_1_file]]</tt>, <tt>[[contest.xml:team_menu_2_file|team_menu_2_file]]</tt>, <tt>[[contest.xml:team_menu_3_file|team_menu_3_file]]</tt>, <tt>[[contest.xml:team_head_style|team_head_style]]</tt>, <tt>[[contest.xml:team_par_style|team_par_style]]</tt>.
 +
 
 +
Дополнительно к исходным кодам распространяются бинарные сборки в формате RPM для дистрибутива Fedora 20.

Latest revision as of 05:52, 28 August 2014

Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 3.0

Время выхода: 28 августа 2014 г.

В данной версии произведена переработка внутренней архитектуры. Генерация HTML-страниц вынесена в отдельные модули, которые подгружаются динамически при работе системы. Генерация страниц выполняется по шаблонам страниц в специальном формате CSP. Формат похож на JSP (java server pages) и расширен поддержкой специальных тегов, похожих не теги struts2.

Разработан препроцессор ej-page-gen, который преобразовывает шаблон в формате CSP в код на языке Си. Далее этот код компилируется в динамическую библиотеку, готовую к подгрузке в работающую систему.

Поддерживается динамическое обновление шаблонов. Если файл шаблона был обновлен в процессе работы системы, он будет автоматически перекомпилирован и заменит собой текущий вариант страницы. Проверка обновлений страницы происходит один раз в минуту, таким образом максимальное время от обновления файла шаблона до отображения нового варианта страницы составляет около одной минуты.

В инсталлированной системе шаблоны страниц располагаются в каталоге ${prefix}/share/ejudge/csp. В подкаталоге contests находятся шаблоны интерфейса пользователя и администратора для проведения турнира и интерфейс пользователя для регистрации (master, judge, client, register). В подкаталоге super-server находятся шаблоны для настройки турнира (serve-control).

Каталог ${prefix}/share/ejudge/csp перезаписывается при каждом обновлении системы. Альтернативное место для файлов шаблонов - каталог ${contests_home_dir}. Файлы, находящиеся в этом каталоге, не перезаписываются при обновлении. Они имеют более высокий приоритет, чем файлы шаблонов в каталоге инсталляции системы. То есть, если файл шаблона обнаружен здесь, будет использоваться он, а не файл из каталога инсталляции системы.

В связи с переходом на новый механизм генерации страниц более не поддерживается включение файлов в генерируемые HTML-страницы, управляемое элементами priv_header_file, priv_footer_file, register_header_file, register_footer_file, register_head_style, register_par_style, register_table_style, team_header_file, team_footer_file, team_separator_file, team_menu_1_file, team_menu_2_file, team_menu_3_file, team_head_style, team_par_style.

Дополнительно к исходным кодам распространяются бинарные сборки в формате RPM для дистрибутива Fedora 20.