List of usage examples for javax.xml.transform Transformer setURIResolver
public abstract void setURIResolver(URIResolver resolver);
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; }