CUBA documentation (prefix removed from config files in sample project) #PL-1633

This commit is contained in:
Konstantin Krivopustov 2013-01-31 10:30:49 +00:00
parent a63775a358
commit ef46be7b1c
9 changed files with 36 additions and 37 deletions

View File

@ -117,7 +117,7 @@
</section>
<section id="project_file_structure">
<title>Файловая структура проекта</title>
<para>Рассмотрим файловую структуру проекта на примере простого приложения <application>Sales</application>, состоящего из <link linkend="app_tiers">блоков</link> Middleware и Web Client.</para>
<para>Рассмотрим файловую структуру проекта на примере простого приложения <application>Sales</application>, состоящего из <link linkend="app_tiers">блоков</link> Middleware, Web Client и Web Portal.</para>
<figure>
<title>Файловая структура проекта</title>
<mediaobject>
@ -127,7 +127,7 @@
</mediaobject>
</figure>
<para>В корне проекта расположены скрипты сборки <filename>build.gradle</filename>, <filename>settings.gradle</filename> и проектные файлы <application>IntelliJ IDEA</application>.</para>
<para id="text_module_id">В каталоге <filename>modules</filename> расположены подкаталоги <link linkend="app_modules">модулей</link> проекта <structname>global</structname>, <structname>core</structname>, <structname>gui</structname>, <structname>web</structname>. </para>
<para id="text_module_id">В каталоге <filename>modules</filename> расположены подкаталоги <link linkend="app_modules">модулей</link> проекта <structname>global</structname>, <structname>core</structname>, <structname>gui</structname>, <structname>portal, web</structname>. </para>
<figure>
<title>Структура модуля global</title>
<mediaobject>
@ -137,9 +137,9 @@
</mediaobject>
</figure>
<para>Модуль <structname>global</structname> содержит каталог исходных текстов <filename>src</filename>, в корне которого располагаются конфигурационные файлы <filename>
<link linkend="metadata.xml">sales-metadata.xml</link>
<link linkend="metadata.xml">metadata.xml</link>
</filename> и <filename>
<link linkend="persistence.xml">sales-persistence.xml</link>
<link linkend="persistence.xml">persistence.xml</link>
</filename>. Пакет <code>com.sample.sales.core</code> содержит интерфейсы сервисов Middleware, пакет <code>com.sample.sales.entity</code> - классы <link linkend="data_model">сущностей</link> и <link linkend="message_packs">файлы локализации</link> для них.</para>
<figure>
<title>Структура модуля core</title>
@ -155,9 +155,9 @@
</listitem>
<listitem>
<para><filename>src</filename> - каталог исходных текстов, в корне которого расположены файл <link linkend="app_properties_files">свойств приложения</link> блока Middleware и конфигурационные файлы <filename>
<link linkend="spring.xml">sales-spring.xml</link>
<link linkend="spring.xml">spring.xml</link>
</filename> и <filename>
<link linkend="views.xml">sales-views.xml</link>
<link linkend="views.xml">views.xml</link>
</filename>. Пакет <code>com.samples.sales.core</code> содержит классы Middleware: реализации <link linkend="services">сервисов</link>, <link linkend="managed_beans">управляемые бины</link>, <link linkend="jmx_beans">JMX-бины</link>.</para>
</listitem>
<listitem>
@ -177,7 +177,7 @@
</mediaobject>
</figure>
<para>Модуль <structname>gui</structname> содержит каталог исходных текстов <filename>src</filename>, в корне которого располагается конфигурационный файл <filename>
<link linkend="screens.xml">sales-screens.xml</link>
<link linkend="screens.xml">screens.xml</link>
</filename>. Пакет <code>com.sample.sales.gui</code> содержит XML-дескрипторы и контроллеры экранов и <link linkend="message_packs">файлы локализации</link> для них.</para>
<figure>
<title>Структура модуля web</title>
@ -190,13 +190,13 @@
<para>Модуль <structname>web</structname> содержит следующие каталоги:<itemizedlist>
<listitem>
<para><filename>src</filename> - каталог исходных текстов, в корне которого расположены файл <link linkend="app_properties_files">свойств приложения</link> блока Web Client и конфигурационные файлы <filename>
<link linkend="menu.xml">sales-web-menu.xml</link>
<link linkend="menu.xml">web-menu.xml</link>
</filename>, <filename>
<link linkend="permissions.xml">sales-web-permissions.xml</link>
<link linkend="permissions.xml">web-permissions.xml</link>
</filename>, <filename>
<link linkend="screens.xml">sales-web-screens.xml</link>
<link linkend="screens.xml">web-screens.xml</link>
</filename> и <filename>
<link linkend="spring.xml">sales-web-spring.xml</link>
<link linkend="spring.xml">web-spring.xml</link>
</filename>. Пакет <code>com.samples.sales.web</code> содержит главный класс блока Web Client (наследник <code>DefaultApp</code>) и <link linkend="main_message_pack">главный пакет локализованных сообщений</link>.</para>
</listitem>
<listitem>

