`

Apache开源项目简介(转载)

 
阅读更多
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——生成动态代理

分享到:
评论

相关推荐

    转载一个优秀的开源项目

    【标题】:“SUSHIDO Project 开源项目解析” 在IT行业中,开源项目是技术发展的重要驱动力,它们促进了代码共享、协作创新,并为开发者提供了学习和实践的平台。本篇文章将详细探讨一个名为"SUSHIDO Project"的...

    deeplearning4j.zip (自己封装,deeplearning4j和apache的资源)欢迎转载

    这个压缩包“deeplearning4j.zip”包含了开发者封装的资源,结合了deeplearning4j库与Apache的相关组件,特别是Maven构建工具,便于项目管理和构建。下面我们将详细探讨这两个核心部分。 ** Deeplearning4j ** ...

    Spring api

    本着来源于开源世界,回馈开源社区的想法,在接近11周的时间内,超过30位志愿者进行了翻译及审核工作,成品文档超过500页,由此成为目前最大的开源项目中文文档翻译计划之一。我们在此郑重宣布,本次翻译遵循原...

    phpLabware-开源

    **phpLabware 开源项目详解** `phpLabware` 是一个专门为科研实验室设计的开源Web应用程序套件。这个项目的核心目标是提供一个高效、便捷的工具集,帮助研究人员管理实验室中的各种资源,如试剂、文档和实验协议。...

    使用open source产品组装你的web应用架构(转载)

    在构建Web应用架构时,开源产品提供了丰富的选择和强大的功能,可以帮助开发者以较低的成本实现高效、灵活和可扩展的解决方案。这篇博客文章“使用开源产品组装你的Web应用架构”(来源于...

    Derby 命令(转载)

    Apache Derby是一款轻量级、嵌入式的关系型数据库管理系统,它是Java编写并完全遵循Java数据库连接(JDBC)标准的开源数据库。在本篇中,我们将深入探讨Derby的命令行工具及其在日常开发和管理中的应用。 首先,让...

    red5入门,tomcat+red5+myeclipse集成,原创禁止转载

    2. 安装Tomcat:从Apache Tomcat官网获取Tomcat的安装包,按照指南进行安装,设置好CATALINA_HOME环境变量。 3. 配置Red5与Tomcat:将Red5的webapps目录下的所有内容复制到Tomcat的webapps目录下,这样Red5的Web...

    自动部署web、nosqlCoreWeb.zip

    The first part:LANMP 此部分旨在为服务器部署动态网站平台,包括Web服务nginx、Apache,Linux下最常用的数据库MySQL,时下流行的...CoreWeb遵循GPL(v2)协议,允许自由修改,转载请注明出处! 标签:CoreWeb

    jsr168 portlet(struts2+spring2.5+hibernate3.3)(转载)

    Pluto是Apache Pluto Portlet Container的简称,它是对JSR168和JSR286(Portlet 2.0)标准的开源实现,用于部署和管理portlet。 综合这些技术,这个项目提供了一个完整的portlet开发实例,展示了如何在现代Java Web...

    JAVA数据库连接大全-转载

    - **DBCP**:Apache提供的数据库连接池,基于Jakarta Commons DBCP项目。 - **HikariCP**:高性能的连接池,设计目标是极低的空闲连接占用和极短的连接创建时间。 - **Druid**:阿里巴巴开源的数据库连接池,除了...

    YeGirl:很酷的3D相册展示(原始码可共享,但图片禁止转载,谢谢)

    总的来说,YeGirl项目是一个融合了前端开发、3D图形渲染和互动设计的开源项目,对于想要学习和实践这些技术的开发者来说,是一个宝贵的资源。通过分析和研究其源代码,可以深入理解3D相册的实现原理,并可能激发更多...

    Tomcat 7-9转载资源

    Tomcat,作为Apache软件基金会的一个开源项目,是世界上最流行的Java应用服务器之一,主要用于运行Servlet和JSP应用。本资源集合包含了Tomcat 7、8和9的不同版本,旨在为开发者提供一个全面的学习和实践平台。以下是...

    Joomla 1.0.X内容管理手册

    - **版权声明**:明确了文档可以被转载的要求,同时指出了Joomla!、PHP、Apache、MySQL等软件的版权归属。 #### 五、总结 - **文档价值**:这份手册为用户提供了一个全面理解Joomla! 1.0.x版本内容管理的方法论。...

    BukkitDevelopmentNote:基于Bukkit开发Minecraft Server插件的指南

    文档中代码均以Apache 2.0开源, 包括正文部分插入代码.本作品采用进行许可。若需转载任何内容, 请详细注明出处, 仅供学习交流使用, 谢绝商业化使用.本站图片资源部分来自互联网,仅学习交流使用. 部分图片由tdiant...

    agentzh 的 Nginx 教程(版本 2019.05.08)openresty 电子书

    这些内容已经被包含在一个开源项目中,并托管在 GitHub 上,允许社区成员进行分支和补丁的创建和提交。 教程的保护权益也非常明确,作者保留所有原创内容的权利,未经同意,读者不得随意转载或使用教程中的内容。...

    webwork教程(经典)

    WebWork是由Apache软件基金会维护的开源项目,它的设计目标是简化Web应用的开发,提高代码可维护性和重用性。WebWork通过使用Action、Interceptor(拦截器)和OGNL(对象-图形导航语言)等机制,实现了松耦合的架构...

Global site tag (gtag.js) - Google Analytics