This JIRA houses the attempt to create a plugin system for OFBiz based on gradle. The plugin system should have the following features:
- It is independent of the version control system, file system, operating system and any other environment tools surrounding OFBiz. Instead, it should be fully integrated with OFBiz.
- It should unify the way OFBiz is extended, both for official supported plugins and for third party plugins
- The plugin system takes advantage of the concept of a "component" in OFBiz and utilize it as the building block for plugins
- The plugin system supports the concepts of "Repository" and "Dependency Management". If possible, the plugin system will utilize these concepts directly from Gradle instead of writing them from scratch.
The initial API for the plugin system will be small and expands as needed. The API should include the following gradle tasks:
- createPlugin: creates a new plugin based on templates and place it in the plugins directory
- installPlugin: Activate a plugin and run Install. Plugin must exist in /specialpurpose
- uninstallPlugin: Deactivate a plugin and run its uninstall script
- publishPlugin: publish a plugin to local maven repository
- pullPlugin: download a plugin with its dependencies (plugins) from a repository and install them