uPortal 2.3 Distribution ------------------------ Purpose ------- This distribution is targeted towards people who would like to install uPortal in a development or production environment. It contains uPortal source code and properties files, but not a servlet container, directory, or relational database, which are required. Use of this distribution requires knowledge of J2EE environments and the Ant tool from the Apache Jakarta project. Contents -------- 1) uPortal 2.3 2) uPortal 2.3 java libraries (Xalan, Pluto, etc). 3) uPortal Architecture overview and JavaDoc API (see docs directory) System requirements ------------------- JDK 1.3 or higher JAVA_HOME environment variable must be set Installation of Ant from Jakarta: http://ant.apache.org/ Instructions ------------ Modify build.properties with local settings. Use the following ant targets: initportal - installs uPortal into a servlet container, prepares a relational database with uPortal schema and data, publishes channels and pushed layout fragments, deploys portlet applications dist - creates JavaDoc, uPortal jar, and uPortal WAR files. For descriptions of other Ant targets, see docs/uPortal_tools_overview.txt. Make sure the database and servlet container are running and access uPortal with http://localhost:8080/uPortal Your URL may be different if you have configured a different port and/or context name. You can login to uPortal with the following user name/password combinations: demo, demo student, student faculty, faculty staff, staff developer, developer Each user may have a slightly different layout. Notes ----- -Several properties files and one database table changed since uPortal 2.2.x. If you are upgrading from this version, you will need to see to it that your properties files and database data are upgraded appropriately. The difficulty of upgrading from 2.2.x to 2.3.x is expected to be much lower than similar upgrades in past versions. -uPortal does not strictly require the use of connection pooling, but it is highly recommended for production installations. If your servlet container does not provide connection pooling, try something like Yet Another Poolman. For information about Yet Another Poolman, see http://yapoolman.sourceforge.net/. -Bug fixes from 2.2.x releases have been implemented in 2.3 whenever they were appropriate -If you experience XML/XSLT-related errors, there is a good chance that your environment is not using the version of Xalan/Xerces that comes with this release. If you are using Tomcat, try copying the following files into Tomcat's common/endorsed directory: xalan.jar, xercesImpl.jar, xml-apis.jar. Alternatively, you can specify the use of these jar files via a java parameter when starting your servlet container: -Xbootclasspath/p:xalan.jar;xercesImpl.jar;xml-apis.jar For more information, see Version section of http://xml.apache.org/xalan-j/faq.html Please report bugs and suggestions: http://www.uportal.org/bugzilla/ uPortal website: http://www.uportal.org Changes since uPortal 2.2.x --------------------------- Database: Added data to UP_GROUP_PRIORITY_RANGE table. Properties: Added properties/container/factory.properties. Added org.jasig.portal.PortalSessionManager.url_caching to portal.properties. Added org.jasig.portal.serialize.ProxyWriter.no_redirect_domain to portal.properties. Added retrieval limits for Groups Manager channel in portal.properties: org.jasig.portal.channels.groupsmanager.wrappers.GroupWrapper.limitRetrievals=false org.jasig.portal.channels.groupsmanager.wrappers.GroupWrapper.retrievalLimit=25 Renamed org.jasig.portal.PortalSessionManager.File_upload_max_size to org.jasig.portal.RequestParamWrapper.file_upload_max_size in portal.properties. Removed the priority restrictions on the layout root nodes in al/pushfragment.xml. Added a commented PAGS group store implementation to groups/compositeGroupServices.xml. Added PAGSGroupStoreConfig.xml for PAGS group store configuration. Bug fixes: (nothing) Other changes: Added portlet-api-1.0.jar and pluto-1.0.jar to lib directory. Added implementation of the Apache Pluto portlet container: org.jasig.portal.container.*. Added uPortal.xml file that describes the uPortal context as cross-context. Added lib/portlets directory with sample portlets: testsuite, GooglePortlet, and RssPortlet. Added channel publishing descriptors: test-portlet-1.xml, test-portlet-2.xml, google-portlet.xml, rss-portlet.xml. Added tab called "Portlet Examples" that shows the sample portlets. Created portlet-ids subcontext in JDNI for registering portlets whose rendering needs to be synchronized. Added field and accessor methods to ChannelRuntimeData indicating whether or not channel was targeted by the user. Changed deploy ant target to copy properties files from the stylesheets directory. Added threadlocal document builder to DocumentFactory for performance. Added getDocumentFromStream() convenience methods to DocumentFactory. Added methods to org.jasig.portal.utils.XSLT to support dynamic writing of resource bundle key/value pairs into XSLT for L10N. Changed the tag name "alternateLayouts" to "fragments" in AggregatedLayout.java. Added layout fragment constructor to integrated modes theme. Added fragment managment channel, org.jasig.portal.channels.CFragmentManager and publishing descriptor fragment-manager.xml. Added ILayoutFragment and ALFragment for layout fragment management. Added getDepth(String nodeId) method to IUserLayoutManager. Added support for multi-valued person attributes in PersonDirectory - bug 1471. Added new method to IPerson and related implementations: getAttributeValues(). Changed CPersonAttributes channel to display multivalued attributes when available. Added new RestrictedPerson which hides access to an IPerson security context. Added PersonDirectory.getRestrictedPerson() method to access person attributes. Added Person Attributes Group Store (PAGS) implementation. Added envl() method to CommonUtils which assigns a replacement for a null or empty String. Added new method XML.getChildElementText(), a convenience method to retrieve the text node under a child element. Added error management base classes with support for I18N/L10N under org.jasig.portal.lang package. Added support to store the Subject object in the JAAS security context. Removed the deprecated org.jasig.portal.webservices package and related CRemoteChannel channel. Moved RequestParamWrapper and ResponseSubstitutionWrapper out of PortalSessionManager and into org.jasig.portal package. Updated RequestParamWrapper and ResponseSubstitutionWrapper to be compliant with servlet 2.4 API. Removed the element from the aggregated user layout document. Added org.jasig.portal.layout.UserPriorityManager for managing user priority ranges. Added search functionality to content subscriber. Added uP_reload_layout request parameter handling to refresh the user layout in memory. Performance improvements to updating groups with many members. Removed use of group name from computation of group hash code. Added authorizedFragmentPublisher and authorizedChannelPublisher theme parameters. Removed width and height specifications from main logo in integratedModes.xsl to conserve header space when smaller logos are used. Added a retrieval limit option for GroupWrapper to alleviate Groups Manager performance issues. Removed automatic saving of layout when the layout manager is an IAggregatedUserLayoutManager. Changed download worker URL to include file name - bug 1445. Added ability to specify a "no redirect domain" in org.jasig.portal.serialize.ProxyWriter. Synchronized RDBMUserLayoutStore.getNextStructId() method. Changed return value of XML.getElementText() and getChildElementText() to return empty String rather than null when there is no text.