Integrating an SCM Tool with a Java Development Platform:

[article]
Summary:

The IDE has emerged as the de-facto development tool in many Java shops. As the Java IDE evolved, team support became an important aspect of the tool and plays a prominent role in the popular Java development environment, IBM WebSphere Studio Application Developer 5.0 (WSAD). The clean design of the SCM interface to WSAD means configuration managers do not need to craft a custom solution to integrate their organization’s SCM tool with the IDE.

The IDE has emerged as the de-facto development tool in many Java shops. As the Java IDE evolved, team support became an important aspect of the tool and plays a prominent role in the popular Java development environment, IBM WebSphere Studio Application Developer 5.0 (WSAD). The clean design of the SCM interface to WSAD means configuration managers do not need to craft a custom solution to integrate their organization’s SCM tool with the IDE.

Evolution of the Eclipse Integrated Development Environment
WebSphere Studio Application Developer 5.0 is a commercial Java development environment built on the open source Eclipse platform. To understand the design of WSAD, it is useful to examine the evolution of the Eclipse platform.

Eclipse, http://www.eclipse.org/, is a platform for Java development that is gaining attention for its innovate design and rich set of features. The design of Eclipse can be traced back to the creation of ENVY/Developer, the unique collaborative development tool for the VisualWorks Smalltalk IDE.

Configuration managers who worked with VisualWorks Smalltalk can attest to the benefits that a well designed IDE provides to a software development organization. VisualWorks Smalltalk was one of the first IDEs that offered an integrated toolset for software systems development. This IDE even contained a unique, integrated team development environment called ENVY/Developer.

When introduced commercially in the late 1980s, the VisualWorks Smalltalk IDE was radically different than the combination of the text editor and command line compiler used by most software developers. VisualWorks provided an integrated environment in which developers could edit, incrementally compile, test, and debug Smalltalk programs. By allowing developers to do all their work without ever needing to leave the environment, the VisualWorks IDE helped developers optimize the develop-compile-test-debug cycle.

ENVY/Developer, the version control utility integrated with VisualWorks Smalltalk supported team software development. Rather than using the familiar check out, check in paradigm, ENVY/Developer employed a component ownership model. Each component that could be placed under version control was assigned an owner. The component owner was responsible for maintaining the integrity of that component. The owner would create an “open edition” of the component to provide the context for one or more developers to work. The owner would create a “version” of the component to snapshot the state of the component during the software development lifecycle.

Object Technology International, the technically adept company that created ENVY, went on to develop the popular Java IDE, VisualAge for Java (VAJ). VAJ earned recognition by Java developers as a powerful, highly productive development environment. Smalltalk developers quickly noticed the similarities between VisualWorks Smalltalk and VAJ, particularly the version control utility. Although VAJ contained the ENVY version control utility for managing Java source, the IDE also provided interfaces to commercial SCM tools.

WebSphere Studio Application Developer 5.0 is a relatively new Java IDE that bears the hallmark of OTI. Marketed commercially by IBM, WSAD 5.0 is an extension of the open source Eclipse IDE, which was developed by OTI. Java developers who used VAJ came to recognize WSAD, and the open source Eclipse, as the next generation Java IDE.

Features of the Eclipse IDE
Organizations that develop Java applications, particularly J2EE applications, are adopting WSAD 5.0 as their development platform because of the extensive set of features provided by this IDE. WSAD 5.0 speeds the development process by providing wizards to create commonly used Java constructs like packages, classes, and interfaces. Like VAJ, WSAD 5.0 provides incremental compilation, i.e., classes and methods are compiled as soon as they are saved in the editor. WSAD incorporates the capability to execute Java applications from within the IDE and to debug them using an integrated debugger. WSAD also offers a full blown WebSphere server test environment.

Eclipse, which is the foundation of WSAD, is a file based IDE. The IDE organizes Java applications by Eclipse Java projects. Eclipse Java projects contain Java packages. Java packages, in turn, contain Java classes. Even though WSAD presents Java programs based on this hierarchy, the IDE actually manages the text files that define Java classes.

Eclipse uses the concept of a workbench to model the desktop development environment. The workbench is organized into a series of perspectives. Each perspective contains the editors and utilities to work on a particular type of task, or to edit a specific kind of resource. For example, the Java perspective is designed for creating Java classes, while the J2EE perspective is tailored for designing J2EE resources.

SCM Interface to the Eclipse IDE [1]
Eclipse is designed to be independent of the SCM tool. It does not impose a process in which the SCM tool must work. Eclipse actually allows the SCM tool to define the process in which developers interact with the tool from within Eclipse. Eclipse also allows more than one SCM tool to be used to manage different Eclipse projects in the workspace. Once created, each Eclipse project is associated with the SCM tool that will be used to manage that project. The process of associating an Eclipse project with an SCM tool is referred to as sharing the project.

A plug-in, typically developed by the SCM tool vendor, provides the interface from Eclipse to the SCM tool. Eclipse comes with a full-featured plug-in for CVS, which eliminates the need to use either command line CVS or WinCvs for day-to-day development. Each team provider plug-in is Java code that enables the developers to interact with the SCM tool from within Eclipse. Many, although not all, of the Eclipse plug-ins feature a perspective in which the developer can view the contents of the SCM repository without leaving the IDE. Typically, a menu item accessed from the SCM repository perspective allows the developer to import one or more Eclipse (or WSAD) projects from the SCM repository to the Eclipse workspace. SCM plug-ins allow developers to check out and check in code from the perspective in which they are developing code. With this functionality, developers can frequently synchronize with the SCM repository while maintaining their focus on the environment in which they are coding.

Although a modern Java IDE, like WSAD, is admittedly more involved than most text editors, this additional complexity does not mean it is difficult to integrate the IDE with an SCM tool. The SCM interface provided by Eclipse demonstrates how an organization can use their existing SCM tool to manage the code developed in the IDE. By working with developers, configuration managers can accommodate the desire of developers to use an IDE while ensuring that the artifacts managed by the IDE are properly maintained under configuration management.

[1] “Eclipse Platform Technical Overview” Object Technology International, Inc. February 2003

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.