Search in sources :

Example 71 with XmlBuilder

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();
}
Also used : XmlBuilder(nl.nn.adapterframework.util.XmlBuilder) Date(java.util.Date)

Example 72 with XmlBuilder

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();
}
Also used : Header(org.apache.http.Header) XmlBuilder(nl.nn.adapterframework.util.XmlBuilder)

Example 73 with XmlBuilder

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));
        }
    }
}
Also used : InputStreamReader(java.io.InputStreamReader) SQLException(java.sql.SQLException) Base64InputStream(org.apache.commons.codec.binary.Base64InputStream) InputStream(java.io.InputStream) OutputStream(java.io.OutputStream) ResultSet(java.sql.ResultSet) XmlBuilder(nl.nn.adapterframework.util.XmlBuilder) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) IOException(java.io.IOException) SenderException(nl.nn.adapterframework.core.SenderException) DB2XMLWriter(nl.nn.adapterframework.util.DB2XMLWriter) Writer(java.io.Writer)

Example 74 with XmlBuilder

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));
        }
    }
}
Also used : InputStreamReader(java.io.InputStreamReader) SQLException(java.sql.SQLException) Base64InputStream(org.apache.commons.codec.binary.Base64InputStream) InputStream(java.io.InputStream) ResultSet(java.sql.ResultSet) XmlBuilder(nl.nn.adapterframework.util.XmlBuilder) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) IOException(java.io.IOException) SenderException(nl.nn.adapterframework.core.SenderException) DB2XMLWriter(nl.nn.adapterframework.util.DB2XMLWriter) Writer(java.io.Writer)

Example 75 with XmlBuilder

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;
    }
}
Also used : Action(org.apache.chemistry.opencmis.commons.enums.Action) PolicyIdListImpl(org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyIdListImpl) Element(org.w3c.dom.Element) Node(org.w3c.dom.Node) ObjectData(org.apache.chemistry.opencmis.commons.data.ObjectData) ArrayList(java.util.ArrayList) AllowableActionsImpl(org.apache.chemistry.opencmis.commons.impl.dataobjects.AllowableActionsImpl) ObjectDataImpl(org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl) ParseException(java.text.ParseException) SenderException(nl.nn.adapterframework.core.SenderException) XmlBuilder(nl.nn.adapterframework.util.XmlBuilder) IPipeLineSession(nl.nn.adapterframework.core.IPipeLineSession) PipeLineSessionBase(nl.nn.adapterframework.core.PipeLineSessionBase)

Aggregations

XmlBuilder (nl.nn.adapterframework.util.XmlBuilder)108 IOException (java.io.IOException)18 Iterator (java.util.Iterator)17 ArrayList (java.util.ArrayList)12 Date (java.util.Date)12 SenderException (nl.nn.adapterframework.core.SenderException)12 DomBuilderException (nl.nn.adapterframework.util.DomBuilderException)10 Configuration (nl.nn.adapterframework.configuration.Configuration)9 SchedulerException (org.quartz.SchedulerException)8 ServletException (javax.servlet.ServletException)7 TransformerException (javax.xml.transform.TransformerException)7 ConfigurationException (nl.nn.adapterframework.configuration.ConfigurationException)6 PipeRunException (nl.nn.adapterframework.core.PipeRunException)6 JdbcException (nl.nn.adapterframework.jdbc.JdbcException)6 JmsException (nl.nn.adapterframework.jms.JmsException)6 HashMap (java.util.HashMap)5 List (java.util.List)5 Adapter (nl.nn.adapterframework.core.Adapter)5 SimpleDateFormat (java.text.SimpleDateFormat)4 Map (java.util.Map)4