Приложение C: Системные свойства
Системные свойства задаются при запуске JVM с помощью аргумента командной строки -D
и могут быть получены или установлены методами getProperty()
, setProperty()
класса System
.
Системные свойства можно использовать для установки или переопределения значений свойств приложения. Например, следующий аргумент командной строки переопределит значение свойства cuba.connectionUrlList, которое обычно задается в файле web-app.properties
:
-Dcuba.connectionUrlList=http://somehost:8080/app-core
Warning
|
Имейте в виду, что системные свойства влияют на всю JVM, то есть все блоки приложения, выполняющиеся на данной JVM, получат одинаковое значение свойства. |
Warning
|
Системные свойства кэшируются фреймворком на старте сервера, поэтому ваше приложение не должно полагаться на возможность переопределения свойства приложения с помощью изменения системного свойства во время работы приложения. Если вам абсолютно необходимо сделать это, сбросьте кэш после изменения системного свойства с помощью метода |
Ниже приведены системные свойства, используемые в платформе, но не являющиеся свойствами приложения.
- logback.configurationFile
-
Определяет местонахождение файла конфигурации фреймворка Logback.
Для блоков приложения, работающих на веб-сервере Tomcat, данное системное свойство задается в файлах
tomcat/bin/setenv.bat
иtomcat/bin/setenv.sh
. По умолчанию оно указывает на конфигурационный файлtomcat/conf/logback.xml
.Для Desktop Client, если данное свойство не задано при запуске JVM, оно задается в коде самого приложения и по умолчанию указывает на файл
cuba-logback.xml
, расположенный в корне CLASSPATH. Подробнее см. Настройка логирования в десктоп-клиенте.
- cuba.desktop.home
-
Для блока Desktop Client задает расположение домашнего каталога, в котором по умолчанию находятся каталоги, определяемые свойствами приложения cuba.confDir, cuba.logDir, cuba.tempDir, cuba.dataDir.
Если данное свойство не задано при запуске JVM, то будет использовано значение
${user.home}/.haulmont/cuba
, которое можно изменить в прикладном проекте, переопределив методgetDefaultHomeDir()
классаcom.haulmont.cuba.desktop.App
.
- cuba.unitTestMode
-
Данное системное свойство устанавливается в значение
true
в режиме выполнения интеграционных тестов базовым классомCubaTestCase
.Пример использования:
if (!Boolean.valueOf(System.getProperty("cuba.unitTestMode"))) return "Not in test mode";