Приложение C: Системные свойства

Системные свойства задаются при запуске JVM с помощью аргумента командной строки -D и могут быть получены или установлены методами getProperty(), setProperty() класса System.

Системные свойства можно использовать для установки или переопределения значений свойств приложения. Например, следующий аргумент командной строки переопределит значение свойства cuba.connectionUrlList, которое обычно задается в файле web-app.properties:

-Dcuba.connectionUrlList=http://somehost:8080/app-core
Warning

Имейте в виду, что системные свойства влияют на всю JVM, то есть все блоки приложения, выполняющиеся на данной JVM, получат одинаковое значение свойства.

Ниже приведены системные свойства, используемые в платформе, но не являющиеся свойствами приложения.

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";