Example usage for javax.xml.transform Transformer setURIResolver

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

Introduction

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

Prototype

public abstract void setURIResolver(URIResolver resolver);

Source Link

Document

Set an object that will be used to resolve URIs used in document().

Usage

From source file:org.jaggeryjs.hostobjects.xslt.XSLTHostObject.java

private static Transformer getTransformer(Context cx, Scriptable scope, XSLTHostObject xho,
        NativeObject paramMap, Function uriResolver) throws ScriptException {
    Transformer transformer;
    try {//from  w w  w  . j a  v  a  2s .  c  o  m
        transformer = xho.factory.newTransformer(new StreamSource(xho.xslt));
        if (paramMap != null) {
            setParams(transformer, paramMap);
        }
        if (uriResolver != null) {
            transformer.setURIResolver(getUriResolver(cx, scope, uriResolver));
        }
        return transformer;
    } catch (TransformerConfigurationException e) {
        log.error(e.getMessage(), e);
        throw new ScriptException(e);
    }
}

From source file:org.mycore.common.content.MCRVFSContentTest.java

/**
 * Test method for {@link org.mycore.common.content.MCRContent#getSource()}.
 * @throws IOException //from  w w  w .  j  a v  a  2  s . co  m
 * @throws TransformerException 
 */
@Test
public final void testGetSource() throws IOException, TransformerException {
    CommonVFSResolver resolver = new CommonVFSResolver(fileObject);
    assertFalse("File is open", resolver.isContentOpen());
    //identity transformation
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    transformer.setOutputProperty(OutputKeys.INDENT, "no");
    StreamResult result = new StreamResult(System.out);
    transformer.transform(resolver.resolve("test://test", null), result);
    assertFalse("File is open after identity transformation", resolver.isContentOpen());
    //simple transformation
    URL xslURL = MCRVFSContentTest.class.getResource(TEST_BASE + "test.xsl");
    URL xmlURL = MCRVFSContentTest.class.getResource(TEST_BASE + "test.xml");
    Source xsl = new StreamSource(xslURL.toString());
    Source xml = new StreamSource(xmlURL.toString());
    transformer = TransformerFactory.newInstance().newTransformer(xsl);
    transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.setURIResolver(resolver);
    transformer.transform(xml, result);
    assertFalse("File is open after simple transformation", resolver.isContentOpen());
    //cacheable transformation
    Templates templates = TransformerFactory.newInstance().newTemplates(xsl);
    transformer = templates.newTransformer();
    transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.setURIResolver(resolver);
    transformer.transform(xml, result);
    assertFalse("File is open after cacheable transformation", resolver.isContentOpen());
}

From source file:org.openehealth.ipf.commons.xml.XsltTransmogrifier.java

private void doZap(Source source, Result result, Object... params) {
    if (params.length == 0) {
        throw new IllegalArgumentException("Expected XSL location in first parameter");
    }/*from  w ww .jav  a  2 s .  c om*/
    try {
        Templates template = template(params);
        Transformer transformer = template.newTransformer();
        transformer.setURIResolver(resolver);
        setXsltParameters(transformer, staticParams);
        setXsltParameters(transformer, parameters(params));
        transformer.transform(source, result);
    } catch (TransformerException e) {
        throw new RuntimeException("XSLT processing failed", e);
    }

}

From source file:org.openrepose.filters.ratelimiting.util.combine.CombinedLimitsTransformer.java

