spring-boot-migrator
spring-boot-migrator copied to clipboard
Provide a central component to decide if an application is a Spring Boot app or not
What needs to be done
Some Actions and Recipes need to know if a module defines a Spring Boot application (deployable).
Currently, we assume all Spring Boot applications have a @SpringBootApplication annotated class.
Why it needs to be done
There are more ways to declare a Spring Boot application than adding a @SpringBootApplication annotation.
These would currently not be understood as Spring Boot applications.
What needs to be done
- [ ] Create a list of all possibilities to define Spring Boot application
- [ ] Implement a centralized component that has this knowledge
- [ ] Refactor existing code (like
AddSpringBootApplicationPropertiesActionto use this component)
Additional Information
#225
From the team:
A class with a main method and SpringApplication or SpringApplicationBuilder would be a pretty good sign, but there are lots of ways users could structure their apps. The could have a class with main that delegates off to a different class. If you're able to poke at Maven you might be able to look for the repackage goal being used (as long as skip isn't set). Then again, devs might be using the shade plugin so that wouldn't work always either.