The additions for the Java 2 platform to the JavaBeans core specification provide developers with standard means to create more sophisticated JavaBeans components and applications that offer their customers more seamless integration with their runtime environment (i.e., desktop, web browser, etc.). To achieve this, three new capabilities to the JavaBeans component model are added:
All three of the specifications are available for download. As in the past, Sun has worked closely with its development partners in defining these specifications. We welcome your feedback on these APIs.
- The Extensible Runtime Containment and Services Protocol (v1.0)
- The Drag and Drop Subsystem for the Java Foundation Classes (v0.96, Aug.24)
- The JavaBeans Activation Framework (Updated, May 24)
The Extensible Runtime Containment and Services Protocol, and the Drag and Drop Subsystem are implemented since the Java 2 release. You can download JDK from here.
The JavaBeans Activation Framework is implemented as a Standard Extension. This means that Sun provides a royalty-free reference implementation, in binary form, that developers can use to develop JAF-enabled applications for any platform that supports Java 2. Sun's reference implementation of the JAF is now available for download.
About the Object Aggregation/Delegation Model
Since we first proposed the Object Aggregation/Delegation mechanism, it has come apparent from much of the feedback from developers that "aggregation" is a much overloaded term that is interpreted by many to solve problems that this proposal does not nor should not address. In light of this observation, we have reconsidered the general utility this facility provides and have decided to defer the delivery of the implementation of this specification until a future JavaBeans release.
The BenefitsIncreasingly, users live in a world of composite, as opposed to monolithic, applications and environments (i.e., webtops, desktops, etc.). As a result, it critical that developers have a standard, highly integrated and highly interoperable infrastructure to build upon. Without such standards, developers are forced to invent their own mechanisms, which ultimately limit the interoperability and portability of the components they develop.
These specifications build upon the existing JavaBeans component model to provide developers with a standard means to provide their customers more sophisticated components and applications that can offer users more seamless integration with their runtime environment, regardless whether that environment is a PC desktop, webtop, etc.
Downloading the Specifications
The JavaBeans Runtime Containment and Services Protocol specification (v1.0):When a Bean is introduced to its environment (i.e., a web-browser, word processor, etc.), it knows that it's running inside the Java VM and that it has access to the core Java APIs. However, today, it has no standard means to discover other attributes or services that may be available in its surrounding environment. This protocol allows developers to nest Beans within other Beans more seamlessly, where the nested Beans can procure additional services at runtime from its environment in a standard fashion. Similarly, it provides a standard mechanism for the environment or containing Bean to extend its capabilities directly to Beans within it.
Drag and Drop Subsystem for the Java Foundation Classes draft specification (v0.96, Aug. 24):Although we are focusing on 100% Pure Java, we are also interested in supporting Java as an integral part of existing platforms. With native-platform capable drag-and-drop, a user with a native application sitting next to a Java application will be able to drag-and-drop between the Java and native applications, and have a level of fidelity in the user gesture consistent with that of the host native platform.
The JavaBeans Activation Framework specification (v1.0.1 May 24):With the JavaBeans Activation Framework, Java developers can take advantage of standard services to determine the type of an arbitrary piece of data, encapsulate access to it, discover the operations available on it, and to instantiate the appropriate JavaBeans component to perform said operation(s). For example, if a browser obtained a JPEG image, this framework would enable the browser to identify that stream of data as an JPEG image, and from that type, the browser could locate and instantiate an object that could manipulate, or view that image.