`

Apache Java项目全介绍

    博客分类:
  • java
 
阅读更多

转自:http://java.csdn.net/page/f1d86ecf-6cb8-4773-b169-6676a9fe4013

 

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——生成动态代理
分享到:
评论

相关推荐

    apache开源项目列表.txt

    ### Apache开源项目列表详解 Apache软件基金会是全球领先的开源软件开发和应用社区,自成立以来,致力于推动自由软件的发展,提供了众多高质量、稳定的开源项目。以下是对部分Apache开源项目的详细解析,涵盖其技术...

    apache优秀Java开源项目源代码—— apache-roller!

    Apache Roller是一款功能强大的开源博客系统,...通过深入学习和分析Apache Roller的源代码,Java开发者不仅可以提升自己的编程技巧,还能了解到大型Web应用程序的架构设计和最佳实践,为今后的项目开发积累宝贵经验。

    34个经典javaweb项目实例.zip

    这个压缩包"34个经典javaweb项目实例.zip"提供了丰富的实践资源,对于学习者来说是宝贵的资料库,可以帮助加深对JavaWeb开发的理解并提升实际操作技能。 1. **Servlet技术**:Servlet是Java服务器端程序,用于处理...

    5个Javaweb项目

    以下将详细介绍JavaWeb项目的相关知识点: 1. **JavaWeb基础**:JavaWeb项目的核心是Servlet和JSP(JavaServer Pages)。Servlet是Java编写的服务器端程序,用于处理HTTP请求,而JSP则是一种动态网页技术,允许在...

    javaweb项目实(含笔记与详细实现步骤)

    JavaWeb项目实(含笔记与详细实现步骤) JavaWeb是一种基于Java技术的Web应用程序开发框架,它涵盖了服务器端编程、数据库交互、用户界面设计等多个方面。对于初学者来说,掌握JavaWeb开发是步入Web开发领域的关键...

    apache开源项目源码DdlUtils-1.0-src,全部高质量操作数据库的java源程序

    apache开源项目源码DdlUtils-1.0-src 全部高质量操作数据库的java源程序 各种操作数据库的工具类源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其优良的代码风格和高质量的源码是学习者...

    apache开源项目源码commons-math-2.0-src(全部高质量数学函数math的java源程序)

    apache开源项目源码commons-math-2.0-src 全部高质量数学函数math的java源程序 java,math,数学函数,java函数源码 各种数学函数开发(math)的工具类源码,你会从中得到意想不到的效果! apache开源组织开发的开源...

    apache开源项目源码commons-email-1.2-src(全部高质量开发邮件的java源程序)

    apache开源项目源码commons-email-1.2-src 全部高质量开发邮件的java源程序 各种操作邮件的工具类源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其优良的代码风格和高质量的源码是学习者...

    apache.commons全套jar包下载

    Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量Java类库,以帮助开发者处理常见的编程任务。这些类库弥补了Java标准库中的不足,为开发人员提供了一套强大且实用的工具。在本压缩包中,您...

    javaweb项目文件.zip_javaweb_javaweb项目_javaweb项目开发_racea3s

    JavaWeb项目是一个基于Java技术构建的Web应用程序,用于创建交互式的网页应用。在这个"javaweb项目文件.zip_javaweb_javaweb项目_javaweb项目开发_racea3s"压缩包中,我们看到它包含了一个名为"jspbbs"的子文件,这...

    JavaWeb项目源代码

    【JavaWeb项目源代码】是基于Java技术栈开发的一个典型的Web应用程序,主要涵盖了Structs、Hibernate和Spring这三大核心框架的集成应用。这个项目可能是针对高校学生选课系统的解决方案,旨在帮助学校管理学生的课程...

    apache开源项目源码commons-el-1.0-src(全部高质量el表达式的java源程序)

    java,el,el表达式,el表达式源码,apache开源项目源码commons-el-1.0-src 各种el表达式操作工具类源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其优良的代码风格和高质量的源码是学习者...

    apache java 组件使用,经典介绍

    Apache Jakarta Commons 是Apache软件基金会下的一个子项目,专注于创建和维护独立且可重用的Java组件,主要面向服务器端编程。这些组件不依赖于大型框架,具有独立性,旨在简化开发工作。Jakarta Commons 项目组...

    网上书城javaWeb项目

    《网上书城javaWeb项目》是一个综合性的软件开发实践,主要使用JavaWeb技术来构建一个在线图书销售平台。在这个项目中,开发者将面临多种技术挑战,包括前后端交互、数据库设计、用户界面优化以及系统安全等多个方面...

    apache-tomcat-8.0.51.rar_Java 8_Tomcat/8.0.51_apache基金会_tomcat

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat ...

    eclipse中JavaWeb项目开发环境配置步骤

    本文将详细阐述如何在Eclipse中配置JavaWeb项目的开发环境,以便进行高效、顺利的开发工作。 首先,我们需要安装Eclipse IDE。确保下载的是支持JavaWeb开发的版本,例如Eclipse IDE for Java EE Developers。下载...

    教务管理系统源码+项目说明(javaweb项目)(运行环境window系统,Apache Tomcat v7.0.84).zip

    教务管理系统源码+项目说明(javaweb项目)(运行环境:window系统,Apache Tomcat v7.0.84、JDK1.8 开发环境:J2EE eclipse、navicat for mysql 运用的技术:MVC设计模式、DAO模式、Servlet、JSP、Filter).zip ...

    apache-skywalking-java-agent-8.9.0

    总结起来,"apache-skywalking-java-agent-8.9.0"是SkyWalking项目中用于监控JVM服务的重要组件,通过其强大的功能,可以帮助开发者和运维人员深入了解和优化他们的Java应用性能。通过学习和掌握SkyWalking的使用,...

    Javaweb图书管理系统--完整项目(图书商城)

    "Javaweb图书管理系统——完整项目(图书商城)"是一个典型的实例,它结合了Java语言的强大功能和Web技术的灵活性,为用户提供了全面的图书管理解决方案。 首先,我们要理解Javaweb的核心概念。Javaweb是指使用Java...

Global site tag (gtag.js) - Google Analytics