spring-boot-migrator icon indicating copy to clipboard operation
spring-boot-migrator copied to clipboard

Provide a central component to decide if an application is a Spring Boot app or not

Open fabapp2 opened this issue 3 years ago • 0 comments

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 AddSpringBootApplicationPropertiesAction to 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.

fabapp2 avatar Aug 15 '22 16:08 fabapp2