下一页 上一页 目录

3. ASF 项目

尽管 Apache 可能是最流行的,但 Apache 软件基金会 (Apache Software Foundation) 也是许多其他项目的家园。本节概述了最相关的项目,并按逻辑组织。它们中的大多数属于 Jakarta 项目和 XML 项目。Jakarta 项目托管基于 Java 的项目,而 XML 项目托管与 XML 相关的项目,这并不令人意外。

3.1 应用程序和框架

以下是 ASF 的应用程序和开发框架。

3.1.1 服务器

以下是一些 ASF 服务器项目。

Tomcat

Tomcat 是 Jakarta 项目的旗舰产品。它是 Java Servlet 和 JavaServer Pages 技术的官方参考实现。

您可以在 Tomcat 主页了解更多信息。

JAMES (Java Apache Mail Enterprise Server)

作为对其他 Apache 服务器端技术的补充,JAMES 提供一个 100% 纯 Java 服务器,旨在成为基于当前可用的开放协议(SMTP、POP3、IMAP、HTTP)的完整且可移植的企业邮件引擎解决方案

更多信息可以在 这里找到。

Lucene

Jakarta Lucene 是一个高性能、功能齐全的文本搜索引擎,用 Java 编写,是 Jakarta 项目的一部分。您可以在 http://jakarta.apache.org/lucene/ 找到更多信息

Jetspeed

Jetspeed 是一个用 Java 编写的基于 Web 的门户。它具有模块化的 API,允许聚合不同的数据源(XML、SMTP、iCalendar)

3.1.2 内容管理

以下是与内容管理相关的项目

Slide

Slide 是一个高级内容管理框架。从概念上讲,它提供了二进制内容的层次结构组织,这些内容可以存储到任意、异构、分布式的数据存储中。此外,Slide 集成了安全性、锁定和版本控制服务。它还提供了一个 WebDAV 服务器和客户端实现。您可以在 Slide 主页了解更多信息。

Alexandria

Alexandria 是一个集成的文档管理系统。它汇集了许多开源项目常用的技术,如 CVS 和 JavaDoc。其目标是将源代码和文档集成在一起,以鼓励代码文档化和共享。更多信息请访问 http://jakarta.apache.org/alexandria/index.html

3.1.3 框架

以下是应用程序开发框架。

Turbine

Turbine 是一个基于 servlet 的框架,允许经验丰富的 Java 开发人员快速构建安全的 Web 应用程序。Turbine 将运行 Java 代码的平台和可重用组件结合在一起。它的一些功能包括:与模板系统集成、MVC 风格的开发、访问控制列表、本地化支持等等。您可以在 Turbine 网站找到更多信息。

Avalon

如果您熟悉 Perl 或 BSD 系统,Avalon 大致相当于 Java Apache 技术的 CPAN 或 Ports 集合。它不仅为代码的公共存储库提供了指南,而且更进一步:旨在创建、设计、开发和维护一个使用 Java 语言编写的服务器应用程序的通用框架。 它提供了服务器端 Java 项目可以轻松集成和相互构建的方法。您可以在 Avalon 网站找到更多信息。

3.2 演示

以下是模板系统、转换引擎和其他与演示相关的项目。

Cocoon

Cocoon 利用其他 Apache XML 技术(如 Xerces、Xalan 和 FOP)来提供全面的 XML 发布框架。该框架可以与许多不同的数据源对话,并将内容转换为多种不同的交付格式,如 PDF、HTML、XML 和 RTF。它可以作为 servlet 或命令行程序运行。您可以在 项目主页了解更多关于 Cocoon 的信息

Velocity

Velocity 是一个基于 Java 的模板引擎。它可以作为独立实用程序用于生成源代码、HTML、报告,或者可以与其他系统结合使用以提供模板服务。 Velocity 具有模型-视图-控制器范例,该范例强制分离 Java 代码和 HTML 模板。您可以在 这里了解更多关于 Velocity 的信息。

AxKit

AxKit 是一个流行的基于 XML 的应用程序服务器,用于 mod_perl 和 Apache。它允许内容和演示分离,并提供从 XML 到任何格式的即时转换。

Xalan

Xalan 是一个适用于 Java 和 C++ 的 XSLT 处理器。XSL 是 XML 的样式表语言。T 代表转换 (Transformation)。XML 擅长存储结构化数据(信息)。有时您需要向用户显示此数据或应用其他转换。Xalan 获取原始 XML 文档,读取转换配置(样式表),并输出 HTML、纯文本或另一个 XML 文档。您可以在 Xalan JavaXalan C++ 项目主页了解更多信息。

FOP

来自网站:FOP 是一个 Java 应用程序,它读取格式化对象树,然后将其转换为 PDF 文档。因此,FOP 接受 XML 文档并输出 PDF,这与 Xalan 处理 HTML 或文本的方式类似。您可以在 这里了解更多关于 FOP 的信息。

3.3 解析器和文档访问库

以下是可以用于解析和操作各种文档格式的不同库。

Xerces

Xerces 项目为多种语言(包括 Java、C++ 和 Perl)提供 XML 解析器。Perl 绑定基于 C++ 源代码。XML 解析器是一种用于以编程方式访问 XML 文档的工具。以下是对 Xerces 支持的标准的描述

