uPortal 4.2.0 Milestone 1 release
uPortal 4.2.0-M1 is uPortal 4.1 but Better.
It's got a better Marketplace that's much more attractive and closer to feature-complete (possibly even usable by real users!)
It's got better JSON APIs and other APIs for building upon.
It includes better portlets and dependency versions.
It provides better tools and a bit better supportability through better error handling and better logging.
- the release on GitHub, where you can download a quickstart.
- the release in the wiki, where you can see issue tracker reports.
- the release page on Apereo.org, where you can't do anything interesting.
- the relevant threads on uportal-user@ and on uportal-dev@ where you can discuss this release.
2015-01-02Removed erroneous reference to Portlet resource cache controls working better in this release -- the functionality isn't actually changed, it's just better documented.
4.2.0-M1 is a milestone release of a minor version under uPortal's current (not Semantic Versioning) versioning scheme.
Under uPortal's current versioning strategy, a minor release (
4.2.0) accepts inflicting some upgrade pain in exchange for achieving progress.
In practice this means that APIs are allowed to change.
In the specific case of uPortal
4.2, upgrade pain is expected to be very modest -- not much changed that's going to wreck your day on an upgrade.
A milestone release (
-M1) is not a general-audience release. It's not even a Release Candidate. It's just a milestone, a commit along the way picked out for running the release process so that it's more conveniently available for trying out (hello, quickstart!), so that it's a shared reference point to talk about, and to try on the idea of cutting a real release without yet making that commitment.
Opinion: It's time to cut a release.
There's enough here. It's time to cut a Release Candidate, take master to bugfix-only mode, and iterate through Release Candidates until it looks good enough to cut a real general audience release of uPortal 4.2.0, which would be pretty darn quick.
Mop up for GA release
In my opinion, here's what ought to be fixed between where we're at now and uPortal 4.2.0 GA release:
- Merge the beautiful open pull request that improves portlet administration UI around understanding and setting portlet title, name, and fname.
- Include some example App Launcher portlet publications, in default layouts even. The App Launcher portlet is new and exciting for this release and uPortal should lead with it.
- Bump the stated Servlet container version requirement to Servlet v3 / Tomcat 7. This would just be documentation deep, but would shed any expectation that uPortal 4.2 supports the oh so very old now Tomcat 6.
- Add syntactic sugar for granting BROWSE permissions from portlet entity files, since that implementation is in a pull request under review now.
- Remove the
fl-CSS classes from the Respondr theme. The minor release is a big enough version bump for this to be appropriate under the current versioning policies, and it'll be good to shed legacy classes and move on.
These developers have contributed commits to uPortal
master since uPortal
4.1.0 was released (and so have commits included in this milestone release).
- Anthony Colebourne
- Aaron Grant
- Josh Helmer
- Tim Levett
- Jodie Muramoto
- Andrew Petro
- Tim Vertein
- James Wennmacher
- Drew Wills
Details of what's in 4.2 (so far)
Perhaps what's most important about a platform and what most needs versioning in its releases are its APIs. uPortal 4.2 ships better APIs.
Better JSON APIs
uPortal 4.2 improves the JSON APIs to
- add a Marketplace JSON API,
- support filtering
- include portlet alternative maximized URLs and icon URLs in their
/layoutDocrepresentations as well as an optional target window
- include portlet
fnames in the layout JSON
- include the session key, uPortal version, and server name in
- allow saving a layout change via a single JSON call rather than two
Better Java APIs
uPortal 4.2 introduces branching in the rendering pipeline. This has proven useful at UW-Madison to enable selective innovation in how not-focused-on-just-one-portlet requests are handled and has seemed promising for enabling further innovation in the
uPortal 4.2 cleans up IPerson, an API central to much of uPortal's guts. This helps set the stage for continuing to hone uPortal's person and security APIs in future releases.
Better SQL Query Portlet
One simple way of including content in your uPortal is by embedding SQL queries. The portlet implementing this now supports caching and Spring Expression Language expressions.
Another simple way of including content in your uPortal is not to include that content in your uPortal and instead simply link to it as implemented elsewhere. Portal as gateway, starting point, directory, app launcher even. The new App Launcher template makes including these sorts of integrations quick, easy, and even fun. And free as in free coffee.
There's even new suppport for a six-column layout in case you'd like to display a bunch of these app launchers all in a row.
Better person directory configuration
One of the most common configuration and integration points in uPortal is the component called "Person Directory", the sub-system for gathering user attributes from various directories and sources. uPortal 4.2 adds a Groovy plugin for this system so you can script this attribute gathering using Groovy. You might need that.
Or maybe you nailed your user attribute gathering and wrangling problems at your identity management middleware layer. If you like the user attributes coming from CAS, well, in uPortal 4.2 you can now rely upon those.
There's some kind of Tin Can API stuff in uPortal 4.2.
Marketplace shipped in uPortal 4.1 as a half-baked neat concept that wasn't feature-complete. This was unfortunate, and happened because MyUW started down a path of implementing this functionality as a Portlet and contributed in-flight code into uPortal
master, but then ended up going a different direction for the MyUW Marketplace implementation.
Marketplace has been greatly improved and filled in for uPortal 4.2, so even if you're not ready to take the AngularJS-front-backed-by-JSON-web-services plunge, you too can enjoy a better user experience for discovering and launching portal functionality.
Performance should be better with client-side rather than server-side screenshot validation caching and even pre-fetching marketplace content on login.
The Marketplace portlet now properly filters related portlets to only those on which the user enjoys
BROWSE permission, better fulfilling the intent of
BROWSE permission as the permission one must have on a portlet to be able to, well, browse it in the Marketplace.
Guest users are no longer taunted with invitations to rate a portlet or add it to one's favorites, since those features are only for logged in users.
Search is a really important platform feature and it gets a bit better in uPortal 4.2.
The pervasive search box now supports auto-suggest.
Simple content portlets can participate in uPortal search reflecting their dynamic content rather than just their portlet description. That's really cool. However, the title of the search entry was always something silly like "advanced-cms" instead of the title of the actual portlet. That wasn't very cool at all. That's now fixed.
uPortal is in part a construction set for building your local portal implementation. Construction sets are better with better tools. The tools get a bit better in uPortal 4.2.
Better portlet manager
Maintenance Lifecycle State
Portlets can now be placed into a Maintenance lifecycle state to temporarily take them out of service with a reasonable portlet unavailable experience.
Inline Portlet Configuration
Administrators can now conveniently launch the config mode of portlets embedded in the chrome without finding those portlets in the portlet administration table of portlets.
Better permissions manager UI
Better command line tools
Better import and export
Better command line build implementation
Better look and feel
uPortal 4.2 looks a little better and includes better technology for delivering good portal experiences locally.
Session timeout warning dialog
uPortal now includes an (optional) client-side warning that a session is about to expire with the opportunity to extend the session.
Sticky profile selection
This is an optional, off-by-default feature. You don't need it if you only have one profile or don't need to let users choose between them. However, if you're like MyUW and you want to provide a opt-in or opt-out graceful transition from one profile to another (say, in moving from Universality to Respondr), this sticky profile selection feature remembers what users chose and re-applies it on subsequent sessions.
If you do press forward with Respondr implementation, and you should, you'll want to be sure the Respondr XSLT compiles, and there's now a unit test to reassure of that.
Dynamic Skin improvements
You can now set more colors dynamically.
Display of Portlets
When you render a portlet that's not in your layout (i.e., addressing it by
fname), it now appears in an ad-hoc transient tab, even if you're not logged in.
showchrome set to
false now enjoy better styles and functionality.
mUniversality and Respondr now play more nicely together
Better Google Analytics integration
The Google Analytics integration shipping in uPortal 4.1 was a bit rough and required local changes to get working. uPortal 4.2 provides a better starting point for local Google Analytics usage, fixing the integration, adding Google Analytics to mUniversality, and using the
guest username to represent unauthenticated access.
- Updated PostgreSQL dependency
- JasigWidgetPortlets to 2.1.5
- Simple Content Portlet to 1.1.1
- Notification portlet to 2.1.1
- Announcements portlet to 2.1.2
- CalendarPortlet to 2.2.1
- Quick start Tomcat to 7.0.54
- Quick Start Maven to 3.0.5
- Allows Ant 1.9.3+