View Javadoc
1   /*
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2022, QOS.ch. All rights reserved.
4    *
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    *
9    *   or (per the licensee's choosing)
10   *
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  
15  package ch.qos.logback.classic.joran;
16  
17  import ch.qos.logback.core.spi.ConfigurationEvent;
18  import ch.qos.logback.core.spi.ConfigurationEventListener;
19  
20  import java.util.concurrent.CountDownLatch;
21  
22  class ReconfigurationDoneListener implements ConfigurationEventListener {
23      CountDownLatch countDownLatch;
24  
25      ReconfigureOnChangeTask roct;
26      ReconfigurationDoneListener(CountDownLatch countDownLatch,  ReconfigureOnChangeTask aRoct) {
27          this.countDownLatch = countDownLatch;
28          this.roct = aRoct;
29      }
30  
31      @Override
32      public void listen(ConfigurationEvent configurationEvent) {
33          switch (configurationEvent.getEventType()) {
34          case CONFIGURATION_ENDED:
35              if(roct == null) {
36                  countDownLatch.countDown();
37              } else {
38                  Object data = configurationEvent.getData();
39                  if(data instanceof ReconfigureOnChangeTask && roct == data) {
40                      countDownLatch.countDown();
41                  }
42              }
43              break;
44          default:
45          }
46  
47      }
48  }