The WSO2 Enterprise Store (ES) is a generic store, which allows any type of resource defined by a RXT to be deployed and managed. It consists of a Store Front and Back Office, which respectively provides a consumer facing view and a management view, for asset publishers and curators. ES provides a set of standard views and generic business logic implementations. However, most often developers may need to customize the Enterprise Store by changing its default behavior and appearance to suit their personal needs. The Extension Model (EM) defined in WSO2 ES, provides a well defined set of components for building and packaging these changes.
The Extension Model has been designed with the following goals in mind:
- Incremental Customizations - This ensures that developers do not have to reimplement the business logic and views when changing the default behavior.
Customizations should be self-contained and not depend on core files - This ensures that developers are able to define customizations without changing core files and views.
How does it work?
The Enterprise Store Extension Model consists of two main components:
- App extensions - The app extensions, which are defined via the
app.jsfile, allows cross-cutting changes to be defined (e.g., changing the logo).
- Asset extensions - The asset extensions, which are defined via the
asset.jsfile, allows new asset extensions to be defined.
These two forms of extensions allow the behavior and views of ES to be extended, at the asset type level and across globally accessible pages and APIs (app level). The folder structure that is maintained for the Extension Model is shown in the following diagram. The same folder structure is maintained for the Store and Publisher (Back Office) applications.