ICSM 2010 Supporting Material

This page provides supporting material for the paper Swing to SWT and Back: Patterns for API Migration by Wrapping, to be presented at the 26th IEEE International Conference on Software Maintenance (ICSM) in September 2010.


Here you can find the source code of the APIs and Wrappers used in the study. We used the last available versions of the Wrappers and the API versions used by the wrapper projects.


  • Swing 1.4 (java.awt and javax.swing) - Swing is a core Java API that comes with Java's J2SE. We used the source code from JDK 1.4.2_19, which can be found at Sun's Archive pages. You need to download the JDK and install it. The sources are found in a src.zip file on the installation directory.
  • SWT 3.2.2 (org.eclipse.swt) - SWT is an Eclipse project. We used the Linux version found at Eclipse's Archives (zip).
  • XOM 1.2.1 (nu.xom) - Source at XOM's website (zip).
  • JDOM 1.1 (org.jdom) - Source at JDOM's Archive (zip).


  • SwingWT - We used version 0.89, found at sourceforge (tar.gz).
  • SWTSwing - We used version 3.2.0005, fount at sourceforge(zip).
  • XOM2JDOM - Our distribution contains the wrapper source code and two additional annotation projects needed by the wrapper. The project also includes JDOM (the target API) jar files (zip).

Code Examples

The Eclipse project in this file (zip) contains all code examples found in the paper:

  • The migration from Vector/Enumeration to ArrayList/Iterators, including a small client application.
  • The client application in Swing and SWT versions.
  • The Swing2SWT and SWT2Swing wrappers which apply the design patterns described in the paper.

Every client application is available in 2 versions, one using the source API and another one using the wrappers. We have annotated the wrappers with pattern annotations for easily recognition of pattern instances. See the readme file for more information.