I briefly spoke to Eric about this issue yesterday in the uportal irc channel 
and I wanted to post what I am seeing to the developer list. I am currently 
working on UP-2789, implementing a new tab management interface, and since 
updating yesterday, I have experienced issues with uPortal caching xsl, 
javascript and css resources. In short, changes to these resources do not seem 
to render to the portal in a predictable way when the browser is refreshed.

I typically run uPortal in developer mode:
1] I comment out the JavaScript and CSS pageCachingFilter located in the 
web.xml file, which is housed under trunk/uportal-war/src/main/webapp/WEB-INF

2] I toggle xslt caching from on to off in the portal.properties file, which is 
housed under trunk/uportal-war/src/main/resources/properties

3] I disable CSS and JavaScript aggregation with the Toggle Resources 
Aggregation portlet.

Thank you and please let me know if I need to provide additional information.
-Matthew Polizzotti


----- Original Message -----
From: "Eric Dalquist" <[email protected]>
To: [email protected]
Sent: Friday, September 17, 2010 10:24:36 PM
Subject: [uportal-dev] New rendering pipeline in trunk

  I just finished merging the new StAX based rendering pipeline into 
trunk. Instead of SAX ContentHandlers StAX XMLEventReaders and custom 
CharacterEventReaders are used to pass data starting at the user's 
layout through the transforms and eventually to the browser. It also 
switched to the standard StAX XMLOutputFactory for serialization so no 
more custom HTML/XHTML serializer code in uPortal. To make this all work 
xalan, xerces, xml-apis, and xml-resolver have all been removed from the 
project. Developers will need to take care when adding a new dependency 
that one of these isn't accidentally added back in as a transitive 
dependency. They auto-register with the JVM and all have old versions of 
the JAXP APIs which don't work right.

The new pipeline is broken up into components and configured via Spring. 
An overview of the guiding design is in the wiki: 
https://wiki.jasig.org/display/UPC/Rendering+Pipeline+Refactoring That 
page will be updated and renamed to reflect the actual design in the 
next week or so.

Caching of pipeline events has also been revamped. Each component in the 
pipeline can contribute to a compound cache key that is built up. 
Caching components use this information to determine if a cache of event 
data can be replayed. As the new pipeline is tuned this should allow the 
caching of rendering data to be much more responsive to user requests. 
Also the caches are in Ehcache which allows for further configuration 
and management of behavior.

The XSL loading code is now modification aware. The XSL templates are 
cached but periodically the files are checked for modifications and 
reloaded if there are any. For those working on XSL development this 
should make your lives easier as things will update live for you but 
still perform well in a production environment.


This commit also removes the PortalSessionManager servlet and replaces 
it with a Spring DispatcherPortlet that delegates all portal and portlet 
requests to an annotated controller. Several of the functions of 
PortalSessionManager have been broken out into Interceptors to simplify 
the classes.


URL Canonicalization is also included, there is a servlet filter that 
will enforce the correct URL in the new syntax for any view of the portal.


This is a big change set. If you run into any problems please report 
them on the list and we can figure out a solution.
-Eric

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/uportal-dev

Reply via email to