I just finished my personal project about writing a simple version of Apache Tomcat. The "simple version" means following the main structure and implementing the basic features of Apache Tocmat. The project does help me a lot in learning about how a server works. It was based on a book which explains the principles of Apache Tomcat. The project was only for educational use and definitely will not get into commercial use. I want to put it on github so my friends can also read it.

Do I need to add the Apache license2.0 to my project?

Also, do I need to follow the naming restriction when it is not a commercial product:

If you use the words "Tomcat" or "Apache" in your product name then you must call your product "... for Apache Tomcat". No other form of product name that includes "Tomcat" or "Apache" is permitted.

which is found on the official page of Apache Tomcat.

Sorry for the silly question, but I do not know much about copyright and licensing.


The book I mentioned contains the source code of Tomcat to help describing the features. Also, I have utilitzed a component of Tomcat jspc in my project. Sorry I didn't explain it clearly in my first post.

1 Answer 1


As I understand your question, you have written a server that offers a subset of the functionality of Apache Tomcat and you based your design on a book that describes the design principles of such a server (using Apache Tomcat source code as illustration) and using some libraries you took from Apache Tomcat.

The Apache 2.0 license is a permissive license that does not restrict what you can choose as a license for your own code too much. The Apache license is incompatible with the GPLv2 license, but most other licenses can be freely combined with it.

You can use nearly any license you want for your server, as long as

  • you include a copy of the Apache license for the parts of the source code that are under that license, alongside the license for your own code
  • if any of the Apache-licensed parts have a NOTICES file, you include a copy of that file (or have a way to display its contents on your UI)

As for using the names Apache and/or Tomcat, those are protected by trademarks and as you are effectively creating a competing product, you should choose a different name for your server. Be creative and don't let yourself be guided by the fact that the big "competitor" is called Tomcat.

  • Thanks to your reply! Actually, the book I mentioned uses some source code in Apache Tomcat to help describing the features which means I did read part of the source code. Besides that, I also utilized one of the components in Apache Tomcat in my project to reduce the workload (jspc). Sorry I didn't explain it clearly in my question.(I have edited it now). But I understand what you mean. I am still restricted to the license of Apache Tomcat in my case. Thanks!
    – Chaozy
    Sep 5, 2020 at 1:47
  • @chaozy, I don't have time to update my answer now, but the situation is not as bad that you can only use the Apache license. Sep 5, 2020 at 6:22
  • I have both read and used the source code of Apache Tocmat in my project. Isn't it enough to restrict me in Apache license?
    – Chaozy
    Sep 6, 2020 at 1:29
  • 1
    @Chaozy, no it isn't. See my update. Sep 6, 2020 at 7:06

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.