tcp-server 1.0.5-java → 1.0.6-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4915c8f9c555eccbae820aef2e73e1742a27da1765616019d5a48c9b62e40264
4
- data.tar.gz: 79a2ef5e23262aea916f25b0244e4ba965d4ecdeffd609c254899ca51a5f5d06
3
+ metadata.gz: adb40677b97f1b1ce0fb1fad9308d527d3086c927044f5e71d1e378c5e0d8e25
4
+ data.tar.gz: 7e489022262138faae081772672bb99ca5eef415f943ff2b9cf96120390cb984
5
5
  SHA512:
6
- metadata.gz: d8436967a6786d2321eda7d4ffd7248d8f128d5c2d8b48dc1b3b30a064553067ce5abd5f1a09d87fb3161106614c1370465c17216c703e2d6333a5314a7a7f8e
7
- data.tar.gz: 47989e7e6028d4f421cea50e328e7b35abcc5007c86f90864ceb1ebc72a408310ad256aea949e9e9a7b9eb1082b211797eae96097afb447b3ea479713d0e234a
6
+ metadata.gz: 1d8afb5280d5a8bfe5dd234dcb5f0dfb26558543074b917de3c39bd08cd5331319a32bd764400d7183fa8814d8b978a57532306dfb2b7464c28cc58aacc5c732
7
+ data.tar.gz: 8a6c94c3ee130ea33a8c4e95009b75414d9622916b4277a38664f3f08d3f238d787941c9c0e7ed5c566a2c3efd2b2d064dda83f0cdce513fd95036c08c959e09
@@ -30,7 +30,6 @@ module Server
30
30
 
31
31
  # The ChannelInitializer class
32
32
  class ChannelInitializer < Java::io.netty.channel.ChannelInitializer
33
- DefaultServerHandler = ModularHandler.new
34
33
  FrameDecoderBufferBytesSize = 8192
35
34
  # The encoder and decoder are sharable. If they were not, then
36
35
  # constant definitions could not be used.
@@ -39,8 +38,9 @@ module Server
39
38
  attr_accessor :user_handlers
40
39
  attr_reader :options
41
40
 
42
- def initialize(options = {})
41
+ def initialize(channel_group, options = {})
43
42
  super()
43
+ @channel_group = channel_group
44
44
  @options = options
45
45
  @user_handlers = []
46
46
  end
@@ -58,7 +58,15 @@ module Server
58
58
  Encoder
59
59
  )
60
60
  add_user_handlers(pipeline)
61
- pipeline.addLast(DefaultServerHandler)
61
+ pipeline.addLast(default_handler)
62
+ end
63
+
64
+ def default_handler
65
+ @default_handler ||= ::Server::ModularHandler.new(@channel_group)
66
+ end
67
+
68
+ def add_listener(listener)
69
+ default_handler.add_listener(listener)
62
70
  end
63
71
 
64
72
  protected
@@ -20,9 +20,11 @@ require_relative 'shutdown_hook'
20
20
  module Server
21
21
  java_import Java::io.netty.bootstrap.ServerBootstrap
22
22
  java_import Java::io.netty.channel.ChannelOption
23
+ java_import Java::io.netty.channel.group.DefaultChannelGroup
23
24
  java_import Java::io.netty.channel.nio.NioEventLoopGroup
24
25
  java_import Java::io.netty.handler.logging.LogLevel
25
26
  java_import Java::io.netty.handler.logging.LoggingHandler
27
+ java_import Java::io.netty.util.concurrent.GlobalEventExecutor
26
28
 
27
29
  # The InstanceMethods module
28
30
  module InstanceMethods
@@ -41,7 +43,7 @@ module Server
41
43
  end
42
44
 
43
45
  def channel_initializer
44
- @channel_initializer ||= ::Server::ChannelInitializer.new(@options)
46
+ @channel_initializer ||= ::Server::ChannelInitializer.new(channel_group, @options)
45
47
  end
46
48
 
47
49
  def boss_group
@@ -52,6 +54,10 @@ module Server
52
54
  @worker_group ||= NioEventLoopGroup.new
