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 ChangeDetectedListener  implements ConfigurationEventListener {
23  
24      CountDownLatch countDownLatch;
25  
26      ReconfigureOnChangeTask reconfigureOnChangeTask;
27  
28      ChangeDetectedListener(CountDownLatch countDownLatch) {
29          this.countDownLatch = countDownLatch;
30      }
31  
32      @Override
33      public void listen(ConfigurationEvent configurationEvent) {
34          switch (configurationEvent.getEventType()) {
35          case CHANGE_DETECTED:
36              System.out.println(this.toString() + "#listen Change detected" + " count="+countDownLatch.getCount());
37  
38              countDownLatch.countDown();
39              Object data = configurationEvent.getData();
40              if (data instanceof ReconfigureOnChangeTask) {
41                  reconfigureOnChangeTask = (ReconfigureOnChangeTask) data;
42              }
43              break;
44          default:
45          }
46      }
47  }