Towards automated library migrations with error prone and refaster

10Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.

Abstract

Software projects use a significant number of external libraries to speed up development and deliver high-quality software in a cost-effective way. Requirements placed on external libraries can change over time and libraries may cease to be maintained or evolve in incompatible ways. Consequently, a library may no longer be fit for purpose and require replacement. Such a library migration is generally performed manually and may be complex, error-prone, and time-consuming, especially for large codebases. It follows that an automated approach to library migrations is preferred. We consider the suitability of Error Prone and Refaster, two Google tools capable of refactoring Java programs, for automated library migration. We propose extensions that improve the accuracy with which Refaster templates are matched, as well as the correctness of their replacement operations. We additionally propose a set of Error Prone extensions to facilitate rewriting method return types. Together they enable a new class of rewrite operations especially relevant to library migrations. For validation we consider a private industrial codebase as well as an actively developed open source codebase. We show that using out-of-the-box Error Prone and Refaster full migration of RxJava 2-referencing files is possible in only 35% and 0% of such files, respectively. Using the proposed extensions, we manage to fully migrate an additional 35% of the RxJava 2-referencing files in the former codebase, and an initial 39% of such files in the latter codebase.

Cite

CITATION STYLE

APA

Ossendrijver, R., Schroevers, S., & Grelck, C. (2022). Towards automated library migrations with error prone and refaster. In Proceedings of the ACM Symposium on Applied Computing (pp. 1598–1606). Association for Computing Machinery. https://doi.org/10.1145/3477314.3507153

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free