old-www/HOWTO/Apache-Overview-HOWTO-15.html

273 lines
11 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<TITLE>Apache Overview HOWTO: Java projects</TITLE>
<LINK HREF="Apache-Overview-HOWTO-16.html" REL=next>
<LINK HREF="Apache-Overview-HOWTO-14.html" REL=previous>
<LINK HREF="Apache-Overview-HOWTO.html#toc15" REL=contents>
</HEAD>
<BODY>
<A HREF="Apache-Overview-HOWTO-16.html">Next</A>
<A HREF="Apache-Overview-HOWTO-14.html">Previous</A>
<A HREF="Apache-Overview-HOWTO.html#toc15">Contents</A>
<HR>
<H2><A NAME="s15">15. Java projects</A></H2>
<P>For historical reasons, Java projects can be found both under the
java.apache.org and jakarta.apache.org umbrellas. The final goal is that over
time all Java projects will move under the Jakarta umbrella.
<P><EM>The goal of the Jakarta Project is to provide commercial-quality
server solutions based on the Java Platform that are developed in an
open and cooperative fashion.</EM>
<P>The Java on Apache community is a very dynamic and active one, as shown by
the quantity and quality of its subprojects, which are described now.
<P>
<H2><A NAME="ss15.1">15.1 Ant</A>
</H2>
<P>You can think of Ant as the Java equivalent of make. It is a big success
with Java related projects. Developers can write Java instead of shell
commands. This means increased portability and extensibility. Instead of
Makefiles Ant has XML files.
You can learn more about ANT
<A HREF="http://jakarta.apache.org/ant/index.html">here</A>.
<P>
<P>Related talk
<UL>
<LI>F19: Using Ant to build Java code</LI>
</UL>
<P>
<H2><A NAME="ss15.2">15.2 ORO and Regexp</A>
</H2>
<P>ORO is a complete package that provides regular experession support for
Java. It includes Perl5 regular expression support, glob expressions, etc.
All under the Apache license.
You can learn more about ORO
<A HREF="http://jakarta.apache.org/oro/index.html">here</A>. You can find another lightweight regular expression package,
<A HREF="http://jakarta.apache.org/regexp/">Regexp</A>.
<H2><A NAME="ss15.3">15.3 Slide</A>
</H2>
<P><EM>Slide is a high-level content management framework.
Conceptually, it provides a hierarchical organization of binary
content which can be stored into arbitrary, heterogenous, distributed
data stores. In addition, Slide integrates security, locking and versioning
services.</EM>
<P>If you are familiar with
<A HREF="http://www.webdav.org">WedDAV</A>,
Slide uses it extensively. In simple words, what Slides provides is an unified,
simple way to access resources and information. These resources can be stored
in a database, the filesystem, etc. and accessed either thru a WebDAV interface
or Slide's own API.
<P>You can learn more at the
<A HREF="http://jakarta.apache.org/slide/index.html">Slide home page</A>.
<P>
<H2><A NAME="ss15.4">15.4 Struts</A>
</H2>
<P>Struts is an Apache project that tries to bring the
Model-View-Controller (MVC) design paradigm to web development. It
builds on
<A HREF="http://java.sun.com/products/servlet">Servlet</A> and
<A HREF="http://java.sun.com/products/jsp">JavaServer Pages</A> technologies. The model
part is made up of Java server objects, which represent the internal
state of the application. Enterprise Java Beans are commonly used
here. The view part is constructed via JavaServer Pages (JSP), which
is a combination of static HTML/XML and Java. JSPs also allow the
developer to define new tags. The controller part consists of servlets,
which take requests (GET/POST) from the client, perform actions on the
model and update the view by providing the appropriate JSP. You can
learn more at the
<A HREF="http://jakarta.apache.org/struts/index.html">Struts project pages</A>.
<H2><A NAME="ss15.5">15.5 Taglibs</A>
</H2>
<P>The JavaServer pages technology allows developers to provide functionality
by adding custom tags. The Taglibs project intends to be a common repository
for these extensions. It includes tags for common utilities (i.e. date),
SQL database access, etc.
<P>You can learn about TagLibs
<A HREF="http://jakarta.apache.org/taglibs/index.html">here</A>.
More documentation is included in the package.
<H2><A NAME="tomcat"></A> <A NAME="ss15.6">15.6 Tomcat</A>
</H2>
<P>Tomcat is the flagship product of the Jakarta project.
It is the official reference implementation for the Java
Servlet 2.2 and JavaServer Pages 1.1 technologies.
<P>You can learn more in the
<A HREF="http://jakarta.apache.org/tomcat/index.html">Tomcat homepage</A>. The Tomcat project
was started with a code donation from Sun Microsystems.
<P>
<P>
<P>
<H2><A NAME="ss15.7">15.7 Velocity</A>
</H2>
<P><EM>Velocity is a Java based template engine. It can be used as a
stand-alone utility for generating source code, HTML, reports, or
it can be combined with other systems to provide template services.</EM>
Velocity has a Model View Controller paradigm that enforces separation of
Java code and the HTML template.
<P>You can learn more about Velocity
<A HREF="http://jakarta.apache.org/velocity/index.html">here</A>. Velocity is part of
other projects like
<A HREF="#turbine">Turbine</A><P>
<H2><A NAME="ss15.8">15.8 Watchdog</A>
</H2>
<P>The Watchdog project provides the validation tests for the Servlet and
JavaServer Pages specifications. You can find more information
<A HREF="http://jakarta.apache.org/watchdog/index.html">here</A><P>
<H2><A NAME="jserv"></A> <A NAME="ss15.9">15.9 JServ</A>
</H2>
<P><EM>
<A HREF="http://java.apache.org/jserv/index.html">Apache JServ</A> is in a maintenance
only mode at this point. This means that there will be no new official
releases and that only well tested patches are being committed. No new
features are being added. If you are looking for the latest
implementation of a Java Servlet Engine and/or Java Server Pages (JSP)
then you should consider using the
<A HREF="#tomcat">Jakarta Tomcat</A> product available from the Jakarta Project.</EM>
<P>
<P>
<H2><A NAME="ss15.10">15.10 JSSI</A>
</H2>
<P>JSSI is an implementation of server side included in the Java language.
Server side includes are tags includes in files that get processed before
the page is served to the client (for example to include the current date)
You can find more information
<A HREF="http://java.apache.org/jservssi/index.html">here</A>.
<H2><A NAME="ss15.11">15.11 Apache JMeter</A>
</H2>
<P><EM>The Apache JMeter is a 100% pure Java desktop application designed to
load test functional behavior and measure performance. It was originally
designed for testing Web Applications but has since expanded to other test
functions.</EM>
<P>It can be used to test static and dynamic resources and get
inmediate visual feedback.
<P>You can see some screenshots and learn more
<A HREF="http://java.apache.org/jmeter/index.html">here</A>.
<H2><A NAME="ss15.12">15.12 Server Pages Foundation Classes</A>
</H2>
<P>SPFC is a set of libraries to help solve common problems in server side
application development. They focus on two of them:
<UL>
<LI><B>Mixing HTML and Java</B>: Provides a library of classes that takes
care of the HTML generation and that can be integrated with the rest of the
Java code.</LI>
<LI><B>HTTP is a stateless protocol</B>: SPFC provides session support,
so applications can keep track of users as they navigate the website. The
application developer does not need to worry about the specific details of
page generation. He can think in more general traditional application terms.
You can learn more about SPFC
<A HREF="http://java.apache.org/spfc/index.html">here</A></LI>
</UL>
<P>
<H2><A NAME="ss15.13">15.13 Element Construction Set</A>
</H2>
<P><EM>Element Construction Set (ECS) is a JAVA API for generating elements for
various markup languages. It directly supports HTML 4.0 and XML, but can
easily be extended to create tags for any markup language.</EM>
<P>It allows the generation of mark up tags using Java function calls,
leading to a much cleaner solution than mixing HTML and Java code.
You can learn more at the
<A HREF="http://java.apache.org/ecs/index.html">ECS project page</A>.
<H2><A NAME="ss15.14">15.14 Avalon</A>
</H2>
<P>If you are familiar with Perl or BSD systems, Avalon is roughly the
equivalent of
<A HREF="http://www.cpan.org">CPAN</A> or the Ports
collection for Java Apache technologies. It does not only provide guidelines
for a common repository of code, it goes one step further: <EM>is an effort to
create, design, develop and maintain a common framework for server
applications written using the Java language.</EM> It provides the means so
server side Java projects can be easily integrated and build on each other.
<H2><A NAME="ss15.15">15.15 JAMES (Java Apache Mail Enterprise Server)</A>
</H2>
<P>Complementary to the other Apache server side technologies, JAMES provides
<EM>a 100% pure Java server designed to be a complete and portable enterprise
mail engine solution based on currently available open protocols (SMTP, POP3,
IMAP, HTTP)</EM>
<P>More information can be found
<A HREF="http://jakarta.apache.org/james/index.html">here</A>.
<H2><A NAME="ss15.16">15.16 PicoServer</A>
</H2>
<P>A lightweight HTTP/1.0 server in pure Java. The project seems to be stalled
and no code is available. The website and CVS are no longer available.
<H2><A NAME="ss15.17">15.17 Jetspeed</A>
</H2>
<P>
<A HREF="http://jakarta.apache.org/jetspeed/site/index.html">Jetspeed</A>
is a web based portal written in Java. It has a modular API that
allows aggregation of different data sources (XML, SMTP, iCalendar)
<P>
<P>Related talk:
<UL>
<LI>TH11: Writing an enterprise information portal with JetSpeed</LI>
</UL>
<P>
<H2><A NAME="turbine"></A> <A NAME="ss15.18">15.18 Turbine</A>
</H2>
<P><EM>Turbine is a servlet based framework that allows experienced Java developers
to quickly build secure web applications</EM>. Turbine brings together a platform
for running Java code <EM>and</EM> reusable components, everything under the Apache
license. Some of its features include:
<UL>
<LI>Integration with template systems</LI>
<LI>MVC style development</LI>
<LI>Access Control Lists</LI>
<LI>Localization support</LI>
<LI>etc.</LI>
</UL>
If you are interested, you can visit the
<A HREF="http://java.apache.org/turbine">Turbine web site</A>.
<P>
<H2><A NAME="ss15.19">15.19 Jyve</A>
</H2>
<P>The
<A HREF="http://java.apache.org/jyve/index.html">Jyve project</A> is
built on top of the Turbine framework. It is an application that provides a web
based FAQ system
<H2><A NAME="ss15.20">15.20 Alexandria</A>
</H2>
<P>Alexandria is an integrated documentation management system. It brings
together technologies common to many open source projects like CVS and JavaDoc.
The goal is to integrate source code and documentation to encourage code
documentation and sharing. More information
<A HREF="http://java.apache.org/alexandria/index.html">here</A><P>
<P>Related talk
<UL>
<LI>W06: An introduction to Alexandria</LI>
</UL>
<P>
<H2><A NAME="ss15.21">15.21 Log4j</A>
</H2>
<P>This package provides a logging framework that Java applications can use.
It can be enabled at runtime without modifying the binary and has been designed
with performance in mind. It can be found
<A HREF="http://jakarta.apache.org/log4j/docs/index.html">here</A><P>
<P>
<HR>
<A HREF="Apache-Overview-HOWTO-16.html">Next</A>
<A HREF="Apache-Overview-HOWTO-14.html">Previous</A>
<A HREF="Apache-Overview-HOWTO.html#toc15">Contents</A>
</BODY>
</HTML>