The Jakarta project is part of the ASF (the Apache software Foundation). ASF is a nonprofit organization that encourages collaborative, pragmatic development based on open software licensing, and provides high-quality software in all areas, involving HTTP servers, compilation tools, class libraries, development architectures, server-side Java technology, EE containers, database Tools, log tools, XML parsing and many other fields. Some of the Java projects provided by ASF are part of the Jakarta, while others become independent projects such as Tomcat, while the Jakarta Project offers a wide variety of open source Java solutions.
Let's start with the ASF and Jakarta Project parallel Java Project:
Ant--java build tool, use a configuration file can complete the Java project, compile, package, test, run, deploy, generate documents and many other work.
avalon--is a complete development platform for component-oriented programming (AOP) that includes core frameworks, tools, components, and containers. Use key design patterns such as reverse control mode (IoC) and detach consider mode (SoC). Avalon offers a variety of basic components and default application modules to help you quickly build your own application solutions.
excalibur--is a lightweight, embedded reverse control container that combines multiple open source projects (Avalon Framework, Logkit, and Cornerstone).
gump--is a continuous integration tool used by the Apache organization to fully support Ant and Maven, and when new changes are submitted to the version control system, it can check for potential conflicts and notify all members of the project team in a timely manner and automatically generate detailed reports of changes.
james--is a set of Java-developed mail, newsgroups, messaging servers, providing a more complete configuration, especially about the message content storage and user information storage. Supports SMTP, POP3, NNTP, IMAP.
logging--Reliable, fast logging tool.
Lucene--java developed a high-performance, omni-directional text search engine. To index every word of the document, the index makes the search more efficient than the traditional verbatim comparison, Lucen provides a set of interpretation, filtering, analysis of files, orchestration and use of the index API, its powerful in addition to efficient and simple, is the most important is to enable users to customize its function at any time.
maven--is a potential replacement for the Java-based Apache ant build tool. Provides more powerful functionality and ease of use.
portals--provides a full-featured business portal with commercial value. Portal concept: The portal integrates various resources within the enterprise, such as information management systems, and provides services externally through a single interface, where employees, partners and customers can enjoy the services offered by the portal through any device, at any location, and analysts expect the portal to be the next generation desktop environment.
struts--a Web application development framework that implements MVC Model2. A configuration file is a good place to assemble a variety of components, with a clear structure and the broadest web development framework applied.
tapestry--, like struts, is also a servlet-based application framework that supports MVC, appearing late, and not as popular as struts, mainly using JavaBean and XML technology to develop,
Tomcat--serlvet containers with traditional Web server functions, such as: processing HTML pages. Ability to handle dynamic static Web pages.
watchdog--is used to check the compatibility of the execution of a servlet or JSP container on the corresponding specification. But the project is still there, supporting only Servlet2.3, JSP1.2, and the corresponding Serlvet containers, such as Tomcat, support only tomcat4.x.
The following are the various sub-projects of the following Jakarta:
alexandria--is no longer developed
Bcel--the byte Code Engineering Library (formerly known as Javaclass) bytecode engine class libraries, it makes it possible for users to easily analyze, create, and manipulate Java class files. It allows you to drill down into JVM assembly language for the details of class operations.
The Bsf--bean Scripting Framework provides support for scripting languages within Java applications and allows access to Java objects and methods through scripting languages.
cactus--a simple test framework based on the JUnit framework that is used to unit test server-side Java code. Cactus Unit Testing Service side content includes SERVLET,EJB,? Tag Librarie, filter, etc.
commons--offers many functional solutions that are highly used in daily development and have been used by many well-known open source projects. A list of specific items will follow.
ecs--is an open source project that uses the Java language and object-oriented methods to create markup language documents (Html,xml).
hivemind--is a micro-kernel for service and configuration, a framework for creating complex applications with simple Java objects and interfaces.
httpcomponents--provides more powerful and convenient HTTP protocol processing capabilities that the java.net package cannot provide.
jcs--a distributed cache system to improve the performance of applications and provide many powerful additional features.
jmeter--a set of desktop applications developed in pure Java. Used for functional testing and performance testing. It can be used to test the operation of a static database or a server in an active repository, which can be used to simulate a heavy load on a server or network system to test its resistance, or to analyze all operating conditions under different load types. It also provides a replaceable interface for customizing data display, test synchronization, and test creation and execution.
oro--a set of text processing tools that can provide perl5.0-compatible regular expressions, awk-like regular expressions, glob expressions. Also provides functions such as replacement, segmentation, file name filtering and so on.
poi--a set of files used to create, read and write to the OLE 2 component document format. Use Java to read and write Ms Excel, Word files.
regexp--a set of pure Java regular expression-related packages.
The slide--main module is a content repository that can be used as the underlying content management framework. It can access content information into specialized, heterogeneous, and distributed databases. Slide also added security, locking, versioning and other features.
taglibs--is a set of JSP generic tag packages that are useful for developing Web applications.
turbine--is similar to Struts and is a servlet-based application framework that supports MVC. A large number of reusable components are available. 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 refer to the object defined by Java code using template language (language). When velocity is applied to web development, interface designers can synchronize with Java program developers to develop a Web site that adheres to the MVC architecture, which means that page designers can focus only on the display of the page, while the Java program developer focuses on the business logic encoding. Velocity separates the Java code from the Web page, which facilitates long-term maintenance of the Web site, and provides an optional alternative to JSP and PHP. Velocity's ability is much more than web site development, for example, it can generate SQL and PostScript, XML from Templates (template), which can also be used as a standalone tool to generate source code and reports, or as an integration component of other systems. Velocity can also provide template services for the turbine Web development architecture. Velocity+turbine provides a template service in a way that allows a Web application to develop with a real MVC model.
Apache Java Project Full introduction 2
The following describes the Jakarta under the Commons: a csdn Netizen described very aptly, Commons is like a Java treasure chest.
Commons divided into 3 parts Commons Proper, Commons Sandbox and Commons dormant
Commons Proper: Provides a well-designed and reusable Java component that has been extensively and rigorously tested.
Commons Sandbox: A component in the experimental, testing phase.
Commons dormant: In a stagnant state, from the sandbox, inactive components, use cautiously.
Commons Proper components:
attributes--supports source code level metadata.
beanutils--provides a wrapper for the Java reflection and introspection API to handle JavaBean tools.
betwixt--convert JavaBeans and XML to each other.
chain--the implementation of Chain of Responsibility (chain of responsibility) design pattern. Enables multiple objects to have the opportunity to process requests, thus avoiding the coupling between the sender and receiver of the request. Connect these objects as a chain and pass the request along this chain until an object is processed.
cli--handles the parsing of command-line commands.
codec--contains some common encoding and decoding algorithms. Includes some voice encoders, Hex, Base64, and URL encoder.
collections--expands and adds the standard Java collection framework.
configuration--operates configuration files in various formats. Properties files/xml file/jndi/jdbc data source/system properties/applet parameters/servlet parameters
daemon--creates Java code similar to the UNIX daemon thread, can safely perform some background operations, the thread is not controlled by an application, but the operating system controls Windows-like service, and can set a service to depend on another service. Another service must be executed before a service is closed.
dbcp--A database connection pool
dbutils--a JDBC tool class, such as the ability to generate JavaBean for resultsets.
digester--rules-based XML document parsing, primarily for XML-to-Java object mapping.
discovery--provides tools to locate resources (including classes) by using various patterns to map service/reference names and resource names.
Expressions introduced in EL--JSP 2.0
email--processing e-mail
File upload components in the Fileupload--web app
httpclient--Client Development Framework using the HTTP protocol
io--help with IO function development
Jelly--jelly can transform XML into executable code, so Jelly is an XML-and Java-based scripting and processing engine. Jelly draws on many of the advantages of the scripting engine in JSP-set indicators, Velocity, Cocoon, and Xdoclet. Jelly can be used in command line, ant, or servlet.
Jexl--jexl is an expression language that extends the expression language defined by Jstl by learning from the experience of velocity.
jxpath--uses XPath syntax to manipulate JavaBean tools.
lang--provides an extension to the Java.lang package.
launcher--launch of a cross-platform Java program
logging--provides a logging (log) interface (interface), taking into account both lightweight and non-dependent log implementation tools. It provides a simple log manipulation abstraction for middleware/log tool developers, allowing program developers to use different specific log implementation tools. Users are assumed to be familiar with the higher-level details of some log implementation tool. The JCL provides a simple wrapper for some other logging tools, including log4j, Avalon Logkit, and JDK 1.4, which is closer to the implementation of log4j and Logkit.
Math--math is a lightweight, self-contained mathematical and statistical component that solves many of the practical problems that are very common but not appearing in the Java standard language in a timely fashion.
modeler--supports Mbeans development that is compatible with JMX specifications.
net--the implementation of Network Tools and Protocol tools
Pool--commons-pool provides a common object pool interface, a toolkit for creating modular object pools, and a common object pool implementation.
primitives--support for Java primitive types.
scxml--processing Scxml
transaction--transaction processing, the implementation of multi-level lock, transaction set, transaction file access.
validator--provides a simple, extensible framework for defining validators (validation) and validation rules in an XML file. Support for the internationalization of checksum error messages.
vfs--access to a variety of file systems, which can be local files, files on HTTP servers, files in zip.
Commons Sandbox components:
compress--handles compressed files such as tar, zip and bzip2 formats.
csv--working with CSV files
exec--Handle external processes safely
finder--the ability to implement a Unix-like find command
i18n function of i18n--processing software
id--Generate ID number feature
javaflow--Capture program Run status
Jci--java Compile interface
openpgp--processing encryption method OpenPGP.?
pipeline--Pipeline tools for working with similar work queues
proxy--Generating Dynamic agents
All open source projects for Java Open source-apache organization
Open source projects from Apache (in alphabetical order):
Ant:ant is now an integrated compiler tool for any IDE. In order to compile a bunch of Java source code files, you need to repeatedly at the command line to knock the repeated commands, ant is to let you write command script, and then let ant automatically complete the complex compilation work, similar to makefile, but the ant script is the standard XML format, easier to write and read. In fact, using ant wisely, you can automate the entire project process by letting Ant automate a series of tasks such as compiling, testing, outputting documents, and generating release releases.
Commons:commons includes a reusable set of Java components, such as Beanutil,collections,fileupload,validator, and so on.
Jetspeed:jetspeed is an open-source Enterprise Portal application framework. Support for Jsp,velocity,xml,rss,wap, etc., will support Java Portlet API specification (JSR168 standard)
Jmeter:jmeter is a stress test tool written in 100% Pure Java, initially dedicated to Web Application stress testing, and can now test other applications such as file systems, data queues, FTP services, and more. JMeter simulates multiple users sending requests to the server at the same time, and displays the results graphically, using very simple.
LOG4J: As you can guess by name, log4j is a log service designed specifically for Java. LOG4J provides very convenient sub-level logging that can be output to the screen, files or even the NT log system, characterized by very fast speed. If you notice, you can see that many Java projects have already integrated log4j, such as eclipse,tomcat,spring and so on.
Lucence:lucence is a high-performance full-text search engine that can be easily integrated into your application. Lucence's promoter is an expert in the field of search and has served in excite.
Taglibs:taglibs is a set of custom JSP tag libraries. JSP tags can be a simple label to achieve page functionality but avoid embedding Java code, but JSP label writing is difficult, fortunately Taglibs provides a series of labels, almost meet your common needs.
Tapestry:tapestry is a jsp,velocity-like view technology that provides a complete framework that allows you to implement dynamic pages without using JSPs.
Tomcat:tomcat is the most famous open source Web server, the latest version 5.5 supports Servlet2.4 and JSP2.0, and is best suited for building Java Web applications.
Velocity:velocity is another dynamic page similar to JSP, characterized by simpler labeling, direct writing in HTML, and the inability to embed Java code, forcing you to render results only in the Velocity page rather than working with business logic, so that the MVC structure can be partitioned more clearly.
"Go" Apache Open source Project Introduction