Browsing- and querying-oriented schemes have long served as the principal techniques for software developers to locate software components from a component repository for reuse. Unfortunately, the problem remains that software developers simply will not actively search for components when they are unaware that they need components or that relevant components even exist. Thus, to assist software developers in making full use of large component repositories, information access need to be complemented by information delivery. Effective delivery of components calls for the personalization of the components to the task being performed and the knowledge of the user performing it. We have designed, implemented, and evaluated the CodeBroker system to support personalized component delivery to increase the usefulness of a Java software reuse environment.