273 lines
11 KiB
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>
|