Reclaiming Java “main()”

Did it ever bother you that none of your Java code is directly runnable? Wouldn’t it be nice if your webapp would behave like a regular UNIX command and did not require a container.

Java Containers

main() Method and Runnable Jar

java -cp lib1.jar:lib2.jar com.example.Main arg1 arg2
java -cp lib1.jar:lib2.jar -jar app.jar arg1 arg2
java -jar app-with-dependencies.jar arg1 arg2

Container-less Frameworks

Opinionated Too Much

@SpringBootApplication( 
exclude = { LiquibaseAutoConfiguration.class }
)

Can We Do Better?

ObjectStyle ; Open Source: ApacheCayenne, Agrest, Bootique, and more…

ObjectStyle ; Open Source: ApacheCayenne, Agrest, Bootique, and more…