docs: public void setupDiscProcess() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "setupDiscProcess");
          }
          ChannelData list[] = chainData.getChannelList();
          Class<?> discriminatoryType = null;
          DiscriminationProcessImpl dp = null;
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "Get the channels started");
          }
          // Set up discrimination process for framework and start the channels.
          for (int i = 0; i < list.length; i++) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Set up disc process for channel, " + list[i].getName());
              }
              // Don't set up a disc process for the last channel in the chain.
              if (list.length != i + 1) {
                  dp = (DiscriminationProcessImpl) ((InboundChannel) channels[i]).getDiscriminationProcess();
                  if (dp == null) {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Create a discrimination process for channel, "
                                       + channels[i].getName());
                      }
                      // Create a discrimination process for the framework
                      discriminatoryType = ((InboundChannel) channels[i]).getDiscriminatoryType();
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Discriminatory type: " + discriminatoryType);
                      }
                      dp = new DiscriminationProcessImpl(discriminatoryType, list[i].getName());
                      ((InboundChannel) channels[i]).setDiscriminationProcess(dp);
                  } else {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Found DP: " + dp);
                      }
                  }
              } else {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Last channel in chain, " + list[i].getName());
                  }
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "setupDiscProcess");
          }
      }