Apache Java Project Overview
Most
Close contact with Jakarta-common-beanutils is a lot of things, so Apache Jakarta
Project has become an interest. On their official website, I saw a lot of useful things, dazzled, and no Chinese websites. I searched them on various forums, no centralized project found
Therefore, I decided to translate the documents by myself to help you better understand the project. If any of the descriptions is incorrect, I hope you can share them with us.
The Jakarta project is ASF (the Apache Software
Foundation. ASF is a non-profit organization. She encourages cooperation and practical development based on open software licenses and provides high-quality software in various fields.
HTTP server, compilation tool, class library, development architecture, server-side Java technology, J2EE container, database tool, log tool, XML parsing, and many other fields. Java provided by ASF
Some projects are included in Jakarta, and some become independent projects such as Tomcat. The Jakarta project provides a variety of open-source Java solutions.
First, we will introduce the Java project in parallel with the Jakarta project in ASF:
Ant -- Java build tool. You can use a configuration file to compile, package, test, run, deploy, and generate documents for Java projects.
Aveon is a complete development platform for component programming (AOP) that includes core frameworks, tools, components, and containers. Use Key design patterns, such as reverse control mode (IOC) and separation mode (SOC ). Aveon provides various basic components and default application modules to help you quickly build your own application solutions.
Excalibur-a lightweight, embedded reverse control container that combines multiple open source projects (aveon framework, logkit, and cornerstone.
Gump is a continuous integration tool used by Apache organizations. It fully supports ant and maven. When a new change is submitted to the version control system, it can check for potential conflicts, notify all members of the project team in a timely manner and generate detailed change reports automatically.
James is a set of mail, newsgroup, and message servers developed in Java. It provides a complete configuration solution, especially for mail content storage and user information storage. Supports SMTP, POP3, nntp, and IMAP.
Logging-a reliable and fast log tool.
Lucene
-- A high-performance and comprehensive text search engine developed in Java. Index every word of a file, which greatly improves the search efficiency than the traditional one by word. lucen provides a set of interpretations, such
Filters, analyzes files, orchestrates and uses index APIs. Apart from being efficient and simple, the most important feature is that users can customize their functions at any time.
Maven is a potential replacement for Java-based Apache ant build tools. Provides more powerful functions and ease of use.
Portals
-- Provides a fully functional and commercial enterprise portal. Portal concept: A Portal integrates various resources in an enterprise, such as information management systems, and provides external services through a single interface.
Customers can use any device to access the services provided by the Enterprise at any location through the portal. analysts predict that the portal will become the next-generation desktop environment.
Struts-a web application development framework that implements MVC model2. A configuration file can be used to assemble various components with a clear structure and the most widely used Web development framework.
Tapestry-similar to struts, it is also a servlet-based application framework that supports MVC. It is not as popular as Struts. It is mainly developed using JavaBean and XML technologies,
The Tomcat -- Serlvet container also has the functions of traditional Web servers, such as processing HTML pages. Able to process dynamic and static Web pages.
Watchdog -- used to check the compatibility of a servlet or JSP Container on the implementation of the corresponding specifications. However, this project is static and only supports servlet2.3 and jsp1.2. The corresponding Serlvet containers such as Tomcat only support Tomcat 4.x.
The following describes each subproject of Jakarta:
Alexander Ria -- no longer available
Bcel
-- The Byte Code Engineering Library (formerly known as javaclass)
The bytecode engine class library allows you to easily analyze, create, and operate Java class files. It allows you to go deep into the details of class operations in the JVM assembly language.
The BSF-bean script Framework provides support for the scripting language in Java applications. You can use the scripting language to access Java objects and methods.
Cactus is a simple testing framework based on the JUnit framework. It is used to unit test the Java code of the server. Cactus unit test server content includes servlet, EJB, tag librarie, filter, etc.
Commons-provides many feature solutions with high usage in daily development and has been adopted by many well-known open-source projects. The specific project list will be later.
ECS-an open-source project that uses Java and object-oriented methods to create markup language documents (HTML, XML.
Hivemind is a microkernel for services and configurations. It is a framework for creating complex applications through simple Java objects and interfaces.
Httpcomponents -- provides more powerful and convenient HTTP protocol processing functions that the java.net package cannot provide.
JCS is a distributed cache system that improves application performance and provides many powerful additional functions.
Jmeter
-- A set of desktop applications developed in pure Java. It is used for function testing and performance testing. It can be used to test the running status of servers in the static or active databases, and can be used to simulate
The server or network system is overloaded to test its resistance, or is used to analyze all running conditions under different load types. It also provides a replaceable interface for customizing data display, testing synchronization, and testing.
.
Oro-a text processing tool that provides regular expressions, awk-like regular expressions, and glob expressions compatible with perl5.0. It also provides functions such as replacement, splitting, and file name consideration.
Poi-a set of files used to create and read and write files based on the OLE 2 component document format. Use Java to read and write MS Excel and Word files.
Regexp -- a set of Java-only regular expression-related packages.
Slide-the main module is a content warehouse that can be used as the underlying content management framework. it can access content information to specialized, heterogeneous, and distributed databases. slide also adds security, locking, versioning, and other features.
Taglibs-a set of common JSP tag packages that are useful for Web application development.
Turbine-similar to struts, it is also a servlet-based application framework that supports MVC. Provides a large number of reusable components. This framework package contains a large number of components, but these components are discrete.
Velocity
-- Is a Java-based template engine ). It allows anyone to simply use the template language (Template
Language) to reference objects defined by Java code. When velocity is applied to web development, the interface designer can develop a compliance interface with Java program developers.
Web sites based on the MVC Architecture, that is, page designers can focus only on the page display effect, while Java developers focus on business logic encoding. Velocity will
Java code is separated from web pages, which facilitates the long-term maintenance of web sites and provides an optional solution besides JSP and PHP.
Velocity is far more powerful than Web site development. For example, it can generate SQL, postscript, and XML from templates. It can also be
Use it as an independent tool to generate source code and reports, or as an integrated component of other systems. Velocity can also be Turbine
The web development architecture provides the template service ).
Velocity + turbine provides a template service that allows a web application to be developed with a real MVC model.
Apache Java Project Overview 2
Next we will introduce the commons under Jakarta: A csdn user is very descriptive, and commons is like a Java Baobao.
Commons can be divided into three parts: commons proper, commons sandbox, and commons dormant.
Commons proper: Provides well-designed and reusable Java components and has undergone extensive and rigorous tests.
Commons sandbox: components in the experiment and test phase.
Commons dormant: components that exit from sandbox and are inactive. Use them with caution.
Commons proper component:
Attributes-supports source code-level metadata.
Beanutils-a Java reflection and introspection API packaging tool for processing JavaBean.
Betwixt -- converts JavaBeans and XML.
Chain -- Implementation of the chain of responsibility (responsible chain) design model. So that multiple objects have the opportunity to process the request, so as to avoid coupling between the request sender and the receiver. Connect these objects into a chain and pass requests along the chain until an object processes it.
CLI -- parse commands that process command lines.
Codec -- contains some common encoding and decoding algorithms. Includes Audio Encoder, Hex, base64, and URL encoder.
Collections -- extends and adds a standard Java Collection framework.
Configuration -- operate configuration files in various formats. Properties file/XML file/JNDI/jdbc Data Source/system properties/applet parameters/servlet Parameters
Daemon -- creates Java code similar to a Unix daemon thread, which can safely perform some background operations. The thread is not controlled by an application, but is controlled by an operating system like a Windows service, you can set a service to depend on another service. A service must be executed before it is closed.
DBCP -- a database connection pool
Dbutils-a jdbc tool class. For example, you can generate a JavaBean by using resutisets.
Digester-rule-based XML document parsing, mainly used for XML-to-Java object ing.
Discovery -- provides tools to locate resources (including classes) and map service/reference names and resource names in various modes.
Expression introduced by EL--JSP 2.0
Email -- process email
Fileupload -- File Upload Component in Web Applications
Httpclient-Client development framework using HTTP protocol
Io-help with the development of Io Functions
Jelly
-- Jelly can convert XML into executable code, so jelly is a script and Processing Engine Based on XML and Java.
Jelly draws on the JSP custom tag, velocity,
Many advantages of the script engine in cocoon and XDoclet. Jelly can be used in command lines, ant, or servlet.
Jexl -- jexl is an expression language that extends the expression language defined by jstl by drawing on experience from velocity.
Jxpath-a tool that uses the XPath syntax to operate JavaBean.
Lang -- provides extensions to the java. lang package.
Launcher-start of cross-platform Java programs
Logging
-- Provides a log interface, which is lightweight and independent from specific log implementation tools. It provides a simple day for middleware/log Tool developers.
Log operation abstraction, allowing program developers to use different log implementation tools. The user is assumed to be familiar with more advanced details of a log implementation tool. Interfaces provided by jcl, for some other log tools,
Including log4j, aveon logkit, and JDK 1.4, and so on. This interface is closer to the implementation of log4j and logkit.
Math-math is a lightweight, self-contained mathematical and statistical component that solves many common but not timely practical problems in java standard languages.
Modeler-supports mbeans development compatible with the JMX specifications.
Net -- integrates the Implementation of Network Tools and Protocol tools
Pool -- commons-Pool provides a common object pool interface, a toolkit for creating a modular Object pool, and Common Object pool implementation.
Primitives-support for the original Java type.
Scxml -- Process scxml
Transaction: transaction processing, Implementing Multi-Level Lock, transaction collection, and transaction file access.
Validator -- provides a simple and scalable framework to define the validator (verification method) and validation rules in an XML file. Supports rule validation and internationalization of error messages.
VFS-access various file systems, including local files, files on the HTTP server, and files in the ZIP file.
Commons sandbox components:
Compress -- Process compressed files such as tar, zip, and Bzip2.
CSV -- Process CSV files
Exec -- securely process external processes
Finder -- Implement functions similar to the Unix find command
I18n -- i18n function of Processing Software
Id -- id generation function
Javaflow -- capture the running status
JCI -- Java compilation Interface
Openpgp -- encryption method openpgp.
Pipeline -- pipeline tool for processing similar work queues
Proxy -- generate dynamic proxy