uPortal 3.0.0 Where did everything go? Eric Dalquist University of Wisconsin - Madison
description
Transcript of uPortal 3.0.0 Where did everything go? Eric Dalquist University of Wisconsin - Madison
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
uPortal 3.0.0Where did everything go?
Eric Dalquist
University of Wisconsin - Madison
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Roadmap Review
• How did we get here?–uPortal 2 is a solid base–Identified areas for improvement–Focused on major changes
• Where are we going?–All those not-quite major changes–Planning semi-annual releases
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Core Changes
• Theme & Skin• Project Structure• Build System• Spring Configuration• Portlet Container• Caching Framework• Import/Export Tools• CAS Authentication
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
New Theme & Skin
• Clean XHTML & CSS markup• Easier to Skin
–More CSS Hooks–Generic Document Structure
• Modifiable Theme XSL–Multiple Well-Scoped Files–Internally Well Documented–Red/Yellow/Green Ratings
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
New Theme & Skin
• Simple Directory Structure–Separate Structure & Theme–Meaningful Directory Names
• Flexible Skin Directories–Allows for shared files–Skins are assumed to be theme
specific
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008New Theme & Skin
Theme File Summary
universality.xsl - Core file, has instructions and configuration
page.xsl - Contains base portal page layout templatesnavigation.xsl - Contains portal navigation templatescolumns.xsl - Per-column layout and formatting templatescontent.xsl - Portlet/Channel container templatespreferences.xsl - User Preferences UI templatescomponents.xsl - Common utility templatesmessages.xml - I18n capable messages file, contains all
text
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
New Project Structure
• Maven Standard Directory Layout–src/main/java
• Application/Library sources–src/main/resources
• Application/Library resources–src/main/webapp
• Web application sources–src/test/java
• Test sources–src/test/resources
• Test resources
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
New Project Structure
• Multiple sub-projects (uportal-*)–impl – Source code & resources–war – Web content & configuration–portlets – Bundled portlet overlays–ear – The full package–ear-deployer – Tomcat deploy tool–ant-tasks – Ant deployer tasks
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Project Modules
• uportal-impl–src/main/java
• All uPortal source code
–src/main/resources• All non-UI classpath resources (config)
• uportal-war–src/main/resources
• UI classpath resources
–src/main/webapp• WebApp config, images, css, js
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Project Modules
• uportal-portlets-overlay–Uses Maven's WAR Overlay feature–How portlets are bundled with uPortal–Includes Pluto assembling step–Allows uPortal specific configurations
• uportal-ear–depends on uportal-war and portlets–generates standard EAR file
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
New Build System
• Maven 2 at the core–Dependency Management–Compiling, Testing, Packaging–WAR Overlay Packaging
• Ant Utilities–Deployment–uPortal Tools
• Database Setup• User Management• Import/Export Command Line
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
New Build System
• Targets moved into Maven–all, compile, compiletests, dist,
javadoc, runtests–Helpful error messages are included
• Targets renamed–deploy => deploy-war–pubchan => crn-import
• Retains 2.6 Functionality
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
New Build System
• Integration via maven-ant-tasks–Low Maintenance
• Project build information loaded from pom• Project deploy information specified in
build.properties• No need to edit build.xml
–Intelligent Build Performance• determines if module builds are needed
–Easily Extendable• Future project modules• Additional portlets
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008•Spring Configuration
• Single ApplicationContext Instance• Multiple Context Files
–/uportal-impl• /src/main/resources/properties/contexts
• PortalApplicationContextLocator–Provides seamless access–Ensures the context is a singleton–Works from Web and CLI
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Spring Configuration
• What has moved?–Core and Portlet related factories–Service configuration
• How does it work?–Spring Context is the master–Most factories are context backed–Care to not create cycles!
• What's next?–Continue the factory hunt
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008•Portlet Container
• Upgraded to Pluto 1.1–Complete re-write of SPI–Very similar to Pluto 2.0 SPI–Significant reduction of portal code
• Pluto provides many services
• Complete Re-Integration–Added portletisms into uPortal–Portlets are the new public API–Resolved IChannel mismatches
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008•JPA & Hibernate
• All New and Refactored DAOs• Using J2EE5 Annotations• Hibernate as the EntityManager• Benefits
–SQL Abstraction–Minimal Code–DDL Generation–Caching Layer
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008•Caching Framework
• Uses Spring-Modules for abstraction–Supports multiple caching frameworks–EhCache is used by default
• Clustering Support!–Invalidation based replication
• Single cache manager shared by:–Portal caches–Hibernate caches
• Not all portal caches are converted
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008•JMX
• Monitoring & Management• JDBC & LDAP Connections
–View pool health and performance• Cache Statistics & Management
–Gather performance statistics–Help with portal tuning direction
• Hibernate Statistics–Watch database performance
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
JMX
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Import / Export
• All (almost) data in entity files• Minimal data.xml
–430 lines, down from 5800 in 2.6• Supports Import of 2.6 Entities• Much easier to modify, maintain and
migrate
• See Andrew Wills' presentations for more information
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Bundling Portlets
• Portlets are bundled as Maven dependencies
• Uses the WAR-Overlay feature–Allows for uPortal specific files to be
injected–Includes use of the Pluto assembly
Maven plugin• Easy to add more portlets
–Add an overlay project–Add dependency to uportal-ear
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Bundling Portlets - Overlay Example
• Pluto-Testsuite–Configure expected test results–Configure logging correctly for uP3
• Maven will overlay these files on the specified WAR artifact
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008•Bundling CAS
• A CAS 3.1 Server is bundled–Authenticates via the Portal DB
• Same uPortal Security system–Doesn't preclude existing
configurations• Promote CAS for SSO with uPortal• CAS Proxy support for Portlets
–Proxy ticket via USER_INFO Map–"casProxyTicket” attribute
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008User Groups
• PAGS is enabled out of the box• pags.root is a member of Everyone• New “All Users (PAGS)” Group
–Tester always returns true–Much more performant than adding
users to local groups
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008Reducing Custom Code
• Avoid re-inventing those wheels• Use well vetted FOSS libraries
–Free & Open Source Software• Focus on the interesting problems• Simplifies long-term maintenance• Reduces needs for uPortal specific
documentation–Switch to Spring-LDAP is an example
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008Development
• Eclipse 3.3–M2Eclipse
• http://m2eclipse.codehaus.org/–SpringIDE
• http://springide.org/blog/–Subclipse
• http://subclipse.tigris.org/• svnmerge.py
–http://www.ja-sig.org/wiki/x/AwbP
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
3.1 and Beyond
• Many interesting opportunities–Fluid Reorderer Integration–Stand-Alone Groups and Permissions–Spring-Security (aka Acegi)–Refactoring DAOs to use JPA–Implement portlet based admin tools–Refactored rendering pipeline
uPortal 3 – Where did everything go? JA-SIG Conference, Spring 2008
Thank You!
Many thanks to everyone who contributed to uPortal 3.0!