String parentCollectionPath = CEPConstants.CEP_CONF_ELE_CEP_BUCKETS + CEPConstants.CEP_REGISTRY_BS + bucket.getName();
if (registry.resourceExists(parentCollectionPath)) {
registry.put(parentCollectionPath, registry.newCollection());
Resource bucketProperties = registry.newResource();
bucketProperties.addProperty(CEPConstants.CEP_CONF_ELE_NAME, bucket.getName());
bucketProperties.addProperty(CEPConstants.CEP_CONF_ELE_DESCRIPTION, bucket.getDescription());
bucketProperties.addProperty(CEPConstants.CEP_CONF_ELE_CEP_ENGINE_PROVIDER, bucket.getEngineProvider());
// registry.put(parentCollectionPath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_PROPERTIES, bucketProperties);
String inputsCollectionPath = parentCollectionPath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_INPUTS;
if (!registry.resourceExists(inputsCollectionPath)) {
registry.put(inputsCollectionPath, registry.newCollection());
}
for (Input input : bucket.getInputs()) {
String inputResourcePath = inputsCollectionPath + "/" + input.getTopic();
registry.put(inputResourcePath, registry.newCollection());
Resource inputTopic = registry.newResource();
inputTopic.addProperty(CEPConstants.CEP_CONF_ELE_TOPIC, input.getTopic());
inputTopic.addProperty(CEPConstants.CEP_CONF_ELE_BROKER_NAME, input.getBrokerName());
registry.put(inputResourcePath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_DETAILS, inputTopic);
registry.put(inputResourcePath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_MAPPING, registry.newCollection());
String mappingPath = inputResourcePath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_MAPPING + CEPConstants.CEP_REGISTRY_BS;
Resource streamResource = registry.newResource();
streamResource.addProperty(CEPConstants.CEP_REGISTRY_STREAM, input.getMapping().getStream());
registry.put(mappingPath + CEPConstants.CEP_REGISTRY_STREAM, streamResource);
/* Map<String, String> xpathDefinitionsTable = input.getMapping().getXpathNamespacePrefixes();
if (xpathDefinitionsTable != null && xpathDefinitionsTable.size() > 0) {
Set set = xpathDefinitionsTable.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value = xpathDefinitionsTable.get(key);
Resource xpathDef = registry.newResource();
xpathDef.addProperty(key, value);
registry.put(mappingPath + CEPConstants.CEP_REGISTRY_XPATH_DEFS + CEPConstants.CEP_REGISTRY_BS + key, xpathDef);
}
}*/
List<XpathDefinition> xpathDefinitionList = input.getMapping().getXpathNamespacePrefixes();
if(xpathDefinitionList != null && xpathDefinitionList.size()>0){
for(XpathDefinition xpathDefinition : xpathDefinitionList){
String key = xpathDefinition.getPrefix();
String value = xpathDefinition.getNamespace();
Resource xpathDef = registry.newResource();
xpathDef.addProperty(key, value);
registry.put(mappingPath + CEPConstants.CEP_REGISTRY_XPATH_DEFS + CEPConstants.CEP_REGISTRY_BS + key, xpathDef);
}
}
if (input.getMapping().getProperties() != null) {
for (Property property : input.getMapping().getProperties()) {
Resource propertyResource = registry.newResource();
propertyResource.addProperty(CEPConstants.CEP_REGISTRY_NAME, property.getName());
propertyResource.addProperty(CEPConstants.CEP_REGISTRY_TYPE, property.getType());
propertyResource.addProperty(CEPConstants.CEP_REGISTRY_XPATH, property.getXpath());
registry.put(mappingPath + CEPConstants.CEP_REGISTRY_PROPERTIES + CEPConstants.CEP_REGISTRY_BS + property.getName(), propertyResource);
}
}
}
String queriesCollectionPath = parentCollectionPath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_QUERIES;
if (registry.resourceExists(queriesCollectionPath)) {
registry.put(queriesCollectionPath, registry.newCollection());
}
for (Query query : bucket.getQueries()) {
String queryPath = queriesCollectionPath + "/" + query.getName();
registry.put(queryPath, registry.newCollection());
Resource queryResource = registry.newResource();
queryResource.setProperty(CEPConstants.CEP_REGISTRY_NAME, query.getName());
queryResource.setProperty(CEPConstants.CEP_REGISTRY_TYPE, query.getExpression().getType());
// queryResource.setProperty(CEPConstants.CEP_REGISTRY_EXPRESSION, query.getExpression().getText());
queryResource.setContent(query.getExpression().getText());
registry.put(queryPath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_DETAILS, queryResource);
registry.put(queryPath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_OUTPUT, registry.newCollection());
Output output = query.getOutput();
Resource outputResource = registry.newResource();
outputResource.addProperty(CEPConstants.CEP_REGISTRY_TOPIC, output.getTopic());
outputResource.addProperty(CEPConstants.CEP_CONF_ELE_BROKER_NAME, output.getBrokerName());
outputResource.addProperty(CEPConstants.CEP_REGISTRY_TYPE,
output.getElementMapping() == null ? CEPConstants.CEP_REGISTRY_XML_MAPPING : CEPConstants.CEP_REGISTRY_ELEMENT_MAPPING);
registry.put(queryPath + CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_OUTPUT +
CEPConstants.CEP_REGISTRY_BS + output.getTopic(), outputResource);
ElementMapping elementMapping = output.getElementMapping();
if (elementMapping != null) {
String elementMappingPathString = CEPConstants.CEP_REGISTRY_BS +
CEPConstants.CEP_REGISTRY_OUTPUT +
CEPConstants.CEP_REGISTRY_BS +
CEPConstants.CEP_REGISTRY_ELEMENT_MAPPING;
registry.put(queryPath + elementMappingPathString, registry.newCollection());
Resource elementMappingResource = registry.newResource();
elementMappingResource.addProperty(CEPConstants.CEP_REGISTRY_DOC_ELEMENT, elementMapping.getDocumentElement());
elementMappingResource.addProperty(CEPConstants.CEP_REGISTRY_NS, elementMapping.getNamespace());
registry.put(queryPath + elementMappingPathString +
CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_DETAILS, elementMappingResource);
registry.put(queryPath + elementMappingPathString +
CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_PROPERTIES, registry.newCollection());
for (Property property : elementMapping.getProperties()) {
Resource elementMappingProperties = registry.newResource();
elementMappingProperties.addProperty(CEPConstants.CEP_REGISTRY_NAME, property.getName());
elementMappingProperties.addProperty(CEPConstants.CEP_REGISTRY_XML_FIELD_NAME, property.getXmlFieldName());
elementMappingProperties.addProperty(CEPConstants.CEP_REGISTRY_XML_FIELD_TYPE, property.getXmlFieldType());
registry.put(queryPath + elementMappingPathString +
CEPConstants.CEP_REGISTRY_BS + CEPConstants.CEP_REGISTRY_PROPERTIES +
CEPConstants.CEP_REGISTRY_BS + property.getName(), elementMappingProperties);
}
} else {
registry.put(queryPath +
CEPConstants.CEP_REGISTRY_BS +
CEPConstants.CEP_REGISTRY_OUTPUT +
CEPConstants.CEP_REGISTRY_BS +
CEPConstants.CEP_REGISTRY_XML_MAPPING, registry.newCollection());
Resource xmlMappingResource = registry.newResource();
xmlMappingResource.addProperty(CEPConstants.CEP_REGISTRY_TEXT, output.getXmlMapping().getMappingXMLText());
registry.put(queryPath +
CEPConstants.CEP_REGISTRY_BS +
CEPConstants.CEP_REGISTRY_OUTPUT +
CEPConstants.CEP_REGISTRY_BS +
CEPConstants.CEP_REGISTRY_XML_MAPPING +