Documentation 
Distribution 

Binary Component Adaptation for Java

Binary component adaptation (BCA) is a mechanism to modify existing components (such as Java class files) to the specific needs of a programmer. In particular, binary component adaptation offers the following advantages: 
    Very flexible. BCA allows a wide range of modifications (including method addition, renaming of method and fields, and changes to the inheritance or subtyping hierarchy). 

    No source code required. BCA allows adaptation of any component without requiring source code access, so that it can be used even on third-party libraries. BCA uses the type information contained in the binary class file. 

    In place modifications. The internal structure of a component is modified in place rather than creating wrapper classes to incorporate changes. This means that the type definition of the original class is modified.

    Release-to-release compatibility. An adaptation can be applied to a future release of the base component. 

    Efficient. Since binary adaptations do not require the re-typechecking of any code at adaptation time, BCA is efficient enough to be performed at load time. 

    Compatible with existing VMs. A BCA-enhanced virtual machine runs any exisiting code. 

    Freely available. The BCA system is available for SPARC/Solaris for download

Binary component adaptation was designed and implemented by Ralph Keller and Urs Hölzle at the University of California, Santa Barbara.

Documentation

BCA is described in the following documents: 
  • Binary Component Adaptation. The ECOOP'98 paper describes BCA and the rationale for its design.

  • The BCA User Guide. This guide explains briefly how to install and use BCA. Available in PS and PDF.

  • Implementing Binary Component Adaptation for Java. Technical report TRCS98-21. Describes the implementation of the BCA system, how it is integrated into the JDK1.1.5, and the delta file compiler.

  • Supporting the Integration and Evolution through Binary Component Adaptation. Technical report TRCS97-15.

Talk slides:
  • BCA talk slides (detailed overview of BCA). Available in color and black and white.

  • ECOOP'98 slides. Available in PS and PDF.

Software Distribution

This is the first release of BCA to allow people to gain experiences with BCA. It should work on SPARC/Solaris 2.5. Read the BCA User Guide for instructions how to install and use this release. 


Comments to ralph@cs.ucsb.edu.