1 / 29

uPortal 3.0.0 Where did everything go? Eric Dalquist University of Wisconsin - Madison

uPortal 3.0.0 Where did everything go? Eric Dalquist University of Wisconsin - Madison. 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

colin
Download Presentation

uPortal 3.0.0 Where did everything go? Eric Dalquist University of Wisconsin - Madison

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. uPortal 3.0.0 Where did everything go? Eric Dalquist University of Wisconsin - Madison

  2. 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

  3. Core Changes • Theme & Skin • Project Structure • Build System • Spring Configuration • Portlet Container • Caching Framework • Import/Export Tools • CAS Authentication

  4. 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

  5. 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

  6. New Theme & Skin Theme File Summary universality.xsl - Core file, has instructions and configuration page.xsl - Contains base portal page layout templates navigation.xsl - Contains portal navigation templates columns.xsl - Per-column layout and formatting templates content.xsl - Portlet/Channel container templates preferences.xsl - User Preferences UI templates components.xsl - Common utility templates messages.xml - I18n capable messages file, contains all text

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. JPA & Hibernate • All New and Refactored DAOs • Using J2EE5 Annotations • Hibernate as the EntityManager • Benefits • SQL Abstraction • Minimal Code • DDL Generation • Caching Layer

  18. 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

  19. 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

  20. JMX

  21. 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

  22. 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

  23. 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

  24. 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

  25. User 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

  26. Reducing 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

  27. Development • 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

  28. 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

  29. Many thanks to everyone who contributed to uPortal 3.0! Thank You!

More Related