List of usage examples for javax.xml.transform Transformer setParameter
public abstract void setParameter(String name, Object value);
From source file:org.apereo.portal.portlets.sitemap.SitemapTest.java
@Test public void testStylesheetCompilation() throws IOException { final MockHttpServletRequest request = new MockHttpServletRequest(); Resource resource = new ClassPathResource(STYLESHEET_LOCATION); Source source = new StreamSource(resource.getInputStream(), resource.getURI().toASCIIString()); try {//ww w. j a v a 2 s . c om Transformer transformer = TransformerFactory.newInstance().newTransformer(source); transformer.setParameter(SitemapPortletController.USE_TAB_GROUPS, useTabGroups); transformer.setParameter(SitemapPortletController.USER_LANG, "en_US"); transformer.setParameter(XsltPortalUrlProvider.CURRENT_REQUEST, request); transformer.setParameter(XsltPortalUrlProvider.XSLT_PORTAL_URL_PROVIDER, this.xsltPortalUrlProvider); Source xmlSource = new StreamSource(new ClassPathResource(XML_LOCATION).getFile()); CharArrayWriter buffer = new CharArrayWriter(); TransformerUtils.enableIndenting(transformer); transformer.transform(xmlSource, new StreamResult(buffer)); if (logger.isTraceEnabled()) { logger.trace("XML: " + new String(buffer.toCharArray())); } } catch (TransformerConfigurationException e) { logger.error(e.getMessage(), e); throw new RuntimeException(e); } catch (TransformerException e) { logger.error(e.getMessage(), e); throw new RuntimeException(e); } }
From source file:org.apereo.portal.rendering.xslt.XSLTComponent.java
@Override public PipelineEventReader<XMLEventReader, XMLEvent> getEventReader(HttpServletRequest request, HttpServletResponse response) {//from w w w . ja v a 2 s . co m final PipelineEventReader<XMLEventReader, XMLEvent> pipelineEventReader = this.wrappedComponent .getEventReader(request, response); final Transformer transformer = this.transformerSource.getTransformer(request, response); //Setup a URIResolver based on the current resource loader transformer.setURIResolver(this.uriResolver); //Configure the Transformer via injected class if (this.xsltParameterSource != null) { final Map<String, Object> transformerParameters = this.xsltParameterSource.getParameters(request, response); if (transformerParameters != null) { this.logger.debug("{} - Setting Transformer Parameters: ", this.beanName, transformerParameters); for (final Map.Entry<String, Object> transformerParametersEntry : transformerParameters .entrySet()) { final String name = transformerParametersEntry.getKey(); final Object value = transformerParametersEntry.getValue(); if (value != null) { transformer.setParameter(name, value); } } } final Properties outputProperties = this.xsltParameterSource.getOutputProperties(request, response); if (outputProperties != null) { this.logger.debug("{} - Setting Transformer Output Properties: ", this.beanName, outputProperties); transformer.setOutputProperties(outputProperties); } } //The event reader from the previous component in the pipeline final XMLEventReader eventReader = pipelineEventReader.getEventReader(); //Wrap the event reader in a stream reader to avoid a JDK bug final XMLStreamReader streamReader; try { streamReader = new FixedXMLEventStreamReader(eventReader); } catch (XMLStreamException e) { throw new RuntimeException("Failed to create XMLStreamReader from XMLEventReader", e); } final Source xmlReaderSource = new StAXSource(streamReader); //Setup logging for the transform transformer.setErrorListener(this.errorListener); //Transform to a SAX ContentHandler to avoid JDK bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6775588 final XMLEventBufferWriter eventWriterBuffer = new XMLEventBufferWriter(); final ContentHandler contentHandler = StaxUtils.createLexicalContentHandler(eventWriterBuffer); contentHandler.setDocumentLocator(new LocatorImpl()); final SAXResult outputTarget = new SAXResult(contentHandler); try { this.logger.debug("{} - Begining XML Transformation", this.beanName); transformer.transform(xmlReaderSource, outputTarget); this.logger.debug("{} - XML Transformation complete", this.beanName); } catch (TransformerException e) { throw new RuntimeException("Failed to transform document", e); } final String mediaType = transformer.getOutputProperty(OutputKeys.MEDIA_TYPE); final List<XMLEvent> eventBuffer = eventWriterBuffer.getEventBuffer(); final XMLEventReader outputEventReader = new XMLEventBufferReader(eventBuffer.listIterator()); final Map<String, String> outputProperties = pipelineEventReader.getOutputProperties(); final PipelineEventReaderImpl<XMLEventReader, XMLEvent> pipelineEventReaderImpl = new PipelineEventReaderImpl<XMLEventReader, XMLEvent>( outputEventReader, outputProperties); pipelineEventReaderImpl.setOutputProperty(OutputKeys.MEDIA_TYPE, mediaType); return pipelineEventReaderImpl; }
From source file:org.apereo.portal.security.xslt.XalanAuthorizationHelperTest.java
@Test public void testIsUserDeepMemberOf() throws Exception { final IXalanAuthorizationHelper helperBean = createMock(IXalanAuthorizationHelper.class); expect(helperBean.canRender("testUser", "portlet-admin")).andReturn(true); replay(helperBean);/*ww w .j a v a2s . co m*/ XalanAuthorizationHelper helper = new XalanAuthorizationHelper(); helper.setAuthorizationHelper(helperBean); // set up configuration in the transformer impl final StringWriter resultWriter = new StringWriter(); final InputStream xslStream = this.getClass().getResourceAsStream("authorizationTest.xsl"); final StreamSource xslSource = new StreamSource(xslStream); final Transformer transformer = tFactory.newTransformer(xslSource); transformer.setParameter("USER_ID", "testUser"); transformer.transform(xmlSource, new StreamResult(resultWriter)); final String result = resultWriter.getBuffer().toString(); logger.debug(result); final String expected = IOUtils.toString(this.getClass().getResourceAsStream("authorizationResult.xml")); XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(expected, result); assertTrue("Transformation result differs from what's expected" + d, d.similar()); verify(helperBean); }
From source file:org.apereo.portal.security.xslt.XalanGroupMembershipHelperTest.java
@Test public void testIsUserDeepMemberOf() throws Exception { final IXalanGroupMembershipHelper helperBean = createMock(IXalanGroupMembershipHelper.class); expect(helperBean.isChannelDeepMemberOf("fnameValue", "local.1")).andReturn(true); expect(helperBean.isChannelDeepMemberOf("fnameValue", "local.2")).andReturn(false); expect(helperBean.isUserDeepMemberOfGroupName("testUser", "Fragment Owners")).andReturn(true); replay(helperBean);/* www. j av a 2s . c o m*/ XalanGroupMembershipHelper helper = new XalanGroupMembershipHelper(); helper.setGroupMembershipHelper(helperBean); // set up configuration in the transformer impl final StringWriter resultWriter = new StringWriter(); final InputStream xslStream = this.getClass().getResourceAsStream("groupMembershipTest.xsl"); final StreamSource xslSource = new StreamSource(xslStream); final Transformer transformer = tFactory.newTransformer(xslSource); transformer.setParameter("USER_ID", "testUser"); transformer.transform(xmlSource, new StreamResult(resultWriter)); final String result = resultWriter.getBuffer().toString(); logger.debug(result); final String expected = IOUtils.toString(this.getClass().getResourceAsStream("groupMemebershipResult.xml")); XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(expected, result); assertTrue("Transformation result differs from what's expected" + d, d.similar()); verify(helperBean); }
From source file:org.apereo.portal.security.xslt.XalanMessageHelperTest.java
@Test public void testIsUserDeepMemberOf() throws Exception { final IXalanMessageHelper helperBean = createMock(IXalanMessageHelper.class); expect(helperBean.getMessage("im.done", "en_us")).andReturn("I'm Done!"); replay(helperBean);//w ww.j ava2s.c o m XalanMessageHelper helper = new XalanMessageHelper(); helper.setMessageHelper(helperBean); // set up configuration in the transformer impl final StringWriter resultWriter = new StringWriter(); final InputStream xslStream = this.getClass().getResourceAsStream("messagesTest.xsl"); final StreamSource xslSource = new StreamSource(xslStream); final Transformer transformer = tFactory.newTransformer(xslSource); transformer.setParameter("USER_LANG", "en_us"); transformer.transform(xmlSource, new StreamResult(resultWriter)); final String result = resultWriter.getBuffer().toString(); logger.debug(result); final String expected = IOUtils.toString(this.getClass().getResourceAsStream("messagesResult.xml")); XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(expected, result); assertTrue("Transformation result differs from what's expected" + d, d.similar()); verify(helperBean); }
From source file:org.apereo.portal.url.xml.XsltPortalUrlProviderTest.java
@Test public void testDefaultUrl() throws Exception { final MockHttpServletRequest request = new MockHttpServletRequest(); when(portalUrlProvider.getDefaultUrl(request)).thenReturn(portalUrlBuilder); when(portalUrlBuilder.getUrlString()).thenReturn("/uPortal/home/normal/render.uP?layoutUrl"); final Transformer transformer = xslTemplate.newTransformer(); transformer.setParameter(XsltPortalUrlProvider.XSLT_PORTAL_URL_PROVIDER, xsltPortalUrlProvider); transformer.setParameter("CURRENT_REQUEST", request); transformer.setParameter("TEST", "defaultUrl"); //xsl template mode to use // set up configuration in the transformer impl final StringWriter resultWriter = new StringWriter(); transformer.transform(xmlSource, new StreamResult(resultWriter)); verify(portalUrlBuilder).getUrlString(); verifyNoMoreInteractions(portalUrlBuilder); final String result = resultWriter.getBuffer().toString(); logger.debug(result);//from w w w .j a v a 2 s .c o m XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(expected, result); assertTrue("Transformation result differs from what's expected" + d, d.similar()); }
From source file:org.apereo.portal.url.xml.XsltPortalUrlProviderTest.java
@Test public void testLayoutUrlById() throws Exception { final MockHttpServletRequest request = new MockHttpServletRequest(); when(portalUrlProvider.getPortalUrlBuilderByLayoutNode(request, "foo", UrlType.ACTION)) .thenReturn(portalUrlBuilder); when(portalUrlBuilder.getUrlString()).thenReturn("/uPortal/home/normal/render.uP?layoutUrl"); final Transformer transformer = xslTemplate.newTransformer(); transformer.setParameter(XsltPortalUrlProvider.XSLT_PORTAL_URL_PROVIDER, xsltPortalUrlProvider); transformer.setParameter("CURRENT_REQUEST", request); transformer.setParameter("TEST", "layoutUrlById"); //xsl template mode to use // set up configuration in the transformer impl final StringWriter resultWriter = new StringWriter(); transformer.transform(xmlSource, new StreamResult(resultWriter)); verify(portalUrlBuilder).addParameter("remove_target", "foo"); verify(portalUrlBuilder).addParameter("save", "42"); verify(portalUrlBuilder).getUrlString(); verifyNoMoreInteractions(portalUrlBuilder); final String result = resultWriter.getBuffer().toString(); logger.debug(result);/*from ww w. j av a 2 s . co m*/ XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(expected, result); assertTrue("Transformation result differs from what's expected" + d, d.similar()); }
From source file:org.apereo.portal.url.xml.XsltPortalUrlProviderTest.java
@Test public void testPortletUrlById() throws Exception { final MockHttpServletRequest request = new MockHttpServletRequest(); final IPortletWindowId portletWindowId = new MockPortletWindowId("w1"); when(portalUrlProvider.getPortalUrlBuilderByLayoutNode(request, "foo", UrlType.RENDER)) .thenReturn(portalUrlBuilder); when(portalUrlBuilder.getPortletUrlBuilder(portletWindowId)).thenReturn(portletUrlBuilder); when(portalUrlBuilder.getUrlString()).thenReturn("/uPortal/home/normal/render.uP?layoutUrl"); when(portletWindowRegistry.getOrCreateDefaultPortletWindowByLayoutNodeId(request, "foo")) .thenReturn(portletWindow);//from www . j a v a2 s .c o m when(portletWindow.getPortletWindowId()).thenReturn(portletWindowId); final Transformer transformer = xslTemplate.newTransformer(); transformer.setParameter(XsltPortalUrlProvider.XSLT_PORTAL_URL_PROVIDER, xsltPortalUrlProvider); transformer.setParameter("CURRENT_REQUEST", request); transformer.setParameter("TEST", "portletUrlById"); //xsl template mode to use // set up configuration in the transformer impl final StringWriter resultWriter = new StringWriter(); transformer.transform(xmlSource, new StreamResult(resultWriter)); verify(portalUrlBuilder).addParameter("pageNum", "42"); verify(portalUrlBuilder).getPortletUrlBuilder(portletWindowId); verify(portalUrlBuilder).getUrlString(); verifyNoMoreInteractions(portalUrlBuilder); verify(portletUrlBuilder).setWindowState(new WindowState("maximized")); verify(portletUrlBuilder).addParameter("tmp", "blah"); verify(portletUrlBuilder).setCopyCurrentRenderParameters(false); verifyNoMoreInteractions(portletUrlBuilder); final String result = resultWriter.getBuffer().toString(); logger.debug(result); XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(expected, result); assertTrue("Transformation result differs from what's expected" + d, d.similar()); }
From source file:org.apereo.portal.url.xml.XsltPortalUrlProviderTest.java
@Test public void testMultiPortletUrlById() throws Exception { final MockHttpServletRequest request = new MockHttpServletRequest(); final IPortletWindowId portletWindowId = new MockPortletWindowId("w1"); final IPortletWindow portletWindow2 = mock(IPortletWindow.class); final IPortletWindowId portletWindowId2 = new MockPortletWindowId("w2"); final IPortletUrlBuilder portletUrlBuilder2 = mock(IPortletUrlBuilder.class); when(portalUrlProvider.getPortalUrlBuilderByLayoutNode(request, "foo", UrlType.RENDER)) .thenReturn(portalUrlBuilder); when(portalUrlBuilder.getPortletUrlBuilder(portletWindowId)).thenReturn(portletUrlBuilder); when(portalUrlBuilder.getUrlString()).thenReturn("/uPortal/home/normal/render.uP?layoutUrl"); when(portletWindowRegistry.getOrCreateDefaultPortletWindowByLayoutNodeId(request, "foo")) .thenReturn(portletWindow);//from w ww .ja va2 s .c o m when(portletWindow.getPortletWindowId()).thenReturn(portletWindowId); when(portletWindowRegistry.getOrCreateDefaultPortletWindowByFname(request, "my-portlet")) .thenReturn(portletWindow2); when(portletWindow2.getPortletWindowId()).thenReturn(portletWindowId2); when(portalUrlBuilder.getPortletUrlBuilder(portletWindowId2)).thenReturn(portletUrlBuilder2); final Transformer transformer = xslTemplate.newTransformer(); transformer.setParameter(XsltPortalUrlProvider.XSLT_PORTAL_URL_PROVIDER, xsltPortalUrlProvider); transformer.setParameter("CURRENT_REQUEST", request); transformer.setParameter("TEST", "multiPortletUrlById"); //xsl template mode to use // set up configuration in the transformer impl final StringWriter resultWriter = new StringWriter(); transformer.transform(xmlSource, new StreamResult(resultWriter)); verify(portalUrlBuilder).addParameter("pageNum", "42"); verify(portalUrlBuilder).getPortletUrlBuilder(portletWindowId); verify(portalUrlBuilder).getPortletUrlBuilder(portletWindowId2); verify(portalUrlBuilder).getUrlString(); verifyNoMoreInteractions(portalUrlBuilder); verify(portletUrlBuilder).addParameter("tmp", "blah"); verify(portletUrlBuilder).setCopyCurrentRenderParameters(false); verifyNoMoreInteractions(portletUrlBuilder); verify(portletUrlBuilder2).setWindowState(new WindowState("minimized")); verify(portletUrlBuilder2).addParameter("event", "param"); verify(portletUrlBuilder2).setCopyCurrentRenderParameters(false); verifyNoMoreInteractions(portletUrlBuilder2); final String result = resultWriter.getBuffer().toString(); logger.debug(result); XMLUnit.setIgnoreWhitespace(true); Diff d = new Diff(expected, result); assertTrue("Transformation result differs from what's expected" + d, d.similar()); }
From source file:org.arachna.netweaver.nwdi.documenter.report.DevelopmentConfigurationConfluenceWikiGenerator.java
private Transformer newTransformer() { Transformer transformer; try {//from w w w. j a v a 2 s . c om transformer = template.newTransformer(); transformer.setParameter("wikiSpace", getSpaceKey()); transformer.setParameter("track", trackName); transformer.setErrorListener(new ErrorListener() { @Override public void warning(final TransformerException exception) throws TransformerException { logger.append(exception.getMessageAndLocation()); } @Override public void error(final TransformerException exception) throws TransformerException { logger.append(exception.getMessageAndLocation()); } @Override public void fatalError(final TransformerException exception) throws TransformerException { logger.append(exception.getMessageAndLocation()); } }); } catch (final TransformerConfigurationException e) { throw new IllegalStateException(e); } return transformer; }