Apache java項目全介紹

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.三、JSP1.2,相應的Serlvet容器如Tomcat也只支持Tomcat4.x。


下面介紹下Jakarta的各個子項目php

  • 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
commons分爲3部分Commons Proper、Commons Sandbox和Commons Dormant。
Commons Proper:提供了設計良好可重用的java組件,並都通過了普遍、嚴格的測試。
Commons Sandbox:處於實驗、測試階段的組件。
Commons Dormant:處於停滯狀態,從Sandbox退出的,不活躍的組件,謹慎使用。
Commons Proper組件:java

  • 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組件:web

  • Compress——處理壓縮文件如tar, zip 和 bzip2 格式。
  • CSV——處理CSV文件
  • Exec——安全地處理外部進程
  • Finder——實現相似UNIX find命令的功能
  • I18n——處理軟件的I18n功能
  • Id——生成id號功能
  • Javaflow——捕捉程序運行狀態
  • JCI——java編譯接口
  • OpenPGP——處理加密方法OpenPGP.
  • Pipeline——處理相似工做隊列的管道工具
  • Proxy——生成動態代理
相關文章
相關標籤/搜索