@Override
public void transform(final LimitsTransformPair source, final OutputStream target) {
    Transformer pooledObject;
    final ObjectPool<Transformer> objectPool = getXslTransformerPool();
    try {//from w  w w.  j a  v  a2 s  .  c  o  m
        pooledObject = objectPool.borrowObject();
        try {
            final InputStreamUriParameter inputStreamUriParameter = new InputStreamUriParameter(
                    source.getInputStream());
            final StreamResult resultWriter = new StreamResult(target);
            // The XSL requires a parameter to represent the absolute limits.
            // This harness cheats and provides the input stream directly.
            pooledObject.setURIResolver(inputStreamUriParameter);
            pooledObject.setParameter("absoluteURL", inputStreamUriParameter.getHref());
            final Limits limitsObject = new Limits();
            limitsObject.setRates(source.getRateLimitList());
            pooledObject.transform(new JAXBSource(jaxbContext, factory.createLimits(limitsObject)),
                    resultWriter);
        } catch (Exception e) {
            objectPool.invalidateObject(pooledObject);
            pooledObject = null;
            throw new XsltTransformationException("Failed while attempting XSLT transformation.", e);
        } finally {
            if (pooledObject != null) {
                objectPool.returnObject(pooledObject);
            }
        }
    } catch (XsltTransformationException e) {
        throw e;
    } catch (Exception e) {
        LOG.error("Failed to obtain a Transformer. Reason: {}", e.getLocalizedMessage());
        LOG.trace("", e);
    }
}

From source file:org.sakaiproject.portal.xsltcharon.impl.XsltRenderEngine.java

public Transformer getTransformer(XsltRenderContext xrc) {
    try {//from w  ww . j  a v  a  2  s  . co  m
        Templates templates = null;
        boolean skin = false;

        if (xrc.getAlternateTemplate() != null) {
            templates = getTemplates().get(xrc.getAlternateTemplate());
        }

        // test seperately in case the param wasnt' correct
        if (templates == null) {
            templates = getSkinTemplates(xrc);
            skin = true;
        }

        if (templates == null) {
            templates = getDefaultTemplates();
            skin = false;
        }

        Transformer trans = templates.newTransformer();
        trans.setURIResolver(getServletResolver(skin));
        return trans;
    } catch (TransformerConfigurationException e) {
        throw new RuntimeException(e);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.theospi.portfolio.portal.web.XsltPortal.java

protected Transformer getToolCategoryTransformer() {
    try {//from  ww w .j a v  a2 s.c om
        Transformer trans = getToolCategoryTemplates().newTransformer();
        trans.setURIResolver(getServletResolver());
        return trans;
    } catch (TransformerConfigurationException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.theospi.portfolio.portal.web.XsltPortal.java

public Transformer getTransformer() {
    try {/*from w  ww.j  a v a  2  s  . c o  m*/
        Transformer trans = getTemplates().newTransformer();
        trans.setURIResolver(getServletResolver());
        return trans;
    } catch (TransformerConfigurationException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.xchain.namespaces.sax.TransformerCommand.java

public boolean execute(JXPathContext context) throws Exception {
    if (log.isDebugEnabled()) {
        log.debug("Creating transformer stage for system id '" + getSystemId(context) + "'.");
    }/*from w w  w .j  a  v  a  2s  . co  m*/

    Templates templates = null;
    TransformerHandler transformerHandler = null;
    Transformer transformer = null;

    try {
        // create the transformer handler for the templates object.
        transformerHandler = XmlFactoryLifecycle.newTransformerHandler(
                java.net.URI.create(getLocator().getSystemId()).resolve(getSystemId(context)).toString());

        // get the transformer from the transformer handler  object.
        transformer = transformerHandler.getTransformer();

        transformer.setURIResolver(PipelineCommand.getPipelineConfig().getUriResolver());
        if (PipelineCommand.getPipelineConfig().getErrorListener() != null) {
            transformer.setErrorListener(PipelineCommand.getPipelineConfig().getErrorListener());
        }
    } catch (Exception e) {
        if (log.isErrorEnabled()) {
            log.error("Could not create transformer for system id '" + getSystemId(context)
                    + "' due to an exception.", e);
        }
        throw e;
    }

    try {
        // push the transformer on the stack.
        pushCurrentTransformer(transformer);

        // allow the child templates to configure the transformer.
        super.execute(context);
    } finally {

        // pop the current transformer.
        popCurrentTransformer();
    }

    if (log.isDebugEnabled()) {
        log.debug("Adding transformer to compositeStage.");
    }

    if (log.isDebugEnabled()) {
        log.debug("Adding transformer to stage.");
    }

    // add the transformer to the pipeline.
    PipelineCommand.getPipelineConfig().getCompositeStage()
            .addStage(new TransformerHandlerStage(transformerHandler));

    // return false, allowing other pipelines to execute.
    return false;
}