Example usage for javax.xml.transform.dom DOMResult DOMResult

List of usage examples for javax.xml.transform.dom DOMResult DOMResult

Introduction

In this page you can find the example usage for javax.xml.transform.dom DOMResult DOMResult.

Prototype

public DOMResult() 

Source Link

Document

Zero-argument default constructor.

Usage

From source file:ddf.security.pdp.realm.xacml.processor.XacmlClient.java

/**
 * Adds namespaces and namespace prefixes to the XACML response returned by the XACML PDP. The
 * XACML PDP returns a response with no namespaces, so we need to add them to unmarshal the
 * response./* w w  w  .j  a v a 2  s. co m*/
 *
 * @param xacmlResponse The XACML response as a string.
 * @return DOM representation of the XACML response with namespaces and namespace prefixes.
 * @throws PdpException
 */
private DOMResult addNamespaceAndPrefixes(String xacmlResponse) throws PdpException {
    XMLReader xmlReader = null;

    try {
        xmlReader = new XMLFilterImpl(XMLReaderFactory.createXMLReader()) {
            @Override
            public void startElement(String uri, String localName, String qName, Attributes attributes)
                    throws SAXException {
                super.startElement(XACML30_NAMESPACE, localName, XACML_PREFIX + ":" + qName, attributes);
            }

            @Override
            public void endElement(String uri, String localName, String qName) throws SAXException {
                super.endElement(XACML30_NAMESPACE, localName, XACML_PREFIX + ":" + qName);
            }
        };
    } catch (SAXException e) {
        String message = "Unable to read XACML response:\n" + xacmlResponse;
        LOGGER.error(message);
        throw new PdpException(message, e);
    }

    DOMResult domResult;
    ClassLoader tccl = Thread.currentThread().getContextClassLoader();
    Thread.currentThread().setContextClassLoader(XacmlClient.class.getClassLoader());
    try {
        TransformerFactory transformerFactory = TransformerFactory.newInstance();

        domResult = new DOMResult();

        Transformer transformer = transformerFactory.newTransformer();
        transformer.transform(new SAXSource(xmlReader, new InputSource(new StringReader(xacmlResponse))),
                domResult);
    } catch (TransformerException e) {
        String message = "Unable to transform XACML response:\n" + xacmlResponse;
        LOGGER.error(message);
        throw new PdpException(message, e);
    } finally {
        Thread.currentThread().setContextClassLoader(tccl);
    }

    return domResult;
}

From source file:com.google.enterprise.connector.salesforce.BaseTraversalManager.java

