List of usage examples for javax.xml.transform Transformer setParameter
public abstract void setParameter(String name, Object value);
From source file:org.sapia.soto.state.cocoon.view.DomifyView.java
protected void execute(Object model, Map viewParams, ContentHandler handler) throws Throwable { if (_name == null) { _name = CocoonContext.MODEL_KEY; }// w ww .j a v a 2 s . com DOMSource src = model instanceof Node ? new DOMSource((Node) model) : new DOMSource(new DOMAdapter().adapt(model, _name)); SAXResult res = new SAXResult(handler); Transformer tx = _fac.newTransformer(); Iterator params = viewParams.entrySet().iterator(); Map.Entry entry; while (params.hasNext()) { entry = (Map.Entry) params.next(); tx.setParameter(entry.getKey().toString(), entry.getValue()); } tx.transform(src, res); }
From source file:org.springframework.integration.xml.transformer.XsltPayloadTransformer.java
private Transformer buildTransformer(Message<?> message) throws TransformerException { // process individual mappings Transformer transformer = this.templates.newTransformer(); if (this.xslParameterMappings != null) { for (String parameterName : this.xslParameterMappings.keySet()) { Expression expression = this.xslParameterMappings.get(parameterName); try { Object value = expression.getValue(this.evaluationContext, message); transformer.setParameter(parameterName, value); } catch (Exception e) { if (logger.isWarnEnabled()) { logger.warn("Evaluation of header expression '" + expression.getExpressionString() + "' failed. The XSLT parameter '" + parameterName + "' will be skipped."); }//from w ww . java2s . co m } } } // process xslt-parameter-headers MessageHeaders headers = message.getHeaders(); if (!ObjectUtils.isEmpty(this.xsltParamHeaders)) { for (String headerName : headers.keySet()) { if (PatternMatchUtils.simpleMatch(this.xsltParamHeaders, headerName)) { transformer.setParameter(headerName, headers.get(headerName)); } } } return transformer; }
From source file:org.toobsframework.transformpipeline.domain.ChainedXSLTransformer.java
private String transform(List inputXSLs, String inputXML, Map inputParams, IXMLTransformerHelper transformerHelper) throws XMLTransformerException { String outputXML = null;//from w w w .java2 s . c o m ByteArrayInputStream xmlInputStream = null; ByteArrayOutputStream xmlOutputStream = null; try { TransformerFactory tFactory = TransformerFactory.newInstance(); setFactoryResolver(tFactory); if (tFactory.getFeature(SAXSource.FEATURE) && tFactory.getFeature(SAXResult.FEATURE)) { // Cast the TransformerFactory to SAXTransformerFactory. SAXTransformerFactory saxTFactory = ((SAXTransformerFactory) tFactory); // Create a TransformerHandler for each stylesheet. ArrayList tHandlers = new ArrayList(); TransformerHandler tHandler = null; // Create an XMLReader. XMLReader reader = new SAXParser(); // transformer3 outputs SAX events to the serializer. if (outputProperties == null) { outputProperties = OutputPropertiesFactory.getDefaultMethodProperties("html"); } Serializer serializer = SerializerFactory.getSerializer(outputProperties); String xslFile = null; for (int it = 0; it < inputXSLs.size(); it++) { Object source = inputXSLs.get(it); if (source instanceof StreamSource) { tHandler = saxTFactory.newTransformerHandler((StreamSource) source); if (xslFile == null) xslFile = ((StreamSource) source).getSystemId(); } else { //tHandler = saxTFactory.newTransformerHandler(new StreamSource(getXSLFile((String) source))); tHandler = saxTFactory .newTransformerHandler(uriResolver.resolve((String) source + ".xsl", "")); if (xslFile == null) xslFile = (String) source; } Transformer transformer = tHandler.getTransformer(); transformer.setOutputProperty("encoding", "UTF-8"); transformer.setErrorListener(tFactory.getErrorListener()); if (inputParams != null) { Iterator paramIt = inputParams.entrySet().iterator(); while (paramIt.hasNext()) { Map.Entry thisParam = (Map.Entry) paramIt.next(); transformer.setParameter((String) thisParam.getKey(), (String) thisParam.getValue()); } } if (transformerHelper != null) { transformer.setParameter(TRANSFORMER_HELPER, transformerHelper); } tHandlers.add(tHandler); } tHandler = null; for (int th = 0; th < tHandlers.size(); th++) { tHandler = (TransformerHandler) tHandlers.get(th); if (th == 0) { reader.setContentHandler(tHandler); reader.setProperty("http://xml.org/sax/properties/lexical-handler", tHandler); } else { ((TransformerHandler) tHandlers.get(th - 1)).setResult(new SAXResult(tHandler)); } } // Parse the XML input document. The input ContentHandler and output ContentHandler // work in separate threads to optimize performance. InputSource xmlSource = null; xmlInputStream = new ByteArrayInputStream((inputXML).getBytes("UTF-8")); if (log.isTraceEnabled()) { log.trace("Input XML:\n" + inputXML); } xmlSource = new InputSource(xmlInputStream); xmlOutputStream = new ByteArrayOutputStream(); serializer.setOutputStream(xmlOutputStream); ((TransformerHandler) tHandlers.get(tHandlers.size() - 1)) .setResult(new SAXResult(serializer.asContentHandler())); Date timer = new Date(); reader.parse(xmlSource); Date timer2 = new Date(); outputXML = xmlOutputStream.toString("UTF-8"); if (log.isDebugEnabled()) { long diff = timer2.getTime() - timer.getTime(); log.debug("Time to transform: " + diff + " mS XSL: " + xslFile); if (log.isTraceEnabled()) { log.trace("Output XML:\n" + outputXML); } } } } catch (IOException ex) { throw new XMLTransformerException(ex); } catch (IllegalArgumentException ex) { throw new XMLTransformerException(ex); } catch (SAXException ex) { throw new XMLTransformerException(ex); } catch (TransformerConfigurationException ex) { throw new XMLTransformerException(ex); } catch (TransformerFactoryConfigurationError ex) { throw new XMLTransformerException(ex); } catch (TransformerException ex) { throw new XMLTransformerException(ex); } finally { try { if (xmlInputStream != null) { xmlInputStream.close(); xmlInputStream = null; } if (xmlOutputStream != null) { xmlOutputStream.close(); xmlOutputStream = null; } } catch (IOException ex) { } } return outputXML; }
From source file:org.toobsframework.transformpipeline.domain.ChainedXSLTransletTransformer.java
public String transform(List inputXSLs, String inputXML, Map inputParams, IXMLTransformerHelper transformerHelper) throws XMLTransformerException { String outputXML = null;// w w w .ja va 2 s. c om ByteArrayInputStream xmlInputStream = null; ByteArrayOutputStream xmlOutputStream = null; try { TransformerFactory tFactory = new org.apache.xalan.xsltc.trax.TransformerFactoryImpl(); try { //tFactory.setAttribute("use-classpath", Boolean.TRUE); tFactory.setAttribute("auto-translet", Boolean.TRUE); } catch (IllegalArgumentException iae) { log.error("Error setting XSLTC specific attribute", iae); throw new XMLTransformerException(iae); } setFactoryResolver(tFactory); TransformerFactoryImpl traxFactory = (TransformerFactoryImpl) tFactory; // Create a TransformerHandler for each stylesheet. ArrayList tHandlers = new ArrayList(); TransformerHandler tHandler = null; // Create a SAX XMLReader. XMLReader reader = new org.apache.xerces.parsers.SAXParser(); // transformer3 outputs SAX events to the serializer. if (outputProperties == null) { outputProperties = OutputPropertiesFactory.getDefaultMethodProperties("html"); } Serializer serializer = SerializerFactory.getSerializer(outputProperties); for (int it = 0; it < inputXSLs.size(); it++) { String xslTranslet = (String) inputXSLs.get(it); Source source = uriResolver.resolve(xslTranslet + ".xsl", ""); String tPkg = source.getSystemId().substring(0, source.getSystemId().lastIndexOf("/")) .replaceAll("/", ".").replaceAll("-", "_"); // Package name needs to be set for each TransformerHandler instance tFactory.setAttribute("package-name", tPkg); tHandler = traxFactory.newTransformerHandler(source); // Set parameters and output encoding on each handlers transformer Transformer transformer = tHandler.getTransformer(); transformer.setOutputProperty("encoding", "UTF-8"); transformer.setErrorListener(tFactory.getErrorListener()); if (inputParams != null) { Iterator paramIt = inputParams.entrySet().iterator(); while (paramIt.hasNext()) { Map.Entry thisParam = (Map.Entry) paramIt.next(); transformer.setParameter((String) thisParam.getKey(), (String) thisParam.getValue()); } } if (transformerHelper != null) { transformer.setParameter(TRANSFORMER_HELPER, transformerHelper); } tHandlers.add(tHandler); } tHandler = null; // Link the handlers to each other and to the reader for (int th = 0; th < tHandlers.size(); th++) { tHandler = (TransformerHandler) tHandlers.get(th); if (th == 0) { reader.setContentHandler(tHandler); reader.setProperty("http://xml.org/sax/properties/lexical-handler", tHandler); } else { ((TransformerHandler) tHandlers.get(th - 1)).setResult(new SAXResult(tHandler)); } } // Parse the XML input document. The input ContentHandler and output ContentHandler // work in separate threads to optimize performance. InputSource xmlSource = null; xmlInputStream = new ByteArrayInputStream((inputXML).getBytes("UTF-8")); xmlSource = new InputSource(xmlInputStream); xmlOutputStream = new ByteArrayOutputStream(); serializer.setOutputStream(xmlOutputStream); // Link the last handler to the serializer ((TransformerHandler) tHandlers.get(tHandlers.size() - 1)) .setResult(new SAXResult(serializer.asContentHandler())); reader.parse(xmlSource); outputXML = xmlOutputStream.toString("UTF-8"); } catch (Exception ex) { log.error("Error performing chained transformation: " + ex.getMessage(), ex); throw new XMLTransformerException(ex); } finally { try { if (xmlInputStream != null) { xmlInputStream.close(); xmlInputStream = null; } if (xmlOutputStream != null) { xmlOutputStream.close(); xmlOutputStream = null; } } catch (IOException ex) { } } return outputXML; }
From source file:org.toobsframework.transformpipeline.domain.TransletTransformer.java
@SuppressWarnings("unchecked") protected void doTransform(String xslTranslet, StreamSource xmlSource, Map params, IXMLTransformerHelper transformerHelper, StreamResult xmlResult) throws XMLTransformerException { try {//from www. j a v a 2s . c om // Dont rely on the system property to get the right transformer TransformerFactory tFactory = new org.apache.xalan.xsltc.trax.TransformerFactoryImpl(); // set the URI Resolver for the transformer factory setFactoryResolver(tFactory); Source source = uriResolver.resolve(xslTranslet + ".xsl", ""); String tPkg = source.getSystemId().substring(0, source.getSystemId().lastIndexOf("/")) .replaceAll("/", ".").replaceAll("-", "_"); try { //tFactory.setAttribute("use-classpath", Boolean.TRUE); tFactory.setAttribute("auto-translet", Boolean.TRUE); tFactory.setAttribute("package-name", tPkg); } catch (IllegalArgumentException iae) { log.error("Error setting XSLTC specific attribute", iae); throw new XMLTransformerException(iae); } Transformer transformer = tFactory.newTransformer(source); // 2.2 Set character encoding for all transforms to UTF-8. transformer.setOutputProperty("encoding", "UTF-8"); transformer.setErrorListener(tFactory.getErrorListener()); // 2.5 Set Parameters necessary for transformation. if (params != null) { Iterator paramIt = params.entrySet().iterator(); while (paramIt.hasNext()) { Map.Entry thisParam = (Map.Entry) paramIt.next(); transformer.setParameter((String) thisParam.getKey(), (String) thisParam.getValue()); } } if (transformerHelper != null) { transformer.setParameter(TRANSFORMER_HELPER, transformerHelper); } // 3. Use the Transformer to transform an XML Source and send the // output to a Result object. transformer.transform(xmlSource, xmlResult); } catch (TransformerConfigurationException tce) { log.error(tce.toString(), tce); throw new XMLTransformerException(tce); } catch (TransformerException te) { log.error(te.toString(), te); throw new XMLTransformerException(te); } }
From source file:org.wso2.carbon.registry.core.jdbc.handlers.XSLTBasedUIEnabledHandler.java
public Resource getBrowseView(String viewKey, RequestContext requestContext) throws RegistryException { String xslt = browseXSLTs.get(viewKey); if (xslt == null) { String msg = "Unsupported browse view: " + viewKey + ". XSLT is not registered for this view."; log.error(msg);/*from w w w .j a va 2 s .c o m*/ throw new RegistryException(msg); } Transformer viewTransformer = getTransformer(xslt); ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); Resource resource = requestContext.getRegistry().get(requestContext.getResourcePath().getPath()); try { viewTransformer.setParameter("resourcePath", requestContext.getResourcePath().toString()); viewTransformer.transform(new StreamSource(resource.getContentStream()), new StreamResult(byteOut)); } catch (TransformerException e) { String msg = "Failed to generate the view UI for resource " + requestContext.getResourcePath() + ". XSLT transformation failed for XSLT " + xslt + ". " + e.getMessage(); log.error(msg, e); throw new RegistryException(msg, e); } String content = byteOut.toString(); resource.setContent(content); return resource; }
From source file:org.wso2.carbon.registry.core.jdbc.handlers.XSLTBasedUIEnabledHandler.java
public Resource getEditView(String editViewKey, RequestContext requestContext) throws RegistryException { String xslt = editXSLTs.get(editViewKey); if (xslt == null) { String msg = "Unsupported edit view: " + editViewKey + ". XSLT is not registered for this view."; log.error(msg);//from w w w .j a v a 2 s . com throw new RegistryException(msg); } Transformer viewTransformer = getTransformer(xslt); if (viewTransformer == null) { return getRawResource(requestContext); } ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); Resource resource = requestContext.getRegistry().get(requestContext.getResourcePath().getPath()); try { viewTransformer.setParameter("resourcePath", requestContext.getResourcePath().getPath()); viewTransformer.transform(new StreamSource(resource.getContentStream()), new StreamResult(byteOut)); } catch (TransformerException e) { String msg = "Failed to generate the edit UI for resource " + requestContext.getResourcePath() + ". XSLT transformation failed for XSLT " + xslt + ". " + e.getMessage(); log.error(msg, e); throw new RegistryException(msg, e); } String content = byteOut.toString(); resource.setContent(content); return resource; }
From source file:org.wso2.carbon.wsdl2form.Util.java
/** * Transform based on parameters//from ww w.jav a 2 s .c om * * @param xmlIn XML * @param xslIn XSL * @param result Result * @param paramMap Parameter map * @throws javax.xml.transform.TransformerException * will be thrown */ public static void transform(Source xmlIn, Source xslIn, Result result, Map paramMap) throws TransformerException { try { TransformerFactory transformerFactory = new TransformerFactoryImpl(); Transformer transformer = transformerFactory.newTransformer(xslIn); if (paramMap != null) { Set set = paramMap.keySet(); for (Object aSet : set) { if (aSet != null) { String key = (String) aSet; String value = (String) paramMap.get(key); transformer.setParameter(key, value); } } } transformer.transform(xmlIn, result); } catch (TransformerException e) { log.error(e.getMessage(), e); throw e; } }
From source file:org.wso2.carbon.wsdl2form.Util.java
public static void transform(Source xmlIn, Source xslIn, Result result, Map paramMap, URIResolver uriResolver) throws TransformerException { try {// w ww .ja v a2s .c o m TransformerFactory transformerFactory = new TransformerFactoryImpl(); transformerFactory.setURIResolver(uriResolver); Transformer transformer = transformerFactory.newTransformer(xslIn); if (paramMap != null) { Set set = paramMap.keySet(); for (Object aSet : set) { String key = (String) aSet; String value = (String) paramMap.get(key); transformer.setParameter(key, value); } } transformer.transform(xmlIn, result); } catch (TransformerException e) { log.error(e.getMessage(), e); throw e; } }
From source file:org.wso2.codegen.service.ajax.DynamicCodeGeneratorService.java
public String generate(String serviceName) throws AxisFault { MessageContext currentMessageContext = MessageContext.getCurrentMessageContext(); AxisConfiguration axisConfiguration = currentMessageContext.getConfigurationContext() .getAxisConfiguration();//from ww w . j a v a 2 s . com AxisService service = axisConfiguration.getService(serviceName); if (service == null) { String message = "Service " + serviceName + " cannot be found."; log.error(message); throw new AxisFault(message); } Parameter enableMTOM = service.getParameter(Constants.Configuration.ENABLE_MTOM); if (enableMTOM != null && enableMTOM.getValue().equals("true")) { throw new AxisFault("Try It feature is not available for MTOM enabled services"); } Object parameterValue = service.getParameterValue("WSDLSupplier"); if (parameterValue != null) { String message = "RPC/ENC WSDL found. Axis2 does not support RPC/ENC encoding scheme"; log.warn(message); throw new AxisFault(message); } String uuidTryit; WSDLMetaDataFactory wsdlMetaDataFactory = WSDLMetaDataFactory.getFactory("2.0", serviceName, MessageContext.getCurrentMessageContext()); WSDLMetaDataFactory.UniqueOutputDirInfo uniqueOutputDirInfo = wsdlMetaDataFactory .generateUniqueCodegenOutputDir(); uuidTryit = uniqueOutputDirInfo.getUuid(); String outputDir = wsdlMetaDataFactory.generateUniqueDir("dynamic_codegen", uniqueOutputDirInfo) .getOutputDir(); String wsdlFileURI = wsdlMetaDataFactory.getWSDLFileURI(outputDir); //Generating the .sig foramat using wsdl2sig.xslt to intermediate DOM Document. This doc will be // used to transformed with tryit.xslt and jsstub.xslt. try { InputStream wsdl2InStream = new FileInputStream(new File(wsdlFileURI)); InputStream wsdl2sigXSLTStream = getClass().getClassLoader().getResourceAsStream("wsdl2sig.xslt"); Source wsdl2Source = new StreamSource(wsdl2InStream); Source wsdl2sigXSLTSource = new StreamSource(wsdl2sigXSLTStream); DocumentBuilder docB = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = docB.newDocument(); //do the first transformation Result result = new DOMResult(doc); Transformer transformer = TransformerFactory.newInstance().newTransformer(wsdl2sigXSLTSource); transformer.transform(wsdl2Source, result); /////////////////////////////////////////////////// // System.out.println(DOM2Writer.nodeToString(doc)); //////////////////////////////////////////////////// DOMSource xmlSource = new DOMSource(doc); Map fileResourcesMap = (Map) MessageContext.getCurrentMessageContext().getConfigurationContext() .getProperty(WSO2Constants.FILE_RESOURCE_MAP); if (fileResourcesMap == null) { fileResourcesMap = new Hashtable(); MessageContext.getCurrentMessageContext().getConfigurationContext() .setProperty(WSO2Constants.FILE_RESOURCE_MAP, fileResourcesMap); } String uuidJsstub; WSDLMetaDataFactory.UniqueOutputDirInfo jsstubUniqueOutputDirInfo = wsdlMetaDataFactory .generateUniqueCodegenOutputDir(); uuidJsstub = jsstubUniqueOutputDirInfo.getUuid(); String jstubOutputDir = wsdlMetaDataFactory .generateUniqueDir("dynamic_codegen", jsstubUniqueOutputDirInfo).getOutputDir(); File jstubOutputDirFile = new File(jstubOutputDir); jstubOutputDirFile.mkdirs(); File jsStubFle = new File(jstubOutputDir, serviceName + ".stub.js"); OutputStream jsStubOutputStream = new FileOutputStream(jsStubFle); Result jsStubResult = new StreamResult(jsStubOutputStream); InputStream jsStubXSLTStream = getClass().getClassLoader().getResourceAsStream("jsstub.xslt"); Source jsStubXSLSource = new StreamSource(jsStubXSLTStream); transformer = TransformerFactory.newInstance().newTransformer(jsStubXSLSource); transformer.transform(xmlSource, jsStubResult); FileFilter jsStubFileFilter = new JSStubFilter(); String absolutePath = null; File[] files0 = jstubOutputDirFile.listFiles(jsStubFileFilter); if ((files0 != null) && (files0[0] != null) && (files0[0].getAbsoluteFile() != null)) { absolutePath = files0[0].getAbsoluteFile().getAbsolutePath(); fileResourcesMap.put(uuidJsstub, absolutePath); } if (absolutePath == null) { throw new AxisFault(DynamicCodeGeneratorService.class.getName() + " cannot continue" + " since an instance of jsstub.xslt is not available"); } InputStream tryItXSLTStream = getClass().getClassLoader().getResourceAsStream("tryit.xslt"); Source tryItXSLSource = new StreamSource(tryItXSLTStream); File tryItOutFile = new File(outputDir, serviceName + ".html"); OutputStream tryItOutFileStream = new FileOutputStream(tryItOutFile); Result tryItResult = new StreamResult(tryItOutFileStream); transformer = TransformerFactory.newInstance().newTransformer(tryItXSLSource); transformer.setParameter("wsrequest-location", "js/WSRequest.js"); transformer.setParameter("stub-location", "filedownload?id=" + uuidJsstub); String injectValue = "<div>" + "<h4><a href=\"#\" onClick=\"javascript:top.showServiceInitializer(); return false;\">Services</a> > " + "<a href=\"#\" onClick=\"javascript:top.listServiceData('" + serviceName + "'); return false;\">" + serviceName + "</a> > " + "Try Web Service" + "</h4>" + "</div>"; transformer.setParameter("show-alternate", "false"); transformer.setParameter("breadcrumbs", injectValue); transformer.transform(xmlSource, tryItResult); FileFilter tryItFileFilter = new TryItFilter(); File[] files1 = new File(outputDir).listFiles(tryItFileFilter); if ((files1 != null) && (files1[0] != null) && (files1[0].getAbsoluteFile() != null)) { fileResourcesMap.put(uuidTryit, files1[0].getAbsoluteFile().getAbsolutePath()); } log.debug("Try it page has been generated for the service: " + serviceName); return "filedownload" + "?id=" + uuidTryit; } catch (Exception e) { log.error(e); throw AxisFault.makeFault(e); } }