380 likes | 520 Views
“uPortal Roadmap” . Presenters:. Eric Dalquist Unicon, Inc. Andrew Petro Yale University Ken Weiner Unicon Inc. Overview. uPortal releases Where we are uPortal 2.4 – 2.4.x Where we’re going uPortal 2.5 – 2.x uPortal 3.0. uPortal Releases. Patch releases
E N D
“uPortal Roadmap” Presenters: Eric DalquistUnicon, Inc. Andrew PetroYale University Ken WeinerUnicon Inc.
Overview • uPortal releases • Where we are • uPortal 2.4 – 2.4.x • Where we’re going • uPortal 2.5 – 2.x • uPortal 3.0
uPortal Releases • Patch releases • Bug fixes, more stable than previous release • Every 1-2 months • Easy to upgrade • Minor releases • New features and possible database changes • Every 6-12 months • Not trivial to upgrade • Major releases • Extensive changes • Every 2-4 years • Difficult to upgrade uPortal 2.4.1 Patch Minor Major
uPortal Release Timeline 1.0 JSP Architecture 1.5 Added roles 1.6 Performance Distributed Layouts NativePortlets 2.5 Mar ? 3.0 ? 2.0 XSLT Architecture 2.1 Groups, stats, etc. 2.2 Agg.layouts, i18n 2000-2003 2004 2005 2.3 Apr 2.4 Sep JSR 168PortletSupport WSRPConsumer
uPortal 2.4 Summary • 2.4 Released September 24, 2004 • WSRP Consumer • EXCLUSIVE Portlet WindowState • Automatic CAR Deployment • Automatic RSS Version Detection • Multiple Named LDAP Server Option • Apache Commons Logging • 2.4.1 Released November 4, 2004
uPortal 2.4: WSRP Consumer • Based on WSRP4J • Configuration information is provided by the producer • Four service URLs are needed from the producer • A portlet handle is needed, multiple portlets may be provided by a single producer • WSRP Producer Deprecated • May be re-introduced in a later version
uPortal 2.4: Portlet File Downloading • Simple Servlet • Standard way of providing non-HTML content • Portlet places the file information in the session, servlet uses that data to send the appropriate file • Tomcat bug prevents a portlet and servlet from sharing a session, should be fixed in Tomcat 5.5 • EXCLUSIVE Portlet WindowState • Allows a portlet to function as a servlet • No portal markup is included in the output • Any file type can be provided to the client • Custom uPortal extension to the portlet spec
uPortal 2.4: CAR Automation • Publishing • Added to the Auto-Published category • Only Administrators given permissions • Channel-Type Registration • Adds and configures a channel-type • Table Creation • Can drop, create and populate tables using the uPortal dbloader syntax • Conditional Processing • CAR versions can be accounted for to prevent re-deployment of the same channel
uPortal 2.4: RSS Version Detection • Updated Style Sheet for RSS Channels • Works with all versions of RSS feeds • Automatically adjusts and provides consistent output
uPortal 2.4: Multiple LDAP Server Support • Multiple Named LDAP Servers • New ldap.xml configuration file • New LdapServices provides access to server objects • Old LdapServices is deprecated, wraps new class • Server objects provide connections and meta information
uPortal 2.4: Error Viewing Servlet • PortletException creations are logged to a table • Error viewing servlet provides a view of the table • Provides an easy way to track problems in a running portal environment
uPortal 2.4: Apache Commons Logging • Old Logging System • LogService uPortal class provided logging • It has been deprecated as of 2.4 and wraps a Commons Log • LogServices.log(Priority.FATAL, “Message”, err) • New Logging System • Use Commons Logging directly in each class • Allows different logging back-ends • Simpler configuration which can affect loggers in libraries uPortal uses as well • log.fatal(“Message”, err)
uPortal 2.4: Configurable Security Contexts • Previously only one of each context type was really usable • Contexts can now implement an interface that allows properties to be provided • SimpleLdapSecurityContext is the only configurable context currently • Allows multiple LDAP servers to be used for authentication
uPortal 2.4.2: Memory Leaks Plugged • Going into uPortal 2.4.2 • Several uPortal Objects were being leaked • ChannelManager • IPerson • Memory improvement: • All objects, down 75% • uPortal objects, down 94% • ChannelManager objects, down 100%
uPortal 2.5: Portlet Caching • Portlet content currently cached until user interacts with portlet • Specification describes optional expiration based caching of portlet content • Support in CVS and will be included in uPortal 2.5
uPortal 2.5: Portlet Spec Compliance • uPortal did not support portlets sending redirects or changing WindowState during processAction • A fix is in HEAD that allows for this behavior • uPortal 2.x is moving closer to 100% JSR-168 compliance • Goal is for all known issues to be resolved for the 2.5 release
uPortal 2.5: Database Connection Pooling • uPortal 2.5 will come with the Jakarta Commons DBCP library for pooling support • Connections created through standard JDBC are now pooled by default; this is configurable • Drastically increases initportal speeds with Oracle and PostgreSQL databases • JNDI failover, if the JNDI lookup fails the plain JDBC connection is used instead
uPortal 2.5: JDK 1.4 • uPortal 2.4 is JDK 1.3 compliant • uPortal 2.5 will require JDK 1.4 • Chaining Throwables
uPortal 2.5: CError Refactoring • CError displays full chained stacktrace • JDK 1.4 Throwable.printStackTrace() • General refactoring and code improvement • Old: edit your CError locally to add special rendering for new Throwables. • New: plug in a handler for the new Throwable to be rendered specially.
uPortal 2.5: PersonDirectory Refactoring • Spring • Dependency Injection in uPortal 2 • More modular implementation exercised by unit tests
New Documentation Module • Portal_documentation CVS module • Uses Anakia • Old: edit some display HTML, then edit some print HTML • New: edit one XML descriptor and Anakia generates the HTML according to the style
uPortal 2.5: Aggregated Layouts Revisited • Some niggling details • Commitment: Fix by 2.5 • Default tab, UI for subscribe-time parameters, remove channel control in view mode, saving layout changes
uPortal 2.5: Unit testing • Batchtest in build.xml • Improved test facilities (TransientDatasource, PropertiesManager) • Refactorings to use Dependency Injection make code more testable • Speaking of DI, let’s talk about uPortal 3…
uPortal 3.0: Overview • Terminology and paradigm change: Channels replaced by Portlets • Componentization of framework • Modular rendering pipeline • Clean separation of business logic and persistence layer • Full support for uPortal 2 Channels • Upgrade tools
uPortal Domain Objects • Portlet Application DeploymentPortlet Deployment • Information from portlet.xml file • Portlet Application DefinitionPortlet Definition • Deployment + Preferences • Portlet Application EntityPortlet Entity • Definition + Preferences • Portlet Window • Instances of Portlet Entity painted on screen • Keeps track of Portlet Window State • Referenced by portal layout
uPortal 3.0 Domain Object Architecture uPortal Framework Domain objects Registries Domain objects Transfer objects DomainObjectFactories Caching DAO’s DAO Implementations e.g. Spring JDBC Database
uPortal 3.0: Pluto 1.1 • Pluto 1.0 • Community found it “clumsy and complex” • Pluto 1.1 • A refactoring and rewrite • Goals • Simplify container, driver, and deployer • Reduce complexity of embedding container into a portal • Use common best practices and design patterns • Dependency injection via Spring Framework • Good fit for uPortal 3
WSRP Consumer and Producer • Consumer • WSRP4J consumer proxy portlet • Producer • Implementation of WSRP4J producer • Currently using Java Data Objects (JDO) • Missing DAO layer consistent with uPortal 3
Context Resolver Context A Context X Default Context Parameterprocessing … Rendering pipeline Layoutgenerator Transformer … Filter Transformer Serializer uPortal 3.0 Rendering Architecture Selects context to process incoming request Parses request URL andinitiates actions on portlets Generates abstract user layout Chain of transformers and filters compiles presentation markup. Produces final markup, i.e. HTML, WML
uPortal 3.0: Security • Acegi features • Has analog to uPortal 2 security providers • Designed with Spring Framework in mind • URL protection • Bean method-level protection • Support for Yale CAS • HTTP BASIC Authentication
uPortal 3.0: Groups and Permissions • Port of groups and permissions from uPortal 2 • Separate module within uPortal 3.0 • Build process to produce separate jar files • Allows groups/permissions to be used in applications outside of uPortal
uPortal 3.0: Milestones and Beta • Milestone builds • Render a layout based on an XML layout file • Render a layout based on data from database and ability to interact with portlets • Remaining features minus upgrade tools and instructions • Beta release • uPortal 2 feature set complete • Channels and CAR files work • Upgrade tools and instructions available
uPortal 3.0: Help Needed • Integrate Pluto 1.1 • Implement Authentication with Acegi • Introduce true DAO layer in WSRP impl • Provide Spring JDBC impl for WSRP DAOs • Make DAO unit tests utilize in-memory HSQLDB database • Sync changes from uPortal 2 DbLoader • Channel adapter for backwards compatibility
Project Tools • Issue Tracking • Currently Bugzilla • Will be JIRA • Collaborative documentation • Was nothing • Recently Yale’s uPortalTiki Wiki • Will likely be Confluence
The End Questions ? Eric Dalquist Unicon Inc. edalquist@unicon.net Andrew Petro Yale University andrew.petro@yale.edu Ken Weiner Unicon Inc. kweiner@unicon.net Speaker Info: