Skip to content

Sync#646

Merged
nixel2007 merged 44 commits into
masterfrom
develop
Jul 15, 2026
Merged

Sync#646
nixel2007 merged 44 commits into
masterfrom
develop

Conversation

@nixel2007

Copy link
Copy Markdown
Member

No description provided.

dependabot Bot and others added 30 commits June 5, 2026 21:32
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 6.0.3 to 6.1.0.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](junit-team/junit-framework@r6.0.3...r6.1.0)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps org.slf4j:slf4j-api from 2.0.17 to 2.0.18.

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-version: 2.0.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps org.sonarqube from 7.3.0.8198 to 7.3.1.8318.

---
updated-dependencies:
- dependency-name: org.sonarqube
  dependency-version: 7.3.1.8318
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [io.github.1c-syntax:utils](https://github.com/1c-syntax/utils) from 0.7.0 to 0.7.2.
- [Release notes](https://github.com/1c-syntax/utils/releases)
- [Commits](1c-syntax/utils@v0.7.0...v0.7.2)

---
updated-dependencies:
- dependency-name: io.github.1c-syntax:utils
  dependency-version: 0.7.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…-syntax-utils-0.7.2

build(deps): bump io.github.1c-syntax:utils from 0.7.0 to 0.7.2
…nit-bom-6.1.0

build(deps): bump org.junit:junit-bom from 6.0.3 to 6.1.0
…f4j-api-2.0.18

build(deps): bump org.slf4j:slf4j-api from 2.0.17 to 2.0.18
…e-7.3.1.8318

build(deps): bump org.sonarqube from 7.3.0.8198 to 7.3.1.8318
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…ons/checkout-7

build(deps): bump actions/checkout from 6 to 7
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.5.1 to 9.6.0.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](gradle/gradle@v9.5.1...v9.6.0)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#615)

Bumps [com.ginsberg:junit5-system-exit](https://github.com/tginsberg/junit5-system-exit) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/tginsberg/junit5-system-exit/releases)
- [Changelog](https://github.com/tginsberg/junit5-system-exit/blob/master/CHANGELOG.md)
- [Commits](tginsberg/junit5-system-exit@v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: com.ginsberg:junit5-system-exit
  dependency-version: 2.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v6.2.0...v6.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…ons/setup-python-6.3.0

build(deps): bump actions/setup-python from 6.2.0 to 6.3.0
Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.6.0 to 9.6.1.
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](gradle/gradle@v9.6.0...v9.6.1)

---
updated-dependencies:
- dependency-name: gradle-wrapper
  dependency-version: 9.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…er-9.6.1

build(deps): bump gradle-wrapper from 9.6.0 to 9.6.1
AccessDeniedException
* фикстуры ssl32 (8.5)

* 1. фикс парсинга предопределенных значений
2. фикс тестов ssl

* обновлены фикстуры ssl31

* фикс
Bumps org.jreleaser from 1.24.0 to 1.25.0.

---
updated-dependencies:
- dependency-name: org.jreleaser
  dependency-version: 1.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 6.1.0 to 6.1.1.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](junit-team/junit-framework@r6.1.0...r6.1.1)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 6.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….0 (#627)

Bumps [io.github.1c-syntax:supportconf](https://github.com/1c-syntax/supportconf) from 0.16.0 to 0.17.0.
- [Release notes](https://github.com/1c-syntax/supportconf/releases)
- [Commits](1c-syntax/supportconf@v0.16.0...v0.17.0)

---
updated-dependencies:
- dependency-name: io.github.1c-syntax:supportconf
  dependency-version: 0.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* добавлено чтение измерений перерасчетов

* фиксы
* чтение форм по умолчанию

* убрал лишние поля
* фикстуры

* переработка тестовых утиллит

* Первая часть переработанных тестов

* Вторая часть переработанных тестов

* 1. скорректированы значения интерфейсов по умолчанию
2. хранение пути для макета изменено с Path на URI
3. скорректировано заполнение режима совместимости расширений
4. скорректирован формат длины для стандартных реквизитов кода и номера
5. реализовано чтение стилей и интерфейсов обычного приложения для формата едт
6. скорректированы конверторы для сериализации в json для тестов

* 1. скорректирован алгоритм определения mdotype для некоторых дочерних
2. добавлены тесты и фикстуры для дочерних

* 1. исправлено чтение элементов форм для обоих форматов
2. добавлены тесты для форм

* тесты на макеты

* исключение сериализации uri

* sq fixes
Bumps [io.github.1c-syntax:utils](https://github.com/1c-syntax/utils) from 0.7.2 to 0.8.0.
- [Release notes](https://github.com/1c-syntax/utils/releases)
- [Commits](1c-syntax/utils@v0.7.2...v0.8.0)

---
updated-dependencies:
- dependency-name: io.github.1c-syntax:utils
  dependency-version: 0.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Реализация Solution - объединения конфигурации и расширений в единый объект

- Добавлены классы Solution и ObjectProvenance для слияния конфигураций
с отслеживанием происхождения объектов. MDClasses.createSolution()
теперь возвращает Solution вместо Configuration, содержа объединённую
конфигурацию, базовую конфигурацию, список расширений и карту происхождений.

- ConfigurationConverter разделён на реализации для каждого формата

- Улучшен MDMerger с полной поддержкой дочерних типов:
  - копирование реквизитов, табличных частей, предопределённых значений
  для всех типов-владельцев
  - поддержка регистров, перечислений, задач, расчётов,
  внешних источников данных, планов счетов
  - добавлен mergeAll() с возвратом MergeResult и происхождений

* sq fixes

* tests

* sq fixes
Bumps [io.github.1c-syntax:utils](https://github.com/1c-syntax/utils) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/1c-syntax/utils/releases)
- [Commits](1c-syntax/utils@v0.8.0...v0.9.0)

---
updated-dependencies:
- dependency-name: io.github.1c-syntax:utils
  dependency-version: 0.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
dependabot Bot and others added 14 commits July 13, 2026 21:32
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](junit-team/junit-framework@r6.1.1...r6.1.2)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 6.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Добавлено чтение свойства "Периодичность" (InformationRegisterPeriodicity)
для регистров сведений из форматов конфигуратора и EDT.

- новое перечисление InformationRegisterPeriodicity в mdo.support
- поле informationRegisterPeriodicity в InformationRegister (по умолчанию NONPERIODICAL)
- регистрация EnumConverter в ExtendXStream
- тесты и обновлённые фикстуры (пример непериодического и периодического регистра — КурсыВалют)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgG1X7FPscMdgYMBHQ7CFR
Добавлено чтение свойства "Периодичность" (Periodicity) для регистров
расчета из форматов конфигуратора и EDT.

- новое перечисление CalculationRegisterPeriodicity (Day/Month/Quarter/Year) в mdo.support
- поле periodicity в CalculationRegister (по умолчанию MONTH)
- регистрация EnumConverter в ExtendXStream
- тесты и обновлённые фикстуры
- генератор фикстур GenerateMdoFixtures переведён на запуск через main-метод

Регистры бухгалтерии и накопления свойства "Периодичность" не имеют.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgG1X7FPscMdgYMBHQ7CFR
…eld-vx032j

feat: чтение периодичности регистров сведений и расчета
Профилирование чтения метаданных (mdclasses — ~42% CPU при analyze большой
конфигурации) показало, что TransformationUtils.setValue на каждый узел XML заново
вычислял тип параметра сеттера (getGenericParameterTypes() аллоцирует Type[]) и, для
параметризованных свойств, склеивал "add" + methodName и делал повторный поиск метода.

Кэшируем разобранный сеттер в дескриптор (setter, parameterized, singularAdder) по паре
(класс, свойство). setValue теперь только выбирает целевой метод и вызывает его —
без повторной интроспекции и аллокаций на каждый вызов. Поведение не меняется.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HLvkKQCwBjTHwuZ4EGBQK6
…t ConcurrentHashMap

Профилирование чтения показало, что кэши TransformationUtils (METHODS/TYPES/SETTERS)
на ConcurrentSkipListMap с компаратором CASE_INSENSITIVE_ORDER — крупнейший прикладной
hotspot чтения: ~6% CPU уходит на ConcurrentSkipListMap.doGet + StringLatin1.compareToCI
при поиске метода/типа по имени XML-узла.

Регистронезависимость нужна лишь при первом резолве (скан equalsIgnoreCase по методам
класса), а не на каждый поиск в кэше. Переводим кэши на ConcurrentHashMap с точным
ключом-именем узла (имена узлов повторяются и интернированы Xerces) — поиск O(1) по хешу
без CI-сравнений. Первый резолв по-прежнему матчит имя регистронезависимо.

Доступ к кэшу — get()-first, а не computeIfAbsent с захватывающей лямбдой:
ConcurrentHashMap.computeIfAbsent не встраивается JIT-ом, из-за чего лямбда-функция
отображения перестаёт скаляризоваться escape-анализом и аллоцируется на каждый вызов.
На попадании в кэш (горячий путь) лямбда не создаётся.

Замеры (JMH MDClassesBenchmark на cpm, JFR sample share — устойчив к шуму машины):
- доля CI-поиска в CPU чтения: 6.0% -> 1.1% (-4.9 п.п.);
- аллокации: без изменений (5078 -> 5077 МБ/чтение), лямбды кэша не аллоцируются;
- wall: 9065 -> 8887 мс (в пределах шума).

Поведение не меняется. Тесты TransformationUtilsTest и интеграционные MDOReaderTest зелёные.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HLvkKQCwBjTHwuZ4EGBQK6
…ap contention

Профилирование чтения показало, что QNameMap.getJavaClassName вызывается на каждый
XML-элемент и делает get по Collections.synchronizedMap. Метаданные читаются
параллельно (parallelStream), поэтому все потоки сериализуются на мониторе одной
общей карты — по профилю ~5% CPU уходит в SynchronizedMap.get.

Вводим ConcurrentQNameMap с картами на ConcurrentHashMap (чтение без блокировок).
Отображения регистрируются один раз до чтения, во время чтения карты только читаются.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HLvkKQCwBjTHwuZ4EGBQK6
get()-first проверял значение кэша (Optional) на null — Sonar S2789 (Optional не
должен быть null). Убираем Optional из значений кэшей METHODS/TYPES/SETTERS: храним
сырые Method/Type/SetterDescriptor, а отрицательный результат — через сентинелы
(в ConcurrentHashMap нельзя хранить null). Перф opt-A сохранён: CI-поиск ~1% CPU,
аллокации 5078 МБ/чтение (без изменений), лямбды кэша не аллоцируются.

Заодно упрощён perClassCache: лямбда k -> new ConcurrentHashMap<>() незахватывающая
(синглтон), поэтому computeIfAbsent там безопасен по аллокациям — get()-first обёртка
не нужна.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HLvkKQCwBjTHwuZ4EGBQK6
…r-cache

perf(reader): кэш дескриптора сеттера в TransformationUtils
…ap-cache

perf(reader): CI skip-list кэши → get-first ConcurrentHashMap
- registerMapping помечен synchronized, чтобы соответствовать контракту родителя
  QNameMap (Sonar S3551); метод вызывается только на этапе настройки, на горячий
  путь чтения не влияет.
- Добавлен ConcurrentQNameMapTest (регистрация/резолв, фолбэки) — покрытие нового
  класса.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HLvkKQCwBjTHwuZ4EGBQK6
perf(reader): lock-free ConcurrentQNameMap (снятие контеншена на synchronizedMap)
…nit-bom-6.1.2

build(deps): bump org.junit:junit-bom from 6.1.1 to 6.1.2
…-syntax-utils-0.9.0

build(deps): bump io.github.1c-syntax:utils from 0.8.0 to 0.9.0
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 72d688ef-6113-49a9-a853-92890ec6a248

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nixel2007
nixel2007 merged commit 2c3a7fc into master Jul 15, 2026
16 checks passed
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants