here is my DefaultImapEncoderFactory
public class DefaultImapEncoderFactory implements ImapEncoderFactory {
public static final ImapEncoder createDefaultEncoder() {
final EndImapEncoder endImapEncoder = new EndImapEncoder();
final UntaggedNoResponseEncoder untaggedNoResponseEncoder = new
UntaggedNoResponseEncoder(endImapEncoder);
final IdleResponseEncoder idleResponseEncoder = new
IdleResponseEncoder(untaggedNoResponseEncoder);
-->>> final RecentResponseEncoder recentResponseEncoder = new
RecentResponseEncoder(idleResponseEncoder);
final FetchResponseEncoder fetchResponseEncoder = new
FetchResponseEncoder(recentResponseEncoder);
final ExpungeResponseEncoder expungeResponseEncoder = new
ExpungeResponseEncoder(fetchResponseEncoder);
final ExistsResponseEncoder existsResponseEncoder = new
ExistsResponseEncoder(expungeResponseEncoder);
final StoreResponseEncoder storeResponseEncoder = new
StoreResponseEncoder(existsResponseEncoder);
final StatusResponseEncoder statusResponseEncoder = new
StatusResponseEncoder(storeResponseEncoder);
final SearchResponseEncoder searchResponseEncoder = new
SearchResponseEncoder(statusResponseEncoder);
final LogoutResponseEncoder logoutResponseEncoder = new
LogoutResponseEncoder(searchResponseEncoder);
final ListResponseEncoder listResponseEncoder = new
ListResponseEncoder(logoutResponseEncoder);
final LegacyFetchResponseEncoder legacyFetchResponseEncoder = new
LegacyFetchResponseEncoder(listResponseEncoder);
final ExamineAndSelectResponseEncoder
examineAndSelectResponseEncoder = new
ExamineAndSelectResponseEncoder(legacyFetchResponseEncoder);
final ErrorResponseEncoder errorResponseEncoder = new
ErrorResponseEncoder(examineAndSelectResponseEncoder);
final CommandFailedResponseEncoder commandFailedResponseEncoder =
new CommandFailedResponseEncoder(errorResponseEncoder);
final CommandCompleteResponseEncoder commandCompleteResponseEncoder
= new CommandCompleteResponseEncoder(commandFailedResponseEncoder);
final CloseResponseEncoder closeResponseEncoder = new
CloseResponseEncoder(commandCompleteResponseEncoder);
final CapabilityResponseEncoder capabilityResponseEncoder = new
CapabilityResponseEncoder(closeResponseEncoder);
final BadResponseEncoder result = new
BadResponseEncoder(capabilityResponseEncoder);
return result;
}
public ImapEncoder buildImapEncoder() {
return createDefaultEncoder();
}
as you can see i add the Idle command to the chain..
do you have more guesses? :)
Thanks!
Paulo F.
On Nov 15, 2007 6:45 PM, Robert Burrell Donkin <
[EMAIL PROTECTED]> wrote:
> On Nov 15, 2007 3:26 PM, Paulo Sergio <[EMAIL PROTECTED]> wrote:
> > Hi guys,
> > i've been working in Imap IDLE this week, trying to add it to James.
> > My current problem is that when i send the idle command (tag IDLE)i
> > receive: "NO Unknown message in pipeline"
> >
> > I've add code to all the IMAP related modules,so it's a bit hard to
> explain
> > averyting i add, but if any of you have any guess about what could be
> the
> > problem, please let me know...
>
> the seda stuff is event driven. a chain of decoders takes bytes and
> converts to message objects. these value objects are then processed by
> a chain of processors which transform these. these response messages
> are streamed to a chain of encoders which convert value objects to
> bytes.
>
> you need to ensure that each of the chains you use contain the new
> encoders, processors and decoders. i'm not sure without looking at the
> code but i suspect that you're missing a encoder in your factory
> implementation. take a look DefaultImapEncoderFactory.
>
> - robert
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>