sonixlabs-eventmachine-java 1.0.0.rc.7-java → 1.0.3.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -12
  2. data/.travis.yml +12 -0
  3. data/CHANGELOG.md +33 -0
  4. data/Gemfile +0 -1
  5. data/README.md +2 -2
  6. data/README_JP.md +10 -2
  7. data/eventmachine.gemspec +10 -7
  8. data/ext/binder.cpp +1 -1
  9. data/ext/cmain.cpp +11 -0
  10. data/ext/ed.cpp +22 -7
  11. data/ext/ed.h +5 -5
  12. data/ext/em.cpp +64 -66
  13. data/ext/em.h +10 -5
  14. data/ext/eventmachine.h +1 -0
  15. data/ext/extconf.rb +4 -3
  16. data/ext/fastfilereader/extconf.rb +1 -1
  17. data/ext/rubymain.cpp +22 -1
  18. data/ext/ssl.cpp +1 -1
  19. data/java/.classpath +1 -3
  20. data/java/.gitignore +1 -0
  21. data/java/src/com/rubyeventmachine/DatagramPacket.java +13 -0
  22. data/java/src/com/rubyeventmachine/EmReactor.java +502 -561
  23. data/java/src/com/rubyeventmachine/EventCallback.java +7 -0
  24. data/java/src/com/rubyeventmachine/EventCode.java +26 -0
  25. data/java/src/com/rubyeventmachine/EventableChannel.java +102 -42
  26. data/java/src/com/rubyeventmachine/EventableDatagramChannel.java +146 -161
  27. data/java/src/com/rubyeventmachine/EventableSocketChannel.java +371 -334
  28. data/java/src/com/rubyeventmachine/SslBox.java +310 -0
  29. data/lib/em/iterator.rb +5 -44
  30. data/lib/em/processes.rb +1 -1
  31. data/lib/em/protocols/httpclient.rb +2 -2
  32. data/lib/em/protocols/line_protocol.rb +2 -2
  33. data/lib/em/protocols/smtpclient.rb +1 -1
  34. data/lib/em/protocols/smtpserver.rb +10 -7
  35. data/lib/em/protocols/stomp.rb +5 -2
  36. data/lib/em/protocols.rb +1 -0
  37. data/lib/em/version.rb +1 -1
  38. data/lib/eventmachine.rb +35 -14
  39. data/lib/jeventmachine.rb +65 -18
  40. data/rakelib/package.rake +15 -18
  41. data/tests/server.crt +36 -0
  42. data/tests/server.key +51 -0
  43. data/tests/test_attach.rb +24 -0
  44. data/tests/test_connection_count.rb +21 -1
  45. data/tests/test_epoll.rb +15 -0
  46. data/tests/test_httpclient2.rb +5 -0
  47. data/tests/test_idle_connection.rb +6 -4
  48. data/tests/test_iterator.rb +97 -0
  49. data/tests/test_line_protocol.rb +33 -0
  50. data/tests/test_pause.rb +24 -0
  51. data/tests/test_set_sock_opt.rb +1 -1
  52. data/tests/test_ssl_echo_data.rb +60 -0
  53. data/tests/test_ssl_methods.rb +15 -7
  54. data/tests/test_ssl_verify.rb +4 -4
  55. data/tests/test_stomp.rb +37 -0
  56. data/tests/test_system.rb +42 -0
  57. metadata +45 -42
  58. data/lib/rubyeventmachine.jar +0 -0
@@ -1,29 +1,37 @@
1
1
  require 'em_test_helper'
2
2
 
3
3
  class TestSSLMethods < Test::Unit::TestCase
4
+ def setup
5
+ $dir = File.dirname(File.expand_path(__FILE__)) + '/'
6
+ $client_cert_from_file = File.read($dir+'client.crt')
7
+ $server_cert_from_file = File.read($dir+'server.crt')
8
+ end
4
9
 
5
10
  module ServerHandler
6
11
 
7
12
  def post_init
8
- start_tls
13
+ start_tls(:private_key_file => $dir+'server.key', :cert_chain_file => $dir+'server.crt', :verify_peer => true)
9
14
  end
10
15
 
