tcp-server 1.0.2-java → 1.0.3-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []