From MozillaWiki
Jump to: navigation, search
Coding Documentation
Review Policy
Outstanding Issues
Development Document



Grendel's build system is based on Apache Ant and requires Java 1.5 to compile.


Grendel requires a large collection of Libraries. Many of these librarys are quite old and may no longer be maintained. Hopefully these will slowly be replaced.


News is currently provided by GNU JavaMail's NNTP Providers. These are faster and more reliable that Grendel's own NNTP Providers.


POP3 is currently provided by Sun JavaMail's POP3 Provider as it works.


These are plans for where Grendel is going. Some of these are short term others may be long term.


  • Resources contained in resources-specific directory instead of flying all over the place.


  • Moving to the Mozilla-friendly XUL instead of a Grendel-specific XML format for the UI design. (Bug 293079 using the MozCreator Java XUL Parser API
  • Drag & Drop conversion from builtin grendel.dnd to Java 2 java.awt.dnd, or vast improvements in the builtin grendel.dnd code.


Add transparent JavaMail caching for remote message stores. (Currently discussing/working with Tim Boudreau on this.)


  • Use the proper way to view POP3 mail by downloading to a local store. (To be implemented as a download to given folder, this allows customization)
    • This should support a session flag for leave mail on server.

HTML Message Viewing

  • The HTML display in the JTextPane is poor, this needs replaced.
  • The <blockquote type="cite"> should be interpreted, processed and formatted as an included message quote.
  • HTML Messages nead to be cleaned prior to being displayed, to ensure they are valid and are safe.

Message Search

Search Within

This should be done as fast and as easily as possible. The String class offers basic string searching; the regex libraries might be better.

Search For

Currently there is no "Index" of all the messages and keywords within them. The only way to search for a message is an Exhaustive search of the possible region.

The messages should be indexed to keywords with some kind of tidy option.

  • The indexer must not download data directly
    • The indexer should be fed a message body when it is read by the user, (to save bandwidth)
  • The indexer must run in the background with minimal memory
    • This could be done by appending the message to a file then which is slowly consumed by the indexer.
    • The could be an option to make the indexer consume the whole file "now" (incress the priority of the thread)

Message Filters

Message filters should be implemented accorinding to Grendel:Specification:Filters


The New Addressbook code supports

  • IMAP
    • Built against the latest Mozilla Java IMAP SDK
      • With write options to the IMAP directory
  • JDBC
    • Builtin support for enbedded local databases as Address Books
      • embedded Derby
      • embedded HSQLDB
  • An extended attribute set.
  • Uses subclasses of Generic Collections to return lists.
    • Can be converted to lists of subclasses of java.mail.Address
      • These will be the correct type InternetAddress and NewsAddress

Pending Changes

This section details implemented or nearly implemented code that has not been checked into the CVS

Backend API(s)

The new Backend API code is currently waiting for a patch to be reviewed

Message Renderer refactor

There are changes to the Message Renderer (grendel.renderer.*) that are waiting on the new Backend API(s)