Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.
This means that you can package and sell it with your own application−specific code, and this seems to be quite a popular choice. Of course, if you are doing in−house projects, JBoss is a cheap and useful alternative to Sun's reference implementation. In particular, the ability to have to operate the server clusters means that you can perform useful large−scale testing and deployment.
688
Appendix C: J2EE Vendors and Systems
At the time of this writing, JBoss is at v2.0, which supports the J2EE 1.2 specification. This means that you can't use the RMI−IIOP interoperability, but this is being worked on. As a form of compensation, JBoss 2.0
supports SOAP. Work has already begun on v3.0, which will support the full J2EE 1.3 specification. Already, the EJB 2.0 specification work is well advanced with 2.4.1 supporting some parts of the EJB specification.
Further information on JBoss can be found at http://www.jboss.org/.
Enhydra
Where JBoss sets out to be the best J2EE server, Enhydra heads in the opposite direction — its purpose is to cover as many different specifications as possible. The Enhydra core application server is all open source, and a commercial, packaged version is available from Lutris. One of this project's primary goals is to collect all the existing open−source projects and combine them into an application−server project. So in the code you will find a diverse range of licenses — from BSD to Apache to the GNU LGPL.
If you need the Swiss−army knife of application servers, Enhydra is the way to go. For example, miniature versions of the server can run on PDA−type devices, called EnhydraME, as well as WAP/WML front ends.
Also, instead of providing their own deployment tools, plugins are available for most of the popular IDEs.
Further information on Enhydra can be found at http://www.enhydra.org/.
Apache Projects
Special mention must go to the projects run by the Apache Foundation (http://www.apache.org/). Originally starting with the Open Source Apache Webserverproject, the group has taken on a huge number of projects, all of which deal with Web technologies. Of these, the Java projects are the most interesting to us.
XML projects
The Apache Foundation maintains two major Java−based XML projects — Xerces and Crimson. Both of these projects are XML parsers. So why have two projects doing the same thing? Well, Sun did a lot of early work with XML, providing a simple SAX−based parser called Project X. As Sun's focus moved to the broader XML requirements of Java and the JAXP API, the Project X code was donated to the Apache Foundation to become known as Crimson. Xerces, meanwhile, was started as another internal project, prior to the Sun donation, for some of the other projects to use. Despite the head−start that Crimson had, Xerces is now the main development project for parsing XML.
Crimson
Crimson is the original Sun parser for XML files, and it is still in use in today's J2SE and J2EE
implementations if you download them from Sun as part of JAXP. All the code can be found in the package org.apache.crimson and the packaged below it.
Crimson is a fairly basic parser as far as XML support goes. It will generate SAX2 events and handle namespaces, but not much else. For example, it does not support any of the schema languages available for validation.
Further information on Crimson can be found at http://xml.apache.org/crimson/.
689
Appendix C: J2EE Vendors and Systems
Xerces
Xerces is the more modern of the two XML parsers available from the Apache group. The aim of this parser is to be as lightweight and as fast as possible. Xerces is the heart of all XML projects in the Apache Java world.
For example, it is the Xerces parser that reads and writes configuration files for the servlet engine and Jakarta.