private DocumentList traverse(String checkpoint) {

    // count the number of times the traverse() was called
    second_counter++;/*w ww  .  j  a v a 2 s.  c  o  m*/
    if (second_counter == 10) {
        // every 10 seconds print a message
        logger.log(Level.INFO, "[" + connector.getInstanceName() + "] Traverse after [" + checkpoint + "]");
        second_counter = 0;
    }
    // set the current crawled checkpoint
    System.setProperty(this.getConnector().getInstanceName() + "_lcheckpoint", checkpoint);

    // initialize the basedocument list to return
    BaseDocumentList sdl = null;

    try {
        // convert a Date object into a 'numeric' format like
        // 200906010641010
        Date conv_checkpoint = Util.getNumericDate_from_String(checkpoint);

        // if its the first time we're doing this...create the checkpoint
        // for now
        if (conv_checkpoint == null || checkpoint.equalsIgnoreCase("")) {
            Date now = new Date();
            // hmmm...we could set the checkpoint here as either
            checkpoint = this.getConnector().getLastsync();
            // or
            // checkpoint = Util.getNumericString_from_Date(now);
        }

        // initialize a document list with 0 items and now as the checkpoint
        sdl = new BaseDocumentList(0, checkpoint);

        // if your xslt is not processable, return nothing
        if (this.XSLTDoc == null) {
            logger.log(Level.SEVERE, "[" + connector.getInstanceName()
                    + "] Response XSLT not compiled, not proceeded with transforms.");
            return sdl;
        }

        // ok...so our document list has nothing in it so lets go ask the
        // store if we
        // have any more docs to process...
        if (docListIndex.size() == 0) {
            getDocListAfter(checkpoint);
        }

        // now we have some docs in the document array we need to process
        if (docListIndex.size() > 0) {
            // get a doclist from the queue
            DocListEntry de = (DocListEntry) docListIndex.poll();

            // now convert the doclistentry (which is a SOAP response doc)
            // XML to <document><document>
            logger.log(Level.FINE,
                    "Attempting to convert string row to DOM object  [" + de.getCheckpoint() + "]");
            Document doc_in_xml = Util.XMLStringtoDoc(de.getResponseXML());
            logger.log(Level.FINE,
                    "Attempting to Transform DOM object  to <document/> [" + de.getCheckpoint() + "]");
            Document transformed_QueryResult = Util.TransformDoctoDoc(doc_in_xml, this.XSLTDoc);

            // TODO: DTD Validate the transformed SOAP query result

            logger.log(Level.FINE, "Extracting <document> objects from transformed response");

            NodeList nl_documents = transformed_QueryResult.getElementsByTagName("documents");
            // get the NodeList under <document>
            Node n_documents = nl_documents.item(0);
            Vector v_batch = new Vector();
            for (int i = 0; i < n_documents.getChildNodes().getLength(); i++) {
                Node n_doc = n_documents.getChildNodes().item(i);

                if (n_doc.getNodeType() == Node.ELEMENT_NODE) {
                    TransformerFactory transfac = TransformerFactory.newInstance();
                    Transformer trans = transfac.newTransformer();
                    trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
                    trans.setOutputProperty(OutputKeys.INDENT, "yes");

                    if (n_doc.getNodeName().equalsIgnoreCase("document")) {

                        DOMResult dr = new DOMResult();
                        trans.transform(new DOMSource(n_doc), dr);
                        Document newDoc = (Document) dr.getNode();
                        newDoc.getDocumentElement().normalize();
                        v_batch.add(newDoc);
                    }
                }
            }
            logger.log(Level.FINE, "Found " + v_batch.size() + "  documents in batch response");

            // so now we've populated a vector (v_batch) with XML elements
            // of <document></document>
            // objects

            sdl = new BaseDocumentList(v_batch.size(), de.getCheckpoint());
            for (int i = 0; i < v_batch.size(); i++) {

                // now convert each entry in the vector to a basedocument
                BaseSimpleDocument bdoc = this.convertXMLtoBaseDocument((Document) v_batch.get(i));
                SimpleDocument sd = (SimpleDocument) bdoc;
                sdl.add(sd);
            }
        }

        if (sdl.size() > 0) {
            this.running_doc_counter = this.running_doc_counter + sdl.size();
            logger.log(Level.INFO, "[" + connector.getInstanceName() + "]" + "  Returning " + sdl.size()
                    + " documents to the connector manager.  ");
        }
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "traverse() error " + ex);
    }

    // return the doclist
    return sdl;
}

From source file:eu.domibus.ebms3.receiver.MSHWebservice.java

/**
 * Handles Receipt generation for a incoming message
 *
 * @param request          the incoming message
 * @param legConfiguration processing information of the message
 * @param duplicate        indicates whether or not the message is a duplicate
 * @return the response message to the incoming request message
 * @throws EbMS3Exception if generation of receipt was not successful
 *//*from w  ww.  ja v a2s.  co  m*/
