tcp-server 1.0.2-java → 1.0.3-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: 9b184708a43ed78e29a2668c85b546b34120f0358f6224bc6bf8c7895dbb1eb6
4
- data.tar.gz: 176d29aab7223469f089f54d2f0d90e3dcec2bda8fd5dbe054af90783a619138
3
+ metadata.gz: ee220a0690f6cfd1a8adeb7a7147f93755082ee6e947f2ee9823cea6e4ddda2b
4
+ data.tar.gz: d9ef67e6d0bf3e8496d4c0b73b47bcb2cca158706d38de245cd5cbfa15db6ac1
5
5
  SHA512:
6
- metadata.gz: 417b281f16bfd53faf2be531c23c22e98c2e3ed92b64cb393f6d51d98d3d8ec2c895336aae7b87fa7fcd500fa3eaa279804e0ab1e8415aa3b547ab8fd35b6859
7
- data.tar.gz: 49855312f85969ed83a8d254b500f73b01c5448948bd75dab6e337aad0582104359cd366ad03be4d74e33faaccb26fff094e64bab81338a7ec4a4a43da7cf805
6
+ metadata.gz: 56326ddbedd68dd85915bb3616ef02204a17b36643224106f72f134fabc723e29de06baae753e08821af4c85d943fbadf39f30a743d6150107d8e2756400bae5
7
+ data.tar.gz: 807ba39230059812a6e6d0075ec41029dd3f5da11234e13705e46a04f66ed45f6e60b12f29f24a10fc9d03294a9be2b348e0840fe95ad6607f95a4caa267cb42
data/README.md CHANGED
@@ -93,6 +93,15 @@ bundle exec rake
93
93
 
94
94
  To publish the gem after first verifying that the built gem works, execute:
95
95
 
96
+ ```sh
97
+ version=$(ruby -r lib/server/version -I . -e 'puts ::Server::VERSION')
98
+ git tag --annotate --message "Release ${version}" "${version}-release"
99
+ git push origin --tags
100
+ ```
101
+
102
+
103
+ Or manually, if necessary:
104
+
96
105
  ```sh
97
106
  bundle exec rake verify
98
107
  bundle exec rake publish
@@ -113,8 +122,8 @@ bundle exec rake clean clobber
113
122
  Here is a bird's-eye view of the project layout.
114
123
 
115
124
  ```sh
116
- # date && tree
117
- Wed May 4 22:41:11 CDT 2022
125
+ # date && tree -I "logs|vendor|tmp"
126
+ Thu Jun 16 00:03:23 CDT 2022
118
127
  .
119
128
  ├── Dockerfile
120
129
  ├── Gemfile
@@ -127,6 +136,7 @@ Wed May 4 22:41:11 CDT 2022
127
136
  │ └── tcp_server
128
137
  ├── lib
129
138
  │ ├── client.rb
139
+ │ ├── demo_listener.rb
130
140
  │ ├── log.rb
131
141
  │ ├── server
132
142
  │ │ ├── argument_parser.rb
@@ -139,17 +149,20 @@ Wed May 4 22:41:11 CDT 2022
139
149
  │ │ ├── server.rb
140
150
  │ │ ├── shutdown_hook.rb
141
151
  │ │ └── version.rb
142
- └── server.rb
143
- ├── logs
152
+ ├── server.rb
153
+ ├── tcp-server.rb
154
+ │ └── tcp_server.rb
144
155
  ├── spec
145
156
  │ ├── spec_helper.rb
146
157
  │ ├── test_spec.rb
147
158
  │ └── verify
148
159
  │ └── verify_spec.rb
160
+ ├── tcp-server-1.0.2-java.gem
149
161
  ├── tcp-server-jruby.gemspec
162
+ ├── tcp_server.png
150
163
  └── tcp_server.rb
151
164
 
