net.esper.client
Class Configuration

java.lang.Object
  extended by net.esper.client.Configuration
All Implemented Interfaces:
ConfigurationOperations

public class Configuration
extends Object
implements ConfigurationOperations

An instance of Configuration allows the application to specify properties to be used when creating a EPServiceProvider. Usually an application will create a single Configuration, then get one or more instances of EPServiceProvider via EPServiceProviderManager. The Configuration is meant only as an initialization-time object. EPServiceProviders are immutable and do not retain any association back to the Configuration.
The format of an Esper XML configuration file is defined in esper-configuration-1.0.xsd.


Nested Class Summary
static class Configuration.PropertyResolutionStyle
          Enumeration of different resolution styles for resolving property names.
 
Field Summary
protected  List<ConfigurationAdapterLoader> adapterLoaders
          List of adapter loaders.
protected  Map<String,ConfigurationDBRef> databaseReferences
          The java-style class and package name imports that will be used to resolve partial class names.
protected  ConfigurationEngineDefaults engineDefaults
          Saves engine default configs such as threading settings
protected  String epServicesContextFactoryClassName
          Optional classname to use for constructing services context.
protected static String ESPER_DEFAULT_CONFIG
          Default name of the configuration file.
protected  Map<String,String> eventClasses
          Map of event name and fully-qualified Java class name.
protected  Map<String,ConfigurationEventTypeLegacy> eventTypesLegacy
          Map of event type alias and Legacy-type event configuration.
protected  Map<String,ConfigurationEventTypeXMLDOM> eventTypesXMLDOM
          Map of event type alias and XML DOM configuration.
protected  Map<String,Object> extensionConfigurations
          Map of extension configuration objects.
protected  List<String> imports
          The java-style class and package name imports that will be used to resolve partial class names.
protected  Map<String,Properties> mapAliases
          The type aliases for events that result when maps are sent into the engine.
protected  List<ConfigurationPlugInAggregationFunction> plugInAggregationFunctions
          List of configured plug-in aggregation functions.
protected  List<ConfigurationPlugInPatternObject> plugInPatternObjects
          List of configured plug-in pattern objects.
protected  List<ConfigurationPlugInView> plugInViews
          List of configured plug-in views.
 
Constructor Summary
Configuration()
          Constructs an empty configuration.
 
Method Summary
 void addAdapterLoader(String loaderName, String className, Properties configuration)
          Add an input/output adapter loader.
 void addDatabaseReference(String name, ConfigurationDBRef configurationDBRef)
          Add a database reference with a given database name.
 void addEventTypeAlias(String eventTypeAlias, Class javaEventClass)
          Add an alias for an event type represented by Java-bean plain-old Java object events.
 void addEventTypeAlias(String eventTypeAlias, ConfigurationEventTypeXMLDOM xmlDOMEventTypeDesc)
          Add an alias for an event type that represents org.w3c.dom.Node events.
 void addEventTypeAlias(String eventTypeAlias, Map<String,Class> typeMap)
          Add an alias for an event type that represents java.util.Map events, taking a Map of event property and class name as a parameter.
 void addEventTypeAlias(String eventTypeAlias, Properties typeMap)
          Add an alias for an event type that represents java.util.Map events.
 void addEventTypeAlias(String eventTypeAlias, String javaEventClassName)
          Add an alias for an event type represented by Java-bean plain-old Java object events.
 void addEventTypeAlias(String eventTypeAlias, String javaEventClass, ConfigurationEventTypeLegacy legacyEventTypeDesc)
          Add an alias for an event type that represents legacy Java type (non-JavaBean style) events.
 void addExtensionConfig(String extensionName, Object configurationObject)
          Adds a configuration object for a named extension.
 void addImport(String autoImport)
          Adds a package or class to the list of automatically-imported classes and packages.
 void addPlugInAggregationFunction(String functionName, String aggregationClassName)
          Adds a plug-in aggregation function given a function name and an aggregation class name.
 void addPlugInPatternGuard(String namespace, String name, String guardFactoryClass)
          Add a pattern guard for plug-in.
 void addPlugInPatternObserver(String namespace, String name, String observerFactoryClass)
          Add a pattern event observer for plug-in.
 void addPlugInView(String namespace, String name, String viewFactoryClass)
          Add a view for plug-in.
 Configuration configure()
          Use the configuration specified in an application resource named esper.cfg.xml.
 Configuration configure(Document document)
          Use the mappings and properties specified in the given XML document.
 Configuration configure(File configFile)
          Use the configuration specified in the given application file.
 Configuration configure(String resource)
          Use the configuration specified in the given application resource.
 Configuration configure(URL url)
          Use the configuration specified by the given URL.
 List<ConfigurationAdapterLoader> getAdapterLoaders()
          Returns a list of configured adapter loaders.