private SOAPMessage generateReceipt(SOAPMessage request, LegConfiguration legConfiguration, Boolean duplicate)
        throws EbMS3Exception {
    SOAPMessage responseMessage = null;

    assert legConfiguration != null;

    if (legConfiguration.getReliability() == null) {
        return responseMessage;
    }

    if (ReplyPattern.RESPONSE.equals(legConfiguration.getReliability().getReplyPattern())) {
        MSHWebservice.LOG.debug("Checking reliability for incoming message");
        try {
            responseMessage = this.messageFactory.createMessage();
            Source messageToReceiptTransform = new StreamSource(
                    this.getClass().getClassLoader().getResourceAsStream("./xslt/GenerateAS4Receipt.xsl"));
            Transformer transformer = this.transformerFactory.newTransformer(messageToReceiptTransform);
            Source requestMessage = request.getSOAPPart().getContent();
            transformer.setParameter("messageid", this.messageIdGenerator.generateMessageId());
            transformer.setParameter("timestamp", this.timestampDateFormatter.generateTimestamp());
            transformer.setParameter("nonRepudiation",
                    Boolean.toString(legConfiguration.getReliability().isNonRepudiation()));

            DOMResult domResult = new DOMResult();

            transformer.transform(requestMessage, domResult);
            responseMessage.getSOAPPart().setContent(new DOMSource(domResult.getNode()));

            //                transformer.transform(requestMessage, new DOMResult(responseMessage.getSOAPPart().getEnvelope()));
        } catch (TransformerConfigurationException | SOAPException e) {
            // this cannot happen
            assert false;
            throw new RuntimeException(e);
        } catch (TransformerException e) {
            throw new EbMS3Exception(EbMS3Exception.EbMS3ErrorCode.EBMS_0201,
                    "Could not generate Receipt. Check security header and non-repudiation settings", null, e,
                    MSHRole.RECEIVING);
        }
    }

    return responseMessage;
}

From source file:com.prowidesoftware.swift.model.mx.BusinessHeader.java

/**
 * Gets the header as an Element object.
 *  /*from w  w w  .ja v a  2  s .c om*/
 * @return Element this header parsed into Element or null if header is null
 * @since 7.8
 */
public Element element() {
    Object header = null;
    if (this.businessApplicationHeader != null) {
        header = this.businessApplicationHeader;
    } else if (this.applicationHeader != null) {
        header = this.applicationHeader;
    } else {
        return null;
    }
    try {
        JAXBContext context = JAXBContext.newInstance(header.getClass());
        final Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

        DOMResult res = new DOMResult();
        marshaller.marshal(_element(header), res);
        Document doc = (Document) res.getNode();
        return (Element) doc.getFirstChild();

    } catch (JAXBException e) {
        log.log(Level.SEVERE, "Error writing XML:" + e + "\n for header: " + header);
    }
    return null;
}

From source file:ddf.security.pdp.xacml.processor.BalanaPdp.java

/**
 * Adds namespaces and namespace prefixes to the XACML response returned by the Balana PDP. The
 * Balana PDP returns a response with no namespaces, so we need to add them to unmarshal the
 * response.//from  ww w .  j  ava  2  s  .  co m
 * 
 * @param xacmlResponse
 *            The XACML response as a string.
 * @return DOM representation of the XACML response with namespaces and namespace prefixes.
 * @throws PdpException
 */
private DOMResult addNamespaceAndPrefixes(String xacmlResponse) throws PdpException {
    XMLReader xmlReader = null;

    try {
        xmlReader = new XMLFilterImpl(XMLReaderFactory.createXMLReader()) {
            @Override
            public void startElement(String uri, String localName, String qName, Attributes attributes)
                    throws SAXException {
                super.startElement(XACML30_NAMESPACE, localName, XACML_PREFIX + ":" + qName, attributes);
            }

            @Override
            public void endElement(String uri, String localName, String qName) throws SAXException {
                super.endElement(XACML30_NAMESPACE, localName, XACML_PREFIX + ":" + qName);
            }
        };
    } catch (SAXException e) {
        String message = "Unable to read XACML response:\n" + xacmlResponse;
        LOGGER.error(message);
        throw new PdpException(message, e);
    }

    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    DOMResult domResult = new DOMResult();

    try {
        Transformer transformer = transformerFactory.newTransformer();
        transformer.transform(new SAXSource(xmlReader, new InputSource(new StringReader(xacmlResponse))),
                domResult);
    } catch (TransformerException e) {
        String message = "Unable to transform XACML response:\n" + xacmlResponse;
        LOGGER.error(message);
        throw new PdpException(message, e);
    }

    return domResult;
}

From source file:be.e_contract.mycarenet.ehbox.EHealthBoxConsultationClient.java

private Element toElement(Source source) {
    if (source instanceof DOMSource) {
        DOMSource domSource = (DOMSource) source;
        return (Element) domSource.getNode();
    }//from   w  ww.  ja v a2s .  c  o m
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer;
    try {
        transformer = transformerFactory.newTransformer();
    } catch (TransformerConfigurationException e) {
        throw new RuntimeException(e);
    }
    DOMResult domResult = new DOMResult();
    try {
        transformer.transform(source, domResult);
    } catch (TransformerException e) {
        throw new RuntimeException(e);
    }
    Document document = (Document) domResult.getNode();
    return (Element) document.getDocumentElement();
}