152
- 6 directories, 26 files
165
+ 5 directories, 31 files
153
166
  ```
154
167
 
155
168
  ## CI linting
@@ -0,0 +1,31 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: false
3
+
4
+ # -*- mode: ruby -*-
5
+ # vi: set ft=ruby :
6
+
7
+ # =begin
8
+ #
9
+ # Copyright Nels Nelson 2016-2022 but freely usable (see license)
10
+ #
11
+ # =end
12
+
13
+ # The Server module
14
+ module Server
15
+ # The Demo class
16
+ class Demo
17
+ def channel_active(ctx)
18
+ ::Server.log.info "Channel active: #{ctx.channel}"
19
+ response = 'Hello, world!'
20
+ log.trace "Sending response: #{response.inspect}"
21
+ ctx.channel.writeAndFlush("#{response}\n")
22
+ end
23
+
24
+ def exception_caught(_ctx, cause)
25
+ ::Server.log.error "Exception caught: #{cause}"
26
+ cause.backtrace.each { |t| ::Server.log.error t }
27
+ ctx.close()
28
+ end
29
+ end
30
+ end
31
+ # module Server
@@ -36,17 +36,17 @@ module Server
36
36
  # constant definitions could not be used.
37
37
  Decoder = StringDecoder.new
38
38
  Encoder = StringEncoder.new
39
- attr_accessor :handlers
39
+ attr_accessor :user_handlers
40
40
  attr_reader :options
41
41
 
42
42
  def initialize(options = {})
43
43
  super()
44
44
  @options = options
45
- @handlers = []
45
+ @user_handlers = []
46
46
  end
47
47
 
48
48
  def <<(handler)
49
- @handlers << handler
49
+ @user_handlers << handler
50
50
  end
51
51
 
52
52
  def initChannel(channel)
@@ -64,7 +64,7 @@ module Server
64
64
  protected
65
65
 
66
66
  def add_user_handlers(pipeline)
67
- @handlers.each do |handler|
67
+ @user_handlers.each do |handler|
68
68
  case handler
69
69
  when Class then pipeline.addLast(handler.new)
70
70
  when Proc then pipeline.addLast(Server::MessageHandler.new(&handler))
@@ -71,8 +71,7 @@ module Server
71
71
  rescue java.net.SocketException => e
72
72
  raise "Socket error: #{e.message}: #{options[:host]}:#{port}"
73
73
  ensure
74
- boss_group&.shutdownGracefully()
75
- worker_group&.shutdownGracefully()
74
+ stop
76
75
  end
77
76
  # rubocop: enable Metrics/AbcSize
78
77
  # rubocop: enable Metrics/MethodLength
@@ -82,6 +81,11 @@ module Server
82
81
  ::Server::Channels.close().awaitUninterruptibly()
83
82
  end
84
83
 
84
+ def stop
85
+ boss_group&.shutdownGracefully()
86
+ worker_group&.shutdownGracefully()
87
+ end
88
+
85
89
  def <<(handler)
86
90
  channel_initializer << handler
87
91
  end
data/lib/server/server.rb CHANGED
@@ -26,7 +26,7 @@ module Server
26
26
  attr_reader :options
27
27
 
28
28
  def initialize(params = {}, &block)
29
- @options = params.fetch(:options, {})
29
+ @options = ::Server::Config::DEFAULTS.merge(params.fetch(:options, {}))
30
30
  configure_handlers(&block)
31
31
  end
32
32
 
@@ -12,5 +12,5 @@
12
12
 
13
13
  # The Server module
14
14
  module Server
15
- VERSION = '1.0.2'.freeze
15
+ VERSION = '1.0.3'.freeze
16
16
  end
data/lib/server.rb CHANGED
@@ -20,22 +20,6 @@ require_relative 'server/server'
20
20
  module Server
21
21
  InterruptTemplate = "\r%<class>s".freeze
22
22
 
23
- # The Demo class
24
- class Demo
25
- def channel_active(ctx)
26
- ::Server.log.info "Channel active: #{ctx.channel}"
27
- response = 'Hello, world!'
28
- log.trace "Sending response: #{response.inspect}"
29
- ctx.channel.writeAndFlush("#{response}\n")
30
- end
31
-
32
- def exception_caught(_ctx, cause)
33
- ::Server.log.error "Exception caught: #{cause}"
34
- cause.backtrace.each { |t| ::Server.log.error t }
35
- ctx.close()
36
- end
37
- end
38
-
39
23
  # rubocop: disable Metrics/AbcSize
40
24
  # rubocop: disable Metrics/MethodLength
41
25
  def main(args = parse_arguments)
@@ -56,4 +40,6 @@ module Server
56
40
  end
57
41
  # module Server
58
42
 
43
+ require_relative 'demo_listener'
44
+
59
45
  Object.new.extend(::Server).main if $PROGRAM_NAME == __FILE__
data/lib/tcp-server.rb ADDED
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: false
3
+
4
+ # -*- mode: ruby -*-
5
+ # vi: set ft=ruby :
6
+
7
+ # =begin
8
+ #
9
+ # Copyright Nels Nelson 2016-2022 but freely usable (see license)
10
+ #
11
+ # =end
12
+
13
+ require_relative 'server'
data/lib/tcp_server.rb ADDED
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: false
3
+
4
+ # -*- mode: ruby -*-
5
+ # vi: set ft=ruby :
6
+
7
+ # =begin
8
+ #
9
+ # Copyright Nels Nelson 2016-2022 but freely usable (see license)
10
+ #
11
+ # =end
12
+
13
+ require_relative 'server'
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.2
4
+ version: 1.0.3
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-05-22 00:00:00.000000000 Z
11
+ date: 2022-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +107,7 @@ files:
107
107
  - Rakefile
108
108
  - exe/tcp_server
109
109
  - lib/client.rb
110
+ - lib/demo_listener.rb
110
111
  - lib/log.rb
111
112
  - lib/server.rb
112
113
  - lib/server/argument_parser.rb
@@ -119,6 +120,8 @@ files:
119
120
  - lib/server/server.rb
120
121
  - lib/server/shutdown_hook.rb
121
122
  - lib/server/version.rb
123
+ - lib/tcp-server.rb
124
+ - lib/tcp_server.rb
122
125
  homepage: https://rubygems.org/gems/tcp-server-jruby
123
126
  licenses:
124
127
  - MIT
@@ -144,5 +147,5 @@ requirements: []
144
147
  rubygems_version: 3.2.29
145
148
  signing_key:
146
149
  specification_version: 4
147
- summary: Server for JRuby packaged as a gem.
150
+ summary: TCP Server for JRuby packaged as a gem.
148
151
  test_files: []