uPortal 2.6 Andrew Petro JA-SIG Denver 25 June 2007 © Copyright Unicon, Inc., Some rights reserved. Portions borrowed from previous JA-SIG presentations by Andrew and others.
Meet your speaker Andrew Petro Unicon, Inc. Software developer, cooperative support uPortal lead, and occasional uPortal consultant Previously with Yale University ITS Technology & Planning
What’s uPortal? – Open Source Gratis (no license fee) Open source -- New BSD license
What’s uPortal? Collaboration uPortal results from the collaboration of higher- education IT staff and associates It’s what happens when 60 committers collaborate over the project so far. John Fereira documentation, Bill Thompson board liason, Eric Dalquist works to improve portlet support, MUN builds a web proxy channel, UC Irvine builds a menu channel – and Yale takes it and runs with it, implement shared authN needs, …
What’s uPortal: Community Many schools use uPortal in production today. uPortal underlies Unicon’s Academus portal product and SunGardHE’s Luminis portal product
What’s uPortal? Committers Apache-style voting in of new committers 16 active committers over the preceding 12 months Welcome to uPortal’s newest committer, Stéphane Bond, CRIM
What’s uPortal? Maintenance uPortal –Fixes critical security vulnerability in RemoteUserSecurityContext
Security Contact Group
What is uPortal? Technology Authentication: pluggable, CAS Attribution - PersonDirectory Groups - GaPs Layout - DLM Permissions - GaPs
uPortal’s rendering pipeline
uPortal status Release candidate 2 posted on Friday
2.6.ish code in production at Yale Yale grabbed /trunk before the 2.6 RC series
What’s new in uPortal 2.6? Improved UI Drag and drop user preferences –Turned off by default, but try-out-able in default theme XHTML theme available as default Fresh, new look
Fixed portlet preferences handling Fixed handling of portlet preferences –Portlets become multiply subscribable with different prefs, e.g. RSS readers Thanks to Tim Carrol for producing a patch, and Eric Dalquist for merging the patch into uPortal
Preferences per-portlet-subscription
Improvements Pluggable DLM processing pipeline Numerous fixes and enhancements
Demo improved JSR-168 support Two new JSR-168 portlets
Eric Dalquist / U Wisc-Madison
Drag and Drop user preferences
Status of Drag and Drop Works Ships with theme/preferences/javascript to drive it Is turned off by default Your theme needs upgraded to use it Built for DLM.
Drag and Drop demo Attempt at live demo…
Grab
Drag
Drop
Oooooh. Aaaaaah.
Or maybe not?
Search for portlet
While seeing context
Layouts are great for dashboards But right now I want to find and use a particular service
Live demo?
Ooooh, Aaaaah. Ooooooh. Aaaaaah.
How did you do that? I didn’t, Jen and Mark did, building on the work of Pete and others. Pluggable DLM processing pipeline In dlmContext.xml: <bean class="org.jasig.portal.layout.dlm.remoting.AjaxPreferencesThemeParamInjector" singleton="false"/>
Now that I’ve got a hammer… Alerts-like functionality Just-in-time insertion of “stuff” Users who like these channels also liked..
Default Div-driven CSS-styled DLM theme From Rutgers Yeah, it’s got grass at the bottom.
CSyndFeedReader Syndicated feed reader channel Backwards compatible with CGenericXSLT RSS channel configuration Built on Rome library XSLT Java processing (more robust) End-user-configuration
Fixes from the 2.5.x series Should already all be in 2.6.0
Requirements JDK 1.5 or JDK 1.6 Tomcat 5.something ( for least headaches)
CSqlQuery Simple channel Deployer provides a SQL query It renders the result Customizing the XSLT optional Oh, about those XSLTs…
JSP Channel JSP as alternative to XSLT Channel XML XSLT HTML Channel Model JSP HTML
Refactored channels away from IMultithreaded* Reduced lock thrash Simpler Easier to debug / log
CGenericXSLT System Cache Scope Ability to cache CGenericXSLT output across the portal How many cached instances of this channel would you like in your portal JVM?
What next for uPortal?
Actually release 2.6 Soon following this conference.
Platform Maturity uPortal Manual Convergence and consolidation of wandering “contributions” Inversion of Control Codebase pruning API formalization Project formalization
uPortal Manual wiki space Effort launched by Jason Shao
Consolidation Neat channels and plugins out there “Contributions” Pull them into the core uPortal project
How to spend deployer time More valuable Incrementally involving shared-source solutions Collaboration Evaluating working examples The concept being centrally proved Less valuable Finding contributions Shoehorning them into the portal Hacking at them to make them work Moving on to the next fire Building local POCs
Candidates Webmail Rutgers Alerts Announcements Menu channel Survey / Elections / Fora Toro portlets –(GPL w/ FLOSS Exception) Duke’s portlets released today Done: PBookmarks Done: Google Portlet
Higher Education alignment? Announcements Alerts First year checklists Directory search Computer cluster support Helpdesk Briefcase
Invert Control - Concept *Not* go hog-wild changing everything –We have working code But eliminate the number one impediment to further incrementally improving uPortal uP2-uP3-CAS3 synergy – components for all DI-able
Invert control - Practice Spring WebMVC –Controllers instead of Servlets –Wire the most important services Synergy with contribution consolidation
Codebase pruning Embed CAS Adopt new standalone GaPs project Adopt new standalone PersonDirectory
Embed CAS This is a really excellent idea, if I do say so myself. uP security API feels dated. CAS3 feels modern. Whole JA-SIG project around authN.
Pick up CAS features Lots of authN provider options –LDAP –Kerberos –SPNEGO –OpenID –Google Account – Lots of server flexibility –I’d like three authN methods, except on Tuesdays –Login workflow engine Documentation Discussion Scott answers your questions
You mean you’re forcing CAS on me? No. I mean the most efficient way to implement support for whatever you really wanted to integrate with is to plug into CAS rather than plugging into security.properties Though proxy tickets do have portal synergy
Migrate to Pluto 1.1 If there’s a good reason to? “Pluto 1.1 aims to simplify the architecture in order to make it more user and developer friendly. You should find Pluto 1.1 easier to get started with, easier to understand, and easier to embed with your portal.” Sounds good to me, let’s do it.
API Formalization Just because Jan left the uPortal developer community, doesn’t mean he wasn’t right. What are the “supported” APIs, and what are incidental APIs?
uPortal’s rendering pipeline
How much theme can we share? CSS and images. Write skins, not structure and theme transforms?
Build engineering? Eric, Scott, Elliott, etc. tell me that Maven2 works great Okay, let’s use that.
To review uPortal –General audience release available today uPortal RC2 –Latest release candidate –Quite feasible to run with this uPortal GA –Soon uPortal 2.6.1, 2.7, etc. ongoing evolution
Andrew Petro Questions?