Show TOC

Background documentationConcepts of Extensibility Configuration Framework Locate this document in the navigation structure

 

This topic provides information about the new extensibility configuration framework that is integrated in the Composite Designer, and its major use cases for a customer.

The extensibility configuration framework demonstrates an innovative conceptual approach, which allows different interface implementations of the application parts to be exchanged during the runtime of an application.

Using this new extensibility framework approach you can easily customize the behavior of already existing applications.

To do this, you first need to define extension points in your application. An extension point is a reference to a development object interface of a redirectable technology. The extension point allows exchanging, or actually redirecting to different interface implementations during the runtime of an application.

You can create extension points for the interfaces of the following development objects:

  • Enterprise JavaBeans (EJBs)

  • Composite Application Framework (CAF)

  • Web Dynpro (WD)

In the (Individual) Adobe Interactive form (AIF) use case the extension point is not an interface, it is a single form marked as extensible.

To create an extension point there must be at least two development objects from one of the above types, as there must be a relation between them. If there are no limitations such as in the CAF use case, you create the relation using the relation wizard in Composite Designer.

Using the Composite Designer user interface you create an extension point by selecting the relation between the two objects. As a result, the selected object relation is indicated with a special symbol in the Composite Designer graphical overview.

For example, the picture below illustrates a EJB use case in which the default implementation of an EJB interface is exchanged with different implementations. In the example, Bean1 contains the default initial implementation which will be exchanged with additional implementations, while Bean2 is the bean that has a relation to Bean1 based on the interface. This concrete usage relation between the beans acts as an extension point. You can see the special symbol that indicates that an extension point is created below.

This graphic is explained in the accompanying text.

Afterwards, you need to prepare additional interface implementations for the specified extension points. The additional interface implementation is called an extension. For one application it is possible that you have several extensions for one interface — EJB for example. In this use case, the Composite Designer provides the possibility to activate and deactivate the available extensions manually. Only one extension can be active at a time.

The following table shows the details about the extension points and extensions for each of the above redirectable technologies:

Technology

Extension Point

Extension

EJB

EJB interface definition

Interface implementation with configuration metadata

CAF

EJB interface definition

Interface implementation with configuration metadata

WD

WD Component Interface definition

CID implementation with configuration metadata

AIF

AIF marked as extensible

A form inside a WD component with configuration metadata for the form

There are two options regarding the composite application (product) for which you can create an extension:

  • A product for which you have the source code

  • A product for which you do not have the source code

The second option is more frequently used when working with the extensibility configuration framework.

Having a more technical perspective, we can add that the necessary extensibility configuration data for the interface and for the implementations is kept in the specific metadata. The design time part handles this definition of the extensibility specific configuration metadata. The design time is based on the standard Service Component Archive (SCA) assembly model. In the end, the configuration metadata is consolidated as a descriptor in a Service Component Description Language (SCDL) file. It is included in the deployable ear file of the components during the development component's build. After deployment, the metadata is interpreted by the runtime to find out which implementation will be used.

The extensibility configuration framework can be really beneficial in scenarios in which small customizations are necessary for already existing applications or composite applications.

Example Example

For example, your application has a Web Dynpro based user interface (with defined extension points) and it is shipped to your customers. But one of your customers requests a slightly different user interface that fits into an already established company outlook. So using the extensibility configuration framework, the application user interface which is implemented using Web Dynpro development objects can be modified in a way that meets the customer needs.

In a similar case, your application has a Java EE based business logic (with defined extension points) and it is shipped to your customers. A customer requests a small modification of the business logic to comply with specific state or local financial regulations. Then using the extensibility configuration framework, the implementation of several business logic development objects can be exchanged to comply with the regional or company regulations such as calculating the company year taxes (bonuses), tracking personnel vacations, and so on.

End of the example.