List of usage examples for javax.xml.transform.dom DOMResult DOMResult
public DOMResult()
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(); }