I just discovered that the project which I'm working on was using iText but it is expected to be released under the Apache v2 license. As I understood the only way to use the free AGPL version of iText is to release the whole project under the same license, AGPL. The other alternative is to buy a license. Am I right?

Would it be possible to use it and release the whole project as Apache v2, since right now the iText library is used as a maven dependency, without any modification? Maybe by highlighting the use of such library? Would it be legal to use it in a different microservice, let's say the report-ms, and call it from the other project, then just releasing the report-ms under AGPL?

1 Answer 1


The Apache 2 license and the AGPLv3 are compatible. Here, this likely means that you can release your own source code under the Apache 2 license. However, the software as a whole including the AGPLv3 libraries can only be distributed under the AGPLv3 license. This means that the source code for your parts must be provided as well.

How the AGPLv3 dependency is managed is irrelevant. By having the user fetch the AGPLv3 components from somewhere else, you can at most argue that you aren't responsible for providing the license and source code for the AGPLv3 components. However, if the AGPLv3 components are installed automatically, that is functionally indistinguishable from bundling them with your software.

It is generally OK to split a software into clearly separate programs where one of them is governed by an A/GPL license and the other isn't. To be clearly separate, they should be able to run independently and should not communicate by sharing internal data structures.

Whether splitting your software into such services is helpful to you depends: either way, you can publish your own source code under Apache 2, either way the software as a whole will at least contain AGPLv3 parts. Using separate programs is mostly useful when some component is A/GPLv3 incompatible, e.g. proprietary software or GPLv2 libraries.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.