11
16
  def ssl_handshake_completed
12
17
  $server_called_back = true
13
- $server_cert_value = get_peer_cert
18
+ $client_cert_value = get_peer_cert
14
19
  end
15
20
 
21
+ def ssl_verify_peer cert
22
+ true
23
+ end
16
24
  end
17
25
 
18
26
  module ClientHandler
19
27
 
20
28
  def post_init
21
- start_tls
29
+ start_tls(:private_key_file => $dir+'client.key', :cert_chain_file => $dir+'client.crt')
22
30
  end
23
31
 
24
32
  def ssl_handshake_completed
25
33
  $client_called_back = true
26
- $client_cert_value = get_peer_cert
34
+ $server_cert_value = get_peer_cert
27
35
  EM.stop_event_loop
28
36
  end
29
37
 
@@ -41,8 +49,8 @@ class TestSSLMethods < Test::Unit::TestCase
41
49
  assert($server_called_back)
42
50
  assert($client_called_back)
43
51
 
44
- assert($server_cert_value.is_a?(NilClass))
45
- assert($client_cert_value.is_a?(String))
52
+ assert_equal($server_cert_from_file, $server_cert_value.gsub("\r", ""))
53
+ assert_equal($client_cert_from_file, $client_cert_value.gsub("\r", ""))
46
54
  end
47
55
 
48
- end if EM.ssl?
56
+ end if EM.ssl?
@@ -24,7 +24,7 @@ if EM.ssl?
24
24
 
25
25
  module AcceptServer
26
26
  def post_init
27
- start_tls(:verify_peer => true)
27
+ start_tls(:private_key_file => $dir+'server.key', :cert_chain_file => $dir+'server.crt', :verify_peer => true)
28
28
  end
29
29
 
30
30
  def ssl_verify_peer(cert)
@@ -39,7 +39,7 @@ if EM.ssl?
39
39
 
40
40
  module DenyServer
41
41
  def post_init
42
- start_tls(:verify_peer => true)
42
+ start_tls(:private_key_file => $dir+'server.key', :cert_chain_file => $dir+'server.crt', :verify_peer => true)
43
43
  end
44
44
 
45
45
  def ssl_verify_peer(cert)
@@ -60,7 +60,7 @@ if EM.ssl?
60
60
  EM.connect("127.0.0.1", 16784, Client).instance_variable_get("@signature")
61
61
  }
62
62
 
63
- assert_equal($cert_from_file, $cert_from_server)
63
+ assert_equal($cert_from_file, $cert_from_server.gsub("\r", ""))
64
64
  assert($client_handshake_completed)
65
65
  assert($server_handshake_completed)
66
66
  end
@@ -72,7 +72,7 @@ if EM.ssl?
72
72
  EM.connect("127.0.0.1", 16784, Client)
73
73
  }
74
74
 
75
- assert_equal($cert_from_file, $cert_from_server)
75
+ assert_equal($cert_from_file, $cert_from_server.gsub("\r", ""))
76
76
  assert(!$client_handshake_completed)
77
77
  assert(!$server_handshake_completed)
78
78
  end
