Apache, Tomcat, Eclipse

Our favourite dev stack

  • The combination of Apache, Tomcat and Eclipse is probably the favourite development environment of our Java Web-app developer teams. Apache and Tomcat are used in the production environment too, but we clubbed all three together here because this trio has almost become inseparable in the way we work. We do all our development on Linux systems, and deployment may be on MS&Windows servers in some cases. But this stack remains unchanged.

  • Apache We have been using Apache from its inception. Our founding team used to use the NCSA httpd in the mid-nineties, and we looked at Apache as a Johnny-come-lately when people began talking about it.

    Apache is the most popular Web server in existence today. It is probably the only popular Web server used on both Unixen and MS Windows servers. It has been accused of becoming bloated, but its rich features, high performance and excellent stability has helped it retain its fan following and weather criticism. In fact, many extensions of Apache have become so popular that a subset of Apache users will not find it easy to migrate to less capable Web servers. Over time, a lot of application execution runtimes have integrated into Apache, e.g. the mod_perl module integrates a Perl interpreter into Apache and improves performance of Perl/CGI programs.

    We have often built Apache from source for various projects as needed, stripping or adding modules to tune its behaviour. We have configured multiple instances of Tomcat to work behind a single Apache server, using mod_rewrite to redirect specific types of URLs to specific Tomcat instances.

    Today the Apache Foundation has grown in size. What we call "Apache" is just the httpd, one of their dozens of projects. We observed with interest the recent struggles for the control of Java which were played out by various players after Oracle acquired Sun, and we hope that our relationship with the Apache suite of products will grow.

  • Tomcat is a servlet container which executes Java servlets. There are various other containers including some which support EJB/J2EE standards in addition to servlets. Tomcat has remained very popular.

    We have been using Tomcat in customer projects for the since 2001, before Tomcat v4 was released. We studied JavaBeans, EJB, J2EE, and decided to focus on servlets for our Web application projects. Tomcat was a very suitable servlet environment for our needs. In 2004, we deployed one project on Tomcat v4. After a few years, we jumped to Tomcat v6 at all sites. We have not yet explored v7.

    We have had many interesting experiences working with Tomcat -- some of them are documented in the page on Java.

  • Eclipse Eclipse is an integrated development environment for programmers in various languages. In particular, Java programmers use Eclipse almost exclusively. It bundles source editing, syntax-directed help, and runtime/test environments which allow programmers to compile and execute pieces of code without leaving the environment. This approach, first popularised by Turbo Pascal v3 on MS-DOS, has since completely captured the programming community. For perhaps two decades, the Unix community used Emacs (an extremely full-featured open source text editor with macro extension capability) as an integrated development environment with almost Eclipse-like features. Today's generation of young programmers have not heard of Emacs; they use Eclipse.

    We use Eclipse for all our projects in Java and some of the work we do in other PL. We integrate Eclipse with our SVN repository for direct check-in and team collaboration.