Dynamic extensions loading allows to add selected extension to OpenHub application independently by each other.
There is extensions.cfg configuration file (in web-admin module by default) with extension configuration parameters.
If you want to add one specific extension to OpenHub application then follow the following steps:
0) Prerequisite - extension configuration loader must be initialized
1) add Maven dependency to specific extension
For example add dependency to File upload extension:
2) add Spring configuration of specific extension
extensions.cfg (defined directly in OpenHub framework web-admin module) or extensions0.cfg (has higher priority) defines references to Spring root configuration files for each extension. Each property has to starts with context.ext prefix.
sp_ext_fileupload.xml file can contain "unlimited" another Spring configurations specific for File upload extension, imports other configurations for the extension, choose between XML, annotation or Java config style etc.
For each item in the previous configuration file is new Spring child context created. This context is child context of Spring Camel (Web Service) context.
Child Spring context is type of ClassPathXmlApplicationContext
See PropertiesExtensionConfigurationLoader for more details.
There is the following Spring context hierarchy:
- root context - Camel (Spring Web Service) context + Spring MVC (admin) context
- extension1 context
- extension2 context