List of usage examples for javax.xml.transform Transformer setErrorListener
public abstract void setErrorListener(ErrorListener listener) throws IllegalArgumentException;
From source file:nl.nn.adapterframework.util.TransformerPool.java
protected synchronized Transformer createTransformer() throws TransformerConfigurationException { Transformer t = templates.newTransformer(); if (t == null) { throw new TransformerConfigurationException("cannot instantiate transformer"); }/*w w w . ja va 2 s .c om*/ t.setErrorListener(new TransformerErrorListener()); return t; }
From source file:org.alfresco.repo.template.XSLTProcessor.java
/** * @param templateSource/* w ww . j av a 2 s.c om*/ * @param model * @param out */ private void process(TemplateSource templateSource, Object model, Writer out) { if ((model == null) || !XSLTemplateModel.class.isAssignableFrom(model.getClass())) { throw new IllegalArgumentException("\"model\" must be an XSLTemplateModel object: " + model); } XSLTemplateModel xsltModel = (XSLTemplateModel) model; System.setProperty("org.apache.xalan.extensions.bsf.BSFManager", BSFManager.class.getName()); Document xslTemplate; try { xslTemplate = XMLUtil.parse(templateSource.getReader(defaultEncoding)); } catch (IOException ex) { throw new TemplateException(MSG_UNABLE_TO_READ_TEMPLATE, new Object[] { ex.getMessage() }, ex); } catch (SAXException sax) { throw new TemplateException(MSG_UNABLE_TO_PARSE_TEMPLATE, new Object[] { sax.getMessage() }, sax); } finally { try { templateSource.close(); } catch (IOException ex) { // There's little to be done here. Log it and carry on log.warn("Error while trying to close template stream", ex); } } List<String> scriptIds = addScripts(xsltModel, xslTemplate); addParameters(xsltModel, xslTemplate); final LinkedList<TransformerException> errors = new LinkedList<TransformerException>(); final ErrorListener errorListener = new ErrorListener() { public void error(final TransformerException te) throws TransformerException { log.debug("error " + te.getMessageAndLocation()); errors.add(te); } public void fatalError(final TransformerException te) throws TransformerException { log.debug("fatalError " + te.getMessageAndLocation()); throw te; } public void warning(final TransformerException te) throws TransformerException { log.debug("warning " + te.getMessageAndLocation()); errors.add(te); } }; final TemplateSource resourceSource = templateSource; final URIResolver uriResolver = new URIResolver() { public Source resolve(final String href, String base) throws TransformerException { if (log.isDebugEnabled()) { log.debug("request to resolve href " + href + " using base " + base); } InputStream in = null; try { in = resourceSource.getResource(href); if (in == null) { throw new TransformerException("unable to resolve href " + href); } Document d = XMLUtil.parse(in); if (log.isDebugEnabled()) { log.debug("loaded " + XMLUtil.toString(d)); } return new DOMSource(d); } catch (TransformerException ex) { throw ex; } catch (Exception e) { throw new TransformerException("unable to load " + href, e); } } }; Source xmlSource = this.getXMLSource(xsltModel); Transformer t = null; try { final TransformerFactory tf = TransformerFactory.newInstance(); tf.setErrorListener(errorListener); tf.setURIResolver(uriResolver); if (log.isDebugEnabled()) { log.debug("xslTemplate: \n" + XMLUtil.toString(xslTemplate)); } t = tf.newTransformer(new DOMSource(xslTemplate)); if (errors.size() != 0) { final StringBuilder msg = new StringBuilder("errors encountered creating tranformer ... \n"); for (TransformerException te : errors) { msg.append(te.getMessageAndLocation()).append("\n"); } throw new TemplateException(msg.toString()); } t.setErrorListener(errorListener); t.setURIResolver(uriResolver); t.setParameter("versionParam", "2.0"); } catch (TransformerConfigurationException tce) { log.error(tce); throw new TemplateException(tce.getMessage(), tce); } try { t.transform(xmlSource, new StreamResult(out)); } catch (TransformerException te) { log.error(te.getMessageAndLocation()); throw new TemplateException(te.getMessageAndLocation(), te); } catch (Exception e) { log.error("unexpected error " + e); throw new TemplateException(e.getMessage(), e); } finally { //Clear out any scripts that were created for this transform if (!scriptIds.isEmpty()) { XSLTProcessorMethodInvoker.removeMethods(scriptIds); } } if (errors.size() != 0) { final StringBuilder msg = new StringBuilder("errors encountered during transformation ... \n"); for (TransformerException te : errors) { msg.append(te.getMessageAndLocation()).append("\n"); } throw new TemplateException(msg.toString()); } }
From source file:org.alfresco.web.forms.XSLTRenderingEngine.java
public void render(final Map<QName, Object> model, final RenderingEngineTemplate ret, final Result result) throws IOException, RenderingEngine.RenderingException, SAXException { System.setProperty("org.apache.xalan.extensions.bsf.BSFManager", BSFManager.class.getName()); Document xslTemplate = null;// ww w.j av a2s . c o m try { xslTemplate = XMLUtil.parse(ret.getInputStream()); } catch (final SAXException sax) { throw new RenderingEngine.RenderingException(sax); } this.addScripts(model, xslTemplate); this.addParameters(model, xslTemplate); final LinkedList<TransformerException> errors = new LinkedList<TransformerException>(); final ErrorListener errorListener = new ErrorListener() { public void error(final TransformerException te) throws TransformerException { LOGGER.debug("error " + te.getMessageAndLocation()); errors.add(te); } public void fatalError(final TransformerException te) throws TransformerException { LOGGER.debug("fatalError " + te.getMessageAndLocation()); throw te; } public void warning(final TransformerException te) throws TransformerException { LOGGER.debug("warning " + te.getMessageAndLocation()); errors.add(te); } }; // create a uri resolver to resolve document() calls to the virtualized // web application final URIResolver uriResolver = new URIResolver() { public Source resolve(final String href, String base) throws TransformerException { LOGGER.debug("request to resolve href " + href + " using base " + base); final RenderingEngine.TemplateResourceResolver trr = (RenderingEngine.TemplateResourceResolver) model .get(RenderingEngineTemplateImpl.PROP_RESOURCE_RESOLVER); InputStream in = null; try { in = trr.resolve(href); } catch (Exception e) { throw new TransformerException("unable to load " + href, e); } if (in == null) { throw new TransformerException("unable to resolve href " + href); } try { final Document d = XMLUtil.parse(in); if (LOGGER.isDebugEnabled()) LOGGER.debug("loaded " + XMLUtil.toString(d)); return new DOMSource(d); } catch (Exception e) { throw new TransformerException("unable to load " + href, e); } } }; Source xmlSource = this.getXMLSource(model); Transformer t = null; try { final TransformerFactory tf = TransformerFactory.newInstance(); tf.setErrorListener(errorListener); tf.setURIResolver(uriResolver); if (LOGGER.isDebugEnabled()) { LOGGER.debug("xslTemplate: \n" + XMLUtil.toString(xslTemplate)); } t = tf.newTransformer(new DOMSource(xslTemplate)); if (errors.size() != 0) { final StringBuilder msg = new StringBuilder("errors encountered creating tranformer ... \n"); for (TransformerException te : errors) { msg.append(te.getMessageAndLocation()).append("\n"); } throw new RenderingEngine.RenderingException(msg.toString()); } t.setErrorListener(errorListener); t.setURIResolver(uriResolver); t.setParameter("versionParam", "2.0"); } catch (TransformerConfigurationException tce) { LOGGER.error(tce); throw new RenderingEngine.RenderingException(tce); } try { t.transform(xmlSource, result); } catch (TransformerException te) { LOGGER.error(te.getMessageAndLocation()); throw new RenderingEngine.RenderingException(te); } catch (Exception e) { LOGGER.error("unexpected error " + e); throw new RenderingEngine.RenderingException(e); } if (errors.size() != 0) { final StringBuilder msg = new StringBuilder("errors encountered during transformation ... \n"); for (TransformerException te : errors) { msg.append(te.getMessageAndLocation()).append("\n"); } throw new RenderingEngine.RenderingException(msg.toString()); } }
From source file:org.apache.axis2.util.XMLPrettyPrinter.java
/** * Pretty prints contents of the xml file. * * @param file// w w w . j a v a2 s.c om */ public static void prettify(final File file) { InputStream inputStream = null; FileOutputStream outputStream = null; byte[] byteArray = null; try { FileInputStream fin = new FileInputStream(file); byteArray = IOUtils.getStreamAsByteArray(fin); fin.close(); inputStream = new ByteArrayInputStream(byteArray); outputStream = new FileOutputStream(file); Source stylesheetSource = new StreamSource(new ByteArrayInputStream(prettyPrintStylesheet.getBytes())); Source xmlSource = new StreamSource(inputStream); TransformerFactory tf = TransformerFactory.newInstance(); Templates templates = tf.newTemplates(stylesheetSource); Transformer transformer = templates.newTransformer(); transformer.setErrorListener(new ErrorListener() { public void warning(TransformerException exception) throws TransformerException { log.warn("Exception occurred while trying to pretty print file " + file, exception); } public void error(TransformerException exception) throws TransformerException { log.error("Exception occurred while trying to pretty print file " + file, exception); } public void fatalError(TransformerException exception) throws TransformerException { log.error("Exception occurred while trying to pretty print file " + file, exception); } }); transformer.transform(xmlSource, new StreamResult(outputStream)); inputStream.close(); outputStream.close(); log.debug("Pretty printed file : " + file); } catch (Throwable t) { log.debug("Exception occurred while trying to pretty print file " + file, t); /* if outputStream is already created, close them, because we are going reassign * different value to that. It will leak the file handle (specially in windows, since * deleting is going to be an issue) */ if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { log.debug(e.getMessage(), e); } } try { if (byteArray != null) { outputStream = new FileOutputStream(file); outputStream.write(byteArray); } } catch (IOException e) { log.debug(e.getMessage(), e); } } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { log.debug(e.getMessage(), e); } } if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { log.debug(e.getMessage(), e); } } } }
From source file:org.apache.fop.area.AreaTreeParser.java
/** * Parses an intermediate file (area tree XML) into an AreaTreeModel instance by adding * pages to it./*from w ww .j a v a 2 s. c o m*/ * @param src the Source instance pointing to the intermediate file * @param treeModel the AreaTreeModel that the parsed pages are added to * @param userAgent the user agent * @throws TransformerException if an error occurs while parsing the area tree XML */ public void parse(Source src, AreaTreeModel treeModel, FOUserAgent userAgent) throws TransformerException { Transformer transformer = tFactory.newTransformer(); transformer.setErrorListener(new DefaultErrorListener(log)); SAXResult res = new SAXResult(getContentHandler(treeModel, userAgent)); transformer.transform(src, res); }
From source file:org.apache.fop.cli.InputHandler.java
/** * Transforms the input document to the input format expected by FOP using XSLT. * @param result the Result object where the result of the XSL transformation is sent to * @throws FOPException in case of an error during processing *//*from ww w . j a v a 2 s. c o m*/ protected void transformTo(Result result) throws FOPException { try { // Setup XSLT TransformerFactory factory = TransformerFactory.newInstance(); if (uriResolver != null) { factory.setURIResolver(uriResolver); } factory.setErrorListener(this); Transformer transformer; Source xsltSource = createXSLTSource(); if (xsltSource == null) { // FO Input transformer = factory.newTransformer(); } else { // XML/XSLT input transformer = factory.newTransformer(xsltSource); // Set the value of parameters, if any, defined for stylesheet if (xsltParams != null) { for (int i = 0; i < xsltParams.size(); i += 2) { transformer.setParameter((String) xsltParams.elementAt(i), (String) xsltParams.elementAt(i + 1)); } } } transformer.setErrorListener(this); // Create a SAXSource from the input Source file Source src = createMainSource(); // Start XSLT transformation and FOP processing transformer.transform(src, result); } catch (Exception e) { throw new FOPException(e); } }
From source file:org.apache.fop.events.model.EventModelParser.java
/** * Parses an event model file into an EventModel instance. * @param src the Source instance pointing to the XML file * @return the created event model structure * @throws TransformerException if an error occurs while parsing the XML file *//* ww w .j a v a 2 s . c o m*/ public static EventModel parse(Source src) throws TransformerException { Transformer transformer = tFactory.newTransformer(); transformer.setErrorListener(new DefaultErrorListener(LOG)); EventModel model = new EventModel(); SAXResult res = new SAXResult(getContentHandler(model)); transformer.transform(src, res); return model; }
From source file:org.apache.fop.intermediate.AbstractIntermediateTest.java
/** * Sets an error listener which doesn't swallow errors like Xalan's default one. * @param transformer the transformer to set the error listener on *///from ww w.ja v a 2s . c o m protected void setErrorListener(Transformer transformer) { transformer.setErrorListener(new ErrorListener() { public void error(TransformerException exception) throws TransformerException { throw exception; } public void fatalError(TransformerException exception) throws TransformerException { throw exception; } public void warning(TransformerException exception) throws TransformerException { //ignore } }); }
From source file:org.apache.fop.plan.PreloaderPlan.java
private Document getDocument(InputStream in) throws TransformerException { TransformerFactory tFactory = TransformerFactory.newInstance(); //Custom error listener to minimize output to console ErrorListener errorListener = new DefaultErrorListener(log); tFactory.setErrorListener(errorListener); Transformer transformer = tFactory.newTransformer(); transformer.setErrorListener(errorListener); Source source = new StreamSource(in); DOMResult res = new DOMResult(); transformer.transform(source, res);/*from www . java 2 s.co m*/ Document doc = (Document) res.getNode(); return doc; }
From source file:org.apache.fop.render.intermediate.IFParser.java
/** * Parses an intermediate file and paints it. * @param src the Source instance pointing to the intermediate file * @param documentHandler the intermediate format document handler used to process the IF events * @param userAgent the user agent/*from w ww. j ava2 s .c o m*/ * @throws TransformerException if an error occurs while parsing the area tree XML * @throws IFException if an IF-related error occurs inside the target document handler */ public void parse(Source src, IFDocumentHandler documentHandler, FOUserAgent userAgent) throws TransformerException, IFException { try { Transformer transformer = tFactory.newTransformer(); transformer.setErrorListener(new DefaultErrorListener(log)); SAXResult res = new SAXResult(getContentHandler(documentHandler, userAgent)); transformer.transform(src, res); } catch (TransformerException te) { //Unpack original IFException if applicable if (te.getCause() instanceof SAXException) { SAXException se = (SAXException) te.getCause(); if (se.getCause() instanceof IFException) { throw (IFException) se.getCause(); } } else if (te.getCause() instanceof IFException) { throw (IFException) te.getCause(); } throw te; } }