[ https://issues.apache.org/jira/browse/JAMES-3859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17635673#comment-17635673 ]
Benoit Tellier commented on JAMES-3859: --------------------------------------- Found another solution: - We need to take into account `@Provides` into the ordering semantic - Provision listeners are annoying as they are called prior the provision, hence the order of startables is messed up. I attempted to re-sort them on the fly. I added some tests for injects ordering. > Wrong starting sequence > ----------------------- > > Key: JAMES-3859 > URL: https://issues.apache.org/jira/browse/JAMES-3859 > Project: James Server > Issue Type: Bug > Components: guice > Affects Versions: master > Reporter: Benoit Tellier > Priority: Major > Fix For: 3.8.0 > > > h3. What happened? > At a customer, processing emails via LMTP started while the user repository > was not (yet) configured. > As a result, the resulting processing was faulty (until the right > configuration was applied). > The starting sequence I observed: > {code:java} > 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - init... > 09:47:04.784 [INFO ] o.a.j.m.i.JamesMailSpooler - Concurrency level is 20 > 09:47:04.789 [INFO ] o.a.j.m.i.JamesMailSpooler - Spooler started > 09:47:04.796 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user > registered mailbox listeners > 09:47:04.797 [INFO ] o.a.j.m.m.MailboxListenersLoaderImpl - Loading user > registered mailbox listener > ClassName{name=org.apache.james.mailbox.cassandra.MailboxOperationLoggingListener} > 09:47:04.835 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service bound to: 0.0.0.0:0 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler connection timeout is: 300 > 09:47:04.836 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service connection backlog is: 200 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service bound to: 0.0.0.0:0 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service handler connection timeout is: 300 > 09:47:04.845 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - IMAP > Service connection backlog is: 200 > 09:47:04.846 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - TLS > enabled with auth NONE using truststore null > 09:47:04.932 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP > Service done > 09:47:05.019 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init IMAP > Service done > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service bound to: 0.0.0.0:0 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service handler connection timeout is: 1200 > 09:47:05.031 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - LMTP > Service connection backlog is: 200 > 09:47:05.031 [INFO ] o.a.j.l.n.LMTPServer - No maximum message size is > enforced for this server. > 09:47:05.196 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init LMTP > Service done > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service bound to: 0.0.0.0:0 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.209 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service handler connection timeout is: 1200 > 09:47:05.210 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - POP3 > Service connection backlog is: 200 > 09:47:05.293 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init POP3 > Service done > 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service bound to: 0.0.0.0:0 > 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.307 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.308 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service handler connection timeout is: 360 > 09:47:05.308 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service connection backlog is: 200 > 09:47:05.313 [INFO ] o.a.j.s.n.SMTPServer - No maximum message size is > enforced for this server. > 09:47:05.314 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service bound to: 0.0.0.0:0 > 09:47:05.314 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.314 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.314 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service handler connection timeout is: 360 > 09:47:05.314 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service connection backlog is: 200 > 09:47:05.314 [INFO ] o.a.j.s.n.SMTPServer - No maximum message size is > enforced for this server. > 09:47:05.315 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service bound to: 0.0.0.0:0 > 09:47:05.315 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service is running on: interview1-HP-ProBook-440-G6 > 09:47:05.315 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service handler hello name is: interview1-HP-ProBook-440-G6 > 09:47:05.315 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service handler connection timeout is: 360 > 09:47:05.315 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - SMTP > Service connection backlog is: 200 > 09:47:05.315 [INFO ] o.a.j.s.n.SMTPServer - No maximum message size is > enforced for this server. > 09:47:05.390 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init SMTP > Service done > 09:47:05.409 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init SMTP > Service done > 09:47:05.437 [INFO ] o.a.j.p.l.n.AbstractConfigurableAsyncServer - Init SMTP > Service done > CONFIGURING user repo > 09:47:06.609 [INFO ] o.a.j.GuiceJamesServer - JAMES server started > {code} > We clearly see that the users repository was configured last, despite being a > dependency of most protocols. > We expect it to be started before the other protocols. > More specifically, I would like to have a mechanism to gain more control > around the starting sequence and ensures that protocols and queue consumers > are configured last. > h3. How? > Adding a stage to InitializingOperation would allow grouping them by stages > and give control on where to start what. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org