jnioche opened a new issue, #8445: URL: https://github.com/apache/storm/issues/8445
# Port Clojure tests to Java and remove Clojure dependency
## Background
Apache Storm was originally written in Clojure. Over the years the core
was rewritten
in Java, but ~5,000 lines of Clojure integration tests remain in
`storm-core/test/clj/`
(107 test functions across 13 files). These tests are the main reason the
project still
carries a Clojure build dependency (Clojure 1.12.4, carbonite,
tools.logging,
clojure-maven-plugin, and a custom Maven shade transformer).
The Java testing infrastructure is already mature — `Testing.java`
provides 33 public
utility methods, and JUnit 5, Mockito, and Awaitility are all available.
48 Java test
files already exist under `storm-server/src/test/`.
## Goal
Port all Clojure test functions to Java/JUnit 5, then remove the
`storm-clojure`,
`storm-clojure-test` modules and all Clojure build infrastructure. This
eliminates a
language dependency, simplifies the build, and makes the test suite
accessible to all
Java contributors.
## Plan
Each phase produces a self-contained PR. Clojure files are not deleted
until the
final cleanup phase, so both test suites coexist during the migration.
| Phase | Clojure files | Tests | Status |
|---|---|---|---|
| 1 | `serialization_test.clj`, `versioned_store_test.clj`,
`trident/tuple_test.clj` | 8 | Done |
| 2 | `scheduler_test.clj`, `multitenant_scheduler_test.clj` | 21 | Done |
| 3 | `cluster_test.clj` | 10 | Planned |
| 4 | `drpc_test.clj`, `grouping_test.clj` | 11 | Planned |
| 5 | `metrics_test.clj`, `security/auth/nimbus_auth_test.clj` | 9 |
Planned |
| 6 | `trident/integration_test.clj` | 9 | Planned |
| 7 | `nimbus_test.clj` | 40 | Planned |
| 8 | Delete all Clojure test/build infrastructure | — | Planned |
### Phase 8 cleanup (final PR)
- Delete `storm-core/test/clj/` entirely
- Delete `storm-clojure/` and `storm-clojure-test/` modules
- Delete `storm-buildtools/maven-shade-clojure-transformer/`
- Delete `storm-starter/src/clj/` examples
- Remove `clojure-maven-plugin` from `storm-core/pom.xml`
- Remove Clojure `<module>` entries and dependency properties from root
`pom.xml`
--
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]
