use of org.dom4j.io.OutputFormat in project zm-mailbox by Zimbra.
the class WsdlGenerator method writeWsdl.
public static void writeWsdl(OutputStream xmlOut, String targetNamespace, String serviceName, List<WsdlInfoForNamespace> nsInfos) throws IOException {
Document wsdlDoc = makeWsdlDoc(nsInfos, serviceName, targetNamespace);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(xmlOut, format);
writer.write(wsdlDoc);
writer.close();
}
use of org.dom4j.io.OutputFormat in project zm-mailbox by Zimbra.
the class RightManager method writeXML.
private void writeXML(String fileName, Document document) throws IOException {
// Pretty print the document to output file
OutputFormat format = OutputFormat.createPrettyPrint();
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
XMLWriter xmlWriter = new XMLWriter(writer, format);
xmlWriter.write(document);
writer.close();
}
use of org.dom4j.io.OutputFormat in project uPortal by Jasig.
the class RDBMDistributedLayoutStore method getExportLayoutDom.
private org.dom4j.Element getExportLayoutDom(IPerson person, IUserProfile profile) {
if (!this.layoutExistsForUser(person)) {
return null;
}
org.dom4j.Document layoutDoc = null;
try {
final Document layoutDom = this._safeGetUserLayout(person, profile);
person.setAttribute(Constants.PLF, layoutDom);
layoutDoc = this.reader.get().read(layoutDom);
} catch (final Throwable t) {
final String msg = "Unable to obtain layout & profile for user '" + person.getUserName() + "', profileId " + profile.getProfileId();
throw new RuntimeException(msg, t);
}
if (logger.isDebugEnabled()) {
// Write out this version of the layout to the log for dev purposes...
final StringWriter str = new StringWriter();
final XMLWriter xml = new XMLWriter(str, new OutputFormat(" ", true));
try {
xml.write(layoutDoc);
xml.close();
} catch (final Throwable t) {
throw new RuntimeException("Failed to write the layout for user '" + person.getUserName() + "' to the DEBUG log", t);
}
logger.debug("Layout for user: {}\n{}", person.getUserName(), str.getBuffer().toString());
}
if (isLayoutCorrupt(layoutDoc)) {
logger.warn("Layout for user: {} is corrupt; layout structures will not be exported.", person.getUserName());
return null;
}
/*
* Clean up the DOM for export.
*/
// (1) Add structure & theme attributes...
final int structureStylesheetId = profile.getStructureStylesheetId();
this.addStylesheetUserPreferencesAttributes(person, profile, layoutDoc, structureStylesheetId, "structure");
final int themeStylesheetId = profile.getThemeStylesheetId();
this.addStylesheetUserPreferencesAttributes(person, profile, layoutDoc, themeStylesheetId, "theme");
// (2) Remove locale info...
final Iterator<org.dom4j.Attribute> locale = (Iterator<org.dom4j.Attribute>) layoutDoc.selectNodes("//@locale").iterator();
while (locale.hasNext()) {
final org.dom4j.Attribute loc = locale.next();
loc.getParent().remove(loc);
}
// (3) Scrub unnecessary channel information...
for (final Iterator<org.dom4j.Element> orphanedChannels = (Iterator<org.dom4j.Element>) layoutDoc.selectNodes("//channel[@fname = '']").iterator(); orphanedChannels.hasNext(); ) {
// These elements represent UP_LAYOUT_STRUCT rows where the
// CHAN_ID field was not recognized by ChannelRegistryStore;
// best thing to do is remove the elements...
final org.dom4j.Element ch = orphanedChannels.next();
ch.getParent().remove(ch);
}
final List<String> channelAttributeWhitelist = Arrays.asList(new String[] { "fname", "unremovable", "hidden", "immutable", "ID", "dlm:plfID", "dlm:moveAllowed", "dlm:deleteAllowed" });
final Iterator<org.dom4j.Element> channels = (Iterator<org.dom4j.Element>) layoutDoc.selectNodes("//channel").iterator();
while (channels.hasNext()) {
final org.dom4j.Element oldCh = channels.next();
final org.dom4j.Element parent = oldCh.getParent();
final org.dom4j.Element newCh = this.fac.createElement("channel");
for (final String aName : channelAttributeWhitelist) {
final org.dom4j.Attribute a = (org.dom4j.Attribute) oldCh.selectSingleNode("@" + aName);
if (a != null) {
newCh.addAttribute(a.getQName(), a.getValue());
}
}
parent.elements().add(parent.elements().indexOf(oldCh), newCh);
parent.remove(oldCh);
}
// (4) Convert internal DLM noderefs to external form (pathrefs)...
for (final Iterator<org.dom4j.Attribute> origins = (Iterator<org.dom4j.Attribute>) layoutDoc.selectNodes("//@dlm:origin").iterator(); origins.hasNext(); ) {
final org.dom4j.Attribute org = origins.next();
final Pathref dlmPathref = this.nodeReferenceFactory.getPathrefFromNoderef((String) person.getAttribute(IPerson.USERNAME), org.getValue(), layoutDoc.getRootElement());
if (dlmPathref != null) {
// Change the value only if we have a valid pathref...
org.setValue(dlmPathref.toString());
} else {
if (logger.isWarnEnabled()) {
logger.warn("Layout element '{}' from user '{}' failed to match noderef '{}'", org.getUniquePath(), person.getAttribute(IPerson.USERNAME), org.getValue());
}
}
}
for (final Iterator<org.dom4j.Attribute> it = (Iterator<org.dom4j.Attribute>) layoutDoc.selectNodes("//@dlm:target").iterator(); it.hasNext(); ) {
final org.dom4j.Attribute target = it.next();
final Pathref dlmPathref = this.nodeReferenceFactory.getPathrefFromNoderef((String) person.getAttribute(IPerson.USERNAME), target.getValue(), layoutDoc.getRootElement());
if (dlmPathref != null) {
// Change the value only if we have a valid pathref...
target.setValue(dlmPathref.toString());
} else {
if (logger.isWarnEnabled()) {
logger.warn("Layout element '{}' from user '{}' failed to match noderef '{}'", target.getUniquePath(), person.getAttribute(IPerson.USERNAME), target.getValue());
}
}
}
for (final Iterator<org.dom4j.Attribute> names = (Iterator<org.dom4j.Attribute>) layoutDoc.selectNodes("//dlm:*/@name").iterator(); names.hasNext(); ) {
final org.dom4j.Attribute n = names.next();
if (n.getValue() == null || n.getValue().trim().length() == 0) {
// don't send a false WARNING.
continue;
}
final Pathref dlmPathref = this.nodeReferenceFactory.getPathrefFromNoderef((String) person.getAttribute(IPerson.USERNAME), n.getValue(), layoutDoc.getRootElement());
if (dlmPathref != null) {
// Change the value only if we have a valid pathref...
n.setValue(dlmPathref.toString());
// These *may* have fnames...
if (dlmPathref.getPortletFname() != null) {
n.getParent().addAttribute("fname", dlmPathref.getPortletFname());
}
} else {
if (logger.isWarnEnabled()) {
logger.warn("Layout element '{}' from user '{}' failed to match noderef '{}'", n.getUniquePath(), person.getAttribute(IPerson.USERNAME), n.getValue());
}
}
}
// Remove synthetic Ids, but from non-fragment owners only...
if (!this.isFragmentOwner(person)) {
// (5) Remove dlm:plfID...
for (final Iterator<org.dom4j.Attribute> plfid = (Iterator<org.dom4j.Attribute>) layoutDoc.selectNodes("//@dlm:plfID").iterator(); plfid.hasNext(); ) {
final org.dom4j.Attribute plf = plfid.next();
plf.getParent().remove(plf);
}
// (6) Remove database Ids...
for (final Iterator<org.dom4j.Attribute> ids = (Iterator<org.dom4j.Attribute>) layoutDoc.selectNodes("//@ID").iterator(); ids.hasNext(); ) {
final org.dom4j.Attribute a = ids.next();
a.getParent().remove(a);
}
}
return layoutDoc.getRootElement();
}
use of org.dom4j.io.OutputFormat in project gocd by gocd.
the class FeedsApiControllerV1 method prettyPrint.
public static String prettyPrint(Document document) throws IOException {
StringWriter writer = new StringWriter();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setNewLineAfterDeclaration(false);
format.setIndentSize(2);
new XMLWriter(writer, format).write(document);
return writer.toString();
}
Aggregations