Apache
上全部JAVA开源项目
简介
最近接触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技术进行开发,
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模型进行开发。?
Apache
java项目
全介绍
2
下面介绍
一下Jakarta下的Commons:一个csdn网友描述得很贴切,Commons就好比一个java百宝箱。
commons分为3部分Commons Proper、Commons Sandbox和Commons Dormant
Commons Proper:提供了设计良好可重用的java组件,并都经过了广泛、严格的测试。
Commons Sandbox:处于实验、测试阶段的组件。
Commons Dormant:处于停滞状态,从Sandbox退出的,不活跃的组件,谨慎使用。
Commons Proper组件:
Attributes—— 支持源代码级的元数据。
BeanUtils——提供对 Java 反射和自省API的包装,处理javabean的工具。
Betwixt——将JavaBeans与XML相互转换。?
Chain——对Chain of Responsibility(责任链)设计模式的实现。使多个对象都有机会处理请求, 从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
CLI——处理命令行的命令的解析。
Codec——包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL encoder。
Collections——扩展和增加标准的 Java Collection框架。
Configuration——操作各种格式的配置文件。Properties文件 /XML文件 /JNDI /JDBC
数据源 /System properties /Applet parameters / Servlet parameters
Daemon——创建类似unix守护线程的java代码,可以安全地执行一些后台操作,线程不被某个应用程序控制,而是由操作系统控制
类似windows的service,可以设置一个服务依赖于另一个服务,一个服务关闭前必须先执行另一个服务。
DBCP——一个数据库连接池
DbUtils——一个JDBC的工具类,比如可以将ResultSets生成javabean。
Digester——基于规则的XML文档解析,主要用于XML到Java对象的映射.
Discovery——提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。
EL——JSP 2.0引入的表达式
Email——处理e-mail
FileUpload——web应用中的文件上传组件
HttpClient——使用HTTP协议的客户端开发框架
IO——帮助进行IO功能开发
Jelly——Jelly能够把XML转换成可执行代码,所以Jelly是一个基于XML与Java的脚本和处理引擎。
Jelly借鉴了JSP定指标签,Velocity,
Cocoon和Xdoclet中的脚本引擎的许多优点。Jelly可以用在命令行,Ant或者Servlet之中。
Jexl——Jexl是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言。
JXPath——使用XPath语法操作javabean的工具。
Lang——提供对java.lang包的扩展。?
Launcher——跨平台的java程序的启动
Logging——提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。
它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细
节。JCL提供的接口,对其它一些日志工具,包括Log4J, Avalon LogKit, and JDK
1.4等,进行了简单的包装,此接口更接近于Log4J和LogKit的实现.
Math——Math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题.
Modeler—— 支持兼容JMX规范的MBeans开发。
Net——集合了网络工具和协议工具的实现
Pool——Commons-Pool 提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池实现。
Primitives——对java原始类型的支持。
SCXML——处理SCXML
Transaction——事务处理,实现了多层次锁、事务集合、事务文件的访问。?
Validator——提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器 (校验方法)和校验规则。支持校验规则的和错误消息的国际化。
VFS——访问各种文件系统,可以是本地文件、HTTP服务器上的文件、zip中的文件。
Commons Sandbox组件:
Compress——处理压缩文件如tar, zip 和 bzip2 格式。
CSV——处理CSV文件
Exec——安全地处理外部进程
Finder——实现类似UNIX find命令的功能
I18n——处理软件的I18n功能
Id——生成id号功能
Javaflow——捕捉程序运行状态
JCI——java编译接口
OpenPGP——处理加密方法OpenPGP.?
Pipeline——处理类似工作队列的管道工具
Proxy——生成动态代理
Java开源-Apache组织的所有开源项目
来自Apache
的开源项目
(按字母顺序排序):
Ant
:Ant现在已经是任何IDE都集成的编译工具了。为了编译一大堆java源代码
文件,需要一次次的在命令行敲重复的命令,Ant便是让你编写命令脚本,然后让Ant自动完成复杂的编译工作,类似于Makefile,但Ant脚本是标
准的XML格式,更容易编写和阅读。事实上,巧妙地使用Ant,您可以让Ant自动完成编译,测试,输出文档,生成Release版本等一系列任务,使得
整个项目
流程自动化。
Commons
:Commons包括一组可重用的Java组件,如BeanUtil,Collections,FileUpload,Validator等等。
Jetspeed
:Jetspeed是开源的企业门户应用框架。支持JSP,Velocity,XML,RSS,WAP等,即将支持Java Portlet API规范(JSR168标准)
JMeter
:JMeter是100%纯Java编写的压力测试工具,最初专用于Web应用的压力测试,现在还可以测试文件系统,数据队列,FTP服务等其他应用。JMeter模拟多用户同时向服务器发送请求,并将结果以图表的方式显示出来,使用非常简便。
Log4j
:看名字就能猜到,Log4j是专门为Java设计的日志服务。Log4j提供非常方便的分等级的日志记录,可以输出到屏幕,文件甚至是NT的日志系统,特点是速度非常快。如果您留意的话,可以看到很多Java项目
早已集成了Log4j,如Eclipse,Tomcat,Spring等等。
Lucence
:Lucence是一个高性能的全文搜索引擎,可以非常容易的把它集成到您的应用中来。Lucence的发起人就是搜索领域的一位专家,曾在Excite任职。
Taglibs
:Taglibs是一组自定义的JSP标签库。JSP标签能以简单的标签来实现页面功能但避免了嵌入Java代码,不过JSP标签编写比较困难,好在Taglibs提供一系列标签,几乎能满足您的常见需求。
Tapestry
:Tapestry是类似于JSP,Velocity的视图技术,提供一个完整的框架让您不必使用JSP也能实现动态页面。
Tomcat
:Tomcat是最著名的开源Web服务器,最新版本5.5支持Servlet2.4和JSP2.0,最适合于构件Java Web应用。
Velocity
:Velocity是类似JSP的另一种动态页面,特点是标签更简单,能直接写在HTML中,并且不能嵌入Java代码,强迫您只能在Velocity页面中渲染结果而不是处理业务逻辑,以便更清晰地划分MVC结构。
转载地址:http://www.blogjava.net/i369/articles/155468.html
分享到:
相关推荐
【标题】:“SUSHIDO ...此外,参与到开源社区,如在GitHub上查看项目,提交问题,或者参与讨论,也是深入理解开源项目的好方法。开源项目不仅可以提高个人技能,也有助于拓宽视野,参与到全球技术生态的建设中。
- **DBCP**:Apache提供的数据库连接池,基于Jakarta Commons DBCP项目。 - **HikariCP**:高性能的连接池,设计目标是极低的空闲连接占用和极短的连接创建时间。 - **Druid**:阿里巴巴开源的数据库连接池,除了...
Apache Maven是Java项目管理工具,它帮助开发者构建、管理和部署项目。Maven通过一个项目对象模型(Project Object Model, POM),定义项目的配置信息,包括依赖、构建目标、构建过程等。在本压缩包中包含的`apache...
该教程聚焦于最新的开源架构——Struts 2、Spring 2和Hibernate 3,这三大框架是企业级Java应用开发中的常用组件,它们分别负责MVC模式的实现、依赖注入以及对象关系映射。 Struts 2是Apache软件基金会的一个项目,...
Apache Derby是一款轻量级、嵌入式的关系型数据库管理系统,它是Java编写并完全遵循Java数据库连接(JDBC)标准的开源数据库。在本篇中,我们将深入探讨Derby的命令行工具及其在日常开发和管理中的应用。 首先,让...
1. Tomcat:对于Java Web应用,Tomcat是一个轻量级、开源的应用服务器,支持Servlet和JSP。它简单易用,适合小型项目,也可以通过集群技术应对大流量。 2. Jetty:另一款轻量级Java应用服务器,Jetty具有快速、...
Red5是一款开源的流媒体服务器,它支持实时流传输协议(RTMP),并提供录制、播放、存储等功能,广泛应用于在线视频直播、VoIP、互动游戏等场景。本教程将介绍如何进行Red5的入门学习,并结合Tomcat和MyEclipse进行...
Pluto是Apache Pluto Portlet Container的简称,它是对JSR168和JSR286(Portlet 2.0)标准的开源实现,用于部署和管理portlet。 综合这些技术,这个项目提供了一个完整的portlet开发实例,展示了如何在现代Java Web...
Apache Tomcat是一款开源的Java Servlet容器,用于部署和运行Java Web应用程序。它的源代码是公开的,这使得开发者能够深入理解其内部工作原理,优化性能,或者为它添加自定义功能。以下是对Tomcat源码及其分析的...
Tomcat,作为Apache软件基金会的一个开源项目,是世界上最流行的Java应用服务器之一,主要用于运行Servlet和JSP应用。本资源集合包含了Tomcat 7、8和9的不同版本,旨在为开发者提供一个全面的学习和实践平台。以下是...
Apache 开源组织为了解决这一问题,开发了名为 Geronimo 的 J2EE 服务器,它可以作为替代品提供类似 WebLogic 或 JBoss 的功能。不过,在本章的示例中,我们将聚焦于在 WebLogic 上进行安装和配置。 安装 WebLogic ...
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...
语言 安卓/java ios/oc 后端java 数据库mysql 源文件完全开源(汗部份源文件) 安装环境 主机类型独立主机(服务器,vps,vm) web服务器apache,nginx,lls 包含完整android,ios源码,原生开发 文档包含安装配置,...
Jeedcp是一款基于代码生成器的智能快速开发平台,可以帮助解决java项目中80%的重复工作,让开发者更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时不失灵活性。 Jeedcp快速开发宗旨是:简单功能...
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...