jongyoul opened a new pull request, #5167:
URL: https://github.com/apache/zeppelin/pull/5167

   ## Summary
   
   - **Move `ZeppelinConfiguration` from `zeppelin-interpreter` to 
`zeppelin-zengine`** so it is no longer included in the shaded interpreter JAR. 
This prevents the Maven shade plugin from corrupting config string literals, 
which caused classpath-order-dependent configuration loading failures.
   - **Replace `ZeppelinConfiguration` usage in `zeppelin-interpreter` with 
`Properties`-based configuration** across `InterpreterLauncher`, 
`LifecycleManager`, `RecoveryStorage`, `DependencyResolver`, and all launcher 
plugins (Docker, K8s, YARN, Flink).
   - **Update callers** in `zeppelin-zengine`, `zeppelin-server`, `flink`, and 
`markdown` interpreter modules.
   
   ## Motivation
   
   `ZeppelinConfiguration` in `zeppelin-interpreter` gets processed by the 
Maven shade plugin, which corrupts string literals (e.g., `org.apache.zeppelin` 
→ `unshaded.org.apache.zeppelin`). This causes config keys to mismatch at 
runtime depending on classpath ordering. Moving it to `zeppelin-zengine` (which 
is not shaded) permanently eliminates this class of bugs.
   
   As discussed by the community: *"ZeppelinConfiguration belongs to the 
Zeppelin server, and the Zeppelin interpreter should really only work on a 
HashMap with ConfigKey and ConfigValue."*
   
   ## Changes
   
   | Area | Change |
   |------|--------|
   | `zeppelin-interpreter` (core) | Remove `ZeppelinConfiguration` imports; 
use `Properties` for config |
   | `InterpreterLauncher` | `ZeppelinConfiguration zConf` → `Properties 
zProperties` |
   | `LifecycleManager` / `RecoveryStorage` | Constructor takes `Properties` 
instead of `ZeppelinConfiguration` |
   | `DependencyResolver` | Accept individual config values instead of 
`ZeppelinConfiguration` |
   | Launcher plugins (7 files) | Updated to `Properties`-based API |
   | `zeppelin-zengine` | `PluginManager` passes derived values (absolute 
paths) via Properties |
   | `ZeppelinConfiguration.java` | Moved from `zeppelin-interpreter` → 
`zeppelin-zengine` |
   
   **50 files changed, +320 −1591 lines** (net reduction ~1271 lines)
   
   ## Test Plan
   
   - [ ] CI: `core.yml` - Core module tests
   - [ ] CI: `core.yml` - Interpreter tests (Spark, Flink)
   - [ ] CI: `frontend.yml` - E2E tests
   - [ ] CI: `quick.yml` - RAT license check
   - [ ] Verify shaded JAR does not contain `ZeppelinConfiguration`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to