Commit ad0c451
refactor: consume the config-file writer from stackable-operator
Replace the hand-rolled Java-properties escaper
(rust/operator-binary/src/controller/build/properties/writer.rs) with
stackable_operator::v2::config_file_writer (moved there via operator-rs
#1217 on the smooth-operator branch). A thin adapter in properties/mod.rs
maps trino's String-valued maps onto the writer's Option<String>-valued
interface; the kuttl-pinned escape behaviours stay covered by unit tests
against the shared writer.
Unlike the other operators this is not a pure relocation: the hand-rolled
escaper (introduced on this branch, never released) had unintentionally
diverged from the product-config writer it replaced. A differential test
showed 8 divergences, all unreachable from operator defaults (the kuttl
smoke snapshot's 157 property lines are unaffected):
- inner/trailing spaces in values: now escaped (read-back identical per the
Java properties spec)
- tab/newline/CR in values: now escaped (the raw output was malformed)
- non-ASCII: now ISO-8859-1-spec behaviour again (error on Latin-1-range
values, \uXXXX beyond) instead of raw UTF-8 pass-through
This restores the exact serialization behaviour of the released operator,
which renders via the identical product-config code.
The base dependency tag moves from stackable-operator-0.111.0 to 0.111.1,
matching the other operators; cargo only substitutes a [patch] whose package
version matches, and the smooth-operator branch carries 0.111.1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 66b2614 commit ad0c451
8 files changed
Lines changed: 299 additions & 308 deletions
File tree
- rust/operator-binary/src
- controller/build
- properties
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments