I've just encountered an issue regarding licensing with spring-boot-starter-aop
.
spring-boot-starter-aop
comes with a non-optional compile transitive dependency to aspectjweaver
.
aspectjweaver
though is licensed under EPL 1.0 which as far as I understand requires any project using it to have its source code made public. Since we're developing a commercial product we cannot make the code public.
Does that mean that Spring AOP can only be used for open source projects? Or is this a problem only if I add the dependency through Spring Boot Starter. Is there any other way to use Spring AOP without aspectjweaver
?
Moreover, other Spring Boot Starters have a dependency on spring-boot-starter-aop
like spring-boot-starter-data-jpa
(for some reason). But in this case I was able to exclude just the aspectjweaver
dependency so there would be no licensing infringements and apparently the project still works as intended.
EPL does not prevent you from building closed proprietary software using EPL licensed libraries.
You don't need to worry - there are thousands of closed source projects built on the top of Spring AOP.