protected static InputStream getConfigurationInputStream(String resource)
          Get the configuration file as an InputStream.
 Map<String,ConfigurationDBRef> getDatabaseReferences()
          Returns a map of string database names to database configuration options.
 ConfigurationEngineDefaults getEngineDefaults()
          Returns engine default settings.
 String getEPServicesContextFactoryClassName()
          Returns the service context factory class name
 Map<String,String> getEventTypeAliases()
          Returns the mapping of event type alias to Java class name.
 Map<String,ConfigurationEventTypeLegacy> getEventTypesLegacy()
          Returns the mapping of event type alias to legacy java event type information.
 Map<String,Properties> getEventTypesMapEvents()
          Returns a map keyed by event type alias name, and values being the definition for the event type of the property names and types that make up the event.
 Map<String,ConfigurationEventTypeXMLDOM> getEventTypesXMLDOM()
          Returns the mapping of event type alias to XML DOM event type information.
 Map<String,Object> getExtensionConfigs()
          Returns extension configuration objects as a map of extension module name and configuration object.
 List<String> getImports()
          Returns the class and package imports.
 List<ConfigurationPlugInAggregationFunction> getPlugInAggregationFunctions()
          Returns a list of configured plug-in aggregation functions.
 List<ConfigurationPlugInPatternObject> getPlugInPatternObjects()
          Returns a list of configured plug-ins for pattern observers and guards.
 List<ConfigurationPlugInView> getPlugInViews()
          Returns a list of configured plug-in views.
protected static InputStream getResourceAsStream(String resource)
          Returns an input stream from an application resource in the classpath.
protected  void reset()
          Reset to an empty configuration.
 void setEPServicesContextFactoryClassName(String epServicesContextFactoryClassName)
          Sets the class name of the services context factory class to use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ESPER_DEFAULT_CONFIG

protected static final String ESPER_DEFAULT_CONFIG
Default name of the configuration file.

See Also:
Constant Field Values

eventClasses

protected Map<String,String> eventClasses
Map of event name and fully-qualified Java class name.


eventTypesXMLDOM

protected Map<String,ConfigurationEventTypeXMLDOM> eventTypesXMLDOM
Map of event type alias and XML DOM configuration.


eventTypesLegacy

protected Map<String,ConfigurationEventTypeLegacy> eventTypesLegacy
Map of event type alias and Legacy-type event configuration.


mapAliases

protected Map<String,Properties> mapAliases
The type aliases for events that result when maps are sent into the engine.


imports

protected List<String> imports
The java-style class and package name imports that will be used to resolve partial class names.


databaseReferences

protected Map<String,ConfigurationDBRef> databaseReferences
The java-style class and package name imports that will be used to resolve partial class names.


epServicesContextFactoryClassName

protected String epServicesContextFactoryClassName
Optional classname to use for constructing services context.


plugInViews

protected List<ConfigurationPlugInView> plugInViews
List of configured plug-in views.


plugInPatternObjects

protected List<ConfigurationPlugInPatternObject> plugInPatternObjects
List of configured plug-in pattern objects.


plugInAggregationFunctions

protected List<ConfigurationPlugInAggregationFunction> plugInAggregationFunctions
List of configured plug-in aggregation functions.


adapterLoaders

protected List<ConfigurationAdapterLoader> adapterLoaders
List of adapter loaders.


extensionConfigurations

protected Map<String,Object> extensionConfigurations
Map of extension configuration objects.


engineDefaults

protected ConfigurationEngineDefaults engineDefaults
Saves engine default configs such as threading settings

Constructor Detail

Configuration

public Configuration()
Constructs an empty configuration. The auto import values are set by default to java.lang, java.math, java.text and java.util.

Method Detail

setEPServicesContextFactoryClassName

public void setEPServicesContextFactoryClassName(String epServicesContextFactoryClassName)
Sets the class name of the services context factory class to use.

Parameters:
epServicesContextFactoryClassName - service context factory class name

getEPServicesContextFactoryClassName

public String getEPServicesContextFactoryClassName()
Returns the service context factory class name

Returns:
class name

addPlugInAggregationFunction

public void addPlugInAggregationFunction(String functionName,
                                         String aggregationClassName)
Description copied from interface: ConfigurationOperations
Adds a plug-in aggregation function given a function name and an aggregation class name.

The aggregation class must extends the base class AggregationSupport.

The same function name cannot be added twice.

Specified by:
addPlugInAggregationFunction in interface ConfigurationOperations
Parameters:
functionName - is the new aggregation function name
aggregationClassName - is the fully-qualified class name of the class implementing the aggregation function

addEventTypeAlias

public void addEventTypeAlias(String eventTypeAlias,
                              String javaEventClassName)