53
55
  end
54
56
 
57
+ def channel_group
58
+ @channel_group ||= DefaultChannelGroup.new('server_channels', GlobalEventExecutor::INSTANCE)
59
+ end
60
+
55
61
  def logging_handler
56
62
  @logging_handler ||= LoggingHandler.new(LogLevel::INFO)
57
63
  end
@@ -60,7 +66,7 @@ module Server
60
66
  # rubocop: disable Metrics/MethodLength
61
67
  def run(port = @options[:port])
62
68
  channel = bootstrap.bind(port).sync().channel()
63
- ::Server::Channels.add(channel)
69
+ channel_group.add(channel)
64
70
  ::Server::ShutdownHook.new(self)
65
71
  log.info "Listening on #{channel.local_address}"
66
72
  channel.closeFuture().sync()
@@ -77,8 +83,8 @@ module Server
77
83
  # rubocop: enable Metrics/MethodLength
78
84
 
79
85
  def shutdown
80
- ::Server::Channels.disconnect().awaitUninterruptibly()
81
- ::Server::Channels.close().awaitUninterruptibly()
86
+ channel_group.disconnect().awaitUninterruptibly()
87
+ channel_group.close().awaitUninterruptibly()
82
88
  end
83
89
 
84
90
  def stop
@@ -91,7 +97,7 @@ module Server
91
97
  end
92
98
 
93
99
  def add_listener(listener)
94
- ::Server::ChannelInitializer::DefaultServerHandler.add_listener(listener)
100
+ channel_initializer.add_listener(listener)
95
101
  end
96
102
  end
97
103
  # module ServerInstanceMethods
@@ -18,19 +18,16 @@ require_relative 'listenable'
18
18
  # The Server module
19
19
  module Server
20
20
  java_import Java::io.netty.channel.SimpleChannelInboundHandler
21
- java_import Java::io.netty.channel.group.DefaultChannelGroup
22
- java_import Java::io.netty.util.concurrent.GlobalEventExecutor
23
-
24
- # rubocop: disable Style/IfUnlessModifier
25
- unless defined?(::Server::Channels)
26
- Channels = DefaultChannelGroup.new('channels', GlobalEventExecutor::INSTANCE)
27
- end
28
- # rubocop: enable Style/IfUnlessModifier
29
21
 
30
22
  # The ModularHandler class notifies listeners about events.
31
23
  class ModularHandler < SimpleChannelInboundHandler
32
24
  include ::Server::Listenable
33
25
 
26
+ def initialize(channel_group)
27
+ super()
28
+ @channel_group = channel_group
29
+ end
30
+
34
31
  def isSharable
35
32
  true
36
33
  end
@@ -49,7 +46,7 @@ module Server
49
46
 
50
47
  def channelActive(ctx)
51
48
  log.trace "##{__method__} channel: #{ctx.channel}"
52
- ::Server::Channels.add(ctx.channel)
49
+ @channel_group.add(ctx.channel)
53
50
  notify :channel_active, ctx
54
51
  super(ctx)
55
52
  end
@@ -107,10 +104,10 @@ module Server
107
104
  super(ctx, cause) if listeners.nil? || listeners.empty?
108
105
  end
109
106
 
110
- IdentiferTemplate = '#<%<class>s:0x%<id>s>'.freeze
107
+ IdentifierTemplate = '#<%<class>s:0x%<id>s>'.freeze
111
108
 
112
109
  def to_s
113
- format(IdentiferTemplate, class: self.class.name, id: object_id.to_s(16))
110
+ format(IdentifierTemplate, class: self.class.name, id: object_id.to_s(16))
114
111
  end
115
112
  alias inspect to_s
116
113
  end
@@ -12,5 +12,5 @@
12
12
 
13
13
  # The Server module
14
14
  module Server
15
- VERSION = '1.0.5'.freeze
15
+ VERSION = '1.0.6'.freeze
16
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcp-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: java
6
6
  authors:
7
7
  - Nels Nelson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-20 00:00:00.000000000 Z
11
+ date: 2022-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement