jnioche opened a new pull request, #8443:
URL: https://github.com/apache/storm/pull/8443

   ## Context
   
   Storm was originally written in Clojure. 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 are the main reason the Clojure 
dependency (1.12.4, carbonite, tools.logging, clojure-maven-plugin, shade 
transformer) is still in the build. Porting them to Java enables full removal 
of the Clojure stack.
   
   The Java testing infrastructure is already mature: `Testing.java` provides 
33 public methods (`completeTopology`, `readTuples`, `multiseteq`, 
`withSimulatedTime`, etc.), and JUnit 5, Mockito 5.14, and Awaitility 4.3 are 
all available. 48 Java test files already exist under `storm-server/src/test/`.
   
   ## Summary                                                
   
     First phase of porting Clojure tests to Java to enable eventual removal of 
the                                                                             
                                                                                
 
     Clojure dependency. Ports 8 test functions from 2 Clojure files to 
Java/JUnit 5.
                                                                                
                                                                                
                                                                                
 
     ## Changes                                                                 
                                                                                
                                                                                
 
                                                                                
                                                                                
                                                                                
 
     | Clojure source | Java target | Tests |                                   
                                                                                
                                                                                
 
     |---|---|---|                                             
     | `storm-core/test/clj/org/apache/storm/versioned_store_test.clj` | 
`storm-core/test/jvm/org/apache/storm/utils/VersionedStoreTest.java` | 2 |
     | `storm-core/test/clj/org/apache/storm/trident/tuple_test.clj` | 
`storm-core/test/jvm/org/apache/storm/trident/TridentTupleViewTest.java` | 6 |  
                                                                                
          
                                                                                
                                                                                
                                                                                
 
     **Not ported:** `serialization_test.clj` (1 test) — only tests 
Clojure-specific data                                                           
                                                                                
             
     types (keywords, sets, maps) that won't exist after Clojure removal. The 
existing                                                                        
                                                                                
   
     Java `SerializationTest` already covers Java type roundtrips.              
                                                                                
                                                                                
 
                                                                                
                                                                                
                                                                                
 
     ## Context                                                                 
                                                                                
                                                                                
 
                                                                                
                                                                                
                                                                                
 
     This is Phase 1 of an 8-phase plan to port all ~107 Clojure test functions 
to Java,                                                                        
                                                                                
 
     enabling full removal of the `storm-clojure`, `storm-clojure-test` modules 
and the
     Clojure build dependency. The Clojure test files are not deleted yet — 
that happens                                                                    
                                                                                
     
     in the final cleanup phase after all tests are ported.                     
                                                                                
                                                                                
 
                                                                                
                                                                                
                                                                                
 
     ## Test plan                                                               
                                                                                
                                                                                
 
                                                                                
                                                                                
                                                                                
 
     - [x] `mvn test -pl storm-core 
-Dtest="VersionedStoreTest,TridentTupleViewTest"` — 8 tests, all pass
   
     🤖 Generated with [Claude Code](https://claude.com/claude-code)             
                                                                                
                                                                                
      
   


-- 
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