CFMumps is a highly modular, orthogonal system: the Global API (lib.cfmumps.global) calls into the Basic API (lib.cfmumps.mumps), which in turn calls into the default connector configured in cfmumps.ini. Thus, lib.cfmumps.mumps is a wrapper, which simply passes the parameters of its component methods to the underlying connector.
In order for this architecture to work, CFMumps takes advantage of CF interfaces, which are essentially object-oriented blueprints, setting forth a set of methods and their parameters which a component must contain in order to implement the interface.
The CFMumps connectors all implement the iMumpsConnector interface, which essentially requires the connector to implement the CFMumps Basic API.
In order for a CFMumps connector to give reliable and robust performance, it must adhere to the following requirements:
All CFMumps connectors must implement the iMumpsConnector interface
CFMumps connectors should not use vendor-specific extensions, and should aim for compatibility with Adobe ColdFusion 10
CFMumps connector methods should never rely on variables existing outside of their component's scope, and should never assume that session management is available
CFMumps connector methods should use function-local variables when possible
CFMumps connectors should assume that they will be called concurrently by multiple, simultaneous threads, and as such, should use <cflock> or other such tools to avoid concurrency problems.
CFMumps connectors should extend lib.cfmumps.admin and use its getConfig() and setConfig() methods to store connector-specific settings. Under no circumstances should a CFMumps connector ever access cfmumps.ini directly, as Coherent Logic Development reserves the right to change the entire configuration storage mechanism at any time, and the getConfig() and setConfig() APIs will always be kept up to date with the latest mechanisms.
CFMumps connectors should implement settings page fragments for the CFMumps Administrator (see later section in this appendix)
Add Comment