uPortal2 integration

The build process for bedework now allows a jsr168 compliant version of bedework to be built.

These notes show how to go about it.

So far this process has been tested with jdk 1.5, Tomcat 5.5.9 and uPortal 2.5.2. It is believed that without applying fixes supplied by Satish Sekharan and others, versions before uPortal 2.5.2 will not work.

Get uPortal running

  • The first step is to download the latest uPortal (2.5.2) and unzip it. (We cannot yet guarantee that this works with uPortal 2.5.3, and it will not work in version 2.5.1 and earlier.)
  • Edit uportal-dir/properties/rdbm.properties Change the port to 9887: jdbcUrl=jdbc:hsqldb:hsql://localhost:9887
  • Also download a copy of Tomcat and unzip it inside the Bedework quickstart - at the same level as the existing Tomcat directory. (Note: if you already have the uPortal 2.5.1 full quickstart release, you can use the Tomcat-5-5-9 from it.)
  • Copy (BEDEWORK_HOME)/jakarta-tomcat-5.0.28/common/lib/hsqldb.jar into the new version of Tomcat: jakarta-tomcat-5.5.9/common/lib/hsqldb.jar (Note: This is already in the uPortal quickstart Tomcat-5-5-9.)
  • Copy the users from (BEDEWORK_HOME)/jakarta-tomcat-5.0.28/conf/tomcat-users.xml into the same file within the new tomcat to use the Bedework quickstart users for login

  • Change uportal-dir/build.properties to set the server.home property to point to the new jakarta tomcat directory in the bedework quickstart.
  • For convenience, create a file in the uportal home directory named ant with the content:
#! /bin/sh

PRG="$0"
saveddir=`pwd`

BEDEWORK_HOME=path to quickstart (e.g. /home/user/quickstart-3.1rc4)

ANT_HOME=$BEDEWORK_HOME/apache-ant-1.6.5
ANT_HOME=`cd "$ANT_HOME" && pwd`

$ANT_HOME/bin/ant $*

...make this file executable with "chmod +x ant" (or "chmod 700 ant")

(...or in Windows, something like:)

@echo off

:: the following line should be the path to the Bedework quickstart
set BEDEWORK_HOME=c:\developmentRoot\quickstart-3.1rc4
set ANT_HOME=%BEDEWORK_HOME%\apache-ant-1.6.5

%ANT_HOME%\bin\ant %*
  • In a separate window start up the uportal db
    • cd bedework-home
    • ./ant uportaldb
  • In the uportal build window
    • cd into uportal-dir
    • ./ant all
    • ./ant deploy
    • ./ant initportal

Note: this will deploy a context configuration file uPortal.xml in Tomcat's conf/Catalina/localhost directory. This file will probably not work. Use a file formatted as in the attachment below.

  • In a new window
    • cd bedework-home
    • ./ant tomcatstart

Go to http://localhost:8080/uPortal and uPortal should come up in your browser.

If uPortal fails to load (or seems broken): You will probably need to overwrite (tomcatdir)/conf/Catalina/localhost/uPortal.xml with the attached uPortal.xml file (see the bottom of this document).


Build Bedework with portlet features

  • Add the following properties to your local properties file: (information on setting up your local properties file is found in the BedeworkDeploymentManual in the "Prepare a localized version of Bedework")
    org.bedework.app.Events.portal.platform=uportal2
    org.bedework.app.Events.portlet.name=PublicCal
    org.bedework.appserver.dir=(path to bedework home)/jakarta-tomcat-5.5.9
    
    
  • Build the Bedework calendar
  • Place the attached files cal.xml, caladmin.xml, soedept.xml, and ucal.xml in (tomcatdir)/conf/Catalina/localhost/ (see the bottom of this document to get the files).

  • Start up Bedework:
    • cd bedework-home
    • ./ant hsqldb
    • in a new window: cd bedework-home
    • ./ant tomcatstart

You should be able to get to the stand-alone calendar clients by visiting http://localhost:8080/bedework.


Deploy Bedework in uPortal

uPortal has a portlet deployment target deployPortletApp which SHOULD NOT be used for bedework:

It appears to break the application -

  • the web.xml loses one of the action mappings - the *.rdo
  • Also the filter parameters get replaced by the context parameters
  • Filter mappings also lose some of their parameters.

Do NOT use that. The bedework build process creates a fully deployed uPortal portlet

  • Restart Tomcat and go to uPortal and log in as admin (pw=admin)
  • Find the Channel Manager - it's not a tab - it's one of the icons at the top right (in uPortal's default theme).
  • In the Channel Manager register the portlet. This is fairly easy but some fields matter. In particular make sure it has a relatively generous timeout. First time response is lengthy as jsp gets compiled and hibernate starts up.
    • Set the timeout to 30000
    • The portlet ID is contextRoot.portletName; in this example, it is cal.PublicCal (as defined by the org.bedework.app.Events.portlet.name property above).
  • As admin or a user add the new portlet to your view of the portal.
    • Click preferences icon
    • Add a tab
    • Add a column
    • Add content ...
    • Save changes
    • Turn prefs off

If all goes well, the Bedework public client should be running in uPortal.


Further changes needed and problems noted:

  • Remove log4j.properties file from uportal - it interferes with global log4j settings.
  • Modify global log4j.xml to suppress some of the more verbose uportal debugging
  • pluto objects to setting of text/xml for content type. Filter doesn't call super.setContentType - why are wrappers intervening?
  • Currently disable setting in UtilAbstractAction? for portal mode - in conjunction with ignoreContentType param for filter.
  • We are working on more compliant URL rewriting (required for the personal client to work correctly)

Attachments