Add an alias for an event type represented by Java-bean plain-old Java object events.

Specified by:
addEventTypeAlias in interface ConfigurationOperations
Parameters:
eventTypeAlias - is the alias for the event type
javaEventClassName - fully-qualified class name of the event type

addEventTypeAlias

public void addEventTypeAlias(String eventTypeAlias,
                              Class javaEventClass)
Add an alias for an event type represented by Java-bean plain-old Java object events.

Specified by:
addEventTypeAlias in interface ConfigurationOperations
Parameters:
eventTypeAlias - is the alias for the event type
javaEventClass - is the Java event class for which to create the alias

addEventTypeAlias

public void addEventTypeAlias(String eventTypeAlias,
                              Properties typeMap)
Add an alias for an event type that represents java.util.Map events.

Specified by:
addEventTypeAlias in interface ConfigurationOperations
Parameters:
eventTypeAlias - is the alias for the event type
typeMap - maps the name of each property in the Map event to the type (fully qualified classname) of its value in Map event instances.

addEventTypeAlias

public void addEventTypeAlias(String eventTypeAlias,
                              Map<String,Class> typeMap)
Add an alias for an event type that represents java.util.Map events, taking a Map of event property and class name as a parameter.

This method is provided for convenience and is same in function to method taking a Properties object that contain fully qualified class name as values.

Specified by:
addEventTypeAlias in interface ConfigurationOperations
Parameters:
eventTypeAlias - is the alias for the event type
typeMap - maps the name of each property in the Map event to the type of its value in the Map object

addEventTypeAlias

public void addEventTypeAlias(String eventTypeAlias,
                              ConfigurationEventTypeXMLDOM xmlDOMEventTypeDesc)
Add an alias for an event type that represents org.w3c.dom.Node events.

Specified by:
addEventTypeAlias in interface ConfigurationOperations
Parameters:
eventTypeAlias - is the alias for the event type
xmlDOMEventTypeDesc - descriptor containing property and mapping information for XML-DOM events

addDatabaseReference

public void addDatabaseReference(String name,
                                 ConfigurationDBRef configurationDBRef)
Add a database reference with a given database name.

Parameters:
name - is the database name
configurationDBRef - descriptor containing database connection and access policy information

addEventTypeAlias

public void addEventTypeAlias(String eventTypeAlias,
                              String javaEventClass,
                              ConfigurationEventTypeLegacy legacyEventTypeDesc)
Add an alias for an event type that represents legacy Java type (non-JavaBean style) events.

Parameters:
eventTypeAlias - is the alias for the event type
javaEventClass - fully-qualified class name of the event type
legacyEventTypeDesc - descriptor containing property and mapping information for Legacy Java type events

addImport

public void addImport(String autoImport)
Description copied from interface: ConfigurationOperations
Adds a package or class to the list of automatically-imported classes and packages.

To import a single class offering a static method, simply supply the fully-qualified name of the class and use the syntax classname.methodname(...)

To import a whole package and use the classname.methodname(...) syntax, specifiy a package with wildcard, such as com.mycompany.staticlib.*.

Specified by:
addImport in interface ConfigurationOperations
Parameters:
autoImport - is a fully-qualified class name or a package name with wildcard

getEventTypeAliases

public Map<String,String> getEventTypeAliases()
Returns the mapping of event type alias to Java class name.

Returns:
event type aliases for Java class names

getEventTypesMapEvents

public Map<String,Properties> getEventTypesMapEvents()
Returns a map keyed by event type alias name, and values being the definition for the event type of the property names and types that make up the event.

Returns:
map of event type alias name and definition of event properties

getEventTypesXMLDOM

public Map<String,ConfigurationEventTypeXMLDOM> getEventTypesXMLDOM()
Returns the mapping of event type alias to XML DOM event type information.

Returns:
event type aliases mapping to XML DOM configs

getEventTypesLegacy

public Map<String,ConfigurationEventTypeLegacy> getEventTypesLegacy()
Returns the mapping of event type alias to legacy java event type information.

Returns:
event type aliases mapping to legacy java class configs

getImports

public List<String> getImports()
Returns the class and package imports.

Returns:
imported names

getDatabaseReferences

public Map<String,ConfigurationDBRef> getDatabaseReferences()
Returns a map of string database names to database configuration options.

Returns:
map of database configurations

getPlugInViews

public List<ConfigurationPlugInView> getPlugInViews()
Returns a list of configured plug-in views.

Returns:
list of plug-in view configs

getAdapterLoaders

public List<ConfigurationAdapterLoader> getAdapterLoaders()
Returns a list of configured adapter loaders.

Returns:
adapter loaders

getPlugInAggregationFunctions

