Q3 2017 uPortal Open Source Support Briefing
The quarterly uPortal Open Source Support (OSS) Briefing is an opportunity to share the contributions performed on behalf of the OSS program, highlight Unicon's perspective on contributions, and share happenings in the community along with opportunities to engage further with Unicon.
Discussions for the OSS Briefing concerned maintenance development on uPortal, plans for further enhancement of the uPortal project, as well as soliciting and discussing feedback on OSS and uPortal community future priorities.
On Wednesday October 25, 2017, the Unicon OSS team held the uPortal OSS Briefing summarizing OSS activities for Q3 of 2017.
- Sustaining Engineering
- BREAKING - uPortal 5.0.0 released!
- New Build Process
- New Configuration Process
- Community Spotlight
Wow! There was a lot done this quarter. In the lead up to the new major release of uPortal 5, there were ten milestone releases. Those milestones included resolution to 34 tickets. This, along with additional work, was captured in 159 pull requests. In total, we spent 249 Sustaining Engineering hours this quarter on uPortal.
BREAKING - uPortal 5.0.0 released!
Drew announced that he had officially cut the 5.0.0 release of uPortal just before the briefing.
Besides the work for uPortal 5, there were a number of security improvements. uPortal now has configurable Cross-Origin Resource Sharing (CORS) parameters to allow access to resources on a different origin (domain). In addition, tokens are now used for portlet action URLs to prevent Cross-Site Request Forgery (CSRF) attacks. Related to security is the Spring Framework upgrade from version 3 to 4. There were some security concerns with the older version; however, the real boon is the ability to take advantage of new technology in v4. Also worth noting is that vulnerabilities are patched as we become aware of and can address them.
Last but not least, we spent time removing dead code. We considered this ramp up to a new major release an excellent time to remove deprecated code.
New Build Process
uPortal 5 is easier to build. No longer do developers and deployers need to install multiple tools to build uPortal. Ant and Maven tools have been replaced by Gradle. Gradle is a Groovy-based tool for build management. Further, there is no need to install Gradle; it is embedded in the uPortal and uPortal-start repos!
Additionally, uPortal is now deployed as binaries from Maven Central rather than built from source. Environment parameters are now driven from properties files outside of uPortal, and uPortal is now customized via uPortal-start (see next section).
With Gradle, we can also add custom tasks. Some of the new tasks include the ability to initialize a Tomcat instance that is configured for uPortal. There are also tasks to start and stop Tomcat. There's no more need to download Tomcat and spend hours tweaking it to work. Further, it is easier to perform tasks like deploying individual portlets to Tomcat, or running data import on a per-portlet basis.
New Configuration Process
Several parameters that are influenced by specific environments have been externalized. These values are set to developer defaults, but are overwritten by properties files outside of uPortal. From these files, administrators can configure URLs, credentials, and the like. By default, these files are loaded from the 'portal' directory under Tomcat.
The other related change is the invention of uPortal-start. This repository is light and consists of references to other projects, such as uPortal and portlets. In this repository, institutions can configure which versions of the above to use. Deep configuration can be achieved by overwriting Spring beans in context files specifically for this purpose. uPortal-start is also the place to isolate custom Java and other code files. Of course, data files and skin files are also captured here.
Our community spotlight is on University of California Riverside's new uPortal 5 service that launched on 10/23/2017. This is the first uPortal 5 in production and it launched just before the official 5.0.0 version was released. The implementation timeline was 3 months of dev time. The team consisted of 2 UCR developers along with Unicon Support. There were 16,569 "day 1" users.
Four highlights of new functionality were presented. The Notifications portlet now has modals. Priority 1 notifications are routed to modal dialogs while others are presented in the standard Notifications portlet. Modals dialogs provide support for button configuration and forms. This enhancement has been pushed to Apereo Notifications Portlet. Announcements drive their Spotlights (image carousel). The carousel is implemented as a SimpleJSP that pulls announcements via RSS feed. A "Google-style" quick-links launcher was implemented via SimpleJSP portlet that is configurable with portlet preferences. With the final highlight, the search results UI was improved to provide more user details without the need of additional clicks. This UI improvement is in uPortal 5.
That sums up the briefing. Please consider attending our briefings as they are public. We announce them on the uPortal mailing list.