尽管 Apache 可能是最流行的,但 Apache 软件基金会 (Apache Software Foundation) 也是许多其他项目的家园。本节概述了最相关的项目,并按逻辑组织。它们中的大多数属于 Jakarta 项目和 XML 项目。Jakarta 项目托管基于 Java 的项目,而 XML 项目托管与 XML 相关的项目,这并不令人意外。
以下是 ASF 的应用程序和开发框架。
以下是一些 ASF 服务器项目。
Tomcat 是 Jakarta 项目的旗舰产品。它是 Java Servlet 和 JavaServer Pages 技术的官方参考实现。
您可以在 Tomcat 主页了解更多信息。
作为对其他 Apache 服务器端技术的补充,JAMES 提供一个 100% 纯 Java 服务器,旨在成为基于当前可用的开放协议(SMTP、POP3、IMAP、HTTP)的完整且可移植的企业邮件引擎解决方案
更多信息可以在 这里找到。
Jakarta Lucene 是一个高性能、功能齐全的文本搜索引擎,用 Java 编写,是 Jakarta 项目的一部分。您可以在 http://jakarta.apache.org/lucene/ 找到更多信息
Jetspeed 是一个用 Java 编写的基于 Web 的门户。它具有模块化的 API,允许聚合不同的数据源(XML、SMTP、iCalendar)
以下是与内容管理相关的项目
Slide 是一个高级内容管理框架。从概念上讲,它提供了二进制内容的层次结构组织,这些内容可以存储到任意、异构、分布式的数据存储中。此外,Slide 集成了安全性、锁定和版本控制服务。它还提供了一个 WebDAV 服务器和客户端实现。您可以在 Slide 主页了解更多信息。
Alexandria 是一个集成的文档管理系统。它汇集了许多开源项目常用的技术,如 CVS 和 JavaDoc。其目标是将源代码和文档集成在一起,以鼓励代码文档化和共享。更多信息请访问 http://jakarta.apache.org/alexandria/index.html
以下是应用程序开发框架。
Turbine 是一个基于 servlet 的框架,允许经验丰富的 Java 开发人员快速构建安全的 Web 应用程序。Turbine 将运行 Java 代码的平台和可重用组件结合在一起。它的一些功能包括:与模板系统集成、MVC 风格的开发、访问控制列表、本地化支持等等。您可以在 Turbine 网站找到更多信息。
如果您熟悉 Perl 或 BSD 系统,Avalon 大致相当于 Java Apache 技术的 CPAN 或 Ports 集合。它不仅为代码的公共存储库提供了指南,而且更进一步:旨在创建、设计、开发和维护一个使用 Java 语言编写的服务器应用程序的通用框架。 它提供了服务器端 Java 项目可以轻松集成和相互构建的方法。您可以在 Avalon 网站找到更多信息。
以下是模板系统、转换引擎和其他与演示相关的项目。
Cocoon 利用其他 Apache XML 技术(如 Xerces、Xalan 和 FOP)来提供全面的 XML 发布框架。该框架可以与许多不同的数据源对话,并将内容转换为多种不同的交付格式,如 PDF、HTML、XML 和 RTF。它可以作为 servlet 或命令行程序运行。您可以在 项目主页了解更多关于 Cocoon 的信息
Velocity 是一个基于 Java 的模板引擎。它可以作为独立实用程序用于生成源代码、HTML、报告,或者可以与其他系统结合使用以提供模板服务。 Velocity 具有模型-视图-控制器范例,该范例强制分离 Java 代码和 HTML 模板。您可以在 这里了解更多关于 Velocity 的信息。
AxKit 是一个流行的基于 XML 的应用程序服务器,用于 mod_perl 和 Apache。它允许内容和演示分离,并提供从 XML 到任何格式的即时转换。
Xalan 是一个适用于 Java 和 C++ 的 XSLT 处理器。XSL 是 XML 的样式表语言。T 代表转换 (Transformation)。XML 擅长存储结构化数据(信息)。有时您需要向用户显示此数据或应用其他转换。Xalan 获取原始 XML 文档,读取转换配置(样式表),并输出 HTML、纯文本或另一个 XML 文档。您可以在 Xalan Java 和 Xalan C++ 项目主页了解更多信息。
来自网站:FOP 是一个 Java 应用程序,它读取格式化对象树,然后将其转换为 PDF 文档。因此,FOP 接受 XML 文档并输出 PDF,这与 Xalan 处理 HTML 或文本的方式类似。您可以在 这里了解更多关于 FOP 的信息。
以下是可以用于解析和操作各种文档格式的不同库。
Xerces 项目为多种语言(包括 Java、C++ 和 Perl)提供 XML 解析器。Perl 绑定基于 C++ 源代码。XML 解析器是一种用于以编程方式访问 XML 文档的工具。以下是对 Xerces 支持的标准的描述
Batik 是一个基于 Java 的工具包,适用于想要在 可伸缩矢量图形 (SVG) 格式中使用图像的应用程序,用于各种目的,例如查看、生成或操作。
它是以 XML 为中心的,并且符合 W3C 规范。与其他 Apache 项目相比,它有点不典型,因为它提供了一个图形组件。Batik 提供了通过自定义标签扩展框架的钩子,并允许从 SVG 转换为其他格式,如 JPEG 或 PNG。您可以在 Batik 主页了解更多信息
POI 项目由 API 组成,用于使用纯 Java 操作基于 Microsoft OLE 2 复合文档格式的各种文件格式。这包括 Word 和 Excel 文档。您可以在 http://jakarta.apache.org/poi/ 找到更多信息
以下是用于远程通信和服务器之间互操作性的库。
Apache SOAP (“简单对象访问协议”) 和 Axis 是 SOAP 协议的实现
SOAP 是一种轻量级协议,用于在分散的分布式环境中交换信息。它是一种基于 XML 的协议,由三部分组成
XML-RPC 项目是 XML-RPC 协议的 Java 实现,XML-RPC 协议是一种类似于 SOAP 的轻量级协议,也是 SOAP 的前身。
XML 安全性项目提供 XML 文档签名验证,用于安全交换文档。
APR 项目提供了一个可移植性层,该层抽象了许多用于文件操作、网络访问等的 API。它用 C 语言编写,可在大多数 Unix 版本、Windows 和各种其他系统上运行。它是 Apache 2.0 的基础
Ant 是一个基于 Java 的构建工具。它具有模块化的 API,可以通过创建新任务来扩展。它由 XML 配置文件驱动。
字节码工程库 (Byte Code Engineering Library) (BCEL) 是一个用于分析、创建和操作二进制 Java 类文件的库。
此软件包提供了一个 Java 应用程序可以使用的日志记录框架。它可以在运行时启用而无需修改二进制文件,并且在设计时考虑了性能。可以在 http://jakarta.apache.org/log4j/ 找到它
ORO 是一个完整的软件包,为 Java 提供正则表达式支持。它包括 Perl5 正则表达式支持、glob 表达式等等。全部都在 Apache 许可证下。您可以在 http://jakarta.apache.org/oro/index.html 了解更多关于 ORO 的信息。还有另一个 ASF 轻量级正则表达式软件包,Regexp。
Struts 是一个 Apache 项目,旨在将模型-视图-控制器 (MVC) 设计范例引入 Web 开发。它构建在 Servlet 和 JavaServer Pages 技术之上。模型部分由 Java 服务器对象组成,这些对象表示应用程序的内部状态。视图部分通过 JavaServer Pages (JSP) 构建,JSP 是静态 HTML/XML 和 Java 的组合。JSP 还允许开发人员定义新标签。控制器部分由 servlet 组成,servlet 接收来自客户端的请求 (GET/POST),对模型执行操作,并通过提供适当的 JSP 来更新视图。您可以在 Struts 项目页面了解更多信息。
JavaServer Pages 技术允许开发人员通过添加自定义标签来提供功能。Taglibs 项目旨在成为这些扩展的公共存储库。它包括用于常用实用程序(即日期)、SQL 数据库访问等的标签。
您可以在 http://jakarta.apache.org/taglibs/ 了解关于 TagLibs 的信息。更多文档包含在软件包中。
OJB 是一个数据库映射工具,允许 Java 对象在关系数据库中持久化和存储。Xindice 是一个用于存储和查询 XML 文档的原生 XML 数据库。
Commons 项目提供了各种具有最小依赖性的可重用 Java 组件。
以下 ASF 项目涵盖测试和性能分析。
httpd-test 项目为 Apache Web 服务器和工具(如用于 HTTP 负载测试的 flood)提供了一个测试框架。
Cactus 是一个用于测试服务器端 Java 代码(如 Servlets 和 EJBs)的测试框架。
这是一个用 Java 编写的测试工具,带有 GUI 前端。可以从 http://jakarta.apache.org/jmeter/ 获取。
Lakta 是一个端到端 HTTP 测试工具
Watchdog 项目是 Servlet 和 JavaServer Pages 规范的一套验证集。