From source file:com.prowidesoftware.swift.model.mx.AbstractMX.java

public Element element() {
    final HashMap<String, String> properties = new HashMap<String, String>();
    // it didn't work as expected
    // properties.put(JAXBRIContext.DEFAULT_NAMESPACE_REMAP, namespace);
    try {/*w ww  . j  a v a2s .  c om*/
        JAXBContext context = JAXBContext.newInstance(getClasses(), properties);

        DOMResult res = new DOMResult();
        context.createMarshaller().marshal(this, res);
        Document doc = (Document) res.getNode();

        return (Element) doc.getFirstChild();
    } catch (Exception e) {
        log.log(Level.WARNING, "Error creating XML Document for MX", e);
        return null;
    }
}

From source file:ddf.services.schematron.SchematronValidationService.java

private SchematronReport generateReport(String metadata, Templates validator)
        throws SchematronValidationException {

    XMLReader xmlReader = null;/*  www .ja  v a  2  s. co  m*/
    try {
        XMLReader xmlParser = XML_UTILS.getSecureXmlParser();
        xmlReader = new XMLFilterImpl(xmlParser);
    } catch (SAXException e) {
        throw new SchematronValidationException(e);
    }

    SchematronReport report;
    try {
        Transformer transformer = validator.newTransformer();
        DOMResult schematronResult = new DOMResult();
        transformer.transform(new SAXSource(xmlReader, new InputSource(new StringReader(metadata))),
                schematronResult);
        report = new SvrlReport(schematronResult);
    } catch (TransformerException e) {
        throw new SchematronValidationException("Could not setup validator to perform validation.", e);
    }
    return report;
}

From source file:es.urjc.mctwp.image.impl.dicom.DicomImagePlugin.java

/**
 * Obtains XML node representation of a singleImage
 * // ww w .j  a  va  2s .  com
 * @param single
 * @return
 * @throws ImageException
 */
private Node toXml(SingleImage single) throws ImageException {
    DicomInputStream dis = null;
    TransformerHandler th = null;
    DOMResult result = null;
    File source = null;

    try {

        // Prepare XSLT transformer
        result = new DOMResult();
        th = getTransformerHandler();
        th.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
        th.setResult(result);

        // Get writer and set image pixel data excluded from XML
        final SAXWriter writer = new SAXWriter(th, null);
        writer.setExclude(new int[] { Tag.PixelData });

        // Parse and convert to XML
        source = single.getContent();
        dis = new DicomInputStream(source);
        dis.setHandler(writer);
        // dis.readDicomObject(new BasicDicomObject(), -1);
        dis.readDicomObject();

    } catch (Exception e) {
        logger.error(e.getMessage());
        throw new ImageException(e);
    } finally {
        try {
            dis.close();
        } catch (IOException ioe) {
            logger.error(ioe.getMessage());
        }
    }

    return result.getNode();
}

From source file:fr.gouv.finances.dgfip.xemelios.importers.DefaultImporter.java

/**
 * Importe le fichier specifie.//from www.  j a  v a2s  .c  o  m
 *
 * @param f Le fichier a importer
 * @see
 * fr.gouv.finances.cp.xemelios.importers.EtatImporteur#importe(java.io.File)
 */
