List of usage examples for javax.xml.transform Transformer setParameter
public abstract void setParameter(String name, Object value);
From source file:org.wyona.yanel.impl.resources.TestingControlResource.java
private StringBuffer showProgress() { StringBuffer sb = new StringBuffer(); // get tmpResultDir from session tmpResultDir = (File) request.getSession().getAttribute("tmpResultDir"); // number of executed tests int numberOfTests = Integer.parseInt((String) request.getSession().getAttribute("numberOfTests")); String resultName = request.getSession().getAttribute("exectime") + "-tests.xml"; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); if (tmpResultDir.list().length < numberOfTests) { // geting the test results // aggregate all tests in the tmp dir try {/*from www .java 2 s. c o m*/ DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document result = builder.newDocument(); Project project = new Project(); ResultAggregator junitreport = new ResultAggregator(); junitreport.setTaskName("JUnitReport"); junitreport.setProject(project); FileSet fs_report = new FileSet(); fs_report.setDir(tmpResultDir); fs_report.setProject(project); PatternSet.NameEntry ne = fs_report.createInclude(); ne.setName("**/TEST-*.xml"); junitreport.addFileSet(fs_report); junitreport.init(); // get the result to show for this request result = junitreport.getDocument(); File result2htmlXsltFile = org.wyona.commons.io.FileUtil.file( rtd.getConfigFile().getParentFile().getAbsolutePath(), "xslt" + File.separator + "result2html.xsl"); Transformer transResult2html = TransformerFactory.newInstance() .newTransformer(new StreamSource(result2htmlXsltFile)); transResult2html.setParameter("testing.result.title", "stillTesting"); transResult2html.setParameter("testing.number.requested.tests", "" + numberOfTests); transResult2html.transform(new DOMSource(result), new StreamResult(byteArrayOutputStream)); } catch (Exception e) { sb.append("<p>Could not create folder. Exception: " + e + "</p>"); log.error(e.getMessage(), e); } } else { request.getSession().removeAttribute("tmpResultDir"); request.getSession().removeAttribute("exectime"); request.getSession().removeAttribute("numberOfTests"); try { // geting the test results DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document result = builder.newDocument(); Project aggregatorproject = new Project(); // aggregate all tests in the tmp dir ResultAggregator junitreport = new ResultAggregator(); junitreport.setTaskName("JUnitReport"); junitreport.setProject(aggregatorproject); FileSet fs_report = new FileSet(); fs_report.setDir(tmpResultDir); fs_report.setProject(aggregatorproject); PatternSet.NameEntry ne = fs_report.createInclude(); ne.setName("**/TEST-*.xml"); junitreport.addFileSet(fs_report); junitreport.init(); // get the result to show for this request result = junitreport.getDocument(); // write test result to repo org.wyona.yarep.core.Repository Repo = this.getRealm().getRepository(); org.wyona.commons.io.Path newPath = new org.wyona.commons.io.Path( "/test-results-archive/" + resultName); log.debug("" + newPath); org.wyona.yanel.core.util.YarepUtil.addNodes(Repo, newPath.toString(), org.wyona.yarep.core.NodeType.RESOURCE); OutputStream out = Repo.getNode(newPath.toString()).getOutputStream(); javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform( new javax.xml.transform.dom.DOMSource(result), new javax.xml.transform.stream.StreamResult(out)); out.close(); // delete the test dir FileUtils.deleteDirectory(tmpResultDir); File result2htmlXsltFile = org.wyona.commons.io.FileUtil.file( rtd.getConfigFile().getParentFile().getAbsolutePath(), "xslt" + File.separator + "result2html.xsl"); Transformer transResult2html = TransformerFactory.newInstance() .newTransformer(new StreamSource(result2htmlXsltFile)); transResult2html.setParameter("testing.result.title", "testDone"); transResult2html.transform(new DOMSource(result), new StreamResult(byteArrayOutputStream)); } catch (Exception e) { sb.append("<p>Could not create folder. Exception: " + e + "</p>"); log.error(e.getMessage(), e); } } sb.append(byteArrayOutputStream); return sb; }
From source file:org.xmlactions.common.xml.Transform.java
/** * Transform an xml using an xml style sheet transformation (xslt); * /*from ww w. ja v a 2 s .c o m*/ * @param readerXSL * the stylesheet * @param readerXML * the xml * @param transformerFactory * - xalan = org.apache.xalan.processor.TransformerFactoryImpl, * can be empty for no transformer * @param map * - map of parameters to pass to the transformer, can be null * for no params * @return the transformed xml * @throws TransformerException */ public static String transform(Reader readerXSL, Reader readerXML, String transformerFactory, Map<String, Object> map) throws TransformerException { // should we set a transformerFactory? if (StringUtils.isNotEmpty(transformerFactory)) { Transform.setTransformationFactory(transformerFactory); } else { Transform.setDefaultTransformationFactory(); } TransformerFactory tFactory = TransformerFactory.newInstance(); // reset to default factory. Transform.setDefaultTransformationFactory(); Transformer transformer = tFactory.newTransformer(new StreamSource(readerXSL)); // Add any parameters if needed. if (map != null) { for (String key : map.keySet()) { Object obj = map.get(key); transformer.setParameter(key, obj); } } OutputStream outputStream = new ByteArrayOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(outputStream); transformer.transform(new StreamSource(readerXML), new StreamResult(osw)); return outputStream.toString(); }
From source file:org.yes.cart.report.impl.ReportServiceImpl.java
private boolean createReport(String lang, String reportId, OutputStream reportStream, List<Object> rez) throws SAXException, IOException { final byte[] xmlfile = getXml(rez); if (LOG.isDebugEnabled()) { // System.out.println(new String(xmlfile)); LOG.debug(new String(xmlfile)); }//from w ww . ja va 2 s . c o m final String xslFoFile = getReportDescriptorbyId(reportId).getLangXslfo(lang); if (xmlfile != null && xmlfile.length > 0) { final File xsltfile; // configure fopFactory as desired final FopFactory fopFactory = FopFactory.newInstance(); final FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); // configure foUserAgent as desired final URL configFileUrl = this.getClass().getClassLoader().getResource("fop-userconfig.xml"); if (configFileUrl == null) { LOG.error("FOP config file not found, " + "please put the fop-userconfig.xml file into the classpath of the server, UTF - 8characters won't be displayed correctly"); } else { File userConfigXml = new File(configFileUrl.getFile()); fopFactory.setUserConfig(userConfigXml); } if (servletContext == null) { xsltfile = new File(reportFolder + xslFoFile); } else { xsltfile = new File(servletContext.getRealPath(reportFolder + xslFoFile)); fopFactory.getFontManager().setFontBaseURL(servletContext.getRealPath("WEB-INF")); foUserAgent.setBaseURL("file:///" + servletContext.getRealPath("WEB-INF/report/")); } if (!xsltfile.exists()) { LOG.error("XSLT file does not exist: " + xsltfile.getAbsolutePath()); return false; } // Setup output OutputStream out = new BufferedOutputStream(reportStream); try { // Construct fop with desired output format final Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out); // Setup XSLT 2.0 final TransformerFactory factory = TransformerFactory .newInstance("net.sf.saxon.TransformerFactoryImpl", null); final Transformer transformer = factory.newTransformer(new StreamSource(xsltfile)); // Set the value of a <param> in the stylesheet transformer.setParameter("versionParam", "2.0"); transformer.setOutputProperty("encoding", "UTF-8"); // Setup input for XSLT transformation final Source src = new StreamSource( new InputStreamReader(new ByteArrayInputStream(xmlfile), "UTF-8")); // Resulting SAX events (the generated FO) must be piped through to FOP final Result res = new SAXResult(fop.getDefaultHandler()); // Start XSLT transformation and FOP processing transformer.transform(src, res); } catch (Exception ex) { LOG.error("Cannot create pdf " + ex.getMessage(), ex); return false; } finally { out.close(); } return true; } return false; }
From source file:spntoolsdata.pdf.util.XMLtoHtml.java
public static Boolean createHTML(boolean tipoDocumento, String direccionDestino, String direccionXML, Cliente cliente, boolean template) throws IOException, FileNotFoundException, TransformerFactoryConfigurationError, TransformerException { Boolean exito = false;//from w w w . j av a 2 s .com try { TransformerFactory tFactory = TransformerFactory.newInstance(); Source xmlDoc = new StreamSource(direccionXML); Source xslDoc = null; if (tipoDocumento == true) { xslDoc = new StreamSource(XMLtoHtml.class.getResourceAsStream("/spntoolsdata/pdf/res/ordenfg.xsl")); } else if (tipoDocumento == false) { xslDoc = new StreamSource( XMLtoHtml.class.getResourceAsStream("/spntoolsdata/pdf/res/ordenfng.xsl")); } if (xslDoc != null) { StringWriter writer = new StringWriter(); Transformer transformer = tFactory.newTransformer(xslDoc); transformer.setParameter("_id", cliente.get_id().toString()); transformer.transform(xmlDoc, new javax.xml.transform.stream.StreamResult(writer)); String result = writer.toString(); exito = writeHTML(checkHTML(result), direccionDestino); } } catch (TransformerFactoryConfigurationError | FileNotFoundException | TransformerException ex) { //log.level.error(ex.getMessage()); throw ex; } catch (IOException ex) { //log.level.error(ex.getMessage()); throw ex; } catch (Exception ex) { //log.level.error(ex.getMessage()); } finally { try { exito = true; } catch (Exception ex) { ex.printStackTrace(); } } return exito; }
From source file:uk.ac.cam.caret.sakai.rwiki.component.service.impl.XSLTEntityHandler.java
public ContentHandler getOutputHandler(OutputStream out) throws IOException { if (!isAvailable()) return null; try {//from w w w. j a va 2s.c om XSLTTransform xsltTransform = (XSLTTransform) transformerHolder.get(); if (xsltTransform == null) { xsltTransform = new XSLTTransform(); xsltTransform.setXslt(new InputSource(this.getClass().getResourceAsStream(xslt))); transformerHolder.set(xsltTransform); } SAXResult sr = new SAXResult(); TransformerHandler th = xsltTransform.getContentHandler(); Transformer transformer = th.getTransformer(); if (transformParameters != null) { for (Map.Entry<String, String> entry : transformParameters.entrySet()) { transformer.setParameter(entry.getKey(), entry.getValue()); } } Properties p = OutputPropertiesFactory.getDefaultMethodProperties("xml"); // SAK-14388 - use the alternate XHTMLSerializer2 for Websphere environments if ("websphere".equals(ServerConfigurationService.getString("servlet.container"))) { // SAK-16712: null in java.util.Properties causes NullPointerException if (getXalan270ContentHandler() != null) { outputProperties.put("{http://xml.apache.org/xalan}content-handler", getXalan270ContentHandler()); } } p.putAll(outputProperties); /* S_KEY_CONTENT_HANDLER:{http://xml.apache.org/xalan}content-handler S_KEY_ENTITIES:{http://xml.apache.org/xalan}entities S_KEY_INDENT_AMOUNT:{http://xml.apache.org/xalan}indent-amount S_OMIT_META_TAG:{http://xml.apache.org/xalan}omit-meta-tag S_USE_URL_ESCAPING:{http://xml.apache.org/xalan}use-url-escaping */ Serializer s = SerializerFactory.getSerializer(p); s.setOutputStream(out); sr.setHandler(s.asContentHandler()); th.setResult(sr); return th; } catch (Exception ex) { throw new RuntimeException("Failed to create Content Handler", ex); //$NON-NLS-1$ /* * String stackTrace = null; try { StringWriter exw = new * StringWriter(); PrintWriter pw = new PrintWriter(exw); * ex.printStackTrace(pw); stackTrace = exw.toString(); } catch * (Exception ex2) { stackTrace = * MessageFormat.format(defaultStackTrace, new Object[] { * ex.getMessage() }); } out.write(MessageFormat.format(errorFormat, * new Object[] { ex.getMessage(), stackTrace })); */ } }