Skip to content

Commit e31cd97

Browse files
committed
v2.1
1 parent dde108d commit e31cd97

11 files changed

+8814
-7998
lines changed

CHANGELOG.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
11
# SysConfigFile Changelog
22

3-
see also [Releases on GitHub](https://github.com/mazzy-ax/SysConfigFile/releases)
3+
see also [Releases on GitHub](https://github.com/mazzy-ax/SysConfigFile/releases) and [Unreleased](https://github.com/mazzy-ax/SysEventLog/compare/2.1.0...main) on GitHub.
4+
5+
## [2.1.0](https://github.com/mazzy-ax/SysConfigFile/compare/2.0.0...2.1.0) - 2021-02-25
6+
7+
Исправлено:
8+
9+
* метод `filePath()` теперь пытается найти конфигурационный файл не в файле с указанным именем и с расширением `.config`,
10+
`.config.xml`, `xml`, а также в файле, к имени расширение не добавляется.
11+
12+
Если ни один конфигурационный файл не найден, то, как и прежде, используется имя с расширением `.config`.
13+
14+
Если в config-каталоге присутствуют несколько конфигурационных файлов с одинаковым именем, но с разными расширениями,
15+
то будет возвращен первый существующий с расширением в порядке `.config`, `.config.xml`, `xml`, без расширения.
16+
17+
* в методе `filePath()` предусмотрен сценарий, когда нужно искать конфигурационные файлы не только с разными расширениями,
18+
но и в разных каталогах и даже с разными именами. Теперь это просто реализовать.
19+
20+
* метод `load()` проверяет существование файла перед загрузкой
21+
22+
Добавлено:
23+
24+
* добавлены тестовые методы для тестирования нового поведения в методе `filePath()`
425

526
## CRLF в .xpo-файлах - 2020-02-28
627

README.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SysConfigFile 2.0
1+
# SysConfigFile 2.1
22

33
[project]:https://github.com/mazzy-ax/SysConfigFile
44
[license]:https://github.com/mazzy-ax/SysConfigFile/blob/master/LICENSE
@@ -19,8 +19,8 @@
1919

2020
Класс `SysConfigFile` предполагает:
2121

22-
1. параметры хранятся централизовано на сервере в небольших xml-файлах с расширением `.config`
23-
1. имя config-файла по умолчанию `Axapta.config` (имя можно задать в `new` или в конструкторе)
22+
1. параметры хранятся централизовано на сервере в небольших xml-файлах с расширением `.config` или `.config.xml`
23+
1. имя config-файла по умолчанию `Axapta` (имя можно задать в `new` или в конструкторе)
2424
1. каталог по умолчанию `%Appl%\Config` (каталог можно задать в `new` или в конструкторе, изменить можно в parm-методе)
2525
1. параметр хранится как xml-элемент, а значение параметра хранится как текстовое значение xml-элемента. Например, `<name>Microsoft Dynamics AX</name>`
2626
1. пустые xml-элементы трактуются как `true` методом `getBoolean` и как пустое значение методом `get`. См. [Пример config-файла](#Пример-config-файла)
@@ -114,6 +114,18 @@ SysConfigFile::value('id', 'PrintSrv');
114114

115115
При желании можно указать и каталог, где хранится конфиг (см. тестирующий класс `SysConfigFileTest`). По умолчанию класс использует каталог `Config` внутри каталога приложения. К каталогу приложения `%Appl%` гарантировано имеют доступ все AOS кластера. Если админы не запретили специально доступ к каталогам внутри `%Appl%`, то к подкаталогу `%Appl%\Config` доступ скорее всего будет.
116116

117+
## Расширения config-файлов
118+
119+
Начиная с версии 2.1 класс `SysConfigFile` пытается найти конфигурационный файл в файлах с расширением `.config`, `.config.xml`, `.xml`,
120+
а также в файле с именем конфигурации.
121+
122+
Если в Config-каталоге присутствует несколько конфигурационных файлов с одинаковым именем, но с разными расширениями,
123+
то будет возвращен первый существующий в указанном порядке: `.config`, `.config.xml`, `.xml`, пустое расширение.
124+
125+
Если ни один конфигурационный файл не найден, то, как и прежде, используется имя с расширением `.config`.
126+
127+
См. метод `filePath()`
128+
117129
## Валидация
118130

119131
### Проверка синтаксиса config-файла

0 commit comments

Comments
 (0)