public abstract class AbstractConfigurationParser extends Object implements ConfigurationParser, ConfigurationConstants, EntityResolver
| Modifier and Type | Field and Description |
|---|---|
protected ServicesConfiguration |
config |
protected DocumentBuilder |
docBuilder |
protected ConfigurationFileResolver |
fileResolver |
protected TokenReplacer |
tokenReplacer |
ADAPTER_ATTR, ADAPTER_DEFINITION_CHILDREN, ADAPTER_DEFINITION_ELEMENT, ADAPTER_DEFINITION_REQ_CHILDREN, ADAPTER_ELEMENT, ADAPTER_INCLUDE_CHILDREN, ADAPTER_INCLUDE_ELEMENT, ADAPTERS_CHILDREN, ADAPTERS_ELEMENT, ADAPTIVE_FREQUENCY, ASYNC_MESSAGE_FILTERS_ELEMENT, ASYNC_MESSAGE_FILTERS_ELEMENT_CHILDREN, AUTH_METHOD_ELEMENT, CHANNEL_DEFINITION_CHILDREN, CHANNEL_DEFINITION_ELEMENT, CHANNEL_DEFINITION_REQ_CHILDREN, CHANNEL_DEFINITION_SERVER_REQ_CHILDREN, CHANNEL_ELEMENT, CHANNEL_INCLUDE_CHILDREN, CHANNEL_INCLUDE_ELEMENT, CHANNELS_ATTR, CHANNELS_CHILDREN, CHANNELS_ELEMENT, CLASS_AND_SERVER_ONLY_ERROR, CLASS_ATTR, CLASS_NOT_SPECIFIED, CLASS_OR_SERVER_ONLY_ERROR, CLIENT_LOAD_BALANCING_ELEMENT, CLUSTER_DEFINITION_CHILDREN, CLUSTER_DEFINITION_ELEMENT, CLUSTER_PROPERTIES_ATTR, CLUSTERING_CHILDREN, CLUSTERS_ELEMENT, CONNECT_TIMEOUT_SECONDS_ELEMENT, CONSTRAINT_INCLUDE_CHILDREN, CONSTRAINT_INCLUDE_ELEMENT, CONTEXT_PATH_ALT_TOKEN, CONTEXT_PATH_TOKEN, DEFAULT_ATTR, DEFAULT_CHANNELS_CHILDREN, DEFAULT_CHANNELS_ELEMENT, DEFAULT_LOCALE_ELEMENT, DEFAULT_SECURITY_CONSTRAINT_ELEMENT, DEST_NEEDS_ADAPTER, DEST_NEEDS_CHANNEL, DESTINATION_ADAPTER_CHILDREN, DESTINATION_ATTR, DESTINATION_CHANNEL_REQ_CHILDREN, DESTINATION_CHANNELS_CHILDREN, DESTINATION_CHILDREN, DESTINATION_ELEMENT, DESTINATION_INCLUDE_CHILDREN, DESTINATION_INCLUDE_ELEMENT, DESTINATION_REQ_CHILDREN, DESTINATIONS_CHILDREN, DESTINATIONS_ELEMENT, DIRECTORY_ATTR, DOTNET_FRAMEWORK_VERSION, DUPLICATE_CHANNEL_ERROR, DUPLICATE_COMPONENT_ID, DUPLICATE_DEFAULT_ADAPTER, DUPLICATE_DEST_ID, DUPLICATE_DESTINATION_ERROR, DUPLICATE_SERVICE_ERROR, EMBEDDED_SECURITY_CHILDREN, EMPTY_STRING, ENABLE_SMALL_MESSAGES_ELEMENT, ENABLED_ELEMENT, ENDPOINT_CHILDREN, ENDPOINT_ELEMENT, ENFORCE_ENDOINT_VALIDATION, ERR_MSG_CLIENT_LOAD_BALANCING_URL_WITH_TOKEN, ERR_MSG_EMPTY_CLIENT_LOAD_BALANCING_ELEMENT, ERR_MSG_EMTPY_CLIENT_LOAD_BALACNING_URL, EXTERNAL_ENTITY_NOT_ALLOW, FACTORIES_CHILDREN, FACTORIES_ELEMENT, FACTORY_ELEMENT, FACTORY_REQ_CHILDREN, FALSE_STRING, FILTER_CHILDREN, FILTER_ELEMENT, FILTER_REQ_CHILDREN, FILTERS_CHILDREN, FILTERS_ELEMENT, FLEX_CLIENT_CHILDREN, FLEX_CLIENT_ELEMENT, FLEX_CLIENT_HEARTBEAT_INTERVAL_MILLIS, FLEX_CLIENT_OUTBOUND_QUEUE_PROCESSOR_ELEMENT, FLEX_CLIENT_OUTBOUND_QUEUE_PROCESSOR_REQ_CHILDREN, FLEX_CLIENT_RELIABLE_RECONNECT_DURATION_MILLIS, FLEX_CLIENT_TIMEOUT_MINUTES_ELEMENT, ID_ATTR, INVALID_DEFAULT_CHANNEL, INVALID_ENDPOINT_PORT, INVALID_FLEX_CLIENT_HEARTBEAT_INTERVAL_MILLIS, INVALID_FLEX_CLIENT_RELIABLE_RECONNECT_DURATION_MILLIS, INVALID_FLEX_CLIENT_TIMEOUT, INVALID_ID, INVALID_ID_IN_SERVICE, INVALID_INCLUDE_ROOT, INVALID_REF_IN_DEST, INVALID_SECURITY_CONSTRAINT_REF, INVALID_SERVICES_ROOT, INVALID_VALUE_FOR_PROPERTY_OF_COMPONENT_WITH_ID, IP_ADDRESS_PATTERN, IRREPLACABLE_TOKEN, LEVEL_ATTR, LIST_DELIMITERS, LOCALE_CHILDREN, LOCALE_ELEMENT, LOGGING_CHILDREN, LOGGING_ELEMENT, LOGIN_AFTER_DISCONNECT_ELEMENT, LOGIN_COMMAND_CHILDREN, LOGIN_COMMAND_ELEMENT, LOGIN_COMMAND_REQ_CHILDREN, MANAGEABLE_ELEMENT, MESSAGE_TYPES_ATTR, METADATA_ELEMENT, MISSING_ATTRIBUTE, MISSING_ELEMENT, MISSING_INCLUDE_ATTRIBUTES, NULL_COMPONENT, NULL_COMPONENT_ID, PARSER_INIT_ERROR, PARSER_INTERNAL_ERROR, PATTERN_ELEMENT, PER_CLIENT_AUTH, PIGGYBACKING_ENABLED_ELEMENT, POLLING_ENABLED_ELEMENT, POLLING_INTERVAL_MILLIS_ELEMENT, POLLING_INTERVAL_SECONDS_ELEMENT, PROPERTIES_ELEMENT, RECORD_MESSAGE_SIZES_ELEMENT, RECORD_MESSAGE_TIMES_ELEMENT, RECREATE_HTTPSESSION_AFTER_LOGIN_ELEMENT, REDEPLOY_CHILDREN, REDEPLOY_ELEMENT, REF_ATTR, REF_NOT_FOUND, REF_NOT_FOUND_IN_CHANNEL, REF_NOT_FOUND_IN_DEST, REMOTE_ATTR, REQUEST_TIMEOUT_SECONDS_ELEMENT, REQUIRE_ADVANCED_MESSAGING_SUPPORT, ROLE_ELEMENT, ROLES_CHILDREN, ROLES_ELEMENT, SECURITY_CHILDREN, SECURITY_CONSTRAINT_ATTR, SECURITY_CONSTRAINT_DEFINITION_CHILDREN, SECURITY_CONSTRAINT_DEFINITION_ELEMENT, SECURITY_CONSTRAINT_ELEMENT, SECURITY_CONSTRAINTS_CHILDREN, SECURITY_CONSTRAINTS_ELEMENT, SECURITY_ELEMENT, SERIALIZATION_ELEMENT, SERVER_ATTR, SERVER_CHILDREN, SERVER_ELEMENT, SERVER_NAME_TOKEN, SERVER_ONLY_ATTR, SERVER_PORT_TOKEN, SERVER_REQ_CHILDREN, SERVERS_CHILDREN, SERVERS_ELEMENT, SERVICE_CHILDREN, SERVICE_ELEMENT, SERVICE_INCLUDE_CHILDREN, SERVICE_INCLUDE_ELEMENT, SERVICE_REQ_CHILDREN, SERVICES_CHILDREN, SERVICES_CONFIG_CHILDREN, SERVICES_CONFIG_ELEMENT, SERVICES_ELEMENT, SLASH_CONTEXT_PATH_TOKEN, SRC_ATTR, SYNC_MESSAGE_FILTERS_ELEMENT, SYNC_MESSAGE_FILTERS_ELEMENT_CHILDREN, SYSTEM_CHILDREN, SYSTEM_ELEMENT, TARGET_CHILDREN, TARGET_ELEMENT, TARGET_REQ_CHILDREN, TOO_MANY_OCCURRENCES, TOUCH_FILE_ELEMENT, TRUE_STRING, TYPE_ATTR, UNDEFINED_CONTEXT_ROOT, UNEXPECTED_ATTRIBUTE, UNEXPECTED_ELEMENT, UNEXPECTED_TEXT, UNKNOWN_SOURCE_FILE, UNREGISTERED_ADAPTER, URI_ATTR, URL_ATTR, UUID_GENERATOR_ELEMENT, UUID_GENERATOR_REQ_CHILDREN, VALIDATOR_CHILDREN, VALIDATOR_ELEMENT, VALIDATOR_REQ_CHILDREN, VALIDATORS_CHILDREN, VALIDATORS_ELEMENT, WATCH_FILE_ELEMENT, WATCH_INTERVAL_ELEMENT, XML_PARSER_ERROR| Modifier | Constructor and Description |
|---|---|
protected |
AbstractConfigurationParser() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addFileByDocument(String path,
Node node) |
void |
allowedAttributes(Node node,
String[] allowed)
Check whether the required items are present in the current node as attributes.
|
void |
allowedAttributesOrElements(Node node,
String[] allowed)
Check whether the allowed items are present in the current node as elements or attributes.
|
void |
allowedChildElements(Node node,
String[] allowed)
Check whether the required items are present in the current node as child elements.
|
protected abstract Object |
evaluateExpression(Node source,
String expression) |
String |
getAttributeOrChildElement(Node node,
String name)
Get the item value by name if the item is present in the current node as attribute or child element.
|
protected String |
getSourceFileOf(Node node) |
protected void |
initializeDocumentBuilder() |
protected abstract void |
initializeExpressionQuery() |
static boolean |
isValidID(String id)
Tests whether a configuration element's id is a valid
identifier.
|
protected Document |
loadDocument(String path,
InputStream in) |
void |
parse(String path,
ConfigurationFileResolver fileResolver,
ServicesConfiguration config)
Parse the configurations in the configuration file.
|
protected abstract void |
parseTopLevelConfig(Document doc) |
ConfigMap |
properties(NodeList properties)
Recursively processes all child elements for each of the properties in the provided
node list.
|
ConfigMap |
properties(NodeList properties,
String sourceFileName)
Recursively processes all child elements for each of the properties in the provided
node list.
|
void |
reportTokens()
Report Tokens.
|
String |
required(NodeList attributes,
List required)
Check whether all the required items are present in the node list.
|
void |
requiredAttributesOrElements(Node node,
String[] required)
Check whether the required items are present in the current node as elements or attributes.
|
void |
requiredChildElements(Node node,
String[] required)
Check whether the required items are present in the current node (Child elements).
|
InputSource |
resolveEntity(String publicId,
String systemId)
Implement
EntityResolver.resolveEntity(String, String). |
protected abstract NodeList |
selectNodeList(Node source,
String expression) |
protected abstract Node |
selectSingleNode(Node source,
String expression) |
String |
unexpected(NodeList attributes,
String[] allowed)
Check whether there is any unexpected item in the node list object.
|
protected ServicesConfiguration config
protected DocumentBuilder docBuilder
protected ConfigurationFileResolver fileResolver
protected TokenReplacer tokenReplacer
public void parse(String path, ConfigurationFileResolver fileResolver, ServicesConfiguration config)
parse in interface ConfigurationParserpath - the configuration file pathfileResolver - the ConfigurationFileResolver objectconfig - the ServicesConfiguration objectpublic void reportTokens()
reportTokens in interface ConfigurationParserprotected void initializeDocumentBuilder()
protected Document loadDocument(String path, InputStream in)
protected abstract void parseTopLevelConfig(Document doc)
protected abstract void initializeExpressionQuery()
public ConfigMap properties(NodeList properties)
If a property is a simple element with a text value then it is stored as a String using the element name as the property name. If the same element appears again then the element is converted to a List of values and further occurences are simply added to the List.
If a property element has child elements the children are recursively processed and added as a Map.
The sourceFileName argument is used as a parameter for token replacement in order to generate a meaningful error message when a token is failed to be replaced.
properties - the NodeList objectpublic ConfigMap properties(NodeList properties, String sourceFileName)
properties - the NodeList objectsourceFileName - the source file namepublic String getAttributeOrChildElement(Node node, String name)
node - the current Node objectname - item namepublic void allowedChildElements(Node node, String[] allowed)
node - the current Node objectallowed - the String array of the allowed itemspublic void allowedAttributes(Node node, String[] allowed)
node - the current Node objectallowed - the String array of the allowed itemspublic void allowedAttributesOrElements(Node node, String[] allowed)
node - the current Node objectallowed - the String array of the allowed itemspublic void requiredAttributesOrElements(Node node, String[] required)
node - the current Node objectrequired - the String array of the required itemspublic void requiredChildElements(Node node, String[] required)
node - the current Node objectrequired - the String array of the required itemspublic String unexpected(NodeList attributes, String[] allowed)
attributes - the current NodeList objectallowed, - the String array of allowed itemspublic String required(NodeList attributes, List required)
attributes - the NodeList objectrequired - a list of required itemspublic static boolean isValidID(String id)
id - the Id StringConfigurationConstants.LIST_DELIMITERSpublic InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
EntityResolver.resolveEntity(String, String).
Flex Configuration does not need or use external entities, so disallow external entities
to prevent external entity injection attacks.resolveEntity in interface EntityResolverpublicId - the public IdsystemId - the system IdSAXException, - IOException when the parsing process failed with exceptionsSAXExceptionIOExceptionCopyright © 2015 The Apache Software Foundation. All rights reserved.