|
ABSTRACT
As object-oriented class libraries evolve, classes are occasionally deprecated in favor of others with roughly the same functionality. In Java's standard libraries, for example, class Hashtable has been superseded by HashMap, and Iterator is now preferred over Enumeration. Migrating client applications to use the new idioms is often desirable, but making the required changes to declarations and allocation sites can be quite labor-intensive. Moreover, migration becomes complicated---and sometimes impossible---if an application interacts with external components, if a legacy class is not completely equivalent to its replacement, or if multiple interdependent classes must be migrated simultaneously. We present an approach in which mappings between legacy classes and their replacements are specified by the programmer. Then, an analysis based on type constraints determines where declarations and allocation sites can be updated. The method was implemented in Eclipse, and evaluated on a number of Java applications. On average, our tool could migrate more than 90% of the references to legacy classes.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Bäumer, D., Gamma, E., and Kieżun, A. Integrating refactoring support into a Java development tool. In OOPSLA'01 Companion (October 2001).
|
| |
3
|
|
| |
4
|
Bracha, G., Cohen, N., Kemper, C., Odersky, M., Stoutamire, D., Thorup, K., and Wadler, P. Adding generics to the Java programming language: Public draft specification, version 2.0. Tech. rep., Java Community Process JSR-000014, June 23 2003.
|
| |
5
|
|
 |
6
|
Jong-Deok Choi , Manish Gupta , Mauricio Serrano , Vugranam C. Sreedhar , Sam Midkiff, Escape analysis for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.1-19, November 01-05, 1999, Denver, Colorado, United States
|
| |
7
|
|
| |
8
|
Dig, D., and Johnson, R. The role of refactorings in API evolution. Tech. Rep. UIUCDCS-R-2005-2555, University of Illinois at Urbana-Champaign, 2005.
|
| |
9
|
|
 |
10
|
Mikhail Dmitriev, Language-specific make technology for the Java programming language, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
11
|
Alan Donovan , Adam Kiežun , Matthew S. Tschantz , Michael D. Ernst, Converting java programs to use generic libraries, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
 |
12
|
Peter Harry Eidorff , Fritz Henglein , Christian Mossin , Henning Niss , Morten Heine Sørensen , Mads Tofte, AnnoDomini: from type theory to Year 2000 conversion tool, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-14, January 20-22, 1999, San Antonio, Texas, United States
[doi> 10.1145/292540.292543]
|
| |
13
|
|
| |
14
|
Fuhrer, R., Tip, F., Kiezun, A., Dolby, J., and Keller, M. Efficiently refactoring Java applications to use generic libraries. In Proc. ECOOP'05 (Glasgow, Scotland, 2005). To appear.
|
| |
15
|
|
| |
16
|
|
 |
17
|
|
 |
18
|
|
| |
19
|
|
| |
20
|
|
| |
21
|
K. Kontogiannis , J. Martin , K. Wong , R. Gregory , H. Müller , J. Mylopoulos, Code migration through transformations: an experience report, Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research, p.13, November 30-December 03, 1998, Toronto, Ontario, Canada
|
| |
22
|
|
| |
23
|
|
 |
24
|
|
| |
25
|
|
| |
26
|
|
 |
27
|
|
| |
28
|
Ryder, B. G. Dimensions of precision in reference analysis of object-oriented programming languages. In Proc. CC 2003 (Warsaw, Poland, April 2003), pp. 126--137.
|
| |
29
|
|
| |
30
|
Sutter, B. D., Tip, F., and Dolby, J. Customization of Java library classes using type constraints and profile information. In Proc. ECOOP'04 (Oslo, Norway, June 2004), pp. 585--609.
|
 |
31
|
Frank Tip , Adam Kiezun , Dirk Bäumer, Refactoring for generalization using type constraints, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
 |
32
|
|
 |
33
|
Daniel von Dincklage , Amer Diwan, Converting Java classes to use generics, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
CITED BY 21
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Danny Dig , Ralph Johnson, Automated upgrading of component-based applications, Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Philippe Charles , Robert M. Fuhrer , Stanley M. Sutton, Jr., IMP: a meta-tooling platform for creating language-specific ides in eclipse, Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, November 05-09, 2007, Atlanta, Georgia, USA
|
|
|
|
|
|
|
|
|
Ilie Şavga , Michael Rudolf , Sebastian Götz , Uwe Aßmann, Practical refactoring-based framework upgrade, Proceedings of the 7th international conference on Generative programming and component engineering, October 19-23, 2008, Nashville, TN, USA
|
|
|
|
|
|
|
|