1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package goldengate.commandexec.server;
22
23 import static org.jboss.netty.channel.Channels.*;
24 import goldengate.commandexec.utils.LocalExecDefaultResult;
25
26 import org.jboss.netty.channel.Channel;
27 import org.jboss.netty.channel.ChannelPipeline;
28 import org.jboss.netty.channel.ChannelPipelineFactory;
29 import org.jboss.netty.channel.group.ChannelGroup;
30 import org.jboss.netty.channel.group.DefaultChannelGroup;
31 import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
32 import org.jboss.netty.handler.codec.frame.Delimiters;
33 import org.jboss.netty.handler.codec.string.StringDecoder;
34 import org.jboss.netty.handler.codec.string.StringEncoder;
35
36
37
38
39
40
41 public class LocalExecServerPipelineFactory implements ChannelPipelineFactory {
42
43 private long delay = LocalExecDefaultResult.MAXWAITPROCESS;
44 private final ChannelGroup channelGroup = new DefaultChannelGroup("LocalExecServer");
45
46
47
48
49
50 public LocalExecServerPipelineFactory() {
51
52 }
53
54
55
56
57
58 public LocalExecServerPipelineFactory(long newdelay) {
59 delay = newdelay;
60 }
61
62
63 public ChannelPipeline getPipeline() throws Exception {
64
65 ChannelPipeline pipeline = pipeline();
66
67
68 pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192,
69 Delimiters.lineDelimiter()));
70 pipeline.addLast("decoder", new StringDecoder());
71 pipeline.addLast("encoder", new StringEncoder());
72
73
74
75 pipeline.addLast("handler", new LocalExecServerHandler(this, delay));
76
77 return pipeline;
78 }
79
80
81
82
83 public void addChannel(Channel channel) {
84 channelGroup.add(channel);
85 }
86
87
88
89
90 public void removeChannel(Channel channel) {
91 channelGroup.remove(channel);
92 }
93
94
95
96 public void releaseResources() {
97 channelGroup.close();
98 }
99 }