@@ -0,0 +1,37 @@
1
+ require 'em_test_helper'
2
+
3
+ class TestStomp < Test::Unit::TestCase
4
+ CONTENT_LENGTH_REGEX = /^content-length: (\d+)$/
5
+
6
+ def bytesize(str)
7
+ str = str.to_s
8
+ size = str.bytesize if str.respond_to?(:bytesize) # bytesize added in 1.9
9
+ size || str.size
10
+ end
11
+
12
+ def test_content_length_in_bytes
13
+ connection = Object.new
14
+ connection.instance_eval do
15
+ extend EM::P::Stomp
16
+
17
+ def last_sent_content_length
18
+ @sent && Integer(@sent[CONTENT_LENGTH_REGEX, 1])
19
+ end
20
+
21
+ def send_data(string)
22
+ @sent = string
23
+ end
24
+ end
25
+
26
+ queue = "queue"
27
+ failure_message = "header content-length is not the byte size of last sent body"
28
+
29
+ body = "test"
30
+ connection.send queue, body
31
+ assert_equal bytesize(body), connection.last_sent_content_length, failure_message
32
+
33
+ body = "test\u221A"
34
+ connection.send queue, body
35
+ assert_equal bytesize(body), connection.last_sent_content_length, failure_message
36
+ end
37
+ end
@@ -0,0 +1,42 @@
1
+ # coding: utf-8
2
+ require 'em_test_helper'
3
+
4
+ class TestSystem < Test::Unit::TestCase
5
+ def setup
6
+ @filename = File.expand_path("../я манал dump.txt", __FILE__)
7
+ @test_data = 'a' * 100
8
+ File.open(@filename, 'w'){|f| f.write(@test_data)}
9
+ end
10
+
11
+ def test_system
12
+ result = nil
13
+ status = nil
14
+ EM.run {
15
+ EM.system('cat', @filename){|out, state|
16
+ result = out
17
+ status = state.exitstatus
18
+ EM.stop
19
+ }
20
+ }
21
+ assert_equal(0, status)
22
+ assert_equal(@test_data, result)
23
+ end
24
+
25
+ def test_system_with_string
26
+ result = nil
27
+ status = nil
28
+ EM.run {
29
+ EM.system("cat '#@filename'"){|out, state|
30
+ result = out
31
+ status = state.exitstatus
32
+ EM.stop
33
+ }
34
+ }
35
+ assert_equal(0, status)
36
+ assert_equal(@test_data, result)
37
+ end
38
+
39
+ def teardown
40
+ File.unlink(@filename)
41
+ end
42
+ end
metadata CHANGED
@@ -1,55 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sonixlabs-eventmachine-java
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc.7
4
+ version: 1.0.3.1
5
5
  platform: java
6
6
  authors:
7
- - Kazuhiro Yamada
7
+ - Francis Cianfrocca
8
+ - Aman Gupta
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-11-18 00:00:00.000000000 Z
12
+ date: 2014-07-22 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rake-compiler
15
16
  version_requirements: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - "~>"
18
+ - - ~>
18
19
  - !ruby/object:Gem::Version
19
- version: 0.8.1
20
+ version: 0.8.3
20
21
  requirement: !ruby/object:Gem::Requirement
21
22
  requirements:
22
- - - "~>"
23
+ - - ~>
23
24
  - !ruby/object:Gem::Version
24
- version: 0.8.1
25
+ version: 0.8.3
25
26
  prerelease: false
26
27
  type: :development
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: yard
29
30
  version_requirements: !ruby/object:Gem::Requirement
30
31
  requirements:
31
- - - ">="
32
+ - - '>='
32
33
  - !ruby/object:Gem::Version
33
- version: 0.7.2
34
+ version: 0.8.5.2
34
35
  requirement: !ruby/object:Gem::Requirement
35
36
  requirements:
36
- - - ">="
37
+ - - '>='
37
38
  - !ruby/object:Gem::Version
38
- version: 0.7.2
39
- prerelease: false
40
- type: :development
41
- - !ruby/object:Gem::Dependency
42
- name: bluecloth
43
- version_requirements: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: '0'
39
+ version: 0.8.5.2
53
40
  prerelease: false
54
41
  type: :development
55
42
  description: |-
@@ -64,10 +51,12 @@ description: |-
64
51
  of EventMachine is to enable programs to easily interface with other programs
65
52
  using TCP/IP, especially if custom protocols are required.
66
53
  email:
67
- - sonixlabs@sonix.asia
68
- - yamadakazu45@gmail.com
54
+ - garbagecat10@gmail.com
55
+ - aman@tmm1.net
69
56
  executables: []
70
- extensions: []
57
+ extensions:
58
+ - ext/extconf.rb
59
+ - ext/fastfilereader/extconf.rb
71
60
  extra_rdoc_files:
72
61
  - README.md
73
62
  - docs/DocumentationGuidesIndex.md
@@ -85,8 +74,10 @@ extra_rdoc_files:
85
74
  - docs/old/SPAWNED_PROCESSES
86
75
  - docs/old/TODO
87
76
  files:
88
- - ".gitignore"
89
- - ".yardopts"
77
+ - .gitignore
78
+ - .travis.yml
79
+ - .yardopts
80
+ - CHANGELOG.md
90
81
  - GNU
91
82
  - Gemfile
92
83
  - LICENSE
@@ -143,12 +134,17 @@ files:
143
134
  - ext/ssl.cpp
144
135
  - ext/ssl.h
145
136
  - java/.classpath
137
+ - java/.gitignore
146
138
  - java/.project
139
+ - java/src/com/rubyeventmachine/DatagramPacket.java
147
140
  - java/src/com/rubyeventmachine/EmReactor.java
148
141
  - java/src/com/rubyeventmachine/EmReactorException.java
142
+ - java/src/com/rubyeventmachine/EventCallback.java
143
+ - java/src/com/rubyeventmachine/EventCode.java
149
144
  - java/src/com/rubyeventmachine/EventableChannel.java
150
145
  - java/src/com/rubyeventmachine/EventableDatagramChannel.java
151
146
  - java/src/com/rubyeventmachine/EventableSocketChannel.java
147
+ - java/src/com/rubyeventmachine/SslBox.java
152
148
  - lib/em/buftok.rb
153
149
  - lib/em/callback.rb
154
150
  - lib/em/channel.rb
@@ -197,6 +193,8 @@ files:
197
193
  - tests/client.crt
198
194
  - tests/client.key
199
195
  - tests/em_test_helper.rb
196
+ - tests/server.crt
197
+ - tests/server.key
200
198
  - tests/test_attach.rb
201
199
  - tests/test_basic.rb
202
200
  - tests/test_channel.rb
@@ -216,7 +214,9 @@ files:
216
214
  - tests/test_httpclient2.rb
217
215
  - tests/test_idle_connection.rb
218
216
  - tests/test_inactivity_timeout.rb
217
+ - tests/test_iterator.rb
219
218
  - tests/test_kb.rb
219
+ - tests/test_line_protocol.rb
220
220
  - tests/test_ltp.rb
221
221
  - tests/test_ltp2.rb
222
222
  - tests/test_next_tick.rb
@@ -240,43 +240,46 @@ files:
240
240
  - tests/test_smtpserver.rb
241
241
  - tests/test_spawn.rb
242
242
  - tests/test_ssl_args.rb
243
+ - tests/test_ssl_echo_data.rb
243
244
  - tests/test_ssl_methods.rb
244
245
  - tests/test_ssl_verify.rb
246
+ - tests/test_stomp.rb
247
+ - tests/test_system.rb
245
248
  - tests/test_threaded_resource.rb
246
249
  - tests/test_tick_loop.rb
247
250
  - tests/test_timers.rb
248
251
  - tests/test_ud.rb
249
252
  - tests/test_unbind_reason.rb
250
- - lib/rubyeventmachine.jar
251
- homepage: https://github.com/sonixlabs/eventmachine
252
- licenses: []
253
+ homepage: http://rubyeventmachine.com
254
+ licenses:
255
+ - Ruby
256
+ - GPL
253
257
  metadata: {}
254
258
  post_install_message:
255
259
  rdoc_options:
256
- - "--title"
260
+ - --title
257
261
  - EventMachine
258
- - "--main"
262
+ - --main
259
263
  - README.md
260
- - "-x"
264
+ - -x
261
265
  - lib/em/version
262
- - "-x"
266
+ - -x
263
267
  - lib/jeventmachine
264
268
  require_paths:
265
269
  - lib
266
270
  required_ruby_version: !ruby/object:Gem::Requirement
267
271
  requirements:
268
- - - ">="
272
+ - - '>='
269
273
  - !ruby/object:Gem::Version
270
274
  version: '0'
271
275
  required_rubygems_version: !ruby/object:Gem::Requirement
272
276
  requirements:
273
- - - !binary |-
274
- Pg==
277
+ - - '>='
275
278
  - !ruby/object:Gem::Version
276
- version: 1.3.1
279
+ version: '0'
277
280
  requirements: []
278
281
  rubyforge_project: eventmachine
279
- rubygems_version: 2.1.11
282
+ rubygems_version: 2.1.9
280
283
  signing_key:
281
284
  specification_version: 4
282
285
  summary: Ruby/EventMachine library
Binary file