Xerces XML 项目的初始代码库由 IBM 捐赠。您可以在 Xerces JavaXerces C++Xerces Perl 主页找到更多信息。

Batik

Batik 是一个基于 Java 的工具包,适用于想要在 可伸缩矢量图形 (SVG) 格式中使用图像的应用程序,用于各种目的,例如查看、生成或操作。

它是以 XML 为中心的,并且符合 W3C 规范。与其他 Apache 项目相比,它有点不典型,因为它提供了一个图形组件。Batik 提供了通过自定义标签扩展框架的钩子,并允许从 SVG 转换为其他格式,如 JPEG 或 PNG。您可以在 Batik 主页了解更多信息

POI

POI 项目由 API 组成,用于使用纯 Java 操作基于 Microsoft OLE 2 复合文档格式的各种文件格式。这包括 Word 和 Excel 文档。您可以在 http://jakarta.apache.org/poi/ 找到更多信息

3.4 互操作性

以下是用于远程通信和服务器之间互操作性的库。

SOAP

Apache SOAP (“简单对象访问协议”) 和 Axis 是 SOAP 协议的实现

SOAP 是一种轻量级协议,用于在分散的分布式环境中交换信息。它是一种基于 XML 的协议,由三部分组成

基本上,您可以将 SOAP 视为基于 HTTP 和 XML 的远程过程调用系统。一方面,这意味着与其他系统相比,它很冗长且速度较慢。另一方面,它简化了各种语言的客户端和服务器的互操作性、调试和开发,因为大多数现代语言都具有 HTTP 和 XML 模块。您可以在 Apache SOAP 主页了解更多信息

XML-RPC

XML-RPC 项目是 XML-RPC 协议的 Java 实现,XML-RPC 协议是一种类似于 SOAP 的轻量级协议,也是 SOAP 的前身。

XML 安全性

XML 安全性项目提供 XML 文档签名验证,用于安全交换文档。

3.5 开发

Apache 可移植运行时 (Apache Portable Runtime)

APR 项目提供了一个可移植性层,该层抽象了许多用于文件操作、网络访问等的 API。它用 C 语言编写,可在大多数 Unix 版本、Windows 和各种其他系统上运行。它是 Apache 2.0 的基础

Ant

Ant 是一个基于 Java 的构建工具。它具有模块化的 API,可以通过创建新任务来扩展。它由 XML 配置文件驱动。

字节码库 (Byte Code Library)

字节码工程库 (Byte Code Engineering Library) (BCEL) 是一个用于分析、创建和操作二进制 Java 类文件的库。

Log4j

此软件包提供了一个 Java 应用程序可以使用的日志记录框架。它可以在运行时启用而无需修改二进制文件,并且在设计时考虑了性能。可以在 http://jakarta.apache.org/log4j/ 找到它

ORO 和 Regexp

ORO 是一个完整的软件包,为 Java 提供正则表达式支持。它包括 Perl5 正则表达式支持、glob 表达式等等。全部都在 Apache 许可证下。您可以在 http://jakarta.apache.org/oro/index.html 了解更多关于 ORO 的信息。还有另一个 ASF 轻量级正则表达式软件包,Regexp

Struts

Struts 是一个 Apache 项目,旨在将模型-视图-控制器 (MVC) 设计范例引入 Web 开发。它构建在 ServletJavaServer Pages 技术之上。模型部分由 Java 服务器对象组成,这些对象表示应用程序的内部状态。视图部分通过 JavaServer Pages (JSP) 构建,JSP 是静态 HTML/XML 和 Java 的组合。JSP 还允许开发人员定义新标签。控制器部分由 servlet 组成,servlet 接收来自客户端的请求 (GET/POST),对模型执行操作,并通过提供适当的 JSP 来更新视图。您可以在 Struts 项目页面了解更多信息。

Taglibs

JavaServer Pages 技术允许开发人员通过添加自定义标签来提供功能。Taglibs 项目旨在成为这些扩展的公共存储库。它包括用于常用实用程序(即日期)、SQL 数据库访问等的标签。

您可以在 http://jakarta.apache.org/taglibs/ 了解关于 TagLibs 的信息。更多文档包含在软件包中。

数据库

OJB 是一个数据库映射工具,允许 Java 对象在关系数据库中持久化和存储。Xindice 是一个用于存储和查询 XML 文档的原生 XML 数据库。

Commons

Commons 项目提供了各种具有最小依赖性的可重用 Java 组件。

3.6 测试

以下 ASF 项目涵盖测试和性能分析。

httpd-test

httpd-test 项目为 Apache Web 服务器和工具(如用于 HTTP 负载测试的 flood)提供了一个测试框架。

Cactus

Cactus 是一个用于测试服务器端 Java 代码(如 Servlets 和 EJBs)的测试框架。

JMeter

这是一个用 Java 编写的测试工具,带有 GUI 前端。可以从 http://jakarta.apache.org/jmeter/ 获取。

Lakta

Lakta 是一个端到端 HTTP 测试工具

Watchdog

Watchdog 项目是 Servlet 和 JavaServer Pages 规范的一套验证集。


下一页 上一页 目录