use of org.apereo.portal.character.stream.events.CharacterEvent in project uPortal by Jasig.
the class JsonWrapperFilteringCharacterPipelineComponent method getEventReader.
/* (non-Javadoc)
* @see org.apereo.portal.rendering.PipelineComponent#getEventReader(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public PipelineEventReader<CharacterEventReader, CharacterEvent> getEventReader(HttpServletRequest request, HttpServletResponse response) {
final PipelineEventReader<CharacterEventReader, CharacterEvent> pipelineEventReader = this.wrappedComponent.getEventReader(request, response);
final CharacterEventReader eventReader = pipelineEventReader.getEventReader();
final JsonWrapperFilteringCharacterEventReader jsonWrapperFilteringCharacterEventReader = new JsonWrapperFilteringCharacterEventReader(eventReader);
final Map<String, String> outputProperties = pipelineEventReader.getOutputProperties();
return new PipelineEventReaderImpl<CharacterEventReader, CharacterEvent>(jsonWrapperFilteringCharacterEventReader, outputProperties);
}
use of org.apereo.portal.character.stream.events.CharacterEvent in project uPortal by Jasig.
the class JsonWrapperFilteringCharacterEventReaderTest method testFilteringEvents.
@Test
public void testFilteringEvents() {
final CharacterEventReader baseEventReader = new CharacterEventBufferReader(Arrays.asList(CharacterDataEventImpl.create("<layout>"), JsonLayoutPlaceholderEventImpl.INSTANCE, CharacterDataEventImpl.create("{'yay':json}"), JsonLayoutPlaceholderEventImpl.INSTANCE, CharacterDataEventImpl.create("</layout>")).listIterator());
final JsonWrapperFilteringCharacterEventReader jsonWrapperFilteringCharacterEventReader = new JsonWrapperFilteringCharacterEventReader(baseEventReader);
CharacterEvent event;
assertTrue(jsonWrapperFilteringCharacterEventReader.hasNext());
event = jsonWrapperFilteringCharacterEventReader.peek();
assertNotNull(event);
assertEquals(CharacterEventTypes.CHARACTER, event.getEventType());
assertTrue(jsonWrapperFilteringCharacterEventReader.hasNext());
event = jsonWrapperFilteringCharacterEventReader.peek();
assertNotNull(event);
assertEquals(CharacterEventTypes.CHARACTER, event.getEventType());
assertTrue(jsonWrapperFilteringCharacterEventReader.hasNext());
event = jsonWrapperFilteringCharacterEventReader.next();
assertNotNull(event);
assertEquals(CharacterEventTypes.CHARACTER, event.getEventType());
assertFalse(jsonWrapperFilteringCharacterEventReader.hasNext());
try {
event = jsonWrapperFilteringCharacterEventReader.peek();
fail();
} catch (NoSuchElementException e) {
}
try {
event = jsonWrapperFilteringCharacterEventReader.next();
fail();
} catch (NoSuchElementException e) {
}
}
use of org.apereo.portal.character.stream.events.CharacterEvent in project uPortal by Jasig.
the class PortletRenderingIncorporationComponent method getEventReader.
/* (non-Javadoc)
* @see org.apereo.portal.rendering.PipelineComponent#getEventReader(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public PipelineEventReader<CharacterEventReader, CharacterEvent> getEventReader(HttpServletRequest request, HttpServletResponse response) {
final PipelineEventReader<CharacterEventReader, CharacterEvent> pipelineEventReader = this.wrappedComponent.getEventReader(request, response);
final CharacterEventReader eventReader = pipelineEventReader.getEventReader();
final PortletIncorporatingEventReader portletIncorporatingEventReader = new PortletIncorporatingEventReader(eventReader, request, response);
final Map<String, String> outputProperties = pipelineEventReader.getOutputProperties();
return new PipelineEventReaderImpl<CharacterEventReader, CharacterEvent>(portletIncorporatingEventReader, outputProperties);
}
use of org.apereo.portal.character.stream.events.CharacterEvent in project uPortal by Jasig.
the class PortletRenderingInitiationCharacterComponent method getEventReader.
/* (non-Javadoc)
* @see org.apereo.portal.rendering.PipelineComponent#getEventReader(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public PipelineEventReader<CharacterEventReader, CharacterEvent> getEventReader(HttpServletRequest request, HttpServletResponse response) {
final PipelineEventReader<CharacterEventReader, CharacterEvent> pipelineEventReader = this.wrappedComponent.getEventReader(request, response);
final CharacterEventReader eventReader = pipelineEventReader.getEventReader();
final List<CharacterEvent> eventBuffer = new LinkedList<CharacterEvent>();
while (eventReader.hasNext()) {
final CharacterEvent event = eventReader.next();
switch(event.getEventType()) {
case PORTLET_HEADER:
{
final PortletHeaderPlaceholderEvent headerEvent = (PortletHeaderPlaceholderEvent) event;
final IPortletWindowId portletWindowId = headerEvent.getPortletWindowId();
if (!this.portletExecutionManager.isPortletRenderHeaderRequested(portletWindowId, request, response)) {
this.portletExecutionManager.startPortletHeaderRender(portletWindowId, request, response);
}
break;
}
case PORTLET_CONTENT:
{
final PortletContentPlaceholderEvent headerEvent = (PortletContentPlaceholderEvent) event;
final IPortletWindowId portletWindowId = headerEvent.getPortletWindowId();
if (!this.portletExecutionManager.isPortletRenderRequested(portletWindowId, request, response)) {
this.portletExecutionManager.startPortletRender(portletWindowId, request, response);
}
break;
}
}
eventBuffer.add(event);
}
final Map<String, String> outputProperties = pipelineEventReader.getOutputProperties();
final CharacterEventBufferReader bufferEventReader = new CharacterEventBufferReader(eventBuffer.listIterator());
return new PipelineEventReaderImpl<CharacterEventReader, CharacterEvent>(bufferEventReader, outputProperties);
}
use of org.apereo.portal.character.stream.events.CharacterEvent in project uPortal by Jasig.
the class StAXSerializingComponent method getEventReader.
@Override
public PipelineEventReader<CharacterEventReader, CharacterEvent> getEventReader(HttpServletRequest request, HttpServletResponse response) {
final PipelineEventReader<XMLEventReader, XMLEvent> eventReader = this.wrappedComponent.getEventReader(request, response);
//Writer shared by the ChunkingEventReader and the StAX Serializer
final StringWriter writer = new StringWriter();
final XMLOutputFactory outputFactory = this.xmlUtilities.getHtmlOutputFactory();
final XMLEventWriter xmlEventWriter;
try {
xmlEventWriter = outputFactory.createXMLEventWriter(writer);
} catch (XMLStreamException e) {
throw new RuntimeException("Failed to create XMLEventWriter", e);
}
//Add the chunking wrapper to the XMLEventReader
final XMLEventReader xmlEventReader = eventReader.getEventReader();
final ChunkingEventReader chunkingEventReader = new ChunkingEventReader(request, this.chunkingElements, this.chunkingPatternEventSources, this.chunkingPatterns, xmlEventReader, xmlEventWriter, writer);
try {
xmlEventWriter.add(chunkingEventReader);
xmlEventWriter.flush();
xmlEventWriter.close();
chunkingEventReader.close();
} catch (XMLStreamException e) {
throw new RuntimeException("Failed to write events to Writer", e);
}
//Return the chunked data
final List<CharacterEvent> characterEvents = chunkingEventReader.getCharacterEvents();
final CharacterEventBufferReader characterEventReader = new CharacterEventBufferReader(characterEvents.listIterator());
final Map<String, String> outputProperties = eventReader.getOutputProperties();
return new PipelineEventReaderImpl<CharacterEventReader, CharacterEvent>(characterEventReader, outputProperties);
}
Aggregations