Example usage for javax.xml.transform Transformer setParameter

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

Introduction

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

Prototype

public abstract void setParameter(String name, Object value);

Source Link

Document

Add a parameter for the transformation.

Usage

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;
}