Robert Burrell Donkin wrote:
thanks to the great work done by Oleg, Mime4J is much better and has
quite a lot more classes. a release should be really close now. so,
it's a good time to review packaging. i think the packages below need
some thought.

i think that the packaging strategy has become inconsistent. i think
that the choice is either to move lots of utility-ish classes out from
mime4j and into sub-packages, or to remove the decoder and util
subpackages and move their contents into mime4j.

i can see arguments either way. lots of classes in a single package is
less expressive. but libraries can benefit from flat packaging. flat
packaging can also be an advantage for OSGI.

opinions?

(i favour collapsing but there may well be good reasons to take the
other approach)

Disclaimer: I am from the use-lots-of-packages-and-avoid-util-because-you-are-too-lazy-to-find-a-speaking-name camp.


- robert

package org.apache.james.mime4j
(http://svn.apache.org/repos/asf/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/)
# AbstractContentHandler.java
# AbstractEntity.java
# BasicBufferingInputStream.java
# BodyDescriptor.java
# BufferingInputStream.java
# BufferingInputStreamAdaptor.java
# ByteArrayBuffer.java
# CharArrayBuffer.java
# CloseShieldInputStream.java
# ContentDescriptor.java
# ContentHandler.java
# DefaultBodyDescriptor.java
# EOLConvertingInputStream.java
# EntityStateMachine.java
# EntityStates.java
# Event.java
# InputBuffer.java
# MaximalBodyDescriptor.java
# MimeBoundaryInputStream.java
# MimeEntity.java
# MimeException.java
# MimeParseEventException.java
# MimeStreamParser.java
# MimeTokenStream.java
# MutableBodyDescriptor.java
# RFC1864ContentMD5Descriptor.java
# RFC2045MimeDescriptor.java
# RFC2183ContentDispositionDescriptor.java
# RFC2557ContentLocationDescriptor.java
# RFC3066ContentLanguageDescriptor.java
# RawEntity.java
# RecursionMode.java
# RootInputStream.java


there is a lot of stream handling. I'd like this to go into a.o.j.mime4j.[streams|streaming|io]

I like few classes in the root package, so I can find the most relevant classes I have to start from immediately.

Some of the above I would put into
=> o.a.j.m.mime


in org.apache.james.mime4j.decoder
(http://svn.apache.org/repos/asf/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/decoder/)
# Base64InputStream.java
# QuotedPrintableInputStream.java
# UnboundedFifoByteBuffer.java

=> o.a.j.m.streams


in org.apache.james.mime4j.util
(http://svn.apache.org/repos/asf/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/)
# DecoderUtil.java
# CharsetUtil.java
# CodecUtil.java
# MessageUtils.java
# MimeUtil.java

=> o.a.j.m.codec|text

# PartialInputStream.java
# PositionInputStream.java

=> o.a.j.m.streams

# ByteQueue.java
# StringArrayMap.java

=> o.a.j.m.collection

# SimpleTempStorage.java
# TempFile.java
# TempPath.java
# TempStorage.java

=> o.a.j.m.storage

But I am only a small tiny little mime4j user with nothing to say... ;-)

  Bernd

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to