use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class ErrorMessageFormatter method format.
/**
* Format the available parameters into a XML-message.
*
* Override this method in descender-classes to obtain the required behaviour.
*/
public String format(String message, Throwable t, INamedObject location, String originalMessage, String messageId, long receivedTime) {
String details = null;
message = getMessage(message, t);
if (t != null) {
details = ExceptionUtils.getStackTrace(t);
}
String originator = AppConstants.getInstance().getProperty("application.name") + " " + AppConstants.getInstance().getProperty("application.version");
// Build a Base xml
XmlBuilder errorXml = new XmlBuilder("errorMessage");
errorXml.addAttribute("timestamp", new Date().toString());
errorXml.addAttribute("originator", originator);
errorXml.addAttribute("message", XmlUtils.replaceNonValidXmlCharacters(message));
if (location != null) {
XmlBuilder locationXml = new XmlBuilder("location");
locationXml.addAttribute("class", location.getClass().getName());
locationXml.addAttribute("name", location.getName());
errorXml.addSubElement(locationXml);
}
if (details != null && !details.equals("")) {
XmlBuilder detailsXml = new XmlBuilder("details");
// detailsXml.setCdataValue(details);
detailsXml.setValue(XmlUtils.replaceNonValidXmlCharacters(details), true);
errorXml.addSubElement(detailsXml);
}
XmlBuilder originalMessageXml = new XmlBuilder("originalMessage");
originalMessageXml.addAttribute("messageId", messageId);
if (receivedTime != 0) {
originalMessageXml.addAttribute("receivedTime", new Date(receivedTime).toString());
}
// originalMessageXml.setCdataValue(originalMessage);
originalMessageXml.setValue(originalMessage, true);
errorXml.addSubElement(originalMessageXml);
return errorXml.toXML();
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class RestSender method extractResult.
protected String extractResult(HttpResponseHandler responseHandler, ParameterResolutionContext prc) throws SenderException, IOException {
String responseString = super.extractResult(responseHandler, prc);
int statusCode = responseHandler.getStatusLine().getStatusCode();
XmlBuilder result = new XmlBuilder("result");
XmlBuilder statuscode = new XmlBuilder("statuscode");
statuscode.setValue(statusCode + "");
result.addSubElement(statuscode);
XmlBuilder headersXml = new XmlBuilder("headers");
Header[] headers = responseHandler.getAllHeaders();
for (int i = 0; i < headers.length; i++) {
Header header = headers[i];
String name = header.getName().toLowerCase();
XmlBuilder headerXml = new XmlBuilder("header");
headerXml.addAttribute("name", name);
headerXml.addAttribute("value", header.getValue());
headersXml.addSubElement(headerXml);
}
result.addSubElement(headersXml);
if (statusCode == HttpURLConnection.HTTP_OK) {
XmlBuilder message = new XmlBuilder("message");
message.setValue(responseString, false);
result.addSubElement(message);
} else {
XmlBuilder message = new XmlBuilder("error");
message.setValue(responseString);
result.addSubElement(message);
}
return result.toXML();
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class JdbcQuerySenderBase method executeUpdateBlobQuery.
protected String executeUpdateBlobQuery(PreparedStatement statement, Object message) throws SenderException {
ResultSet rs = null;
try {
log.debug(getLogPrefix() + "executing an updating BLOB command");
rs = statement.executeQuery();
XmlBuilder result = new XmlBuilder("result");
JdbcUtil.warningsToXml(statement.getWarnings(), result);
rs.next();
if (message instanceof Reader) {
Object blobHandle = getDbmsSupport().getBlobUpdateHandle(rs, blobColumn);
Reader inReader = (Reader) message;
Writer writer = JdbcUtil.getBlobWriter(getDbmsSupport(), blobHandle, rs, blobColumn, getBlobCharset(), isBlobsCompressed());
Misc.readerToWriter(inReader, writer, isCloseInputstreamOnExit());
writer.close();
getDbmsSupport().updateBlob(rs, blobColumn, blobHandle);
} else if (message instanceof InputStream) {
Object blobHandle = getDbmsSupport().getBlobUpdateHandle(rs, blobColumn);
InputStream inStream = (InputStream) message;
if (StringUtils.isNotEmpty(getStreamCharset())) {
Writer writer = JdbcUtil.getBlobWriter(getDbmsSupport(), blobHandle, rs, blobColumn, getBlobCharset(), isBlobsCompressed());
Reader reader = new InputStreamReader(inStream, getStreamCharset());
Misc.readerToWriter(reader, writer, isCloseInputstreamOnExit());
writer.close();
} else {
OutputStream outStream = JdbcUtil.getBlobOutputStream(getDbmsSupport(), blobHandle, rs, blobColumn, isBlobsCompressed());
Misc.streamToStream(inStream, outStream, isCloseInputstreamOnExit());
outStream.close();
}
getDbmsSupport().updateBlob(rs, blobColumn, blobHandle);
} else if (message instanceof byte[]) {
JdbcUtil.putByteArrayAsBlob(getDbmsSupport(), rs, blobColumn, (byte[]) message, isBlobsCompressed());
} else {
JdbcUtil.putStringAsBlob(getDbmsSupport(), rs, blobColumn, (String) message, getBlobCharset(), isBlobsCompressed());
}
rs.updateRow();
JdbcUtil.warningsToXml(rs.getWarnings(), result);
return result.toXML();
} catch (SQLException sqle) {
throw new SenderException(getLogPrefix() + "got exception executing an updating BLOB command", sqle);
} catch (JdbcException e) {
throw new SenderException(getLogPrefix() + "got exception executing an updating BLOB command", e);
} catch (IOException e) {
throw new SenderException(getLogPrefix() + "got exception executing an updating BLOB command", e);
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
log.warn(new SenderException(getLogPrefix() + "got exception closing resultset", e));
}
}
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class JdbcQuerySenderBase method executeUpdateClobQuery.
protected String executeUpdateClobQuery(PreparedStatement statement, Object message) throws SenderException {
ResultSet rs = null;
try {
log.debug(getLogPrefix() + "executing an updating CLOB command");
rs = statement.executeQuery();
XmlBuilder result = new XmlBuilder("result");
JdbcUtil.warningsToXml(statement.getWarnings(), result);
rs.next();
if (message instanceof Reader) {
Object clobHandle = getDbmsSupport().getClobUpdateHandle(rs, clobColumn);
Reader inReader = (Reader) message;
Writer writer = getDbmsSupport().getClobWriter(rs, clobColumn, clobHandle);
Misc.readerToWriter(inReader, writer, isCloseInputstreamOnExit());
writer.close();
getDbmsSupport().updateClob(rs, clobColumn, clobHandle);
} else if (message instanceof InputStream) {
Object clobHandle = getDbmsSupport().getClobUpdateHandle(rs, clobColumn);
InputStream inStream = (InputStream) message;
Reader reader;
if (StringUtils.isNotEmpty(getStreamCharset())) {
reader = new InputStreamReader(inStream, getStreamCharset());
} else {
reader = new InputStreamReader(inStream);
}
Writer writer = getDbmsSupport().getClobWriter(rs, clobColumn, clobHandle);
Misc.readerToWriter(reader, writer, isCloseInputstreamOnExit());
writer.close();
getDbmsSupport().updateClob(rs, clobColumn, clobHandle);
} else {
JdbcUtil.putStringAsClob(getDbmsSupport(), rs, clobColumn, (String) message);
}
rs.updateRow();
JdbcUtil.warningsToXml(rs.getWarnings(), result);
return result.toXML();
} catch (SQLException sqle) {
throw new SenderException(getLogPrefix() + "got exception executing an updating CLOB command", sqle);
} catch (JdbcException e) {
throw new SenderException(getLogPrefix() + "got exception executing an updating CLOB command", e);
} catch (IOException e) {
throw new SenderException(getLogPrefix() + "got exception executing an updating CLOB command", e);
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
log.warn(new SenderException(getLogPrefix() + "got exception closing resultset", e));
}
}
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class ObjectServiceImpl method getObject.
@Override
public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extensions) {
boolean bypass = AppConstants.getInstance().getBoolean("cmis.proxy.bypass.getObject", false);
if (!bypass) {
ObjectData objectData = objectService.getObject(repositoryId, objectId, filter, includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl, extensions);
return objectData;
} else {
XmlBuilder cmisXml = new XmlBuilder("cmis");
cmisXml.addSubElement(buildXml("repositoryId", repositoryId));
cmisXml.addSubElement(buildXml("objectId", objectId));
cmisXml.addSubElement(buildXml("filter", filter));
cmisXml.addSubElement(buildXml("includeAllowableActions", includeAllowableActions));
cmisXml.addSubElement(buildXml("includePolicies", includePolicyIds));
cmisXml.addSubElement(buildXml("includeAcl", includeAcl));
ObjectDataImpl impl = new ObjectDataImpl();
try {
IPipeLineSession messageContext = new PipeLineSessionBase();
String result = CmisServletDispatcher.getInstance().getCmisListener().processRequest(null, cmisXml.toXML(), messageContext);
Element cmisElement;
if (XmlUtils.isWellFormed(result, "cmis")) {
cmisElement = XmlUtils.buildElement(result);
} else {
cmisElement = XmlUtils.buildElement("<cmis/>");
}
// Handle allowable actions
Element allowableActionsElem = XmlUtils.getFirstChildTag(cmisElement, "allowableActions");
if (allowableActionsElem != null) {
AllowableActionsImpl allowableActions = new AllowableActionsImpl();
Set<Action> actions = EnumSet.noneOf(Action.class);
Iterator<Node> actionIterator = XmlUtils.getChildTags(allowableActionsElem, "action").iterator();
while (actionIterator.hasNext()) {
String property = XmlUtils.getStringValue((Element) actionIterator.next());
actions.add(Action.fromValue(property));
}
allowableActions.setAllowableActions(actions);
impl.setAllowableActions(allowableActions);
}
// Handle isExactAcl
impl.setIsExactAcl(XmlUtils.getChildTagAsBoolean(cmisElement, "isExactAcl"));
// Handle policyIds
Element policyIdsElem = XmlUtils.getFirstChildTag(cmisElement, "policyIds");
if (policyIdsElem != null) {
PolicyIdListImpl policyIdList = new PolicyIdListImpl();
List<String> policies = new ArrayList<String>();
Iterator<Node> policyIterator = XmlUtils.getChildTags(allowableActionsElem, "policyId").iterator();
while (policyIterator.hasNext()) {
String policyId = XmlUtils.getStringValue((Element) policyIterator.next());
policies.add(policyId);
}
policyIdList.setPolicyIds(policies);
impl.setPolicyIds(policyIdList);
}
// Handle properties
impl.setProperties(processProperties(cmisElement));
} catch (Exception e) {
log.error("error creating CMIS objectData: " + e.getMessage(), e.getCause());
}
impl.setRenditions(null);
impl.setExtensions(null);
impl.setChangeEventInfo(null);
impl.setRelationships(null);
return impl;
}
}
Aggregations