ECOOP’98 — Object-Oriented Programming

Volume 1445 of the series Lecture Notes in Computer Science pp 307-329


Binary component adaptation

  • Ralph KellerAffiliated withDept. of Computer Science, Univ. of California
  • , Urs HölzleAffiliated withDept. of Computer Science, Univ. of California

* Final gross prices may vary according to local VAT.

Get Access


Binary component adaptation (BCA) allows components to be adapted and evolved in binary form and on-the-fly (during program loading). BCA rewrites component binaries before (or while) they are loaded, requires no source code access and guarantees release-to-release compatibility. That is, an adaptation is guaranteed to be compatible with a new binary release of the component as long as the new release itself is compatible with clients compiled using the earlier release. We describe our implementation of BCA for Java and demonstrate its usefulness by showing how it can solve a number of important integration and evolution problems. Even though our current implementation was designed for easy integration with Sun's JDK 1.1 VM rather than for ultimate speed, the load-time overhead introduced by BCA is small, in the range of one or two seconds. With its flexibility, relatively simple implementation, and low overhead, binary component adaptation could significantly improve the reusability of Java components.