Bookmarks Portlet - Alternative XBEL & Struts Bridge based

Bookmarks Portlet version 0.4 & Newsfeed Portlet version 0.1 released -24th August 2007

For more information see Bookmarks Portlet Project (hosted on SourceForge) and Bookmarks Portlet Google Group.

Downloads can be found here

This is a portlet version of a bookmarks manager application that was written using Struts, Castor, XSL and DHTML. The native format for the application is XBEL but it also allows the import and export of the de-facto standard bookmarks format used in Mozilla and Microsoft based browsers.

Functional Features

  • Add, Edit, Delete bookmarks and folders
  • Simple bookmarks management (moving of bookmarks and folders)
  • Import, Append and Export of the standard bookmarks format (de facto Netscape DTD standard which is used by all leading browsers)
  • Alphabetical bookmarks sort

Technical Details

  • 100% scriptlet free
  • JSR168 compatible portlet
  • Runs as a portlet and as a standalone web application simultaneously (achieved with Struts Bridge)
  • Written in an accessible spirit using unobtrusive DHTML rendering
  • XBEL is used throughout internally to store and manipulate bookmarks
  • XBEL object representation built with Castor used to manipulate bookmarks
  • XSL transformations used in rendering and sorting bookmark trees
  • Tidy utility used to XMLize and clean up bookmark imports
  • MVC architecture implemented with Apache Struts and JSTL
  • Database and resource access enabled with the Spring Framework
  • Includes an example embedded database and simple authentication

It has been converted to a portlet by means of the Apache Struts bridge. The nature of the Apache Struts bridge means that it should be deployed as a portlet after which it can be run and tested as a standalone web application without any further modification being necessary. Due to the use of the Apache Struts Bridge, in order to get this working inside uPortal you may need to apply Satish's patches to uPortal (depending on uPortal version used) to ensure the application works correctly.

It now includes an implementation of database storage (using H2) and simple authentication. Database persistence is enabled by the Spring Framework so that alternative databases are easily accommodated.