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——生成動態代理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章