MailBox v2.057: MAJOR extensions, MINOR fixes
Mark Overmeer <[email protected]> Thu, 26 Aug 2004 15:37:41 +0200
| Newsgroups | gmane.comp.lang.perl.modules.mail-box |
|---|---|
| Organization | MARKOV Solutions |
| Message-ID | <[email protected]> |
Hi,
I've been busy in the previous month, and do not want to wait any longer
to get feedback from you! PLEASE TEST, and be careful: many things have
"improved". I'll publish a bug-fix release as soon as serious flaws
have shown up.
The most important changes:
- Errors and warnings can be caught by a callback routine.
- The $folder->delete is now optimized per folder type. It does not
open the folders anymore.
- $msg->clone() can be "shallow", sharing header and body, but not
other adminstrative data. This speeds-up $msg->moveTo and $msg->copyTo
considerably.
- Mail::Box::Manage::User extends Mail::Box::Manager, not only tracking
the opened folders, but also able to handle not-(yet)-open folders.
(to accomplish this, Mail::Box::Indentity and Mail::Box::Collection
have been added).
This 'user' object has useful defaults, and makes developing server
applications much easier.
- Some Mail::Server::IMAP4 modules have been created, which implement
parts of the server-side IMAP4 protocol:
Mail::Server::IMAP4::List
Mail::Server::IMAP4::Fetch (was Mail::Box::IMAP4::Fetch)
Mail::Server::IMAP4::Search (was Mail::Box::Search::IMAP, still empty)
- loads of documentation added. Even multiple inheritance is now
supported by OODoc, which is required on some spots.
- loads of tests added. Some features are tested in the priatary
folder type which I am developing on the moment.
Full list of changes attached. PLEASE TEST.
Some stats:
Mail::Box version 2.057
Number of package manuals: 135
Real number of packages: 125
documented subroutines: 990
documented diagnostics: 174
shown examples: 245
--
MarkOv
------------------------------------------------------------------------
drs Mark A.C.J. Overmeer MARKOV Solutions
[email protected] [email protected]
http://Mark.Overmeer.net http://solutions.overmeer.net
Changelog-2.057
(text/plain, 4 KB)
version 2.057: Thu Aug 26 14:31:34 CEST 2004
Interface change:
- Moved the new Mail::Box::IMAP4::Fetch to Mail::Server::IMAP4::Fetch,
which is a more logical name: part of a full server implementation.
- Moved the unusable module Mail::Box::Search::IMAP4 over to
Mail::Server::IMAP4::Search... but still not implemented ;-)
- You have to add (share => 0) to $msg->moveTo if the source message
can get undeleted in your program (for instance in a user
application).
- Mail::Reporter->report(...) will return strings without \n. Sporadic
locations where log() was called with trailing \n are removed.
- Opening a folder which is already open is considered an error (was
warning) by the manager.
Fixes:
- [Jan Martin Mathiassen] add IO::File to Mail::Box::Dir::Message
- [Torsten Luettgert] found that field labels like '-' where not
beautified correctly with wellformedName.
- Changed '.' from most preferred folder directory for the manager
into the least preferred.
- $field->setWrapLength only worked for "fast" fields. Tests in
tests/11field/40wrap.t
- [Mike Mimic] showed that constructing unstructured "full" fields
was broken.
- Mail::Box::POP3::delete() will not take any action. Deleting all
contained messages was not consequent.
Improvements:
- [David A Golden] demonstrated the need for $head->wrap(<size>)
- $folder->coerce($message) will only call MSGTYPE->coerce($message)
when not a MSGTYPE yet.
- Mail::Box::Message::coerce() could be removed: no-op.
- Reimplemented folder->delete(), which is not reading the messages
before deletion, but bluntly removes the folder in the most
Efficient way. You probably want the new option 'recursive'.
- Mail::Box::new(access) now has mode 'd', which speeds up removal
of folders. Used by $folder->delete().
- Mail::Box::IMAP4 now supports deletion of a folder (untested)
- $folder->copyTo/moveTo and $msg->copyTo can have option 'share'
which tries to use hardlinks i.s.o. clone() to put a message in
a different folder. Only available for some M<Mail::Box::Dir>
folders.
- Mail::Message::clone() now accepts shallow_head and shallow_body
arguments which avoid deep-cloning.
- Added references to the Netzwert folder type, which got implemented,
but not released as GPL (yet?)
- Increased the status of the IMAP folder client from alpha to beta.
- New methods
Mail::Box::Manager::folderdir()
Mail::Box::Manager::defaultFolderType()
- New methods
Mail::Box::topFolderWithMessages()
- Moved tests/44imap/40fetch.t to tests/60imap/10fetch.t
- Mail::Box::nameOfSubFolder() now can be used as class method.
- New, specialized folder manager
Mail::Box::Manage::User manager with user knowledge
tests in tests/52manager/20user.t
explanation added to Mail::Box::Manager, about the two kinds
of managers.
- New classes to administer folders, even when not opened
Mail::Box::Identity info about (possibly unopened) folder
Mail::Box::Collection info about groups of folders
tests in tests/52manager/30collect.t
- New classes to implement parts of an IMAP4 server
Mail::Server place-holder
Mail::Server::IMAP4 place-holder
Mail::Server::IMAP4::List
tests in tests/60imap/20list.t
- Split tests/10report/10errors.t into
tests/10reporter/10errors.t and tests/10reporter/20reports.t
- Mail::Reporter::defaultTrace can now set a callback to catch
each log/trace message. Tests in tests/10reporter/30callback.t
- [chris] Mail::Message::Field::wellformedName() will upper-case
*-ID as part in the fieldname.
- [M M] tried to user MBMbox->create and expected it to open the
folder at the same time. Documentation problem: moved the
method from "constructors" to "internal". Did the same for
"foundIn".
- Produce an error if people try to build Mail::Box::*
messages directly.
- Many improvements on User::Identity module. MailBox requires
version UI 0.90 now.