use of org.xml.sax.SAXException in project OpenAM by OpenRock.
the class AMViewConfig method parseDocument.
private Document parseDocument(String fileName) {
Document document = null;
InputStream is = getClass().getClassLoader().getResourceAsStream(fileName);
try {
DocumentBuilder documentBuilder = XMLUtils.getSafeDocumentBuilder(false);
document = documentBuilder.parse(is);
} catch (UnsupportedEncodingException e) {
AMModelBase.debug.error("AMViewConfig.parseDocument", e);
} catch (ParserConfigurationException e) {
AMModelBase.debug.error("AMViewConfig.parseDocument", e);
} catch (SAXException e) {
AMModelBase.debug.error("AMViewConfig.parseDocument", e);
} catch (IOException e) {
AMModelBase.debug.error("AMViewConfig.parseDocument", e);
}
return document;
}
use of org.xml.sax.SAXException in project OpenAM by OpenRock.
the class SmsJsonConverter method getHiddenAttributeNames.
protected List<String> getHiddenAttributeNames() {
ArrayList<String> hiddenAttributeNames = null;
try {
InputStream resource = getClass().getClassLoader().getResourceAsStream("amConsoleConfig.xml");
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(resource);
NodeList nodes = (NodeList) XPathFactory.newInstance().newXPath().evaluate("//consoleconfig/servicesconfig/consoleservice/@realmEnableHideAttrName", doc, XPathConstants.NODESET);
String rawList = nodes.item(0).getNodeValue();
hiddenAttributeNames = new ArrayList<String>(Arrays.asList(rawList.split(" ")));
} catch (SAXException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (XPathExpressionException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return hiddenAttributeNames;
}
use of org.xml.sax.SAXException in project OpenAM by OpenRock.
the class SmsServerPropertiesResource method getSchema.
private JsonValue getSchema(Properties syntaxProperties, Properties titleProperties, boolean isDefault) {
JsonValue template = json(object());
for (String tabName : getTabNames()) {
try {
Document propertySheet = getPropertySheet(tabName);
Map<String, Set<String>> options = getOptions(propertySheet, tabName);
List<String> sectionNames = getSectionNames(propertySheet);
Set<String> optionalAttributes = getOptionalAttributes(propertySheet, tabName);
int sectionOrder = 0;
for (String sectionName : sectionNames) {
final String sectionPath = "/properties/" + tabName + "/" + sectionName;
template.putPermissive(new JsonPointer(sectionPath + "/title"), titleProperties.getProperty(sectionName));
template.putPermissive(new JsonPointer(sectionPath + "/propertyOrder"), sectionOrder++);
int attributeOrder = 0;
for (String attributeName : getAttributeNamesForSection(sectionName, propertySheet)) {
final String title = titleProperties.getProperty(attributeName);
String property = syntaxProperties.getProperty(attributeName);
if (property == null) {
property = "";
}
final String type = syntaxRawToReal.get(property);
final Set<String> attributeOptions = getAttributeOptions(options, attributeName, type);
final boolean isOptional;
if (isDefault) {
isOptional = optionalAttributes.contains(attributeName);
} else {
isOptional = true;
}
final String path = sectionPath + "/" + attributeName;
if (attributeOptions != null && !attributeOptions.isEmpty()) {
template.putPermissive(new JsonPointer(path + "/type/enum"), attributeOptions);
} else {
template.putPermissive(new JsonPointer(path + "/type"), type);
}
template.putPermissive(new JsonPointer(path + "/title"), title);
template.putPermissive(new JsonPointer(path + "/propertyOrder"), attributeOrder++);
template.putPermissive(new JsonPointer(path + "/required"), !isOptional);
template.putPermissive(new JsonPointer(path + "/pattern"), ".+");
allAttributeNamesInNamedTabs.add(attributeName);
}
}
} catch (ParserConfigurationException | IOException | XPathExpressionException | SAXException e) {
logger.error("Error reading property sheet for tab " + tabName, e);
}
}
return template;
}
use of org.xml.sax.SAXException in project OpenAM by OpenRock.
the class SmsServerPropertiesResource method getDirectorySchema.
private JsonValue getDirectorySchema(Properties titleProperties, Debug logger) {
try {
JsonValue directoryConfigSchema = json(object());
dbFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
dBuilder = dbFactory.newDocumentBuilder();
Document document = dBuilder.parse(getClass().getResourceAsStream(DIRECTORY_CONFIG_XML));
XPath xPath = XPathFactory.newInstance().newXPath();
final String sectionExpression = "//propertysheet/section/@defaultValue";
String sectionRawValue = (String) xPath.compile(sectionExpression).evaluate(document, XPathConstants.STRING);
String sectionTitle = titleProperties.getProperty(sectionRawValue);
final String baseExpression = "//propertysheet/section/property/label/@defaultValue";
NodeList attributes = (NodeList) xPath.compile(baseExpression).evaluate(document, XPathConstants.NODESET);
final String path = "/_schema/properties/directoryConfiguration/" + sectionRawValue;
directoryConfigSchema.putPermissive(new JsonPointer(path + "/title"), sectionTitle);
for (int i = 0; i < attributes.getLength(); i++) {
String attributeRawName = attributes.item(i).getNodeValue();
String attributePath = path + "/" + attributeRawName;
directoryConfigSchema.putPermissive(new JsonPointer(attributePath + "/title"), titleProperties.getProperty(attributeRawName));
directoryConfigSchema.putPermissive(new JsonPointer(attributePath + "/propertyOrder"), i);
directoryConfigSchema.putPermissive(new JsonPointer(attributePath + "/type"), "string");
}
final String serverPath = path + "/servers";
directoryConfigSchema.putPermissive(new JsonPointer(serverPath + "/title"), titleProperties.get("amconfig.serverconfig.xml.server.table.header"));
directoryConfigSchema.putPermissive(new JsonPointer(serverPath + "/type"), "array");
directoryConfigSchema.putPermissive(new JsonPointer(serverPath + "/items/type"), "object");
List<String> columnNames = new ArrayList<>();
columnNames.add("name");
columnNames.add("host");
columnNames.add("port");
columnNames.add("type");
for (String columnName : columnNames) {
final String attributePath = serverPath + "/items/properties/" + SERVER_TABLE_PROPERTY_PREFIX + columnName;
directoryConfigSchema.putPermissive(new JsonPointer(attributePath + "/title"), titleProperties.getProperty(SERVER_TABLE_PROPERTY_PREFIX + columnName));
directoryConfigSchema.putPermissive(new JsonPointer(attributePath + "/type"), "string");
directoryConfigSchema.putPermissive(new JsonPointer(attributePath + "/propertyOrder"), columnNames.indexOf(columnName));
}
return directoryConfigSchema;
} catch (ParserConfigurationException | SAXException | IOException | XPathExpressionException e) {
logger.error("Error creating document builder", e);
}
return null;
}
use of org.xml.sax.SAXException in project OpenAM by OpenRock.
the class SmsServerPropertiesResource method getOptions.
private Map<String, Set<String>> getOptions(Document propertySheet, String tabName) {
Map<String, Set<String>> radioOptions = new HashMap<>();
try {
XPath xPath = XPathFactory.newInstance().newXPath();
List<String> attributeNamesForTab = getDefaultValueNames(tabName);
for (String defaultValueName : attributeNamesForTab) {
String convertedName = getConvertedName(defaultValueName);
String expression = "//propertysheet/section/property/cc[@name='" + convertedName + "']/option/@value";
NodeList optionsList = (NodeList) xPath.compile(expression).evaluate(propertySheet, XPathConstants.NODESET);
Set<String> options = new HashSet<>();
for (int i = 0; i < optionsList.getLength(); i++) {
options.add(optionsList.item(i).getNodeValue());
}
if (!options.isEmpty()) {
radioOptions.put(defaultValueName, options);
}
}
} catch (ParserConfigurationException | SAXException | IOException | XPathExpressionException e) {
logger.error("Error reading property sheet", e);
}
return radioOptions;
}
Aggregations