Example usage for javax.xml.transform Transformer setParameter

List of usage examples for javax.xml.transform Transformer setParameter

Introduction

In this page you can find the example usage for javax.xml.transform Transformer setParameter.

Prototype

public abstract void setParameter(String name, Object value);

Source Link

Document

Add a parameter for the transformation.

Usage

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 }));
         */
    }
}