I had the pleasure of serving as the release engineer for the uPortal 4.1.0 release. Here's a blog post about what's in it.


uPortal 4.1 is a "big" "minor" uPortal release including a bunch of features.

Responsive Design!

uPortal 4.1 ships with a new responsive-design theme transform and skin named Respondr using Bootstrap 3 (with the Paypal accessibility plugin).

Respondr includes popular Universality theme features, many of which re-implemented into layout management configuration of Regions and portlets placed into those regions. This means that instead of hacking scary XSLT, for many customizations you can instead hack DLM fragment definitions to publish portlets into regions.

Now with less Maven pain!

uPortal 4.1's usage of Maven now handles 301 redirects in resolving Maven dependencies better so that your Maven repository doesn't accumulate garbage in pathological but terribly common edge cases. Several other important fixes to Maven usage specifically and many other minor improvements to the build process are included in the uPortal 4.1 release.

Now with more portlet standard support!

uPortal 4.1 supports the RENDER_HEADERS JSR-286 feature. This allows portlets to shove stuff into the page header in a standard way and thereby improves the ability for portlets to affect styling and client-side dependency availability.

APIs

uPortal 4.1 continues uPortal down a road of exposing JSON APIs to access portal functionality. I think this is a tremendously promising road to pursue and while the APIs shipping in uPortal 4.1 are limited, I am very hopeful of the architectural directions this opens.

Multi-tenant

uPortal 4.1 embarks on an effort to add features to uPortal to enable administering multi-tenant environments. So far this has meant adding permissions granularity to support creating limited-access tenant administrator roles, dynamic per-tenant skinning, etc.

Marketplace and Favorites Portlets

The My UW-Madison portal redesign effort is introducing new idioms for browsing, searching, favoriting, and accessing uPortal-delivered functionality. This includes new Marketplace and Favorites portlets. Initial versions of these portlets ship in uPortal 4.1. I expect much more work will be done to fill out the featuresets of these portlets and to make this a compelling way to access uPortal, and that MyUW will be able to share that progress through the 4.1 patch series.

Database-backed Person Attribute Group Store

uPortal 4.1 introduces an optional JPA-backed (in the database) configuration of PAGS (the Person Attribute Group Store) intended to obviate the XML-file-backed PAGS configuration of prior uPortal releases (and still available in uPortal 4.1).

Also, both XML-backed and database-backed PAGS have a new eager regex tester available that behaves more like what you may have thought the existing regex tester did.

Search now features auto-complete and doesn't require case matching where you wouldn't expect it to.

Google Analytics

uPortal 4.1 supports using Google Analytics to do much of what uPortal-internal stats recording and aggregation accomplished (and to do much that that feature didn't accomplish). Use Google Analytics. Your users will appreciate a more data-driven approach to portal development and maintenance, and your database will thank you for not beating the heck out of it.

Ready for a maintenance series!

uPortal 4.1 requires and begins to the use the language features of Java 7, uses more recent versions of dependencies, and moves to modern logging frameworks. This sets up the uPortal 4.1 maintenance line to take more advantage of these features and write better maintenance code.

Where to learn more

Much more detail is available in the release entry on GitHub, in the under-continued-development uPortal 4.1 manual wiki space, in the full issue-tracker-generated release notes, and in the source control logs.

Thanks to

These participants contributed commits to this release:

Special thanks to MyUW team student employee Ahad Zaman for additional testing of the uPortal 4.1.0 release.

This is a blog

As always, the opinions expressed in this blog are my own and are not necessarily those of my employer, of the uPortal project, or of the Apereo foundation. Or of anyone else, for that matter.

Cover photo : Space shuttle Atlantis launch : CC-BY-NC-2.0