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]

Reply via email to