@Override
protected FileInfo importFile(File f) throws Exception {
    logger.debug("generating " + f.getAbsolutePath());
    getImpSvcProvider().startLongWait();
    String fileEncoding = getFileEncoding(f);
    String xmlVersion = getFileXmlVersion(f);
    File tmpDir = getTmpDir();

    File fHeader = File.createTempFile("header-", "", tmpDir);
    File fRef = File.createTempFile("ref-", "", tmpDir);
    File fFooter = File.createTempFile("footer-", "", tmpDir);
    XmlSplitter xs = splitFile(fHeader, fRef, fFooter, tmpDir, f, fileEncoding);
    getImpSvcProvider().endLongWait();
    Pair collectivite = new Pair();
    Pair codeBudget = new Pair();

    //--------- check collectivite -------------
    if (col == null) {
        collectivite = xs.getCollectivite();
        if (collectivite != null && collectivite.isFull()) {
            // on a rcupr la collectivit
            getImpSvcProvider().setCollectivite(collectivite);
        } else if (getImpSvcProvider().getCollectivite() != null
                && getImpSvcProvider().getCollectivite().isFull()) {
            // on connait la collectivit
            collectivite = getImpSvcProvider().getCollectivite();
        } else {
            // ici on demande  entrer les infos sur la collectivits
            try {
                collectivite = getImpSvcProvider().getCollectivite(dm, f.getName(), collectivite);
            } catch (ToolException e) {
                removeTempDir();
                if (e.getErrorCode() == ToolException.ERROR_INTERRUPTED) {
                    getImpSvcProvider().displayMessage(e.getMessage(),
                            ImportServiceProvider.MSG_TYPE_INFORMATION);
                    return null;
                } else {
                    throw e;
                }
            }
        }
        col = collectivite;
    } else {
        // collectivit "par dfaut"
        collectivite = col;
    }
    //--------- check budget -------------
    if (bdg == null) {
        codeBudget = xs.getBudget();
        if (codeBudget != null && codeBudget.isFull()) {
            // on a rcupr le budget
            getImpSvcProvider().setBudget(codeBudget);
        } else if (getImpSvcProvider().getBudget() != null && getImpSvcProvider().getBudget().isFull()) {
            // on connait le budget
            codeBudget = getImpSvcProvider().getBudget();
        } else {
            // ici on demande  entrer les infos sur le budget
            try {
                codeBudget = getImpSvcProvider().getBudget(dm, collectivite, f.getName(), codeBudget);
            } catch (ToolException e) {
                removeTempDir();
                if (e.getErrorCode() == ToolException.ERROR_INTERRUPTED) {
                    getImpSvcProvider().displayMessage(e.getMessage(),
                            ImportServiceProvider.MSG_TYPE_INFORMATION);
                    return null;
                } else {
                    throw e;
                }
            }
        }
        bdg = codeBudget;
    } else {
        // budget "par dfaut"
        codeBudget = bdg;
    }

    //---------------------------------------------------
    ArrayList<File> dataFiles = new ArrayList<File>(xs.getDataFiles());
    String header = FileUtils.readTextFile(fHeader, fileEncoding);
    String footer = FileUtils.readTextFile(fFooter, fileEncoding);
    String ref = FileUtils.readTextFile(fRef, fileEncoding);

    int docCount = 1;
    DocumentBuilder db = dbf.newDocumentBuilder();

    // load documents
    TPersistenceConfig tpc = DataLayerManager.getImplementation().getPersistenceConfig(dm, getUser());
    if (tpc == null) {
        throw new RuntimeException("pas de configuration de persistence trouve pour " + dm.getId() + " dans "
                + dm.getBaseDirectory());
    }

    TLayer layer = tpc.getLayer(DataLayerManager.getImplementation().getLayerName());
    if (layer == null) {
        throw new RuntimeException("pas de persistence trouve pour ce moteur de persistence ("
                + DataLayerManager.getImplementation().getLayerName() + ") pour " + dm.getId() + " dans "
                + dm.getBaseDirectory());
    }

    TDocument pc = layer.getDocument(dm.getId());

    // check if document exists, and if so, if we must remove it
    if (DataLayerManager.getImplementation().isDocumentExists(dm, codeBudget, collectivite, f.getName(),
            user)) {
        boolean shouldImport = false;
        try {
            if (OVERWRITE_RULE_DEFAULT.equals(getOverwriteRule())) {
                shouldImport = getOverwrite(f.getName());
            } else if (OVERWRITE_RULE_ALWAYS.equals(getOverwriteRule())) {
                shouldImport = true;
            } else if (OVERWRITE_RULE_NEVER.equals(getOverwriteRule())) {
                shouldImport = false;
            } else if (OVERWRITE_RULE_ASK.equals(getOverwriteRule())) {
                shouldImport = getOverwrite(f.getName());
            }
            if (shouldImport) {
                logger.debug("importing");
                // this can be very long, display the infinite waiter
                getImpSvcProvider().startLongWait();
                long startDelete = System.currentTimeMillis();
                DataLayerManager.getImplementation().removeDocument(dm, codeBudget, collectivite, f.getName(),
                        user);
                importTimingOS.append(f.getName()).append(";;DEL;").append(Long.toString(startDelete))
                        .append(";").append(Long.toString(System.currentTimeMillis()));
                importTimingOS.println();
                getImpSvcProvider().endLongWait();
            } else {
                logger.debug("skipping");
                return new FileInfo();
            }
        } catch (DataAccessException daEx) {
            logger.error("DataAccessException while removing:", daEx.getCause());
            daEx.getCause().printStackTrace();
            throw daEx;
        } catch (DataConfigurationException dcEx) {
            logger.error("DataConfigurationException while removing:", dcEx.getCause());
            dcEx.getCause().printStackTrace();
        } catch (Exception ex) {
            // si exception ici, l'utilisateur veut annuler
            logger.error(ex);
            ex.printStackTrace();
            removeTempDir();
            return null;
        }
    }

    long startBC = System.currentTimeMillis();
    DataLayerManager.getImplementation().registerBudgetCollectivite(dm, codeBudget, collectivite,
            xs.getParentcollectivites(), f.getName(), getArchiveName(), user);
    importTimingOS.append(f.getName()).append(";;BC;").append(Long.toString(startBC)).append(";")
            .append(Long.toString(startBC = System.currentTimeMillis()));
    importTimingOS.println();
    DataLayerManager.getImplementation().saveSpecialKeys(dm, codeBudget, collectivite, f.getName(),
            getArchiveName(), xs.getSpecialKey1(), xs.getSpecialKey2(), xs.getSpecialKey3(), user);
    importTimingOS.append(f.getName()).append(";;SK;").append(Long.toString(startBC)).append(";")
            .append(Long.toString(System.currentTimeMillis()));
    importTimingOS.println();

    // import du repository
    boolean shouldDelete = !"true"
            .equals(applicationProperties.getProperty(Constants.SYS_PROP_IMPORT_AVOID_DELETE));
    if (!isCancelled()) {
        StringBuffer fullText = new StringBuffer();
        fullText.append("<?xml version=\"").append(xmlVersion).append("\" encoding=\"").append(fileEncoding)
                .append("\" ?>");
        fullText.append(header).append(ref).append(footer);
        Document doc = db.parse(new ByteArrayInputStream(fullText.toString().getBytes(fileEncoding)));
        if (pc.getRepositoryImportXsltFile() != null && pc.getRepositoryImportXsltFile().length() > 0) {
            Document doc2 = null;
            File xslNomencl = new File(new File(dm.getBaseDirectory()), pc.getRepositoryImportXsltFile());
            TransformerFactory tf = FactoryProvider.getTransformerFactory();
            Transformer trans = tf.newTransformer(new StreamSource(xslNomencl));
            DOMResult result = new DOMResult();
            DOMSource source = new DOMSource(doc);
            trans.transform(source, result);
            doc2 = (Document) result.getNode();
            if (doc2 != null) {
                doc = doc2;
            }
        }
        DataLayerManager.getImplementation().saveRepository(dm, collectivite, doc,
                xs.getReferenceNomenclature(), user);
    } else {
        logger.debug("cancelled");
    }
    // DEBUT
    for (int fileCount = 0; fileCount < dataFiles.size(); fileCount++) {
        if (isCancelled()) {
            break;
        }
        File df = dataFiles.get(fileCount);
        final int progress = (int) ((fileCount + 1) * 100.0 / dataFiles.size());
        processTempFile(df, fileEncoding, xmlVersion, header, footer, pc, collectivite, codeBudget, f, docCount,
                shouldDelete, progress);
        docCount++;
    }
    // FIN
    importTimingOS.append(f.getName()).append(";;REF;;").append(Long.toString(System.currentTimeMillis()));
    importTimingOS.println();
    if (shouldDelete) {
        fHeader.delete();
        fRef.delete();
        fFooter.delete();
        removeTempDir();
    }
    return xs.getFileInfo();
}