Datasheet
Apache and Jakarta Tomcat
5
Ant can be used for building applications in any language, and it can be used on any platform that has a
Java 1.1 virtual machine or better. Ant's versatility can also be extended with Java plug-ins. Ant won
awards from both the Software Development and Java World magazines in 2002, and it is extremely
popular amongst developers.
Log4J
Developers generally use logging for two purposes: debugging during development and monitoring
when the system is in production. When developing systems, developers usually prefer logging to be as
verbose as possible, and aren't concerned with its impact on the system's overall performance.
However, when a system is deployed into production, developers want logging to impact performance
as little as possible.
Log4J represents more than five years of work towards creating the ideal logging solution for Java
programs, combining the desire for generation of rich data at development time with the need for
minimal performance degradation in production environments. If your current logging technique is
executing something like System.out.println(), you owe it to yourself to investigate this project
and see what else is possible with logging.
Log4J Versus JDK 1.4 Logging
Java 1.4 introduced a logging mechanism to Java as part of the standard J2SE platform. Log4J has been
in its present form since late 1999, and thus predates the JDK 1.4 logging mechanism by a little more
than 2 years (JDK 1.4 went final in early 2002). When it was learned that Java 1.4 would incorporate
logging, the Log4J group lobbied to have its product incorporated into Java as the official logging
mechanism for the platform. However, that did not happen.
With the release of Java 1.4, Log4J didn't disappear, and doesn't intend to. Log4J provides two
advantages over the Java 1.4 logging mechanism: it has more features and it can be used with Java 1.1
or later.
Struts
The current architectural best practice for web applications is the Model View Controller (MVC) design
pattern. Under this model, the application is divided into three logical layers (also called tiers): the View,
which represents the user interface; the Model, which represents the business logic specific to the application
including any persistent data store (for example, a database); and the Controller, which coordinates how the
View and the Model interact, and takes care of any other general application behavior (for example,
application lifecycle issues). We'll see more on the MVC architecture in the next chapter.
Servlets and JavaServer Pages are the standard Java way to create web applications. They provide an
efficient interface to the Web's HTTP protocol. However, developers who wish to create an MVC
architecture with servlets and JSP must still do quite a bit of work.
Many third-party frameworks have been created which attempt to relieve developers from the burden of
implementing their own MVC architecture, freeing them to instead focus on solving the unique business
problems of their organization. Struts is one of these frameworks. Struts has gained an excellent
reputation in the development community as being well-designed and very flexible.
Other Jakarta Subprojects
There are many other Jakarta subprojects, including: Lucene, a full-featured search engine; Jetspeed, a
portal server; and James, a mail server. See these and others at http://jakarta.apache.org/.