Search in sources :

Example 1 with ChannelInterceptorBase

use of org.apache.catalina.tribes.group.ChannelInterceptorBase in project tomcat by apache.

the class StaticMembershipInterceptor method start.

/**
     * {@inheritDoc}
     * <p>
     * Sends notifications upwards.
     */
@Override
public void start(int svc) throws ChannelException {
    if ((Channel.SND_RX_SEQ & svc) == Channel.SND_RX_SEQ)
        super.start(Channel.SND_RX_SEQ);
    if ((Channel.SND_TX_SEQ & svc) == Channel.SND_TX_SEQ)
        super.start(Channel.SND_TX_SEQ);
    final ChannelInterceptorBase base = this;
    for (final Member member : members) {
        Thread t = new Thread() {

            @Override
            public void run() {
                base.memberAdded(member);
                if (getfirstInterceptor().getMember(member) != null) {
                    sendLocalMember(new Member[] { member });
                }
            }
        };
        t.start();
    }
    super.start(svc & (~Channel.SND_RX_SEQ) & (~Channel.SND_TX_SEQ));
    // check required interceptors
    TcpFailureDetector failureDetector = null;
    TcpPingInterceptor pingInterceptor = null;
    ChannelInterceptor prev = getPrevious();
    while (prev != null) {
        if (prev instanceof TcpFailureDetector)
            failureDetector = (TcpFailureDetector) prev;
        if (prev instanceof TcpPingInterceptor)
            pingInterceptor = (TcpPingInterceptor) prev;
        prev = prev.getPrevious();
    }
    if (failureDetector == null) {
        log.warn(sm.getString("staticMembershipInterceptor.no.failureDetector"));
    }
    if (pingInterceptor == null) {
        log.warn(sm.getString("staticMembershipInterceptor.no.pingInterceptor"));
    }
}
Also used : ChannelInterceptorBase(org.apache.catalina.tribes.group.ChannelInterceptorBase) ChannelInterceptor(org.apache.catalina.tribes.ChannelInterceptor) Member(org.apache.catalina.tribes.Member)

Aggregations

ChannelInterceptor (org.apache.catalina.tribes.ChannelInterceptor)1 Member (org.apache.catalina.tribes.Member)1 ChannelInterceptorBase (org.apache.catalina.tribes.group.ChannelInterceptorBase)1