View File

@ -2104,7 +2104,7 @@ Date date = timeSource.currentTimestamp();</programlisting><programlisting>long
</itemizedlist>
<para>Например, набор файлов свойств блока <structname>Middleware</structname> проекта <application>sales</application> задается в файле <filename>web/WEB-INF/web.xml</filename> модуля <structname>core</structname>, и выглядит следующим образом:</para>
<programlisting>classpath:cuba-app.properties
classpath:sales-app.properties
classpath:app.properties
file:${catalina.home}/conf/app-core/local.app.properties</programlisting>
<para>Здесь префикс <literal>classpath:</literal> означает, что данный файл нужно искать в Java classpath, префикс <literal>file:</literal> в файловой системе. Возможно использование системных свойств Java, в данном случае это <literal>catalina.home</literal> путь к корню <application>Tomcat</application>.</para>
<para>Порядок перечисления файлов важен, так как значения, указанные в каждом последующем файле заменяют значения одноименных свойств, заданные в предыдущих файлах. Этим достигается переопределение свойств платформы в конкретном приложении.</para>
@ -2645,7 +2645,7 @@ public class OrderServiceBean implements OrderService {
}</programlisting>
<para>Класс сервиса, как и класс любого другого <link linkend="managed_beans">управляемого бина</link>, должен находиться внутри дерева пакетов с корнем, заданным в элементе <literal>context:component-scan</literal> файла <filename>
<link linkend="spring.xml">spring.xml</link>
</filename>. В нашем случае файл <filename>sales-spring.xml</filename> содержит элемент:<programlisting>&lt;context:component-scan base-package=&quot;com.sample.sales&quot;/&gt;</programlisting>что означает, что поиск аннотированных бинов для данного блока приложения будет происходить начиная с пакета <code>com.sample.sales</code>.</para>
</filename>. В нашем случае файл <filename>spring.xml</filename> содержит элемент:<programlisting>&lt;context:component-scan base-package=&quot;com.sample.sales&quot;/&gt;</programlisting>что означает, что поиск аннотированных бинов для данного блока приложения будет происходить начиная с пакета <code>com.sample.sales</code>.</para>
</step>
</procedure>
<warning>
@ -2659,7 +2659,7 @@ public class OrderServiceBean implements OrderService {
<para>Фабрика прокси-объектов конфигурируется в файле <filename>
<link linkend="spring.xml">spring.xml</link>
</filename> ссответствующего клиентского блока.</para>
<para>Например, чтобы в приложении <application>sales</application> вызвать с веб-клиента сервис <code>sales_OrderService</code>, необходимо добавить в файл <filename>sales-web-spring.xml</filename> модуля <structname>web</structname> следующее:</para>
<para>Например, чтобы в приложении <application>sales</application> вызвать с веб-клиента сервис <code>sales_OrderService</code>, необходимо добавить в файл <filename>web-spring.xml</filename> модуля <structname>web</structname> следующее:</para>
<programlisting language="xml">&lt;bean id=&quot;sales_proxyCreator&quot; class=&quot;com.haulmont.cuba.web.sys.remoting.WebRemoteProxyBeanCreator&quot;&gt;
&lt;property name=&quot;clusterInvocationSupport&quot; ref=&quot;cuba_clusterInvocationSupport&quot;/&gt;
&lt;property name=&quot;remoteServices&quot;&gt;
@ -2698,7 +2698,7 @@ public class OrderWorker {
<para>Рекомендуется присваивать бину уникальное имя вида <literal>{имя_проекта}_{имя_класса}</literal>, и определять его в константе <code>NAME</code>. </para>
<para>Класс управляемого бина должен находиться внутри дерева пакетов с корнем, заданным в элементе <literal>context:component-scan</literal> файла <filename>
<link linkend="spring.xml">spring.xml</link>
</filename>. В нашем случае файл <filename>sales-spring.xml</filename> содержит элемент:<programlisting>&lt;context:component-scan base-package=&quot;com.sample.sales&quot;/&gt;</programlisting>что означает, что поиск аннотированных бинов для данного блока приложения будет происходить начиная с пакета <code>com.sample.sales</code>.</para>
</filename>. В нашем случае файл <filename>spring.xml</filename> содержит элемент:<programlisting>&lt;context:component-scan base-package=&quot;com.sample.sales&quot;/&gt;</programlisting>что означает, что поиск аннотированных бинов для данного блока приложения будет происходить начиная с пакета <code>com.sample.sales</code>.</para>
<para>Если нужно обеспечить возможность подмены реализации, рекомендуется выделять бизнес-интерфейс бина, например следующим образом:</para>
<programlisting>package com.sample.sales.core;
@ -2838,7 +2838,7 @@ public class Orders implements OrdersMBean {
</itemizedlist></para>
</listitem>
<listitem>
<para>Регистрация JMX-бина в <filename>sales-spring.xml</filename>:</para>
<para>Регистрация JMX-бина в <filename>spring.xml</filename>:</para>
<programlisting>&lt;bean id=&quot;sales_MBeanExporter&quot; lazy-init=&quot;false&quot;
class=&quot;com.haulmont.cuba.jmxcontrol.export.MBeanExporter&quot;&gt;
&lt;property name=&quot;beans&quot;&gt;

View File

@ -88,7 +88,6 @@
<listitem>
<para>Разворачиваем собранные артефакты и библиотеки проекта в <application>Tomcat</application>:</para>
<prompt>gradle deploy</prompt>
<para/>
</listitem>
<listitem>
<para>Создаем базу данных на локальном сервере PostgreSQL:</para>
@ -163,7 +162,7 @@
<para><code>@javax.persistence.Column</code> связывает атрибут сущности с колонкой таблицы. Параметр <code>nullable = false</code> делает атрибут сущности обязательным к заполнению. Параметр <code>length</code> задает максимальную длину текстового атрибута, по умолчанию <literal>255</literal>.</para>
</listitem>
</itemizedlist></para>
<para id="text_registration_entity">После создания класса зарегистрируйте его в файле <filename>sales-persistence.xml</filename> модуля <structname>global</structname> в элементе <sgmltag>persistence-unit</sgmltag>:<programlisting>&lt;class&gt;com.sample.sales.entity.Customer&lt;/class&gt;</programlisting></para>
<para id="text_registration_entity">После создания класса зарегистрируйте его в файле <filename>persistence.xml</filename> модуля <structname>global</structname> в элементе <sgmltag>persistence-unit</sgmltag>:<programlisting>&lt;class&gt;com.sample.sales.entity.Customer&lt;/class&gt;</programlisting></para>
<para>Для <link linkend="localization">локализации</link> имен сущностей и атрибутов создайте файлы <filename>messages.properties</filename> и <filename>messages_ru.properties</filename> в том же пакете, что и классы.</para>
<para>В этих файлах определяются строки с ключом <literal>класс_сущности</literal> для названия сущности и <literal>класс_сущности.атрибут</literal> для названий атрибутов. Эти названия будут использованы при отображении списка экземпляров и в окне редактирования сущности.</para>
<caution>
@ -199,11 +198,11 @@ Order.amount=Amount</programlisting></para>
Order.customer=Покупатель
Order.date=Дата
Order.amount=Сумма</programlisting></para>
<para>Зарегистрируйте сущность Заказ в файле <filename>sales-persistence.xml</filename> модуля <structname>global</structname>: <programlisting>&lt;class&gt;com.sample.sales.entity.Order&lt;/class&gt;</programlisting></para>
<para>Зарегистрируйте сущность Заказ в файле <filename>persistence.xml</filename> модуля <structname>global</structname>: <programlisting>&lt;class&gt;com.sample.sales.entity.Order&lt;/class&gt;</programlisting></para>
</section>
<section>
<title>Создание пользовательского интерфейса приложения</title>
<para>Для ограничения списка поддерживаемых языков интерфейса откройте файл <filename>sales-web-app.properties</filename> модуля <structname>web</structname> и добавьте в него следующее значение:<programlisting>cuba.availableLocales=English|en;Russian|ru</programlisting></para>
<para>Для ограничения списка поддерживаемых языков интерфейса откройте файл <filename>web-app.properties</filename> модуля <structname>web</structname> и добавьте в него следующее значение:<programlisting>cuba.availableLocales=English|en;Russian|ru</programlisting></para>
<para>Файлы, относящиеся к экранам, будем создавать в пакете <code>com.sample.sales.gui</code> модуля gui.</para>
<para>Любой экран определяется <glossterm linkend="screen_xml_glossentry">XML-дескриптором</glossterm>, описывающим <link linkend="datasources">источники данных</link> и расположение <link linkend="gui_framework">визуальных компонентов</link> экрана. У экрана также может быть <glossterm linkend="screen_controller_glossentry">контроллер</glossterm> Java-класс, содержащий логику инициализации и обработки событий экрана.</para>
<section id="qs_customer_browse">
@ -223,9 +222,9 @@ Order.amount=Сумма</programlisting></para>
<para>Элемент <sgmltag>rowsCount</sgmltag> позволяет организовать постраничный вывод данных таблицы и отобразить общее количество строк.</para>
<para>Элемент <sgmltag>actions</sgmltag> задает набор контекстных действий с таблицей. В нашем случае все указанные действия являются стандартными (что определяется именем действия в атрибуте <sgmltag>id</sgmltag> элемента <sgmltag>action</sgmltag>), и не требуют дополнительного кодирования. Задание некоторого действия для таблицы приводит к появлению соответствующего пункта контекстного меню таблицы.</para>
<para>Над таблицей находится панель (элемент <sgmltag>buttonsPanel</sgmltag>), содержащая кнопки для управления данными в этой таблице. Кнопки связаны с действиями (<sgmltag>actions</sgmltag>) таблицы, и в данном случае дублируют пункты контекстного меню.</para>
<para><glossterm linkend="screen_xml_glossentry">XML-дескриптор</glossterm> экрана должен иметь идентификатор, по которому его можно вызвать из меню или из программного кода. Идентификатор в нашем случае назначается в файле <filename>sales-screens.xml</filename> модуля <structname>gui</structname> <programlisting>&lt;screen id=&quot;sales$Customer.lookup&quot; template=&quot;/com/haulmont/sales/gui/customer/customer-browse.xml&quot;/&gt;</programlisting></para>
<para><glossterm linkend="screen_xml_glossentry">XML-дескриптор</glossterm> экрана должен иметь идентификатор, по которому его можно вызвать из меню или из программного кода. Идентификатор в нашем случае назначается в файле <filename>screens.xml</filename> модуля <structname>gui</structname> <programlisting>&lt;screen id=&quot;sales$Customer.lookup&quot; template=&quot;/com/haulmont/sales/gui/customer/customer-browse.xml&quot;/&gt;</programlisting></para>
<para>Идентификатор <literal> sales$Customer.lookup</literal> удовлетворяет соглашению, по которому экраны списков сущностей должны иметь вид <literal>{entity_name}.lookup</literal>. Данное соглашение облегчает настройку визуальных компонентов, работающих со ссылочными атрибутами сущностей.</para>
<para>Чтобы вызывать экран из главного меню приложения, добавьте в файл <filename>sales-web-menu.xml</filename> модуля <structname>web</structname> следующий элемент:<programlisting>&lt;menu id=&quot;sales&quot; insertBefore=&quot;administration&quot;&gt;
<para>Чтобы вызывать экран из главного меню приложения, добавьте в файл <filename>web-menu.xml</filename> модуля <structname>web</structname> следующий элемент:<programlisting>&lt;menu id=&quot;sales&quot; insertBefore=&quot;administration&quot;&gt;
&lt;item id=&quot;sales$Customer.lookup&quot;/&gt;
&lt;/menu&gt;</programlisting></para>
<para>Для того, чтобы пункт меню содержал локализованное имя экрана, добавьте в <link linkend="main_message_pack">главный пакет сообщений</link> модуля web (файлы <filename>messages.properties</filename> и <filename>messages_ru.properties</filename> пакета <code>com.sample.sales.web</code> следующие строки:</para>
@ -267,7 +266,7 @@ menu-config.sales$Customer.lookup=Покупатели</programlisting>
</itemizedlist></para>
<para>Атрибуты <sgmltag>id</sgmltag> элементов <sgmltag>field</sgmltag> группы полей соответствуют именам редактируемых атрибутов сущности.</para>
<para>Атрибут <sgmltag>expand</sgmltag> элемента <sgmltag>layout</sgmltag> нужен для того, чтобы растянуть фрейм на все свободное пространство по вертикали, тогда кнопки окажутся прижатыми вверх к группе полей.</para>
<para>Зададим идентификатор экрана в файле <filename>sales-screens.xml</filename> модуля <structname>gui</structname> <programlisting>&lt;screen id=&quot;sales$Customer.edit&quot; template=&quot;/com/haulmont/sales/gui/customer/customer-edit.xml&quot;/&gt;</programlisting></para>
<para>Зададим идентификатор экрана в файле <filename>screens.xml</filename> модуля <structname>gui</structname> <programlisting>&lt;screen id=&quot;sales$Customer.edit&quot; template=&quot;/com/haulmont/sales/gui/customer/customer-edit.xml&quot;/&gt;</programlisting></para>
<para>Для правильной работы стандартных действий <literal>create</literal> и <literal>edit</literal> таблицы в экране списка необходимо, чтобы идентификатор экрана редактирования соответствовал виду <literal>{entity_name}.edit</literal></para>
<para>Попробуем добавить и отредактировать <code>Покупателя</code> в работающем приложении. Для этого пересоберите проект </para>
<para><prompt>gradle restart</prompt></para>
@ -285,7 +284,7 @@ menu-config.sales$Customer.lookup=Покупатели</programlisting>
<title>Экран списка Заказов</title>
<para>Создайте пакет <code>com.sample.sales.gui.order</code> и в нем файл <filename>order-browse.xml</filename> следующего содержания:<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="source/qs/order-browse.xml" parse="text" encoding="UTF-8"/></programlisting></para>
<para>Данный экран аналогичен описанному в <xref linkend="qs_customer_browse"/> и имеет следующую особенность: так как среди прочих отображается ссылочный атрибут <code>Order.customer</code>, требуется определить представление сущности <code>Order</code>, включающее этот атрибут (стандартные представления <literal>_local</literal> и <literal>_minimal</literal> не включают ссылочных атрибутов).</para>
<para>Определите представление <literal>orderWithCustomer</literal> в файле <filename>sales-views.xml</filename> модуля <structname>core</structname>: <programlisting>&lt;view class=&quot;com.sample.sales.entity.Order&quot;
<para>Определите представление <literal>orderWithCustomer</literal> в файле <filename>views.xml</filename> модуля <structname>core</structname>: <programlisting>&lt;view class=&quot;com.sample.sales.entity.Order&quot;
name=&quot;orderWithCustomer&quot;
extends=&quot;_local&quot;&gt;
&lt;property name=&quot;customer&quot; view=&quot;_minimal&quot;/&gt;
@ -293,8 +292,8 @@ menu-config.sales$Customer.lookup=Покупатели</programlisting>
<para>Создайте файлы <filename>messages.properties</filename> и <filename>messages_ru.properties</filename> в пакете <code>com.sample.sales.gui.order</code>, и внесите в них локализацию заголовка экрана: </para>
<para><filename>messages.properties</filename> <programlisting>browserCaption=Orders</programlisting></para>
<para><filename>messages_ru.properties</filename> <programlisting>browserCaption=Заказы</programlisting></para>
<para>Далее зарегистрируйте экран в файле <filename>sales-screens.xml</filename> модуля <structname>gui</structname>: <programlisting>&lt;screen id=&quot;sales$Order.lookup&quot; template=&quot;/com/haulmont/sales/gui/order/order-browse.xml&quot;/&gt;</programlisting></para>
<para>и добавьте соответствующий пункт меню в файл <filename>sales-web-menu.xml</filename> модуля <structname>web</structname>: <programlisting>&lt;item id=&quot;sales$Order.lookup&quot;/&gt;</programlisting></para>
<para>Далее зарегистрируйте экран в файле <filename>screens.xml</filename> модуля <structname>gui</structname>: <programlisting>&lt;screen id=&quot;sales$Order.lookup&quot; template=&quot;/com/haulmont/sales/gui/order/order-browse.xml&quot;/&gt;</programlisting></para>
<para>и добавьте соответствующий пункт меню в файл <filename>web-menu.xml</filename> модуля <structname>web</structname>: <programlisting>&lt;item id=&quot;sales$Order.lookup&quot;/&gt;</programlisting></para>
<para>Локализованные названия нового пункта меню добавьте в <link linkend="main_message_pack">главный пакет сообщений</link> модуля web (файлы <filename>messages.properties</filename> и <filename>messages_ru.properties</filename> пакета <code>com.sample.sales.web</code>):</para>
<para> <filename>messages.properties</filename></para>
<programlisting>menu-config.sales$Order.lookup=Orders</programlisting>
@ -319,7 +318,7 @@ menu-config.sales$Customer.lookup=Покупатели</programlisting>
<para>Добавьте в файлы <filename>messages.properties</filename> и <filename>messages_ru.properties</filename> пакета <code>com.sample.sales.gui.order</code> локализацию заголовка экрана редактирования: </para>
<para><filename>messages.properties</filename> <programlisting>editorCaption=Order</programlisting></para>
<para><filename>messages_ru.properties</filename> <programlisting>editorCaption=Заказ</programlisting></para>
<para>Зарегистрируйте экран в файле <filename>sales-screens.xml</filename> модуля <structname>gui</structname>: </para>
<para>Зарегистрируйте экран в файле <filename>screens.xml</filename> модуля <structname>gui</structname>: </para>
<programlisting>&lt;screen id=&quot;sales$Order.edit&quot; template=&quot;/com/haulmont/sales/gui/order/order-edit.xml&quot;/&gt;</programlisting>
<para>Пересоберите проект </para>
<para><prompt>gradle restart</prompt></para>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -567,7 +567,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
&lt;param-name&gt;appPropertiesConfig&lt;/param-name&gt;
&lt;param-value&gt;
classpath:cuba-app.properties
classpath:sales-app.properties
classpath:app.properties
file:${catalina.home}/conf/app-core/local.app.properties
&lt;/param-value&gt;
&lt;/context-param&gt;
@ -619,7 +619,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
&lt;param-name&gt;appPropertiesConfig&lt;/param-name&gt;
&lt;param-value&gt;
classpath:cuba-web-app.properties
classpath:sales-web-app.properties
classpath:web-app.properties
file:${catalina.home}/conf/app/local.app.properties
&lt;/param-value&gt;
&lt;/context-param&gt;
@ -921,7 +921,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<link linkend="resources">Resources</link>
</code>.</para>
<para>Используется в блоках Web Client и Desktop Client.</para>
<para>Пример:<programlisting>cuba.menuConfig=cuba-web-menu.xml sales-web-menu.xml</programlisting></para>
<para>Пример:<programlisting>cuba.menuConfig=cuba-web-menu.xml web-menu.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.metadataConfig">
@ -934,7 +934,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<link linkend="resources">Resources</link>
</code>.</para>
<para>Используется в блоке <structname>Middleware</structname>.</para>
<para>Пример:<programlisting>cuba.metadataConfig=cuba-metadata.xml sales-metadata.xml</programlisting></para>
<para>Пример:<programlisting>cuba.metadataConfig=cuba-metadata.xml metadata.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.passwordEncryptionModule">
@ -974,7 +974,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<link linkend="permissions.xml">permissions.xml</link>
</filename>. </para>
<para>Используется в блоках Web Client и Desktop Client.</para>
<para>Пример:<programlisting>cuba.permissionConfig=cuba-web-permissions.xml sales-web-permissions.xml</programlisting></para>
<para>Пример:<programlisting>cuba.permissionConfig=cuba-web-permissions.xml web-permissions.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.persistenceConfig">
@ -987,7 +987,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<link linkend="resources">Resources</link>
</code>.</para>
<para>Используется в блоке <structname>Middleware</structname>.</para>
<para>Пример:<programlisting>cuba.persistenceConfig=cuba-persistence.xml sales-persistence.xml</programlisting></para>
<para>Пример:<programlisting>cuba.persistenceConfig=cuba-persistence.xml persistence.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.portal.anonymousUserLogin">
@ -1013,7 +1013,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<link linkend="resources">Resources</link>
</code>.</para>
<para>Используется в блоке <structname>Middleware</structname>.</para>
<para>Пример:<programlisting>cuba.remotingSpringContextConfig=cuba-remoting-spring.xml sales-remoting-spring.xml</programlisting></para>
<para>Пример:<programlisting>cuba.remotingSpringContextConfig=cuba-remoting-spring.xml remoting-spring.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.springContextConfig">
@ -1026,7 +1026,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<link linkend="resources">Resources</link>
</code>.</para>
<para>Используется во всех стандартных <link linkend="app_tiers">блоках</link>.</para>
<para>Пример:<programlisting>cuba.springContextConfig=cuba-spring.xml sales-spring.xml</programlisting></para>
<para>Пример:<programlisting>cuba.springContextConfig=cuba-spring.xml spring.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.tempDir">
@ -1120,7 +1120,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<listitem>
<para>Конфигурационный параметр, задающий набор файлов <link linkend="views.xml">views.xml</link>, автоматически развертываемых на старте приложения. См. <xref linkend="views"/></para>
<para>Используется во всех стандартных <link linkend="app_tiers">блоках</link>.</para>
<para>Пример:<programlisting>cuba.viewsConfig=cuba-views.xml reports-views.xml sales-views.xml</programlisting></para>
<para>Пример:<programlisting>cuba.viewsConfig=cuba-views.xml reports-views.xml views.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry id="cuba.windowConfig">
@ -1133,7 +1133,7 @@ menu-config.sales$Customer.lookup=Customers</programlisting></para>
<link linkend="resources">Resources</link>
</code>.</para>
<para>Используется в блоках Web Client и Desktop Client.</para>
<para>Пример:<programlisting>cuba.windowConfig=cuba-web-screens.xml sales-web-screens.xml</programlisting></para>
<para>Пример:<programlisting>cuba.windowConfig=cuba-web-screens.xml web-screens.xml</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>