External Plugin Executor
This is a new plug-in that is intended to be a more powerful complement to the existing !Base1PluginExecuter. The main problem with the old plug-in is that it needs to follow the BASE 1 rules and it can never take full advantage of new BASE 2 features.
The general protocol of the new plug-in is:
- Export data from BASE to files.
- Run some external program.
- Import data from files that the external program produced.
All steps should be higly configurable. It should be possible to select which exporter to use, which external program to use and which importer to use. To accomplish this we need to define:
- A set of interfaces that compatible exporters/importers need to implement. Some exporters/importers may need configuration-time settings and/or run-time settings.
- A way to define additional run-time parameters that are needed by the external program. The selected values must go through the exporter which is responsible for creating ALL files.
We will use the BaseFileSet (#1440) format as the first use case. When this plug-in is in place it should also be possible to easily fix #741. With the proper wrapper classes executing BASE 1 plug-ins is just another use case. In theory we could deprecate the !Base1PluginExecuter, but in practice it may not work since existing configurations for the !Base1PluginExecuter needs to be transfered to the new plug-in. At this time it is hard to tell if this is going to be easy or if it requires a lot of work.