Skip to content

Commit eeeb836

Browse files
maltesanderclaude
andcommitted
feat: Vendor Hadoop XML / Java properties writer in framework
Replaces product-config's writer module. Lives in framework::writer and renders hive-site.xml (Hadoop XML) and security.properties (Java properties), matching product-config's output. Also scaffolds controller/build with placeholders for the per-file builders. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 262333b commit eeeb836

12 files changed

Lines changed: 167 additions & 0 deletions

File tree

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const_format = "0.2"
2020
fnv = "1.0"
2121
futures = { version = "0.3", features = ["compat"] }
2222
indoc = "2.0"
23+
java-properties = "2.0"
2324
pin-project = "1.1"
2425
rstest = "0.26"
2526
semver = "1.0"
@@ -30,6 +31,7 @@ snafu = "0.9"
3031
strum = { version = "0.28", features = ["derive"] }
3132
tokio = { version = "1.52", features = ["full"] }
3233
tracing = "0.1"
34+
xml = "1.3"
3335

3436
[patch."https://github.com/stackabletech/operator-rs.git"]
3537
stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "smooth-operator" }

rust/operator-binary/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const_format.workspace = true
1818
fnv.workspace = true
1919
futures.workspace = true
2020
indoc.workspace = true
21+
java-properties.workspace = true
2122
pin-project.workspace = true
2223
semver.workspace = true
2324
serde.workspace = true
@@ -26,6 +27,7 @@ snafu.workspace = true
2627
strum.workspace = true
2728
tokio.workspace = true
2829
tracing.workspace = true
30+
xml.workspace = true
2931

3032
[dev-dependencies]
3133
rstest.workspace = true

rust/operator-binary/src/controller.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
33
mod dereference;
44
mod validate;
5+
#[allow(dead_code)] // wired up in a later task
6+
mod build;
57

68
use std::{
79
collections::{BTreeMap, HashMap},
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
//! Builders that turn a `ValidatedCluster` into Kubernetes resources.
2+
3+
pub mod config_map;
4+
pub mod properties;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//! placeholder — implemented in a later task
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//! Per-file builders for the Hive metastore config files.
2+
3+
pub mod core_site;
4+
pub mod hive_site;
5+
pub mod security_properties;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//! placeholder — implemented in a later task
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//! placeholder — implemented in a later task
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//! placeholder — implemented in a later task

0 commit comments

Comments
 (0)