From 504378ddc228ad8e102f5766d8f31e7aade7f3f5 Mon Sep 17 00:00:00 2001 From: Konstantin Krivopustov Date: Fri, 30 Nov 2012 11:15:31 +0000 Subject: [PATCH] Refs #1633 CUBA documentation (app properties) --- doc/content/manual/ru/chapter_framework.xml | 390 +++++++++--------- doc/content/manual/ru/glossary.xml | 6 +- doc/content/manual/ru/manual.xml | 140 +++---- .../configurationParameters/example1.txt | 6 - .../configurationParameters/example2.txt | 2 - .../configurationParameters/example3.txt | 3 - .../configurationParameters/example4.txt | 3 - .../configurationParameters/example5.txt | 1 - doc/tools/css/style.css | 4 +- 9 files changed, 278 insertions(+), 277 deletions(-) delete mode 100644 doc/content/manual/ru/source/section_architecture/configurationParameters/example1.txt delete mode 100644 doc/content/manual/ru/source/section_architecture/configurationParameters/example2.txt delete mode 100644 doc/content/manual/ru/source/section_architecture/configurationParameters/example3.txt delete mode 100644 doc/content/manual/ru/source/section_architecture/configurationParameters/example4.txt delete mode 100644 doc/content/manual/ru/source/section_architecture/configurationParameters/example5.txt diff --git a/doc/content/manual/ru/chapter_framework.xml b/doc/content/manual/ru/chapter_framework.xml index 67523a7e5c..726ec94c97 100644 --- a/doc/content/manual/ru/chapter_framework.xml +++ b/doc/content/manual/ru/chapter_framework.xml @@ -1614,7 +1614,7 @@ String formattedValue = format.format(value); Интерфейсы инфраструктуры обеспечивают доступ к часто используемой функциональности платформы. Большинство из этих интерфейсов расположены в модуле global и могут быть использованы как на среднем слое, так и в блоках клиентского уровня, но некоторые доступны только коду среднего слоя. Интерфейсы инфраструктуры реализуются бинами Spring Framework, поэтому они могут быть инжектированы в любые другие управляемые компоненты (Managed Beans, сервисы среднего слоя, контроллеры экранов универсального пользовательского интерфейса. Кроме того, как и любые другие бины, интерфейсы инфраструктуры могут быть получены с помощью статических методов класса AppBeans, и использоваться в неуправляемых компонентах (POJO, вспомогательных классах и пр.). -
+
Configuration Позволяет получать ссылки на конфигурационные интерфейсы. Примеры:@Inject @@ -1980,7 +1980,7 @@ Date date = timeSource.currentTimestamp();long Обеспечивает получение значений UUID, в том числе для идентификаторов сущностей. Применение UUID.randomUUID() в прикладном коде не рекомендуется.
-
+
AppContext AppContext - системный класс, в статических полях которого хранятся ссылки на некоторые общие для любого блока приложения компоненты: @@ -2043,220 +2043,224 @@ Date date = timeSource.currentTimestamp();long
Свойства приложения - Основные понятия - Свойства приложения − именованные данные различных типов, определяющие всевозможные аспекты конфигурации и функционирования приложения. - По назначению свойства приложения можно классифицировать следующим образом: - - - Конфигурационные параметры: определяют наборы конфигурационных файлов и некоторые параметры пользовательского интерфейса. Например: cuba.springContextConfig, cuba.web.useLightHeader. - - - Параметры развертывания: различные URL для соединения уровней приложения, тип используемой БД, настройки подсистемы безопасности и т.д. Например: cuba.connectionUrl, cuba.dbmsType, cuba.userSessionExpirationTimeoutSec. - - - Параметры времени выполнения: активность аудита, параметры отсылки email и т.д. Например, cuba.security.EntityLog.enabled, cuba.email.smtpHost. - - - Работа со свойствами приложения - - Программный доступ к свойствам - Основной способ доступа к свойствам приложения из программного кода − использование механизма конфигурационных интерфейсов. Кроме того, все свойства конфигурации и развертывания доступны через методы класса com.haulmont.cuba.core.sys.AppContext. - - - Принадлежность уровням - Как правило, некоторое свойство принадлежит только одному или нескольким уровням приложения. Например, cuba.persistenceConfig имеет смысл только дляMiddleware, cuba.web.useLightHeader − только для Web Client, а cuba.springContextConfig − для всех уровней. - Принадлежность к уровню означает, что если Вы хотите задать значение некоторому свойству, это необходимо сделать на всех уровнях, которым данное свойство принадлежит (смотрите Хранение значений свойств). +
+ Основные понятия + Свойства приложения − именованные данные различных типов, определяющие всевозможные аспекты конфигурации и функционирования приложения. + По назначению свойства приложения можно классифицировать следующим образом: + + + Конфигурационные параметры - задают наборы конфигурационных файлов и некоторые параметры пользовательского интерфейса, т.е. определяют функциональность приложения. + Например: cuba.springContextConfig, cuba.web.useLightHeader. + + + Параметры развертывания - различные URL для соединения блоков приложения, тип используемой БД, настройки подсистемы безопасности и т.д. + Например: cuba.connectionUrl, cuba.dbmsType, + cuba.userSessionExpirationTimeoutSec + . + + + Параметры времени выполнения - активность аудита, параметры отсылки email и т.д. + Например: cuba.security.EntityLog.enabled, cuba.email.smtpHost. + + + Как правило, некоторое свойство принадлежит только одному или нескольким блокам приложения. Например, cuba.persistenceConfig имеет смысл только для Middleware, cuba.web.useLightHeader − только для Web Client, а cuba.springContextConfig − для всех блоков. + Принадлежность к блоку означает, что если нужно задать значение некоторому свойству, это необходимо сделать во всех блоках, которым данное свойство принадлежит (и которые используются в приложении). Принадлежность можно выяснить следующими способами: - Из документации + Из документации: см. Проследив использование свойства в коде приложения - Если к свойству есть доступ через Java-интерфейс, то по принадлежности интерфейса модулю проекта. Ниже приведено соответствие модуля объявления интерфейса и принадлежности свойства уровням приложения: - - - global − свойство принадлежит всем уровням - - - coreMiddleware - - - client − Web Client, Web Portal, Desktop Client - - - web − Web Client - - - web-portal − Web Portal - - - desktop − Desktop Client - - + Если к свойству есть доступ через конфигурационный интерфейс, то по принадлежности интерфейса модулю проекта. - - - JMX-интерфейс - Некоторые уровни приложения определяют JMX-интерфейсы для доступа к свойствам приложения. В частности, на уровне Middleware имеется JMX-интерфейс ConfigStorageMBean с именем app-core.cuba:service=ConfigStorage, а на уровне Web Client − ConfigurationMBean с именем app.cuba:service=Configuration. Методы этих интерфейсов работают по отдельности со свойствами конфигурации и развертывания (*AppProperties) и со свойствами времени выполнения (*DbProperties). Это обусловлено различием механизмов хранения этих категорий свойств. - - Хранение значений свойств - - Файлы свойств - Свойства, определяющие конфигурацию и параметры развертывания, задаются в специальных файлах свойств, имеющих имя вида *-app.properties. Каждый уровень приложения имеет набор таких файлов, включающий в себя файлы из базовых проектов платформы и файл текущего приложения. Набор файлов свойств различен для разных уровней приложения и определяется следующим образом: - - - - Для уровней, являющихся веб-приложениями (Middleware, Web Client, Web Portal) набор файлов свойств задается в web.xml в параметре appPropertiesConfig. - - - Для уровня Desktop Client основной способ задания набора файлов свойств − переопределение в приложении метода getDefaultAppPropertiesConfig в классе-наследнике com.haulmont.cuba.desktop.App. - - - Например, набор файлов свойств уровня Middleware проекта shopweb.xml − выглядит следующим образом: - classpath:cuba-app.properties -classpath:shop-app.properties +
+
+ Доступ к свойствам + Основной способ доступа к свойствам приложения из прикладного кода − использование механизма конфигурационных интерфейсов. Кроме того, все параметры конфигурации и развертывания доступны через методы класса + AppContext + . + Некоторые блоки приложения определяют JMX-интерфейсы для доступа к свойствам приложения. В частности, на уровне Middleware имеется JMX-интерфейс + ConfigStorageMBean + , а на уровне Web Client + ConfigurationMBean + . Методы этих интерфейсов работают по отдельности с параметрами конфигурации и развертывания (*AppProperties) и с параметрами времени выполнения (*DbProperties). Это обусловлено различием механизмов хранения этих категорий свойств. +
+
+ Хранение свойств в файлах + Свойства, определяющие конфигурацию и параметры развертывания, задаются в специальных файлах свойств, имеющих имя вида *-app.properties. Каждый блок приложения имеет набор таких файлов, включающий в себя файлы из базовых проектов платформы и файл текущего приложения. Набор файлов свойств определяется следующим образом: + + + Для блоков, являющихся веб-приложениями (Middleware, Web Client, Web Portal) набор файлов свойств задается в web.xml в параметре appPropertiesConfig. + + + Для блока Desktop Client основной способ задания набора файлов свойств − переопределение в приложении метода getDefaultAppPropertiesConfig() в классе-наследнике com.haulmont.cuba.desktop.App. + + + Например, набор файлов свойств блока Middleware проекта sales задается в файле web/WEB-INF/web.xml модуля core, и выглядит следующим образом: + classpath:cuba-app.properties +classpath:sales-app.properties file:${catalina.home}/conf/app-core/local.app.properties - Здесь префикс classpath: означает, что данный файл нужно искать в Java classpath, префикс file: − в файловой системе. Возможно использование системных свойств Java, в данном случае это catalina.home − путь к корню Tomcat. - Порядок перечисления файлов важен, так как значения, указанные в каждом последующем файле заменяют значения одноименных свойств, заданные в предыдущих файлах. Этим достигается переопределение свойств платформы в конкретном приложении. - Последний файл в приведенном наборе − local.app.properties. - Синтаксис - - Обратите внимание на синтаксис ключей и значений в *.properties файлах. + Здесь префикс classpath: означает, что данный файл нужно искать в Java classpath, префикс file: − в файловой системе. Возможно использование системных свойств Java, в данном случае это catalina.home − путь к корню Tomcat. + Порядок перечисления файлов важен, так как значения, указанные в каждом последующем файле заменяют значения одноименных свойств, заданные в предыдущих файлах. Этим достигается переопределение свойств платформы в конкретном приложении. + Последний файл в приведенном наборе − local.app.properties. Он может использоваться для переопределения свойств приложения при развертывании. Если этого файла нет, он игнорируется. Если же во время инсталляции системы требуется переопределение некоторых параметров (как правило различных URL), достаточно создать этот файл и поместить в него переопределяемые свойства. При последующих обновлениях системы такой файл с локальными настройками легко сохранить. + + Правила задания информации в файлах *.properties: - Ключ состоит из латинских букв и цифр, разделенных точкой + Кодировка файла - UTF-8 - Значение пишется после знака равно (=) + Ключ может состоять из латинских букв, цифр, точек и знаков подчеркивания - Значение никогда не берется в кавычки "" или '' + Значение пишется после знака равно (=) - Файловые пути записываются либо в UNIX виде (/opt/haulmont/), либо в Windows виде (c:\\haulmont\\) + Значение не нужно брать в кавычки " или ' - Для различных спецсимволов используются коды (\n \t \r). \ является зарезервированным символом, для вставки в значение экранируется сам собой (\\). -Подробнее: http://docs.oracle.com/javase/tutorial/java/data/characters.html + Файловые пути записываются либо в UNIX виде (/opt/haulmont/), либо в Windows виде (c:\\haulmont\\) - В значениях могут присутствовать спецсимволы (пробелы, табуляции). Внимательно проверяйте значения, скопированные в файл из других программ + Возможно использование кодов \n \t \r. Символ \ является зарезервированным, для вставки в значение экранируется сам собой (\\). +Подробнее см.: http://docs.oracle.com/javase/tutorial/java/data/characters.html + + + Для ввода значения в нескольких строках файла используйте символ \ в конце строки, для того чтобы данное значение продолжалось на следующей строке. - - - Таблица базы данных - Параметры времени выполнения хранятся в БД в таблице SYS_CONFIG. Хранящиеся в БД свойства кэшируются на уровне Middleware. Очистить кэш можно через JMX-интерфейсы app-core.cuba:service=ConfigStorage методом clearCache или app-core.cuba:service=CachingFacade методом clearConfigStorageCache. - - Значения по умолчанию - Если обращение к свойству производится через Java-интерфейс механизма Configuration Parameters и если значение свойства не задано в месте его хранения (файлы *-app.properties или БД), то будет возвращено значение по умолчанию, если оно задано в аннотации соответствующего метода Java-интерфейса. - Подробное описание свойств подсистемы безопасности содержится в Приложении А. + +
+
+ Хранение свойств в базе данных + Параметры времени выполнения хранятся в таблице SYS_CONFIG базы данных. + Такие свойства имеют следующие особенности: + + так как значение свойства хранится в базе данных, оно задается в одном месте, независимо от того, в каких блоках приложения оно используется + + + значение может быть изменено и сохранено во время работы приложения, как через конфигурационный интерфейс, содержащий это свойство, так и через ConfigStorageMBean. + + + Хранящиеся в БД свойства кэшируются на уровне Middleware. Очистить кэш можно с помощью JMX-интерфейсов + ConfigStorageMBean + методом clearCache() или + CachingFacadeMBean + методом clearConfigStorageCache(). + Следует иметь в виду, что на клиентском уровне чтение свойства, хранящегося в БД, приводит к запросу к Middleware, что менее эффективно, чем чтение локального свойства из app.properties. Для уменьшения количества таких запросов клиент кэширует все свойства, хранящиеся в БД, на время жизни экземпляра реализации конфигурационного интерфейса. Поэтому если например в некотором экране UI необходимо несколько раз обратиться к свойствам одного конфигурационного интерфейса, лучше получить ссылку на него при инициализации экрана, и сохранить в поле для последующих обращений к одному и тому же экземпляру. +
Конфигурационные интерфейсы - Подсистема работы с конфигурационными параметрами позволяет сохранять/извлекать пары имя-значение с помощью стандартных Java-интерфейсов. При этом хранилищем параметров может быть база данных, системные свойства Java, и свойства приложения, задаваемые в файлах app.properties. - Рекомендуется использовать только для хранения системных настроек, доступных администратору системы. Для хранения настроек пользователя лучше создавать отдельную сущность для их хранения и использовать стандартный эдитор для редактирования. - Использование - Для создания конфигурационного параметра необходимо: - - - Создать интерфейс, унаследованный от com.haulmont.cuba.core.config.Config - - - Создать методы доступа к параметру (getXXX/setXXX). Возможный тип параметра обсуждается ниже. - - - Добавить интерфейсу аннотацию @Prefix для указания префикса имен входящих в интерфейс параметров - - - Добавить интерфейсу и/или параметру аннотацию @Source для указания источника (места хранения) параметров - - - Например: - - Реализовывать интерфейс не нужно. - Для получения доступа к параметрам используется интерфейс инфраструктуры Configuration или его статический фасад ConfigProvider. - - Стандартный UI для доступа к параметрам, хранящимся в базе данных, предоставляет МБин haulmont.cuba:service=ConfigStorage. Он содержит следующие методы: - - - setProperty(p1, p2) − установить параметр с именем p1 в значение p2 - - - getProperty(p1) − показать параметр с именем p1 - - - removeProperty(p1) − удалить параметр с именем p1 - - - printProperties(p1) − показать все параметры с фильтром на имя p1 по правилам SQL like - - - printProperties − показать все параметры - - - loadSystemProperties − загрузить в System.properties параметры из файла conf/system.properties - - - Возможности - Имена параметров - Имя параметра в БД или в app.properties формируется по следующему принципу: - - - Если на параметре есть аннотация @Property, то берется ее значение - - - Иначе: - - - Если есть аннотация @Prefix, берется ее значение - - - Если нет аннотации @Prefix, то - + Данный механизм позволяет работать со свойствами приложения через методы Java-интерфейсов, что дает следующие преимущества: + + типизированность - прикладной код работает с нужными типами (String, Boolean, Integer и пр.), а не только со строками + + + в прикладном коде вместо строковых идентификаторов свойств используются методы интерфейсов, имена которых подсказываются средой разработки + + + Пример получения значения таймаута транзакции в блоке Middleware:@Inject +protected Configuration configuration; +... +ServerConfig serverConfig = configuration.getConfig(ServerConfig.class); +int timeout = serverConfig.getDefaultQueryTimeoutSec(); + Или при невозможности инжекции Configuration:int timeout = AppBeans.get(Configuration.class) + .getConfig(ServerConfig.class) + .getDefaultQueryTimeoutSec(); +
+ Использование + Для создания конфигурационного интерфейса необходимо: + + + Создать интерфейс, унаследованный от com.haulmont.cuba.core.config.Config (не путать с классом сущности com.haulmont.cuba.core.entity.Config) + + + Добавить интерфейсу аннотацию @Source для указания источника (способа хранения) параметров: - Если интерфейс является внутренним, то берется полное имя включающего класса и добавляется "." + SourceType.SYSTEM - значение свойства будет взято из системных свойств данной JVM, т.е. методом System.getProperty() - Иначе берется полное имя пакета и добавляется "." + SourceType.APP - значение свойства будет взято из файлов app.properties - + + SourceType.DATABASE - значение свойства будет взято из таблицы SYS_CONFIG + + + + + Создать методы доступа к свойству (getter / settter). Если значение свойства не предполагается изменять во время выполнения, метод доступа на запись не нужен. Возможный тип свойства рассмотрен ниже. + + + Добавить методу доступа на чтение аннотацию @Property, определяющую имя свойства. + + + Опционально аннотацию @Source можно задать для отдельного свойства в интерфейсе, если его источник отличается от заданного для всего интерфейса. + + + Например:@Source(type = SourceType.DATABASE) +public interface SalesConfig extends Config { + + @Property("sales.companyName") + String getCompanyName(); +} + Создавать класс реализации конфигурационного интерфейса не нужно - при получении ссылки на интерфейс через Configuration будет автоматически создан необходимый прокси-объект. +
+
+ Типы свойств + Без дополнительных усилий поддерживаются следующие типы свойств: + + String - Добавляется декапитализированное имя метода доступа без get/set/is (см. комментарии к методу com.haulmont.cuba.core.config.ConfigUtil#extendedUncapitalize) + простые типы либо их объектные обертки (boolean, Boolean, int, Integer, etc.) - - - - Источники параметров - В соответствии со значениями com.haulmont.cuba.core.config.SourceType на данный момент возможны 3 источника параметров: app.propperties, System.properties или база данных. - В случае базы данных параметры хранятся в таблице SYS_CONFIG. - Аннотация @Source может быть задана как на весь интерфейс, так и на отдельный параметр. В первом случае она определяет источник всех параметров данного интерфейса. Во втором случае она переопределяет источник для данного параметра, если он отличен от указанного для интерфейса. - Типы параметров - Без дополнительных усилий параметр может быть любого простого типа либо его объектного аналога (String, int, Integer, etc.) либо сущностью, реализующей интерфейс Entity. - Для произвольного типа необходимо реализовать классы TypeStringify и TypeFactory для преобразования значения в строку и из нее, и указать эти классы для параметра с помощью аннотаций @Stringify и @Factory. - Рассмотрим этот процесс на примере типа UUID. - - - Создаем класс com.haulmont.cuba.core.config.type.UuidTypeFactory унаследованный от com.haulmont.cuba.core.config.type.TypeFactory и реализуем в нем метод: - - - - TypeStringify создавать не нужно, т.к. по умолчанию будет использован Object.toString() − в данном случае он нам подходит. - - - Аннотируем параметр: - - - - Значения по умолчанию - Для параметров могут быть заданы значения по умолчанию. Эти значения будут возвращаться, если данный параметр не задан (не существует в БД или в app.properties). - Дефолтное значение может быть задано в виде строки с помощью аннотации @com.haulmont.cuba.core.config.defaults.Default, либо в виде конкретного типа с помощью других аннотаций пакета com.haulmont.cuba.core.config.defaults. - Для сущностей дефолтное значение задается в виде имя_сущности-id-имя_представления, например - - имя представления необязательно. + + классы персистентных сущностей. При обращении к свойству типа сущности происходит загрузка из БД экземпляра, заданного значением свойства. + + + Для поддержки произвольного типа необходимо реализовать классы TypeStringify и TypeFactory для преобразования значения в строку и из нее, и указать эти классы для свойства с помощью аннотаций @Stringify и @Factory. + Рассмотрим этот процесс на примере типа UUID. + + + Создаем класс com.haulmont.cuba.core.config.type.UuidTypeFactory унаследованный от com.haulmont.cuba.core.config.type.TypeFactory и реализуем в нем метод:public Object build(String string) { + if (string == null) + return null; + return UUID.fromString(string); +} + + + TypeStringify создавать не нужно, т.к. по умолчанию будет использован метод toString() − в данном случае он нам подходит. + + + Аннотируем свойство в конфигурационном интерфейсе:@Factory(factory = UuidTypeFactory.class) +UUID getUuidProp(); +void setUuidProp(UUID value); + + +
+
+ Значения по умолчанию + Для свойств конфигурационных интерфейсов могут быть заданы значения по умолчанию. Эти значения будут возвращаться, если данный параметр не задан в месте хранения - в БД или в app.properties. + Значение по умолчанию может быть задано в виде строки с помощью аннотации @Default, либо в виде конкретного типа с помощью других аннотаций пакета com.haulmont.cuba.core.config.defaults:@Property("cuba.email.adminAddress") +@Default("address@company.com") +String getAdminAddress(); + +@Property("cuba.email.delayCallCount") +@Default("2") +int getDelayCallCount(); + +@Property("cuba.email.defaultSendingAttemptsCount") +@DefaultInt(10) +int getDefaultSendingAttemptsCount(); + Для сущностей значение по умолчанию задается строкой вида {entity_name}-{id}-{optional_view_name}, например:@Default("sec$User-98e5e66c-3ac9-11e2-94c1-3860770d7eaf-browse") +User getAdminUser(); + +@Default("sec$Role-a294aef0-3ac9-11e2-9433-3860770d7eaf") +Role getAdminRole(); +
@@ -2378,17 +2382,29 @@ actions.Edit=Edit Как видно из диаграммы, МБин имеет два набора методов, разделенных по интерфейсам ...MBean и ...API. Первый из них служит для управления через JMX, а второй − для вызова из программного кода. Вызовы JMX-интерфейса МБина перехватываются специальным классом − интерцептором MBeanInterceptor.aroundInvoke() (с помощью Spring AOP), который обеспечивает журналирование неперехваченных исключений и установку правильного контекстного ClassLoader.
- CachingFacadeMBean + CachingFacadeMBean CachingFacadeMBean предоставляет методы очистки различных кэшей на уровне Middleware. JMX ObjectName: app-core.cuba:type=CachingFacade
- CachingMBean + CachingMBean CachingMBean предоставляет методы очистки различных кэшей в блоке Web Client. - JMX ObjectName: app.cuba:type=Caching + JMX ObjectName: app.cuba:type=Caching +
+
+ ConfigStorageMBean + ConfigStorageMBean позволяет просматривать и задавать значения свойствам приложения блока Middleware. + Следует иметь в виду, что измененные значения для свойств, хранящихся в файлах, не сохраняются, и действуют только до рестарта данного блока. + JMX ObjectName: app-core.cuba:type=ConfigStorage +
+
+ ConfigurationMBean + ConfigurationMBean позволяет просматривать и задавать значения свойствам приложения блока Web Client, хранящимся в файлах app.properties. + Следует иметь в виду, что измененные значения не сохраняются, и действуют только до рестарта данного блока. + JMX ObjectName: app.cuba:type=Configuration
- ScriptingManagerMBean + ScriptingManagerMBean ScriptingManagerMBean является JMX-фасадом для интерфейса инфраструктуры Scripting . diff --git a/doc/content/manual/ru/glossary.xml b/doc/content/manual/ru/glossary.xml index 0c9a758729..d8b9ae13d9 100644 --- a/doc/content/manual/ru/glossary.xml +++ b/doc/content/manual/ru/glossary.xml @@ -184,7 +184,7 @@ A - + Application Tiers @@ -316,7 +316,7 @@ - + Middleware @@ -329,7 +329,7 @@ Middleware Services - Сервисы среднего слоя предоставляют интерфейс для вызова бизнес-логики клиентами и образуют границу Middleware. Сервисы могут содержать бизнес-логику внутри себя, либо делегировать выполнение Managed Beans. + Сервисы среднего слоя предоставляют интерфейс для вызова бизнес-логики клиентами и образуют границу Middleware. Сервисы могут содержать бизнес-логику внутри себя, либо делегировать выполнение Managed Beans. См. diff --git a/doc/content/manual/ru/manual.xml b/doc/content/manual/ru/manual.xml index b0e36edb7c..134705104d 100644 --- a/doc/content/manual/ru/manual.xml +++ b/doc/content/manual/ru/manual.xml @@ -221,26 +221,9 @@ TODO
- + Описание свойств приложения - - cuba.viewsConfig - - Конфигурационный параметр, задающий набор файлов views.xml, автоматически развертываемых на старте приложения. См. - Используется во всех стандартных блоках. - Пример:cuba.viewsConfig=cuba-views.xml reports-views.xml sales-views.xml - - - - cuba.lazyLoadServerViews - - Указывает, что глобальные представления c Middleware нужно загружать на клиентский уровень не все сразу, а по необходимости. См. - Значение по умолчанию: false - Интерфейс: ClientConfig - Используется в блоках клиентского уровня: Web Client, Web Portal, Desktop Client. - - cuba.availableLocales @@ -253,38 +236,16 @@ Используется во всех стандартных блоках. - - cuba.localeSelectVisible + + cuba.groovyEvaluatorImport - Включает или отключает возможность пользователя выбирать язык -интерфейса при входе в систему. - Значение по умолчанию: true - Интерфейс: GlobalConfig + Задает список классов, импортируемых всеми выполняемыми через + Scripting + выражениями на Groovy. + Имена классов в списке разделяются запятой или точкой с запятой. + Значение по умолчанию: com.haulmont.cuba.core.global.PersistenceHelper Используется во всех стандартных блоках. - - - - cuba.trustedClientPassword - - Пароль, используемый методом LoginService.loginTrusted(). Средний слой может аутентифицировать пользователей, подключающихся через доверенный клиентский блок, без проверки пользовательского пароля. - Это свойство используется в случае, если пароли пользователей не хранятся в БД, и реальную аутентификацию выполняет сам клиентский блок, например, путем интеграции с Active Directory. - Интерфейсы: ServerConfig, WebConfig - Используется в блоках: Middleware, Web Client, Web Portal. - - - - cuba.userSessionExpirationTimeoutSec - - Задает таймаут неактивности сессии пользователя - в секундах. - Значение по умолчанию: 1800 - Интерфейс: ServerConfig - Используется в блоке Middleware. - - Рекомендуется выставлять параметры cuba.userSessionExpirationTimeoutSec и - cuba.httpSessionExpirationTimeoutSec - в одинаковое значение. - + Пример:cuba.groovyEvaluatorImport=com.haulmont.cuba.core.global.PersistenceHelper,com.abc.sales.CommonUtils @@ -302,6 +263,25 @@ + + cuba.lazyLoadServerViews + + Указывает, что глобальные представления c Middleware нужно загружать на клиентский уровень не все сразу, а по необходимости. См. + Значение по умолчанию: false + Интерфейс: ClientConfig + Используется в блоках клиентского уровня: Web Client, Web Portal, Desktop Client. + + + + cuba.localeSelectVisible + + Включает или отключает возможность пользователя выбирать язык +интерфейса при входе в систему. + Значение по умолчанию: true + Интерфейс: GlobalConfig + Используется во всех стандартных блоках. + + cuba.passwordPolicyEnabled @@ -325,21 +305,12 @@ - cuba.web.loginDialogDefaultUser + cuba.trustedClientPassword - Задает имя пользователя по умолчанию. Оно будет автоматически подставляться в экране входа в систему, что удобно в процессе разработки приложения. В режиме эксплуатации приложения в данном свойстве необходимо задать значение <disabled>. - Значение по умолчанию: admin - Интерфейс: WebConfig - Используется в блоке Web Client. - - - - cuba.web.loginDialogDefaultPassword - - Задает пароль пользователя по умолчанию. Он будет автоматически подставляться в экране входа в систему, что удобно в процессе разработки приложения. В режиме эксплуатации приложения в данном свойстве необходимо задать значение <disabled>. - Значение по умолчанию: admin - Интерфейс: WebConfig - Используется в блоке Web Client. + Пароль, используемый методом LoginService.loginTrusted(). Средний слой может аутентифицировать пользователей, подключающихся через доверенный клиентский блок, без проверки пользовательского пароля. + Это свойство используется в случае, если пароли пользователей не хранятся в БД, и реальную аутентификацию выполняет сам клиентский блок, например, путем интеграции с Active Directory. + Интерфейсы: ServerConfig, WebConfig + Используется в блоках: Middleware, Web Client, Web Portal. @@ -367,16 +338,45 @@ - - cuba.groovyEvaluatorImport + + cuba.userSessionExpirationTimeoutSec - Задает список классов, импортируемых всеми выполняемыми через - Scripting - выражениями на Groovy. - Имена классов в списке разделяются запятой или точкой с запятой. - Значение по умолчанию: com.haulmont.cuba.core.global.PersistenceHelper + Задает таймаут неактивности сессии пользователя + в секундах. + Значение по умолчанию: 1800 + Интерфейс: ServerConfig + Используется в блоке Middleware. + + Рекомендуется выставлять параметры cuba.userSessionExpirationTimeoutSec и + cuba.httpSessionExpirationTimeoutSec + в одинаковое значение. + + + + + cuba.viewsConfig + + Конфигурационный параметр, задающий набор файлов views.xml, автоматически развертываемых на старте приложения. См. Используется во всех стандартных блоках. - Пример:cuba.groovyEvaluatorImport=com.haulmont.cuba.core.global.PersistenceHelper,com.abc.sales.CommonUtils + Пример:cuba.viewsConfig=cuba-views.xml reports-views.xml sales-views.xml + + + + cuba.web.loginDialogDefaultUser + + Задает имя пользователя по умолчанию. Оно будет автоматически подставляться в экране входа в систему, что удобно в процессе разработки приложения. В режиме эксплуатации приложения в данном свойстве необходимо задать значение <disabled>. + Значение по умолчанию: admin + Интерфейс: WebConfig + Используется в блоке Web Client. + + + + cuba.web.loginDialogDefaultPassword + + Задает пароль пользователя по умолчанию. Он будет автоматически подставляться в экране входа в систему, что удобно в процессе разработки приложения. В режиме эксплуатации приложения в данном свойстве необходимо задать значение <disabled>. + Значение по умолчанию: admin + Интерфейс: WebConfig + Используется в блоке Web Client. diff --git a/doc/content/manual/ru/source/section_architecture/configurationParameters/example1.txt b/doc/content/manual/ru/source/section_architecture/configurationParameters/example1.txt deleted file mode 100644 index 764014b729..0000000000 --- a/doc/content/manual/ru/source/section_architecture/configurationParameters/example1.txt +++ /dev/null @@ -1,6 +0,0 @@ -@Prefix("cuba.FileUploadConfig.") -@Source(type = SourceType.DATABASE) -public interface FileUploadConfig extends Config -{ - String getUploadDir(); -} \ No newline at end of file diff --git a/doc/content/manual/ru/source/section_architecture/configurationParameters/example2.txt b/doc/content/manual/ru/source/section_architecture/configurationParameters/example2.txt deleted file mode 100644 index b2f0c48410..0000000000 --- a/doc/content/manual/ru/source/section_architecture/configurationParameters/example2.txt +++ /dev/null @@ -1,2 +0,0 @@ -FileUploadConfig config = configuration.getConfig(FileUploadConfig.class); -String uploadDir = config.getUploadDir(); \ No newline at end of file diff --git a/doc/content/manual/ru/source/section_architecture/configurationParameters/example3.txt b/doc/content/manual/ru/source/section_architecture/configurationParameters/example3.txt deleted file mode 100644 index 48943060a8..0000000000 --- a/doc/content/manual/ru/source/section_architecture/configurationParameters/example3.txt +++ /dev/null @@ -1,3 +0,0 @@ -public Object build(String string) { - return UUID.fromString(string); -} \ No newline at end of file diff --git a/doc/content/manual/ru/source/section_architecture/configurationParameters/example4.txt b/doc/content/manual/ru/source/section_architecture/configurationParameters/example4.txt deleted file mode 100644 index 07134fe3ab..0000000000 --- a/doc/content/manual/ru/source/section_architecture/configurationParameters/example4.txt +++ /dev/null @@ -1,3 +0,0 @@ -@Factory(factory = UuidTypeFactory.class) -UUID getUuidProp(); -void setUuidProp(UUID value); \ No newline at end of file diff --git a/doc/content/manual/ru/source/section_architecture/configurationParameters/example5.txt b/doc/content/manual/ru/source/section_architecture/configurationParameters/example5.txt deleted file mode 100644 index 71b34e399d..0000000000 --- a/doc/content/manual/ru/source/section_architecture/configurationParameters/example5.txt +++ /dev/null @@ -1 +0,0 @@ -@Default("sec$User-83075c20-fe23-11df-abc9-3f87313a5ebe-browse") \ No newline at end of file diff --git a/doc/tools/css/style.css b/doc/tools/css/style.css index 0296ad2f55..96a77e969d 100644 --- a/doc/tools/css/style.css +++ b/doc/tools/css/style.css @@ -545,11 +545,11 @@ table .footnote { font-weight: bold; } -.authorinitials, .firstterm, .property { +.authorinitials, .firstterm { font-style: italic; } -.classname,.methodname,.interfacename,.errortext,.type, .varname, .envar { +.property, .classname, .methodname, .interfacename, .errortext, .type, .varname, .envar { font-family: 'Courier New', Courier, monospace; }