Probably the best known open source IDE (Integrated Development Environment) is Eclipse. Originally developed by IBM starting in the late 1990s as a development tools platform in Java, it was released to open source licensing in 2001. An organization, the Eclipse Consortium, was created with support from IBM and eight other high tech companies.
In order to dispel the impression that some developers had that Eclipse was too much under IBM control, a totally independent not-for-profit organization, the Eclipse Foundation, with its own staff and budget, was created in 2004. A number of well known software organizations contribute money, developer time and direction to the foundation.
Developers can now choose from a large number of free and commercial plug-ins that build on the Eclipse architecture. These include commercial products from both IBM and competitors since many software tool vendors now use Eclipse as a stable base for specific toolkits and development environments. Because Eclipse and most of the plug-ins run on Java, this makes it easy for tool vendors to reach all major platforms.
There are also a huge number of open source projects and sub-projects hosted by the Eclipse Foundation and an active community of Eclipse users contributing and extending plug-ins. For example, Groovy, the open source Java based scripting language now has a plug-in allowing you to edit, compile and run Groovy scripts.
The Eclipse architecture
Eclipse supporters feel that they have more than an IDE, they have a Rich Client Platform created by a core set of functions that runs plug-ins plus various useful tools such as text editors that can be used to construct an IDE for a specific set of tools. Although plug-ins can be written in other languages, it appears that most have been written in Java. Eclipse provides version support so that you can update specific plug-ins on a case by case basis directly with the update manager.
The Eclipse user interface is organized as a "workbench" window that displays "views" (graphic diagrams, editors, resource lists, etc.) of a project and the resources in a project. The user can customize the location and behavior of the various views to suit each project.
Integration with standard developer tools
Like NetBeans, Eclipse provides support for CVS (Concurrent Versioning System), an open source file management system that can facilitate cooperation between multiple developers on a project. The highly flexible Ant open source "build" tool created by the Apache Software Foundation is used to automate various Eclipse processes. You can even import projects that already have Ant build files.
Starting with Eclipse 3.1, the popular JUnit toolkit is built in. If you favor Test Driven Development you will find it easy to create test cases in Eclipse.
Web service support uses the Apache Axis project version 1.3 for SOAP-related methods and WSDL4J (Web Services Description Language for Java) version 1.5.1 for manipulation of WSDL documents. Note that this is not the absolutely latest version of Axis as there has been a major redesign for Axis2. The version of the Tomcat Web server provided with Eclipse is also several generations behind the latest.
I suppose this sort of gap is inevitable as the various open source development teams go charging off in their own directions. One of the disadvantages of using Eclipse or NetBeans will be the potential for toolkit version conflict between the latest and greatest version and the one packaged with Eclipse.
Web Tools Platform package
The Eclipse project has a single convenient download package for those who would like to investigate the tools for Web-related applications. The over 200mb zipped download includes the basic core platform plus a large number of preconfigured plug-ins.
The Web Standard Tools collection of plug-ins contains tools for manipulation of documents related to specifications published by organizations such as the W3C. For example, there are tools for manipulating XML, XSD, DTD and WSDL documents.
Tools for WSDL
Eclipse has some cool tools for working with WSDL documents. I experimented with importing a published Web service WSDL file into a Web service client project in Eclipse as follows:
1. Launch the Web services explorer and go to the XMethods registry online.
2. Search for a service using the key word "math" - this found one service.
3. Use the import tool to import the WSDL file to the Eclipse workbench - the imported file now shows up in the list of project resources.
4. Select the WSDL file and choose the option to open with the WSDL graphic editor. This brings up a graphic display of all of the WSDL elements for the available operation. You can easily switch between the graphic and editing views.
5. Select the WSDL file and choose the "generate client" option. The Java source files required to execute the client are created and the library jar files required to execute are added to the project.
Creating a Web service
The Eclipse Web Service Wizard supports two approaches to creating a Web service called top-down and bottom-up. In top-down development you start with a service description as a WSDL document. Eclipse guides you through setting up the options which will control running the Axis toolkit to create Java code skeletons using the Axis toolkit and Ant tasks.
Bottom-up creation of a service involves starting with a Java class that is coded with Java "bean" conventions. The Web Services Wizard can guide you though setting up the parameters needed by the automated process, which creates a WSDL file and Web service classes.
Eclipse, like NetBeans, enables the developer to take advantage of the growing volume of high quality open source tools in an integrated environment and with the support of an active user community. The support for these tools by IBM, Sun and other major software companies has validated the open source approach to software development.
A view of Eclipse projects and plug-ins with current development status.
Review of Eclipse projects in Wikipedia.
The Eclipse Web Tools Project (WTP).
Home of the Ant build tool.
Groovy plug-in for Eclipse.
An introduction to Eclipse projects with some comparison to NetBeans.