1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.ftp.core.utils;
21
22 import org.waarp.common.logging.WaarpLogger;
23 import org.waarp.common.logging.WaarpLoggerFactory;
24 import org.waarp.ftp.core.config.FtpConfiguration;
25
26 import java.util.TimerTask;
27
28
29
30
31
32 public class FtpTimerTask extends TimerTask {
33
34
35
36 private static final WaarpLogger logger =
37 WaarpLoggerFactory.getLogger(FtpTimerTask.class);
38
39
40
41
42 public static final int TIMER_EXIT = 1;
43
44
45
46 public static final int TIMER_CONTROL = 2;
47
48
49
50
51 private final int type;
52
53
54
55 private FtpConfiguration configuration;
56
57
58
59
60
61
62 public FtpTimerTask(final int type) {
63 this.type = type;
64 }
65
66 @Override
67 public void run() {
68 switch (type) {
69 case TIMER_EXIT:
70 logger.error("System will force EXIT");
71
72 break;
73 case TIMER_CONTROL:
74 logger.info("Exit Shutdown Command");
75 FtpChannelUtils.terminateCommandChannels(getConfiguration());
76 logger.warn("Exit end of Command Shutdown");
77 break;
78 default:
79 logger.info("Type unknown in TimerTask");
80 }
81 }
82
83
84
85
86 public FtpConfiguration getConfiguration() {
87 return configuration;
88 }
89
90
91
92
93 public final void setConfiguration(final FtpConfiguration configuration) {
94 this.configuration = configuration;
95 }
96 }