public List<ConfigurationPlugInAggregationFunction> getPlugInAggregationFunctions()
Returns a list of configured plug-in aggregation functions.

Returns:
list of configured aggregations

getPlugInPatternObjects

public List<ConfigurationPlugInPatternObject> getPlugInPatternObjects()
Returns a list of configured plug-ins for pattern observers and guards.

Returns:
list of pattern plug-ins

addExtensionConfig

public void addExtensionConfig(String extensionName,
                               Object configurationObject)
Adds a configuration object for a named extension.

Parameters:
extensionName - is the name of the extension module.
configurationObject - is the extension configuration.

getExtensionConfigs

public Map<String,Object> getExtensionConfigs()
Returns extension configuration objects as a map of extension module name and configuration object.

Returns:
extension configuration objects

addAdapterLoader

public void addAdapterLoader(String loaderName,
                             String className,
                             Properties configuration)
Add an input/output adapter loader.

Parameters:
loaderName - is the name of the loader
className - is the fully-qualified classname of the loader class
configuration - is loader cofiguration entries

addPlugInView

public void addPlugInView(String namespace,
                          String name,
                          String viewFactoryClass)
Add a view for plug-in.

Parameters:
namespace - is the namespace the view should be available under
name - is the name of the view
viewFactoryClass - is the view factory class to use

addPlugInPatternObserver

public void addPlugInPatternObserver(String namespace,
                                     String name,
                                     String observerFactoryClass)
Add a pattern event observer for plug-in.

Parameters:
namespace - is the namespace the observer should be available under
name - is the name of the observer
observerFactoryClass - is the observer factory class to use

addPlugInPatternGuard

public void addPlugInPatternGuard(String namespace,
                                  String name,
                                  String guardFactoryClass)
Add a pattern guard for plug-in.

Parameters:
namespace - is the namespace the guard should be available under
name - is the name of the guard
guardFactoryClass - is the guard factory class to use

getEngineDefaults

public ConfigurationEngineDefaults getEngineDefaults()
Returns engine default settings.

Returns:
engine defaults

configure

public Configuration configure()
                        throws EPException
Use the configuration specified in an application resource named esper.cfg.xml.

Returns:
Configuration initialized from the resource
Throws:
EPException - thrown to indicate error reading configuration

configure

public Configuration configure(String resource)
                        throws EPException
Use the configuration specified in the given application resource. The format of the resource is defined in esper-configuration-1.0.xsd.

The resource is found via getConfigurationInputStream(resource). That method can be overridden to implement an arbitrary lookup strategy.

See getResourceAsStream for information on how the resource name is resolved.

Parameters:
resource - if the file name of the resource
Returns:
Configuration initialized from the resource
Throws:
EPException - thrown to indicate error reading configuration

getConfigurationInputStream

protected static InputStream getConfigurationInputStream(String resource)
                                                  throws EPException
Get the configuration file as an InputStream. Might be overridden by subclasses to allow the configuration to be located by some arbitrary mechanism.

See getResourceAsStream for information on how the resource name is resolved.

Parameters:
resource - is the resource name
Returns:
input stream for resource
Throws:
EPException - thrown to indicate error reading configuration

configure

public Configuration configure(URL url)
                        throws EPException
Use the configuration specified by the given URL. The format of the document obtained from the URL is defined in esper-configuration-1.0.xsd.

Parameters:
url - URL from which you wish to load the configuration
Returns:
A configuration configured via the file
Throws:
EPException - is thrown when the URL could not be access

configure

public Configuration configure(File configFile)
                        throws EPException
Use the configuration specified in the given application file. The format of the file is defined in esper-configuration-1.0.xsd.

Parameters:
configFile - File from which you wish to load the configuration
Returns:
A configuration configured via the file
Throws:
EPException - when the file could not be found

configure

public Configuration configure(Document document)
                        throws EPException
Use the mappings and properties specified in the given XML document. The format of the file is defined in esper-configuration-1.0.xsd.

Parameters:
document - an XML document from which you wish to load the configuration
Returns:
A configuration configured via the Document
Throws:
EPException - if there is problem in accessing the document.

getResourceAsStream

protected static InputStream getResourceAsStream(String resource)
Returns an input stream from an application resource in the classpath.

The method first removes the '/' character from the resource name if the first character is '/'.

The lookup order is as follows:

If a thread context class loader exists, use Thread.currentThread().getResourceAsStream to obtain an InputStream.

If no input stream was returned, use the Configuration.class.getResourceAsStream. to obtain an InputStream.

If no input stream was returned, use the Configuration.class.getClassLoader().getResourceAsStream. to obtain an InputStream.

If no input stream was returned, throw an Exception.

Parameters:
resource - to get input stream for
Returns:
input stream for resource

reset

protected void reset()
Reset to an empty configuration.