最近接触
Jakarta-Common-BeanUtils
这个东东比较多,于是对
Apache Jakarta Project
产生了兴趣,上他们的官方网站上看了下感觉有用的东西好多,眼花缭乱的,又没有中文网站,又上各大论坛搜了下,也没有发现一个集中该项目的资料,于是决定自己整理翻译一下,有助于各位网友更好的了解该项目。如果有什么描述不对不全面的地方,希望各位提出来给大家分享。
Jakarta
项目是
ASF(The Apache Software Foundation)
的一部分。
ASF
是一个非赢利组织,她鼓励基于开放的软件许可下进行合作、注重实效的开发,并提供各个领域的高质量软件,她涉及到
Http
服务器,编译工具,类库,开发架构,服务器端
Java
技术
,J2EE
容器,数据库工具,日志工具,
XML
解析等等诸多领域。
ASF
提供的
java
项目有一部分在
Jakarta
中,还有一些成为独立的诸如
Tomcat
的项目
,Jakarta
项目则提供了多种多样开源的
java
解决通用方案。
先介绍一下
ASF
中和
Jakarta
项目并列的
java
项目:
·
Ant ——java
构建工具,使用一个配置文件就可以完成
java
的项目的,编译、打包、测试、运行、部署、生成文档等诸多工作。
·
Avalon ——
是一个包括核心框架、工具、组件和容器的面向组件编程(
AOP
)的完整开发平台。使用关键设计模式,如反向控制模式(
IoC
)和分离考虑模(
SoC
)。
Avalon
提供各种基本组件和缺省的应用程序模块,帮助你快速的建立你自己的应用程序解决方案。
·
Excalibur ——
集多个开源项目
(Avalon Framework
、
LogKit
和
Cornerstone)
于一身的轻量级可嵌入式反向控制容器。
·
Gump ——
是
Apache
组织自己也使用的一个持续集成工具,全面支持
Ant
和
Maven
,当有新的改动提交到版本控制系统,它可以检查出潜在
的冲突,并及时通知项目组的所有成员并自动生成改动的详细报告。
·
James ——
是一套用
java
开发的邮件、新闻组、消息服务器,提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储。
支持
SMTP, POP3 , NNTP , IMAP
。
·
Logging ——
可靠,快速的日志工具。
·
Lucene ——Java
开发的高性能,全方位的文本搜索引擎。替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,
Lucen
提供一组解读,过滤,分析文件,编排和使用索引的
API
,它的强大之处除了高效和简单外,
是最重要的是使使用者可以随时应自已需要自订其功能。
·
Maven ——
是一个潜在的基于
java
的
apache ant
的构建工具的替代者。提供了更强大的功能和易用性。
·
Portals ——
提供了功能全面的、具有商业价值的企业门户。门户概念:门户对企业内的各种资源如信息管理系统进行整合并通过单一接口
对外提供服务,雇员、合伙人及顾客可以通过任何装置在任何地点通过门户入口享受到企业提供的服务,
分析家们预计
,
门户将成为下一代的桌面环境。
·
Struts ——
一个实现
MVC model2
的
web
应用程序开发框架。通过一个配置文件可以很好的对各种组件进行装配,结构清晰,应用的最广泛的额
web
开发框架。
Tapestry—— 类似 Struts ,也是一个基于 servlet 的应用程序框架,支持 MVC ,出现的较晚,不如 Struts 普及,主要利用 javabean 和 xml 技术进行开发,
Tapestry—— 类似 Struts ,也是一个基于 servlet 的应用程序框架,支持 MVC ,出现的较晚,不如 Struts 普及,主要利用 javabean 和 xml 技术进行开发,
·
Tomcat ——Serlvet
容器,同时具有传统的
Web
服务器的功能,如:处理
Html
页面。能够处理动静态网页。
·
Watchdog ——
用来检查一个
servlet
或
jsp
容器在相应规范上的执行情况的兼容性。但是该项目已经静止了,只支持
Servlet2.3
、
JSP1.2
,相应
的
Serlvet
容器如
Tomcat
也只支持
Tomcat4.x
。
下面介绍下 Jakarta 的各个子项目:
·
Alexandria——
已经不再开发
·
BCEL ——The Byte Code Engineering Library (formerly known as JavaClass)
字节码引擎类库,它让用户方便的分析,创建,操作
java
的
class
文件成为可能。
它可以让您深入
JVM
汇编语言进行类操作的细节。
·
BSF ——bean
脚本框架
在
java
应用内对脚本语言提供了支持,通过脚本语言可以访问
java
的对象和方法。
·
Cactus ——
一个基于
JUnit
框架的简单测试框架,用来单元测试服务端
Java
代码。
Cactus
单元测试服务端内容包括
servlet,EJB, tag librarie, filter
等
·
Commons ——
提供很多日常开发中使用率很高的功能解决方案,已被很多著名的开源项目采用。具体的项目列表后面会有。
·
ECS ——
使用
Java
语言和面向对象方法创建标记语言文档
(HTML,XML)
的开源项目。
·
HiveMind ——
是一个服务和配置的微型内核,
一套通过简单的
java
对象和接口创建复杂应用的框架。
·
HttpComponents ——
提供了
java.net
包所不能提供的更多强大的、方便的
http
协议处理功能。
·
JCS ——
一个分布式的缓存系统,用来提高应用程序的性能,并且提供很多强大的额外功能。
·
JMeter ——
纯
java
开发的一套桌面应用程序。用来进行功能测试和性能测试。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,
可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗,或者用来分析不同负荷类型下的所有运行情况。
它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
·
ORO ——
一套文本处理工具,能提供
perl5.0
兼容的正则表达式、
AWK-like
正则表达式
, glob
表达式。还提供替换,分割,文件名过虑等功能。
·
POI ——
一套用来创建,读写基于
OLE 2
组件文档格式的文件。使用
Java
来读写
MS Excel ,Word
文件。
·
Regexp ——
一套纯
java
的正则表达式相关的包。
·
Slide ——
主要模块是一个可以做为内容管理框架底层的内容仓库
.
它可以把内容信息存取到专门的
,
异质的
,
分布式的数据库中
.Slide
还增加了
security, locking, versioning
等特性
.
·
Taglibs ——
一套在开发
web
应用时十分有用的,
jsp
通用
tag
包。
·
Turbine ——
类似
Struts
,也是一个基于
servlet
的应用程序框架,支持
MVC
。提供了大量可重用的组件。此框架包中包含了大量组件,但是这些组件是离散的。
·
Velocity ——
是一个基于
java
的模板引擎(
template engine
)。它允许任何人仅仅简单的使用模板语言(
template language
)来引用由
java
代码定义的对象。
当
Velocity
应用于
web
开发时,界面设计人员可以和
java
程序开发人员同步开发一个遵循
MVC
架构的
web
站点,
也就是说,页面设计人员可以只关注页面的显示效果,而由
java
程序开发人员关注业务逻辑编码。
Velocity
将
java
代码从
web
页面中分离出来,这样为
web
站点的长期维护提供了便利,
同时也为我们在
JSP
和
PHP
之外又提供了一种可选的方案。
Velocity
的能力远不止
web
站点开发这个领域,
例如,它可以从模板(
template
)产生
SQL
和
PostScript
、
XML
,它也可以被当作一个独立工具来产生源代码和报告,
或者作为其他系统的集成组件使用。
Velocity
也可以为
Turbine web
开发架构提供模板服务(
template service
)。
Velocity+Turbine
提供一个模板服务的方式允许一个
web
应用以一个真正的
MVC
模型进行开发。