The JavaTM Tutorial

| Start of Tutorial > Start of Trail > Start of Lesson | Search

Trail: JavaBeans(TM)
Lesson: Using the BeanContext API

## Overview of the BeanContext API

> ### Purpose

> As stated in the specification, the purpose of the Extensible Runtime Containment and Services Protocol is "to introduce the concept of a relationship between a Component and its environment, or Container, wherein a newly instantiated Component is provided with a reference to its Container or Embedding Context. The Container, or Embedding Context not only establishes the hierarchy or logical structure, but it also acts as a service provider that Components may interrogate in order to determine, and subsequently employ, the services provided by their Context."

> This protocol supports extensible mechanisms that:

> - Introduce an abstraction for the environment, or context, in which a JavaBean logically functions during its life-cycle, that is a hierarchy of JavaBeans
> - Enable the dynamic addition of arbitrary services to a JavaBean's environment
> - Provide a single service discovery mechanism through which JavaBeans may interrogate their environment in order both to ascertain the availability of particular services and to subsequently employ those services.
> - Provide better support for JavaBeans that are also Applets.

> In English, this means that there now exists a standard mechanism through which Java developers can logically group a set of related JavaBeans into a "context" that the beans can become aware of and/or interact with. This context, or "containing environment", is known as the `BeanContext`.

> There are two distinct types of `BeanContext` included in this protocol: one which supports membership only (interface `java.beans.beancontext.BeanContext`) and one which supports membership and offers services (interface `java.beans.beancontext.BeanContextServices`) to its JavaBeans nested within.

> To orient yourself with the classes and interfaces of `java.beans.beancontext`, take a minute to look over the following hierarchy diagram. You will notice that the majority of the package is defined as interfaces, which allow for multiple inheritance.

> ### Inheritance Diagram of the BeanContext API

> The classes and interfaces relevant to the `BeanContext` API are listed in the following diagrams. As you study the diagrams, take note of the `BeanContext` and `BeanContextServices` interfaces, and that each has its own concrete implementation that you can subclass or instantiate directly (classes `java.beans.beancontext.BeanContextSupport` and `java.beans.beancontext.BeanContextServicesSupport` respectively). Also take note of the location of the java.beans.beancontext.BeanContextChild interface. This is the interface that allows nested JavaBeans to become aware of their enclosing `BeanContext`.

| Start of Tutorial > Start of Trail > Start of Lesson | Search