*** The fourth public release of bmarks-portlet is now available for download ***

*** The first public release of nfeeds-portlet is now available for download ***

The initial portlet screen

Help and Support

This software was written and maintained by Mark McLaren (Mark McLaren's Weblog).

Google Groups
Bookmarks Portlet Google Support Group
Visit this group

Alternatively you can post your queries to the Sourceforge help forums.


This JSR168 compatible portlet bookmarks application is based around the XML Bookmark Exchange Language (XBEL) format. The application was developed as part of the portal project at the University of Bristol. It was initially targeted at the uPortal platform but should work in any JSR168 container. Originally developed as a standalone web application, it has been converted to a JSR168 portlet through the use of the Struts Bridge from the Apache Portals Bridges project.

What's New

A Google Support Group has been created which should make support and feedback a little easier. In version 4 support has been added for UTF-8 content and various usability and performance enhancements were added. There is now also a newsfeed portlet available.

In version three the graphics and user interface have been considerably re-worked (Thanks Ben). Various Java libraries have been upgraded to contemporary versions (including Struts, Spring, Castor). The tag library is now using a tag file and generally the application has been updated to the JSP 2.0 and Servlet 2.4 standards. There is no longer a "quick start" distribution containing an embedded portlet server. The source code is now stored in Subversion and installation is now achieved with Maven 2.

Functional Features

Technical Details

Database access and authentication are likely to be portal and situation specific. In order to include database interactivity it was necessary to provide a simple authentication mechanism. The database and simple authentication included in the default distribution of bmarks-portlet are for illustrative purposes only and the portlet can easily be configured to use other databases and authentication facilities.

The default installation includes a sample embedded in-memory database engine (H2 replace this with your database of choice (when changing database configuration you will no longer need the LocalH2Initializer in WEB-INF/applicationContext). A simple servlet filter authentication is also include (this sets the value of request.getRemoteUser() to "test").


  1. Install an application server. This application was written for Tomcat 5.5 and is known to work with Tomcat 5.5.17 and earlier versions.
  2. Install pluto-1.0.1.jar and portlet-api-1.0.jar into $TOMCAT_HOME/shared/lib
  3. Install and configure Maven 2.
  4. Extract the source code distribution of bmarks-portlet into a directory and run:

     mvn compile
     mvn war:war
  5. uPortal users will need to set "org.jasig.portal.ChannelManager.use_anchors=false" in portal.properties.
  6. All being well this should create a war file of around 13MB in size (~/target/bmarks-portlet.war). Deploy this war file to the application server.

As this application is written using Struts Bridge it should be accessible as a standalone application (e.g. http://localhost:8080/bmarks-portlet). It should also be available to local instances of JSR168 portlet containers (e.g. bmarks-portlet.BookmarksPortlet).