authorjapps/zerocode

Support {{...}} double curly brace based as alternate placeholder delimiter alongside ${...}

Open

#782 创建于 2026年7月15日

在 GitHub 查看
 (4 评论) (0 反应) (1 负责人)Java (447 fork)auto 404
good first issue

仓库指标

Star
 (1,010 star)
PR 合并指标
 (PR 指标待抓取)

描述

Add {{...}} placeholder resolution with identical feature parity to existing ${...}, without changing current ${...} behavior. Both style must work.

Description

Zerocode currently resolves ${...} placeholders in JSON/YAML test steps, target-env property files, and CSV-parameterized steps (via TokenUtils, ZeroCodeAssertionsProcessorImpl, ZeroCodeParameterizedProcessorImpl, and ApplicationMainModule). Users should be able to use {{...}} as an alternative for all the same token types (SYSTEM.PROPERTY:, SYSTEM.ENV:, RANDOM., PARAM., host property keys, etc.), with both delimiters usable side by side, and ${...} continuing to work exactly as before.

Acceptance Criteria

  • All existing ${...} placeholder with all features (system property/env var tokens, random tokens, masked tokens, host property-file key resolution, CSV PARAM tokens, target-env file placeholder resolution) work identically when written as {{...}}.
  • Existing ${...} test suites and fixtures pass unmodified (no regression), and a mixed file using both ${...} and {{...}} in the same test step resolves correctly.
  • Unrelated pre-existing {{...}} usage (WireMock Handlebars templates, e.g. {{localdatetime offset='...'}}) remains untouched/literal since those tokens don't resolve against any known token or property key. (Note: Wiremock integration should be removed in a separate PR -- raise a separate ticket to remove Wiremock integration)

So during the development of this ticket, if Wiremock conflicts(it should not), then remove Wiremock dependencies 1st via a PR(with a notice in README file), then develop this ticket.

Wiremock removal issue is here: https://github.com/authorjapps/zerocode/issues/783

贡献者指南