List of usage examples for javax.xml.transform OutputKeys ENCODING
String ENCODING
To view the source code for javax.xml.transform OutputKeys ENCODING.
Click Source Link
From source file:org.apache.synapse.mediators.transform.XSLTMediator.java
/** * Perform actual XSLT transformation/* w ww.j av a2 s. co m*/ * @param synCtx current message * @param synLog the logger to be used */ private void performXSLT(MessageContext synCtx, SynapseLog synLog) { OMNode sourceNode = source.selectOMNode(synCtx, synLog); boolean isSoapEnvelope = (sourceNode == synCtx.getEnvelope()); boolean isSoapBody = (sourceNode == synCtx.getEnvelope().getBody()); boolean isSoapHeader = (sourceNode == synCtx.getEnvelope().getHeader()); // Derive actual key from message context String generatedXsltKey = xsltKey.evaluateValue(synCtx); // get templates from generatedXsltKey Templates cachedTemplates = null; if (synLog.isTraceTraceEnabled()) { synLog.traceTrace("Transformation source : " + sourceNode.toString()); } // determine if it is needed to create or create the template if (isCreationOrRecreationRequired(synCtx)) { // many threads can see this and come here for acquiring the lock synchronized (transformerLock) { // only first thread should create the template if (isCreationOrRecreationRequired(synCtx)) { cachedTemplates = createTemplate(synCtx, synLog, generatedXsltKey); } else { cachedTemplates = cachedTemplatesMap.get(generatedXsltKey); } } } else { //If already cached template then load it from cachedTemplatesMap synchronized (transformerLock) { cachedTemplates = cachedTemplatesMap.get(generatedXsltKey); } } try { // perform transformation Transformer transformer = null; try { transformer = cachedTemplates.newTransformer(); } catch (NullPointerException ex) { handleException("Unable to create Transformer using cached template", ex, synCtx); } if (!properties.isEmpty()) { // set the parameters which will pass to the Transformation applyProperties(transformer, synCtx, synLog); } transformer.setErrorListener(new ErrorListenerImpl(synLog, XSLT_TRANSFORMATION_ACTIVITY)); String outputMethod = transformer.getOutputProperty(OutputKeys.METHOD); String encoding = transformer.getOutputProperty(OutputKeys.ENCODING); if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("output method: " + outputMethod + "; encoding: " + encoding); } ResultBuilderFactory.Output output; if ("text".equals(outputMethod)) { synLog.traceOrDebug("Processing non SOAP/XML (text) transformation result"); output = ResultBuilderFactory.Output.TEXT; } else if (isSoapEnvelope) { output = ResultBuilderFactory.Output.SOAP_ENVELOPE; } else { output = ResultBuilderFactory.Output.ELEMENT; } SynapseEnvironment synEnv = synCtx.getEnvironment(); ResultBuilder resultBuilder = resultBuilderFactory.createResultBuilder(synEnv, output); SourceBuilder sourceBuilder = sourceBuilderFactory.createSourceBuilder(synEnv); if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("Using " + sourceBuilder.getClass().getName()); synLog.traceOrDebug("Using " + resultBuilder.getClass().getName()); } try { transformer.transform(sourceBuilder.getSource((OMElement) sourceNode), resultBuilder.getResult()); } finally { sourceBuilder.release(); } synLog.traceOrDebug("Transformation completed - processing result"); /** * If user have set transform.xslt.result.disableBuild property to true, we do not build the message to * OMElement, */ if (targetPropertyName != null && resultBuilder instanceof StreamResultBuilder && synCtx.getProperty(TRANSFORM_XSLT_RESULT_DISABLE_BUILD) != null && synCtx.getProperty(TRANSFORM_XSLT_RESULT_DISABLE_BUILD) instanceof String && "true".equalsIgnoreCase((String) synCtx.getProperty(TRANSFORM_XSLT_RESULT_DISABLE_BUILD))) { // add result XML string as a message context property to the message if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("Adding result string as message context property : " + targetPropertyName); } synCtx.setProperty(targetPropertyName, ((StreamResultBuilder) resultBuilder).getResultAsString()); return; } // get the result OMElement OMElement result = null; try { result = resultBuilder.getNode(encoding == null ? null : Charset.forName(encoding)); } catch (Exception e) { throw new SynapseException("Unable to create an OMElement using XSLT result ", e); } if (synLog.isTraceTraceEnabled()) { synLog.traceTrace("Transformation result : " + result.toString()); } if (targetPropertyName != null) { // add result XML as a message context property to the message if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("Adding result as message context property : " + targetPropertyName); } synCtx.setProperty(targetPropertyName, result); } else { if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug( "Replace " + (isSoapEnvelope ? "SOAP envelope" : isSoapBody ? "SOAP body" : "node") + " with result"); } if (isSoapEnvelope) { try { synCtx.setEnvelope((SOAPEnvelope) result); } catch (AxisFault ex) { handleException("Unable to replace SOAP envelope with result", ex, synCtx); } } else if (isSoapBody) { for (Iterator itr = synCtx.getEnvelope().getBody().getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); child.detach(); } for (Iterator itr = result.getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); synCtx.getEnvelope().getBody().addChild(child); } } else if (isSoapHeader) { for (Iterator itr = synCtx.getEnvelope().getHeader().getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); child.detach(); } for (Iterator itr = result.getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); synCtx.getEnvelope().getHeader().addChild(child); } } else { sourceNode.insertSiblingAfter(result); sourceNode.detach(); } } } catch (TransformerException e) { handleException("Error performing XSLT transformation using : " + xsltKey, e, synCtx); } }
From source file:org.apache.syncope.core.logic.report.ReportJob.java
@SuppressWarnings("rawtypes") @Override/*w ww. j a v a 2 s . c om*/ public void execute(final JobExecutionContext context) throws JobExecutionException { Report report = reportDAO.find(reportKey); if (report == null) { throw new JobExecutionException("Report " + reportKey + " not found"); } // 1. create execution ReportExec execution = entityFactory.newEntity(ReportExec.class); execution.setStatus(ReportExecStatus.STARTED); execution.setStartDate(new Date()); execution.setReport(report); execution = reportExecDAO.save(execution); report.addExec(execution); report = reportDAO.save(report); // 2. define a SAX handler for generating result as XML TransformerHandler handler; ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipOutputStream zos = new ZipOutputStream(baos); zos.setLevel(Deflater.BEST_COMPRESSION); try { SAXTransformerFactory tFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); handler = tFactory.newTransformerHandler(); Transformer serializer = handler.getTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, SyncopeConstants.DEFAULT_ENCODING); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); // a single ZipEntry in the ZipOutputStream zos.putNextEntry(new ZipEntry(report.getName())); // streaming SAX handler in a compressed byte array stream handler.setResult(new StreamResult(zos)); } catch (Exception e) { throw new JobExecutionException("While configuring for SAX generation", e, true); } execution.setStatus(ReportExecStatus.RUNNING); execution = reportExecDAO.save(execution); // 3. actual report execution StringBuilder reportExecutionMessage = new StringBuilder(); try { // report header handler.startDocument(); AttributesImpl atts = new AttributesImpl(); atts.addAttribute("", "", ReportXMLConst.ATTR_NAME, ReportXMLConst.XSD_STRING, report.getName()); handler.startElement("", "", ReportXMLConst.ELEMENT_REPORT, atts); // iterate over reportlet instances defined for this report for (ReportletConf reportletConf : report.getReportletConfs()) { Class<Reportlet> reportletClass = dataBinder .findReportletClassHavingConfClass(reportletConf.getClass()); if (reportletClass != null) { Reportlet<ReportletConf> autowired = (Reportlet<ReportletConf>) ApplicationContextProvider .getBeanFactory() .createBean(reportletClass, AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false); autowired.setConf(reportletConf); // invoke reportlet try { autowired.extract(handler); } catch (Exception e) { execution.setStatus(ReportExecStatus.FAILURE); Throwable t = e instanceof ReportException ? e.getCause() : e; reportExecutionMessage.append(ExceptionUtils2.getFullStackTrace(t)) .append("\n==================\n"); } } } // report footer handler.endElement("", "", ReportXMLConst.ELEMENT_REPORT); handler.endDocument(); if (!ReportExecStatus.FAILURE.name().equals(execution.getStatus())) { execution.setStatus(ReportExecStatus.SUCCESS); } } catch (Exception e) { execution.setStatus(ReportExecStatus.FAILURE); reportExecutionMessage.append(ExceptionUtils2.getFullStackTrace(e)); throw new JobExecutionException(e, true); } finally { try { zos.closeEntry(); IOUtils.closeQuietly(zos); IOUtils.closeQuietly(baos); } catch (IOException e) { LOG.error("While closing StreamResult's backend", e); } execution.setExecResult(baos.toByteArray()); execution.setMessage(reportExecutionMessage.toString()); execution.setEndDate(new Date()); reportExecDAO.save(execution); } }
From source file:org.apache.syncope.core.logic.report.ReportJobDelegate.java
@Transactional public void execute(final String reportKey) throws JobExecutionException { Report report = reportDAO.find(reportKey); if (report == null) { throw new JobExecutionException("Report " + reportKey + " not found"); }/*from w w w. ja v a2 s . c o m*/ if (!report.isActive()) { LOG.info("Report {} not active, aborting...", reportKey); return; } // 1. create execution ReportExec execution = entityFactory.newEntity(ReportExec.class); execution.setStatus(ReportExecStatus.STARTED); execution.setStart(new Date()); execution.setReport(report); execution = reportExecDAO.save(execution); report.add(execution); report = reportDAO.save(report); // 2. define a SAX handler for generating result as XML TransformerHandler handler; ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipOutputStream zos = new ZipOutputStream(baos); zos.setLevel(Deflater.BEST_COMPRESSION); try { SAXTransformerFactory tFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); tFactory.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true); handler = tFactory.newTransformerHandler(); Transformer serializer = handler.getTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, SyncopeConstants.DEFAULT_ENCODING); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); // a single ZipEntry in the ZipOutputStream zos.putNextEntry(new ZipEntry(report.getName())); // streaming SAX handler in a compressed byte array stream handler.setResult(new StreamResult(zos)); } catch (Exception e) { throw new JobExecutionException("While configuring for SAX generation", e, true); } execution.setStatus(ReportExecStatus.RUNNING); execution = reportExecDAO.save(execution); // 3. actual report execution StringBuilder reportExecutionMessage = new StringBuilder(); try { // report header handler.startDocument(); AttributesImpl atts = new AttributesImpl(); atts.addAttribute("", "", ReportXMLConst.ATTR_NAME, ReportXMLConst.XSD_STRING, report.getName()); handler.startElement("", "", ReportXMLConst.ELEMENT_REPORT, atts); // iterate over reportlet instances defined for this report for (ReportletConf reportletConf : report.getReportletConfs()) { Class<? extends Reportlet> reportletClass = implementationLookup .getReportletClass(reportletConf.getClass()); if (reportletClass == null) { LOG.warn("Could not find matching reportlet for {}", reportletConf.getClass()); } else { // fetch (or create) reportlet Reportlet reportlet; if (ApplicationContextProvider.getBeanFactory().containsSingleton(reportletClass.getName())) { reportlet = (Reportlet) ApplicationContextProvider.getBeanFactory() .getSingleton(reportletClass.getName()); } else { reportlet = (Reportlet) ApplicationContextProvider.getBeanFactory() .createBean(reportletClass, AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false); ApplicationContextProvider.getBeanFactory().registerSingleton(reportletClass.getName(), reportlet); } // invoke reportlet try { reportlet.extract(reportletConf, handler); } catch (Throwable t) { LOG.error("While executing reportlet {} for report {}", reportlet, reportKey, t); execution.setStatus(ReportExecStatus.FAILURE); Throwable effective = t instanceof ReportException ? t.getCause() : t; reportExecutionMessage.append(ExceptionUtils2.getFullStackTrace(effective)) .append("\n==================\n"); } } } // report footer handler.endElement("", "", ReportXMLConst.ELEMENT_REPORT); handler.endDocument(); if (!ReportExecStatus.FAILURE.name().equals(execution.getStatus())) { execution.setStatus(ReportExecStatus.SUCCESS); } } catch (Exception e) { execution.setStatus(ReportExecStatus.FAILURE); reportExecutionMessage.append(ExceptionUtils2.getFullStackTrace(e)); throw new JobExecutionException(e, true); } finally { try { zos.closeEntry(); IOUtils.closeQuietly(zos); IOUtils.closeQuietly(baos); } catch (IOException e) { LOG.error("While closing StreamResult's backend", e); } execution.setExecResult(baos.toByteArray()); execution.setMessage(reportExecutionMessage.toString()); execution.setEnd(new Date()); reportExecDAO.save(execution); } }
From source file:org.apache.syncope.core.persistence.jpa.content.XMLContentExporter.java
@Override public void export(final String domain, final OutputStream os, final String uwfPrefix, final String gwfPrefix, final String awfPrefix) throws SAXException, TransformerConfigurationException { if (StringUtils.isNotBlank(uwfPrefix)) { TABLE_PREFIXES_TO_BE_EXCLUDED.add(uwfPrefix); }/*from w ww . j av a 2 s . co m*/ if (StringUtils.isNotBlank(gwfPrefix)) { TABLE_PREFIXES_TO_BE_EXCLUDED.add(gwfPrefix); } if (StringUtils.isNotBlank(awfPrefix)) { TABLE_PREFIXES_TO_BE_EXCLUDED.add(awfPrefix); } StreamResult streamResult = new StreamResult(os); final SAXTransformerFactory transformerFactory = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); transformerFactory.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true); TransformerHandler handler = transformerFactory.newTransformerHandler(); Transformer serializer = handler.getTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, StandardCharsets.UTF_8.name()); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); handler.setResult(streamResult); handler.startDocument(); handler.startElement("", "", ROOT_ELEMENT, new AttributesImpl()); DataSource dataSource = domainsHolder.getDomains().get(domain); if (dataSource == null) { throw new IllegalArgumentException("Could not find DataSource for domain " + domain); } String dbSchema = ApplicationContextProvider.getBeanFactory().getBean(domain + "DatabaseSchema", String.class); Connection conn = null; ResultSet rs = null; try { conn = DataSourceUtils.getConnection(dataSource); final DatabaseMetaData meta = conn.getMetaData(); rs = meta.getTables(null, StringUtils.isBlank(dbSchema) ? null : dbSchema, null, new String[] { "TABLE" }); final Set<String> tableNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); while (rs.next()) { String tableName = rs.getString("TABLE_NAME"); LOG.debug("Found table {}", tableName); if (isTableAllowed(tableName)) { tableNames.add(tableName); } } LOG.debug("Tables to be exported {}", tableNames); // then sort tables based on foreign keys and dump for (String tableName : sortByForeignKeys(dbSchema, conn, tableNames)) { try { doExportTable(handler, dbSchema, conn, tableName, TABLES_TO_BE_FILTERED.get(tableName.toUpperCase())); } catch (Exception e) { LOG.error("Failure exporting table {}", tableName, e); } } } catch (SQLException e) { LOG.error("While exporting database content", e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { LOG.error("While closing tables result set", e); } } DataSourceUtils.releaseConnection(conn, dataSource); if (conn != null) { try { if (!conn.isClosed()) { conn.close(); } } catch (SQLException e) { LOG.error("While releasing connection", e); } } } handler.endElement("", "", ROOT_ELEMENT); handler.endDocument(); }
From source file:org.apache.syncope.core.report.ReportJob.java
@SuppressWarnings("rawtypes") @Override//from w w w. ja v a 2 s . c o m public void execute(final JobExecutionContext context) throws JobExecutionException { Report report = reportDAO.find(reportId); if (report == null) { throw new JobExecutionException("Report " + reportId + " not found"); } // 1. create execution ReportExec execution = new ReportExec(); execution.setStatus(ReportExecStatus.STARTED); execution.setStartDate(new Date()); execution.setReport(report); execution = reportExecDAO.save(execution); report.addExec(execution); report = reportDAO.save(report); // 2. define a SAX handler for generating result as XML TransformerHandler handler; ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipOutputStream zos = new ZipOutputStream(baos); zos.setLevel(Deflater.BEST_COMPRESSION); try { SAXTransformerFactory tFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); handler = tFactory.newTransformerHandler(); Transformer serializer = handler.getTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, SyncopeConstants.DEFAULT_ENCODING); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); // a single ZipEntry in the ZipOutputStream zos.putNextEntry(new ZipEntry(report.getName())); // streaming SAX handler in a compressed byte array stream handler.setResult(new StreamResult(zos)); } catch (Exception e) { throw new JobExecutionException("While configuring for SAX generation", e, true); } execution.setStatus(ReportExecStatus.RUNNING); execution = reportExecDAO.save(execution); // 3. actual report execution StringBuilder reportExecutionMessage = new StringBuilder(); StringWriter exceptionWriter = new StringWriter(); try { // report header handler.startDocument(); AttributesImpl atts = new AttributesImpl(); atts.addAttribute("", "", ReportXMLConst.ATTR_NAME, ReportXMLConst.XSD_STRING, report.getName()); handler.startElement("", "", ReportXMLConst.ELEMENT_REPORT, atts); // iterate over reportlet instances defined for this report for (ReportletConf reportletConf : report.getReportletConfs()) { Class<Reportlet> reportletClass = dataBinder .findReportletClassHavingConfClass(reportletConf.getClass()); if (reportletClass != null) { Reportlet autowired = (Reportlet) ApplicationContextProvider.getBeanFactory() .createBean(reportletClass, AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false); autowired.setConf(reportletConf); // invoke reportlet try { autowired.extract(handler); } catch (Exception e) { execution.setStatus(ReportExecStatus.FAILURE); Throwable t = e instanceof ReportException ? e.getCause() : e; reportExecutionMessage.append(ExceptionUtil.getFullStackTrace(t)) .append("\n==================\n"); } } } // report footer handler.endElement("", "", ReportXMLConst.ELEMENT_REPORT); handler.endDocument(); if (!ReportExecStatus.FAILURE.name().equals(execution.getStatus())) { execution.setStatus(ReportExecStatus.SUCCESS); } } catch (Exception e) { execution.setStatus(ReportExecStatus.FAILURE); reportExecutionMessage.append(ExceptionUtil.getFullStackTrace(e)); throw new JobExecutionException(e, true); } finally { try { zos.closeEntry(); IOUtils.closeQuietly(zos); IOUtils.closeQuietly(baos); } catch (IOException e) { LOG.error("While closing StreamResult's backend", e); } execution.setExecResult(baos.toByteArray()); execution.setMessage(reportExecutionMessage.toString()); execution.setEndDate(new Date()); reportExecDAO.save(execution); } }
From source file:org.apache.syncope.core.util.ContentExporter.java
public void export(final OutputStream os, final String wfTablePrefix) throws SAXException, TransformerConfigurationException { if (StringUtils.isNotBlank(wfTablePrefix)) { TABLE_PREFIXES_TO_BE_EXCLUDED.add(wfTablePrefix); }//from w ww .j ava 2 s . c om StreamResult streamResult = new StreamResult(os); final SAXTransformerFactory transformerFactory = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); TransformerHandler handler = transformerFactory.newTransformerHandler(); Transformer serializer = handler.getTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, SyncopeConstants.DEFAULT_ENCODING); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); handler.setResult(streamResult); handler.startDocument(); handler.startElement("", "", ROOT_ELEMENT, new AttributesImpl()); Connection conn = null; ResultSet rs = null; try { conn = DataSourceUtils.getConnection(dataSource); final DatabaseMetaData meta = conn.getMetaData(); final String schema = dbSchema; rs = meta.getTables(null, schema, null, new String[] { "TABLE" }); final Set<String> tableNames = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER); while (rs.next()) { String tableName = rs.getString("TABLE_NAME"); LOG.debug("Found table {}", tableName); if (isTableAllowed(tableName)) { tableNames.add(tableName); } } LOG.debug("Tables to be exported {}", tableNames); // then sort tables based on foreign keys and dump for (String tableName : sortByForeignKeys(conn, tableNames)) { try { doExportTable(handler, conn, tableName, TABLES_TO_BE_FILTERED.get(tableName.toUpperCase())); } catch (Exception e) { LOG.error("Failure exporting table {}", tableName, e); } } } catch (SQLException e) { LOG.error("While exporting database content", e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { LOG.error("While closing tables result set", e); } } DataSourceUtils.releaseConnection(conn, dataSource); if (conn != null) { try { if (!conn.isClosed()) { conn.close(); } } catch (SQLException e) { LOG.error("While releasing connection", e); } } } handler.endElement("", "", ROOT_ELEMENT); handler.endDocument(); }
From source file:org.apache.syncope.installer.utilities.FileSystemUtils.java
public static void writeXML(final Document doc, final OutputStream out) throws IOException, TransformerException { final TransformerFactory factory = TransformerFactory.newInstance(); factory.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true); final Transformer transformer = factory.newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(out, Charset.forName("UTF-8")))); out.close();/*from w w w. j a v a2 s . c o m*/ }
From source file:org.apache.tika.server.resource.TikaResource.java
private StreamingOutput produceOutput(final InputStream is, final MultivaluedMap<String, String> httpHeaders, final UriInfo info, final String format) { final Parser parser = createParser(); final Metadata metadata = new Metadata(); final ParseContext context = new ParseContext(); fillMetadata(parser, metadata, context, httpHeaders); fillParseContext(context, httpHeaders, parser); logRequest(LOG, info, metadata);/* w w w .j ava2 s .com*/ return new StreamingOutput() { public void write(OutputStream outputStream) throws IOException, WebApplicationException { Writer writer = new OutputStreamWriter(outputStream, UTF_8); ContentHandler content; try { SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); TransformerHandler handler = factory.newTransformerHandler(); handler.getTransformer().setOutputProperty(OutputKeys.METHOD, format); handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes"); handler.getTransformer().setOutputProperty(OutputKeys.ENCODING, UTF_8.name()); handler.setResult(new StreamResult(writer)); content = new ExpandedTitleContentHandler(handler); } catch (TransformerConfigurationException e) { throw new WebApplicationException(e); } parse(parser, LOG, info.getPath(), is, content, metadata, context); } }; }
From source file:org.apache.xml.security.test.c14n.implementations.Canonicalizer20010315Test.java
/** * This method takes the input bytes as XML Document and converts it to an * UTF-16 encoded XML document which is serialized to byte[] and returned. * * @param input//from w w w .ja v a2 s .c o m * * @throws IOException * @throws ParserConfigurationException * @throws SAXException * @throws TransformerConfigurationException * @throws TransformerException */ public static byte[] convertToUTF16(byte input[]) throws ParserConfigurationException, IOException, SAXException, TransformerConfigurationException, TransformerException { //String ENCODING_ISO8859_1 = "ISO-8859-1"; //String ENCODING_UTF8 = "UTF-8"; String ENCODING_UTF16 = "UTF-16"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new ByteArrayInputStream(input)); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, ENCODING_UTF16); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); DOMSource source = new DOMSource(doc); ByteArrayOutputStream os = new ByteArrayOutputStream(); StreamResult result = new StreamResult(os); transformer.transform(source, result); return os.toByteArray(); }
From source file:org.asimba.wa.integrationtest.saml2.model.AuthnRequest.java
private static String docToString(Document doc) { String result = null;/*from www.j a v a2s. co m*/ try { // Build serializable metadata TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer serializer; serializer = transformerFactory.newTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); StringWriter stringWriter = new StringWriter(); serializer.transform(new DOMSource(doc), new StreamResult(stringWriter)); result = stringWriter.toString(); return result; } catch (TransformerConfigurationException e) { // _logger.error("Exception when getting transformer for document transformation: "+e.getMessage()); return null; } catch (TransformerException e) { // _logger.error("Exception when transforming document to DOM: "+e.getMessage()); return null; } }