Dynamically loaded plugin architecture
A method and architecture for using dynamically loaded plugins is described herein. The dynamically loaded plugin architecture comprises a parent context and a plugin repository. The parent context may define one or more reusable software components. The plugin repository may store one or more plugins. When a plugin is loaded, a child context may be created dynamically. The child context is associated with the plugin and inherits the one or more reusable software components from the parent context.
1. A system comprising:
a storage device configured to store a plurality of plugins, wherein:
each plugin of the plurality of plugins is configurable to inherit a software component from a different plugin of the plurality of plugins,
each plugin of the plurality of plugins is configurable to generate a model that adds a feature to a host application, and
the storage device is further configured to indicate a violation if the model was previously generated.
2. The system of claim 1 , wherein each plugin of the plurality of plugins comprises executable code within an application.
3. The system of claim 1 , wherein each plugin of the plurality of plugins is operable on a hardware processor.
4. The system of claim 1 , wherein each plugin of the plurality of plugins is on a server.
5. The system of claim 1 , wherein each plugin of the plurality of plugins is operable to run independently from and concurrently with each other plugin of the plurality of plugins.
6. The system of claim 1 , wherein a parent plugin of the plurality of plugins is defined by an application programming interface (API).
7. The system of claim 1 , wherein each plugin of the plurality of plugins is uniquely identified by a version.
8. The system of claim 7 , wherein a first version of a plugin is operable to run independently from and concurrently with a second version of the plugin.
9. The system of claim 1 , wherein the plurality of plugins are stored in a container.
10. A method comprising:
loading a first plugin;
inheriting, by the first plugin, a software component from a second plugin;
generating, by the first plugin, a model that adds a feature to a host application; and
triggering a violation if the model was previously generated.
11. The method of claim 10 , wherein the method comprises executing code, on the first plugin, within an application.
12. The method of claim 10 , wherein the method comprises operating the first plugin on a hardware processor.
13. The method of claim 10 , wherein the method comprises operating the first plugin on a server.
14. The method of claim 10 , wherein the method comprises operating the first plugin independently from and concurrently with a plugin that is different than the first plugin.
15. The method of claim 10 , wherein the method comprises defining the first plugin by an application programming interface (API).
16. The method of claim 10 , wherein the method comprises uniquely identifying the first plugin by a version.
17. The method of claim 16 , wherein the method comprises running a first version of the first plugin independently from and concurrently with a second version of the first plugin.
18. The method of claim 10 , wherein the method comprises storing the first plugin in a container.