public static SmooksResourceConfigurationList digestConfig(InputStream stream, String baseURI, Map<String, Smooks> extendedConfigDigesters) throws SAXException, IOException, URISyntaxException, SmooksConfigurationException { return digestConfig(stream, baseURI, extendedConfigDigesters, null); }
public static SmooksResourceConfigurationList digestConfig(InputStream stream, String baseURI, Map<String, Smooks> extendedConfigDigesters, ClassLoader classLoader) throws SAXException, IOException, URISyntaxException, SmooksConfigurationException { SmooksResourceConfigurationList list = new SmooksResourceConfigurationList(baseURI); setExtentionDigestOff(); XMLConfigDigester digester = new XMLConfigDigester(list); if(classLoader != null) { digester.classLoader = classLoader; } digester.extendedConfigDigesters = extendedConfigDigesters; digester.digestConfigRecursively(new InputStreamReader(stream), baseURI); return list; }
private void digestConditions(Element conditionsElement) { NodeList conditions = conditionsElement.getElementsByTagName("condition"); for(int i = 0; i < conditions.getLength(); i++) { Element conditionElement = (Element) conditions.item(i); String id = DomUtils.getAttributeValue(conditionElement, "id"); if(id != null) { addConditionEvaluator(id, digestCondition(conditionElement)); } } }
assertElementPermitted(configElement); if(namespaceURI == null || namespaceURI.equals(XSD_V11)) { if (elementName.equals("params")) { digestParams(configElement); } else if (elementName.equals("conditions")) { digestConditions(configElement); } else if (elementName.equals("profiles")) { digestProfiles(configElement); } else if (elementName.equals("import")) { digestImport(configElement, new URI(baseURI)); } else if (elementName.equals("reader")) { digestReaderConfig(configElement, defaultProfile); } else if (elementName.equals("resource-config")) { digestResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, defaultConditionRef); digestExtendedResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, defaultConditionRef);
assertExtendedConfigOK(configNamespace, resourcePath); setExtentionDigestOn(); try { SmooksResourceConfigurationStore configStore = smooks.getApplicationContext().getStore(); SmooksResourceConfigurationList extConfigList = new SmooksResourceConfigurationList(baseURI); XMLConfigDigester configDigester = new XMLConfigDigester(extConfigList); configDigester.digestConfigRecursively(new InputStreamReader(ClassUtil.getResourceAsStream(resourcePath, classLoader)), baseURI); configStore.addSmooksResourceConfigurationList(extConfigList); } catch (Exception e) { throw new SmooksConfigurationException("Failed to construct Smooks instance for processing extended configuration resource '" + resourcePath + "'.", e); } finally { setExtentionDigestOff();
private void digestV10XSDValidatedConfig(String baseURI, Document configDoc) throws SAXException, URISyntaxException, SmooksConfigurationException { Element currentElement = configDoc.getDocumentElement(); String defaultSelector = DomUtils.getAttributeValue(currentElement, "default-selector"); String defaultNamespace = DomUtils.getAttributeValue(currentElement, "default-selector-namespace"); String defaultProfile = DomUtils.getAttributeValue(currentElement, "default-target-profile"); NodeList configNodes = currentElement.getChildNodes(); for (int i = 0; i < configNodes.getLength(); i++) { if(configNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { Element configElement = (Element) configNodes.item(i); // Make sure the element is permitted... assertElementPermitted(configElement); if (DomUtils.getName(configElement).equals("profiles")) { digestProfiles(configElement); } else if (DomUtils.getName(configElement).equals("import")) { digestImport(configElement, new URI(baseURI)); } else if (DomUtils.getName(configElement).equals("resource-config")) { digestResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, null); } } } }
String namespace = DomUtils.getAttributeValue(configElement, "selector-namespace"); String profiles = DomUtils.getAttributeValue(configElement, "target-profile"); Element resourceElement = getElementByTagName(configElement, "resource"); Element conditionElement = getElementByTagName(configElement, "condition"); String resource = null; SmooksResourceConfiguration resourceConfig; ExpressionEvaluator evaluator = digestCondition(conditionElement); resourceConfig.setConditionEvaluator(evaluator); } else if(defaultConditionRef != null) { ExpressionEvaluator evaluator = getConditionEvaluator(defaultConditionRef); resourceConfig.setConditionEvaluator(evaluator); digestParameters(configElement, resourceConfig);
private void digestReaderConfig(Element configElement, String defaultProfile) { String profiles = DomUtils.getAttributeValue(configElement, "targetProfile"); String readerClass = DomUtils.getAttributeValue(configElement, "class"); SmooksResourceConfiguration resourceConfig = new SmooksResourceConfiguration( "org.xml.sax.driver", (profiles != null ? profiles : defaultProfile), readerClass); // Add the reader resource... configureHandlers(configElement, resourceConfig); configureFeatures(configElement, resourceConfig); configureParams(configElement, resourceConfig); resourcelist.add(resourceConfig); }
private void digestExtendedResourceConfig(Element configElement, String defaultSelector, String defaultNamespace, String defaultProfile, String defaultConditionRef) { String configNamespace = configElement.getNamespaceURI(); Smooks configDigester = getExtenededConfigDigester(configNamespace); ExecutionContext executionContext = configDigester.createExecutionContext(); ExtensionContext extentionContext; Element conditionElement = DomUtils.getElement(configElement, "condition", 1); // Create the ExtenstionContext and set it on the ExecutionContext... if(conditionElement != null && (conditionElement.getNamespaceURI().equals(XSD_V10) || conditionElement.getNamespaceURI().equals(XSD_V11))) { extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, digestCondition(conditionElement)); } else if(defaultConditionRef != null) { extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, getConditionEvaluator(defaultConditionRef)); } else { extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, null); } ExtensionContext.setExtensionContext(extentionContext, executionContext); // Filter the extension element through Smooks... configDigester.filterSource(executionContext, new DOMSource(configElement), null); // Copy the created resources from the ExtensionContext and onto the SmooksResourceConfigurationList... List<SmooksResourceConfiguration> resources = extentionContext.getResources(); for (SmooksResourceConfiguration resource : resources) { resourcelist.add(resource); } }
public void addConditionEvaluator(String id, ExpressionEvaluator evaluator) { assertUniqueConditionId(id); configStack.peek().conditionEvaluators.put(id, evaluator); }
assertElementPermitted(configElement); if(namespaceURI == null || namespaceURI.equals(XSD_V11)) { if (elementName.equals("params")) { digestParams(configElement); } else if (elementName.equals("conditions")) { digestConditions(configElement); } else if (elementName.equals("profiles")) { digestProfiles(configElement); } else if (elementName.equals("import")) { digestImport(configElement, new URI(baseURI)); } else if (elementName.equals("reader")) { digestReaderConfig(configElement, defaultProfile); } else if (elementName.equals("resource-config")) { digestResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, defaultConditionRef); digestExtendedResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, defaultConditionRef);
assertExtendedConfigOK(configNamespace, resourcePath); setExtentionDigestOn(); try { SmooksResourceConfigurationStore configStore = smooks.getApplicationContext().getStore(); SmooksResourceConfigurationList extConfigList = new SmooksResourceConfigurationList(baseURI); XMLConfigDigester configDigester = new XMLConfigDigester(extConfigList); configDigester.digestConfigRecursively(new InputStreamReader(ClassUtil.getResourceAsStream(resourcePath, classLoader)), baseURI); configStore.addSmooksResourceConfigurationList(extConfigList); } catch (Exception e) { throw new SmooksConfigurationException("Failed to construct Smooks instance for processing extended configuration resource '" + resourcePath + "'.", e); } finally { setExtentionDigestOff();
private void digestV10XSDValidatedConfig(String baseURI, Document configDoc) throws SAXException, URISyntaxException, SmooksConfigurationException { Element currentElement = configDoc.getDocumentElement(); String defaultSelector = DomUtils.getAttributeValue(currentElement, "default-selector"); String defaultNamespace = DomUtils.getAttributeValue(currentElement, "default-selector-namespace"); String defaultProfile = DomUtils.getAttributeValue(currentElement, "default-target-profile"); NodeList configNodes = currentElement.getChildNodes(); for (int i = 0; i < configNodes.getLength(); i++) { if(configNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { Element configElement = (Element) configNodes.item(i); // Make sure the element is permitted... assertElementPermitted(configElement); if (DomUtils.getName(configElement).equals("profiles")) { digestProfiles(configElement); } else if (DomUtils.getName(configElement).equals("import")) { digestImport(configElement, new URI(baseURI)); } else if (DomUtils.getName(configElement).equals("resource-config")) { digestResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, null); } } } }
String namespace = DomUtils.getAttributeValue(configElement, "selector-namespace"); String profiles = DomUtils.getAttributeValue(configElement, "target-profile"); Element resourceElement = getElementByTagName(configElement, "resource"); Element conditionElement = getElementByTagName(configElement, "condition"); String resource = null; SmooksResourceConfiguration resourceConfig; ExpressionEvaluator evaluator = digestCondition(conditionElement); resourceConfig.setConditionEvaluator(evaluator); } else if(defaultConditionRef != null) { ExpressionEvaluator evaluator = getConditionEvaluator(defaultConditionRef); resourceConfig.setConditionEvaluator(evaluator); digestParameters(configElement, resourceConfig);
private void digestReaderConfig(Element configElement, String defaultProfile) { String profiles = DomUtils.getAttributeValue(configElement, "targetProfile"); String readerClass = DomUtils.getAttributeValue(configElement, "class"); SmooksResourceConfiguration resourceConfig = new SmooksResourceConfiguration( "org.xml.sax.driver", (profiles != null ? profiles : defaultProfile), readerClass); // Add the reader resource... configureHandlers(configElement, resourceConfig); configureFeatures(configElement, resourceConfig); configureParams(configElement, resourceConfig); resourcelist.add(resourceConfig); }
@SuppressWarnings("ConfusingArgumentToVarargsMethod") private void digestExtendedResourceConfig(Element configElement, String defaultSelector, String defaultNamespace, String defaultProfile, String defaultConditionRef) { String configNamespace = configElement.getNamespaceURI(); Smooks configDigester = getExtenededConfigDigester(configNamespace); ExecutionContext executionContext = configDigester.createExecutionContext(); ExtensionContext extentionContext; Element conditionElement = DomUtils.getElement(configElement, "condition", 1); // Create the ExtenstionContext and set it on the ExecutionContext... if(conditionElement != null && (conditionElement.getNamespaceURI().equals(XSD_V10) || conditionElement.getNamespaceURI().equals(XSD_V11))) { extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, digestCondition(conditionElement)); } else if(defaultConditionRef != null) { extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, getConditionEvaluator(defaultConditionRef)); } else { extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, null); } ExtensionContext.setExtensionContext(extentionContext, executionContext); // Filter the extension element through Smooks... configDigester.filterSource(executionContext, new DOMSource(configElement), null); // Copy the created resources from the ExtensionContext and onto the SmooksResourceConfigurationList... List<SmooksResourceConfiguration> resources = extentionContext.getResources(); for (SmooksResourceConfiguration resource : resources) { resourcelist.add(resource); } }
public void addConditionEvaluator(String id, ExpressionEvaluator evaluator) { assertUniqueConditionId(id); configStack.peek().conditionEvaluators.put(id, evaluator); }
assertElementPermitted(configElement); if(namespaceURI == null || namespaceURI.equals(XSD_V11)) { if (elementName.equals("params")) { digestParams(configElement); } else if (elementName.equals("conditions")) { digestConditions(configElement); } else if (elementName.equals("profiles")) { digestProfiles(configElement); } else if (elementName.equals("import")) { digestImport(configElement, new URI(baseURI)); } else if (elementName.equals("reader")) { digestReaderConfig(configElement, defaultProfile); } else if (elementName.equals("resource-config")) { digestResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, defaultConditionRef); digestExtendedResourceConfig(configElement, defaultSelector, defaultNamespace, defaultProfile, defaultConditionRef);
assertExtendedConfigOK(configNamespace, resourcePath); setExtentionDigestOn(); try { SmooksResourceConfigurationStore configStore = smooks.getApplicationContext().getStore(); SmooksResourceConfigurationList extConfigList = new SmooksResourceConfigurationList(baseURI); XMLConfigDigester configDigester = new XMLConfigDigester(extConfigList); configDigester.digestConfigRecursively(new InputStreamReader(ClassUtil.getResourceAsStream(resourcePath, classLoader)), baseURI); configStore.addSmooksResourceConfigurationList(extConfigList); } catch (Exception e) { throw new SmooksConfigurationException("Failed to construct Smooks instance for processing extended configuration resource '" + resourcePath + "'.", e); } finally { setExtentionDigestOff();
public static SmooksResourceConfigurationList digestConfig(InputStream stream, String baseURI, ClassLoader classLoader) throws SAXException, IOException, URISyntaxException, SmooksConfigurationException { SmooksResourceConfigurationList list = new SmooksResourceConfigurationList(baseURI); setExtentionDigestOff(); XMLConfigDigester digester = new XMLConfigDigester(list); if(classLoader != null) { digester.classLoader = classLoader; } digester.digestConfigRecursively(new InputStreamReader(stream), baseURI); return list; }