public interface ControlSystemSupportFactory
Factory that can create a ControlSystemSupport
. Each control-system
support module must provide such a factory which is responsible for creating
its respective control-system support when requested by the archive server.
In order to register the factory with the server, a properties file with the
name META-INF/cassandra-pv-archiver.factories
has to be added to
the class-path. Within this property file, the fully qualified name of this
interface has to be used as the property key and the fully qualified name of
the class implementing the interface has to be used as the property value. If
there are multiple classes implementing this interface within the same
module, the names of those classes can be separated by commas.
When there are multiple control-system support modules in the class-path, multiple instances of the property file might exist in the class-path. The discovery mechanism is able to deal with such a situation, automatically taking all these files into consideration when trying to find the factory implementations.
Classes implementing this interface must have a default constructor. Otherwise the discovery mechanism is not able to instantiate the class, resulting in a fatal error.
Classes implementing this interface must also be thread-safe. This means that
they must allow for multiple threads calling its method in parallel. The
ControlSystemSupport
s returned by implementations of this
interface must also be thread-safe.
Modifier and Type | Method and Description |
---|---|
ControlSystemSupport<?> |
createControlSystemSupport(Map<String,String> configuration,
Session session)
Creates an instance of the control-system support associated with this
factory.
|
String |
getConfigurationPrefix()
Returns the prefix used for the configuration options associated with
this control-system support.
|
ControlSystemSupport<?> createControlSystemSupport(Map<String,String> configuration, Session session)
configuration
- map containing configuration options. The configuration
options are properties that have been extracted from the
server configuration file according to the prefix specified by
getConfigurationPrefix()
. Values might be
null
, but keys are never null
. The
meaning of the configuration options is
implementation-specific, but the naming scheme should use
camel-case syntax, starting with a lower-case letter. The keys
in the configuration map are specified with the prefix
removed.session
- Cassandra session used for database operations.null
.String getConfigurationPrefix()
Returns the prefix used for the configuration options associated with this control-system support. This prefix should use camel-case syntax and start with a lower-case letter. For example, a control-system support using the identifier "my_control_system" should use a prefix of "myControlSystem".
Within the server configuration file, the prefix "controlSystem" has to
be prepended to all properties associated with a control-system support.
For example, if a factory specified a configuration prefix of
"myControlSystem", the property "controlSystem.myControlSystem.myOption"
would be passed to createControlSystemSupport(Map, Session)
using the key "myOption".
Copyright © 2011–2017 aquenos GmbH. All rights reserved.