Chapter 22. Plug-ins and extensions

Table of Contents

22.1. Managing plug-ins and extensions
22.1.1. Automatic installation wizard
22.1.2. Manual plug-in registration
22.1.3. BASE version 1 plug-ins
22.1.4. Installing the X-JSP compiler
22.1.5. Disable/enable plug-ins and extensions
22.1.6. Plug-in permissions
22.2. Plug-in configurations
22.2.1. Configuring plug-in configurations
22.2.2. Importing and exporting plug-in configurations
22.2.3. The Test with file function

BASE can get extended functionality by the use of plug-ins and extensions. Much of the hard work, such as data import/export and analysis is done with plug-ins. BASE ships with a number of standard plug-ins, the core plug-ins, which gives basic import/export and analysis functionality. Typically a plug-in interacts with a user by asking for parameters that it need to be able to do it's work. For example, which file to import data from, and maybe some regular expressions that should be used when parsing the file and then some information about how the data in the file should be mapped to items and properties in BASE. When the plug-in has all parameters it needs a Job is added to a job queue. A job agent or similar is then responsible for sceduling and executing (possibly on a different machine) the plug-in code.

Extensions are historically more targeted at additions to the user interface, such as additional menu items, toolbar buttons, etc. As a result, extensions have a lot more flexibility when it comes to the visual appearance. On the other hand they are executed immediately as a result of user interaction and are expected to perform quickly and without delay.

Starting with BASE 3 the extension mechanism has been somewhat extended to cover other things that are not directly related to the web interface. For example, extensions can be used to add support for other protocols than HTTP when using external files. The main difference between a plug-in and extension is that an extension must execute immediately it's service is requested, but a plug-in can be scheduled for later execution.