Component Replacement
Business Components provide a simple extension mechanism where base-package code can be made available to be replaced by customizations. For this to take place, two things must take place:
A component is added as described above with the customizationReplaceable annotation attribute set to true.
A replacement component is created that implements the business interface of the original component and also sets the replacementComponent attribute to true.
An example, replacement of the PersonFinders component is shown below. Component implementations are registered in the same order as the "application stack", that is "base" followed by "ccb" then followed by "cm". After the component is defined in one application, derived applications (higher on the stack) can replace the implementation.

package com.abcutilities.cis.customizations.person;
/**
 * @BusinessComponent
 *   (replacementComponent = true)
 */
public class CustomizedPersonFindersImpl 
    extends GenericBusinessComponent 
    implements PersonFinders {

    public Integer findCountByNameType(PerOrBusLookup nameType) {
        ... customized code ...
    }
    ...
}