eventmachine 0.12.6-java → 0.12.8-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.
Files changed (116) hide show
  1. data/{docs/README → README} +21 -13
  2. data/Rakefile +5 -3
  3. data/docs/DEFERRABLES +0 -5
  4. data/docs/INSTALL +2 -4
  5. data/docs/LEGAL +1 -1
  6. data/docs/LIGHTWEIGHT_CONCURRENCY +0 -2
  7. data/docs/PURE_RUBY +0 -2
  8. data/docs/RELEASE_NOTES +0 -2
  9. data/docs/SMTP +0 -7
  10. data/docs/SPAWNED_PROCESSES +0 -4
  11. data/docs/TODO +0 -2
  12. data/eventmachine.gemspec +17 -8
  13. data/examples/ex_channel.rb +43 -0
  14. data/examples/ex_queue.rb +2 -0
  15. data/examples/helper.rb +2 -0
  16. data/ext/cmain.cpp +119 -20
  17. data/ext/cplusplus.cpp +15 -6
  18. data/ext/ed.cpp +303 -93
  19. data/ext/ed.h +49 -22
  20. data/ext/em.cpp +368 -42
  21. data/ext/em.h +43 -6
  22. data/ext/eventmachine.h +21 -8
  23. data/ext/eventmachine_cpp.h +1 -0
  24. data/ext/extconf.rb +4 -0
  25. data/ext/kb.cpp +1 -2
  26. data/ext/pipe.cpp +1 -3
  27. data/ext/project.h +21 -0
  28. data/ext/rubymain.cpp +232 -32
  29. data/ext/ssl.cpp +38 -1
  30. data/ext/ssl.h +5 -1
  31. data/java/src/com/rubyeventmachine/Application.java +7 -3
  32. data/java/src/com/rubyeventmachine/EmReactor.java +16 -1
  33. data/java/src/com/rubyeventmachine/tests/ConnectTest.java +25 -3
  34. data/lib/{protocols → em}/buftok.rb +16 -5
  35. data/lib/em/callback.rb +26 -0
  36. data/lib/em/channel.rb +57 -0
  37. data/lib/em/connection.rb +505 -0
  38. data/lib/em/deferrable.rb +144 -165
  39. data/lib/em/file_watch.rb +54 -0
  40. data/lib/em/future.rb +24 -25
  41. data/lib/em/messages.rb +1 -1
  42. data/lib/em/process_watch.rb +44 -0
  43. data/lib/em/processes.rb +58 -52
  44. data/lib/em/protocols.rb +35 -0
  45. data/lib/em/protocols/header_and_content.rb +138 -0
  46. data/lib/em/protocols/httpclient.rb +263 -0
  47. data/lib/em/protocols/httpclient2.rb +582 -0
  48. data/lib/{protocols → em/protocols}/line_and_text.rb +2 -2
  49. data/lib/em/protocols/linetext2.rb +160 -0
  50. data/lib/{protocols → em/protocols}/memcache.rb +37 -7
  51. data/lib/em/protocols/object_protocol.rb +39 -0
  52. data/lib/em/protocols/postgres3.rb +247 -0
  53. data/lib/em/protocols/saslauth.rb +175 -0
  54. data/lib/em/protocols/smtpclient.rb +331 -0
  55. data/lib/em/protocols/smtpserver.rb +547 -0
  56. data/lib/em/protocols/stomp.rb +200 -0
  57. data/lib/{protocols → em/protocols}/tcptest.rb +21 -25
  58. data/lib/em/queue.rb +61 -0
  59. data/lib/em/spawnable.rb +53 -56
  60. data/lib/em/streamer.rb +92 -74
  61. data/lib/em/timers.rb +55 -0
  62. data/lib/em/version.rb +3 -0
  63. data/lib/eventmachine.rb +1008 -1298
  64. data/lib/evma.rb +1 -1
  65. data/lib/jeventmachine.rb +106 -101
  66. data/lib/pr_eventmachine.rb +47 -36
  67. data/tasks/project.rake +2 -1
  68. data/tests/client.crt +31 -0
  69. data/tests/client.key +51 -0
  70. data/tests/test_attach.rb +18 -0
  71. data/tests/test_basic.rb +108 -54
  72. data/tests/test_channel.rb +63 -0
  73. data/tests/test_connection_count.rb +2 -2
  74. data/tests/test_epoll.rb +109 -110
  75. data/tests/test_errors.rb +36 -36
  76. data/tests/test_exc.rb +22 -25
  77. data/tests/test_file_watch.rb +49 -0
  78. data/tests/test_futures.rb +77 -93
  79. data/tests/test_hc.rb +2 -2
  80. data/tests/test_httpclient.rb +55 -52
  81. data/tests/test_httpclient2.rb +110 -112
  82. data/tests/test_inactivity_timeout.rb +30 -0
  83. data/tests/test_kb.rb +8 -9
  84. data/tests/test_ltp2.rb +274 -277
  85. data/tests/test_next_tick.rb +91 -65
  86. data/tests/test_object_protocol.rb +37 -0
  87. data/tests/test_process_watch.rb +48 -0
  88. data/tests/test_processes.rb +56 -23
  89. data/tests/test_proxy_connection.rb +92 -0
  90. data/tests/test_pure.rb +1 -5
  91. data/tests/test_queue.rb +44 -0
  92. data/tests/test_running.rb +9 -14
  93. data/tests/test_sasl.rb +32 -34
  94. data/tests/test_send_file.rb +175 -176
  95. data/tests/test_servers.rb +37 -41
  96. data/tests/test_smtpserver.rb +47 -55
  97. data/tests/test_spawn.rb +284 -291
  98. data/tests/test_ssl_args.rb +1 -1
  99. data/tests/test_ssl_methods.rb +1 -1
  100. data/tests/test_ssl_verify.rb +82 -0
  101. data/tests/test_timers.rb +81 -88
  102. data/tests/test_ud.rb +0 -7
  103. data/tests/testem.rb +1 -1
  104. metadata +52 -36
  105. data/lib/em/eventable.rb +0 -39
  106. data/lib/eventmachine_version.rb +0 -31
  107. data/lib/protocols/header_and_content.rb +0 -129
  108. data/lib/protocols/httpcli2.rb +0 -803
  109. data/lib/protocols/httpclient.rb +0 -270
  110. data/lib/protocols/linetext2.rb +0 -161
  111. data/lib/protocols/postgres.rb +0 -261
  112. data/lib/protocols/saslauth.rb +0 -179
  113. data/lib/protocols/smtpclient.rb +0 -308
  114. data/lib/protocols/smtpserver.rb +0 -556
  115. data/lib/protocols/stomp.rb +0 -153
  116. data/tests/test_eventables.rb +0 -77
@@ -65,4 +65,4 @@ class TestSslArgs < Test::Unit::TestCase
65
65
  assert(false, 'should not have raised an exception')
66
66
  end
67
67
  end
68
- end
68
+ end if EM.ssl?
@@ -47,4 +47,4 @@ class TestSSLMethods < Test::Unit::TestCase
47
47
  assert($client_cert_value.is_a?(String))
48
48
  end
49
49
 
50
- end
50
+ end if EM.ssl?
@@ -0,0 +1,82 @@
1
+ $:.unshift "../lib"
2
+ require 'eventmachine'
3
+ require 'test/unit'
4
+
5
+ class TestSslVerify < Test::Unit::TestCase
6
+
7
+ def setup
8
+ $dir = File.dirname(File.expand_path(__FILE__)) + '/'
9
+ $cert_from_file = File.read($dir+'client.crt')
10
+ end
11
+
12
+ module Client
13
+ def connection_completed
14
+ start_tls(:private_key_file => $dir+'client.key', :cert_chain_file => $dir+'client.crt')
15
+ end
16
+
17
+ def ssl_handshake_completed
18
+ $client_handshake_completed = true
19
+ close_connection
20
+ end
21
+
22
+ def unbind
23
+ EM.stop_event_loop
24
+ end
25
+ end
26
+
27
+ module AcceptServer
28
+ def post_init
29
+ start_tls(:verify_peer => true)
30
+ end
31
+
32
+ def ssl_verify_peer(cert)
33
+ $cert_from_server = cert
34
+ true
35
+ end
36
+
37
+ def ssl_handshake_completed
38
+ $server_handshake_completed = true
39
+ end
40
+ end
41
+
42
+ module DenyServer
43
+ def post_init
44
+ start_tls(:verify_peer => true)
45
+ end
46
+
47
+ def ssl_verify_peer(cert)
48
+ $cert_from_server = cert
49
+ # Do not accept the peer. This should now cause the connection to shut down without the SSL handshake being completed.
50
+ false
51
+ end
52
+
53
+ def ssl_handshake_completed
54
+ $server_handshake_completed = true
55
+ end
56
+ end
57
+
58
+ def test_accept_server
59
+ $client_handshake_completed, $server_handshake_completed = false, false
60
+ EM.run {
61
+ EM.start_server("127.0.0.1", 16784, AcceptServer)
62
+ EM.connect("127.0.0.1", 16784, Client).instance_variable_get("@signature")
63
+ }
64
+
65
+ assert_equal($cert_from_file, $cert_from_server)
66
+ assert($client_handshake_completed)
67
+ assert($server_handshake_completed)
68
+ end
69
+
70
+ def test_deny_server
71
+ $client_handshake_completed, $server_handshake_completed = false, false
72
+ EM.run {
73
+ EM.start_server("127.0.0.1", 16784, DenyServer)
74
+ EM.connect("127.0.0.1", 16784, Client)
75
+ }
76
+
77
+ assert_equal($cert_from_file, $cert_from_server)
78
+ assert(!$client_handshake_completed)
79
+ assert(!$server_handshake_completed)
80
+ end
81
+
82
+ end
@@ -29,120 +29,113 @@ $:.unshift "../lib"
29
29
  require 'eventmachine'
30
30
  require 'test/unit'
31
31
 
32
-
33
32
  class TestTimers < Test::Unit::TestCase
34
33
 
35
- def setup
36
- end
37
-
38
- def teardown
39
- end
40
-
41
34
  def test_timer_with_block
42
- x = false
43
- EventMachine.run {
44
- EventMachine::Timer.new(0.25) {
45
- x = true
46
- EventMachine.stop
47
- }
48
- }
49
- assert x
35
+ x = false
36
+ EventMachine.run {
37
+ EventMachine::Timer.new(0.25) {
38
+ x = true
39
+ EventMachine.stop
40
+ }
41
+ }
42
+ assert x
50
43
  end
51
44
 
52
45
  def test_timer_with_proc
53
- x = false
54
- EventMachine.run {
55
- EventMachine::Timer.new(0.25, proc {
56
- x = true
57
- EventMachine.stop
58
- })
59
- }
60
- assert x
46
+ x = false
47
+ EventMachine.run {
48
+ EventMachine::Timer.new(0.25, proc {
49
+ x = true
50
+ EventMachine.stop
51
+ })
52
+ }
53
+ assert x
61
54
  end
62
55
 
63
56
  def test_timer_cancel
64
- x = true
65
- EventMachine.run {
66
- timer = EventMachine::Timer.new(0.25, proc { x = false })
67
- timer.cancel
68
- EventMachine::Timer.new(0.5, proc {EventMachine.stop})
69
- }
70
- assert x
57
+ x = true
58
+ EventMachine.run {
59
+ timer = EventMachine::Timer.new(0.25, proc { x = false })
60
+ timer.cancel
61
+ EventMachine::Timer.new(0.5, proc {EventMachine.stop})
62
+ }
63
+ assert x
71
64
  end
72
65
 
73
66
  def test_periodic_timer
74
- x = 0
75
- EventMachine.run {
76
- EventMachine::PeriodicTimer.new(0.1) do
77
- x += 1
78
- EventMachine.stop if x == 4
79
- end
80
- }
81
- assert( x == 4 )
67
+ x = 0
68
+ EventMachine.run {
69
+ EventMachine::PeriodicTimer.new(0.1) do
70
+ x += 1
71
+ EventMachine.stop if x == 4
72
+ end
73
+ }
74
+ assert( x == 4 )
82
75
  end
83
76
 
84
77
  def test_periodic_timer_cancel
85
- x = 0
86
- EventMachine.run {
87
- pt = EventMachine::PeriodicTimer.new(0.25, proc { x += 1 })
88
- pt.cancel
89
- EventMachine::Timer.new(0.5) {EventMachine.stop}
90
- }
91
- assert( x == 0 )
78
+ x = 0
79
+ EventMachine.run {
80
+ pt = EventMachine::PeriodicTimer.new(0.25, proc { x += 1 })
81
+ pt.cancel
82
+ EventMachine::Timer.new(0.5) {EventMachine.stop}
83
+ }
84
+ assert( x == 0 )
92
85
  end
93
86
 
94
87
  def test_periodic_timer_self_cancel
95
- x = 0
96
- EventMachine.run {
97
- pt = EventMachine::PeriodicTimer.new(0.1) {
98
- x += 1
99
- if x == 4
100
- pt.cancel
101
- EventMachine.stop
102
- end
103
- }
104
- }
105
- assert( x == 4 )
88
+ x = 0
89
+ EventMachine.run {
90
+ pt = EventMachine::PeriodicTimer.new(0.1) {
91
+ x += 1
92
+ if x == 4
93
+ pt.cancel
94
+ EventMachine.stop
95
+ end
96
+ }
97
+ }
98
+ assert( x == 4 )
106
99
  end
107
100
 
108
101
 
109
- # This test is only applicable to compiled versions of the reactor.
110
- # Pure ruby and java versions have no built-in limit on the number of outstanding timers.
111
- #
112
- def test_timer_change_max_outstanding
113
- ten_thousand_timers = proc {
114
- 10000.times {
115
- EM.add_timer(5) {}
116
- }
117
- }
118
- EM.run {
119
- if EM.library_type == :pure_ruby
120
- ten_thousand_timers.call
121
- elsif EM.library_type == :java
122
- ten_thousand_timers.call
123
- else
124
- begin
125
- assert_raises( RuntimeError ) {
126
- ten_thousand_timers.call
127
- }
128
- rescue Object
129
- p $!
130
- assert(false, $!.message)
131
- end
132
- end
133
- EM.stop
134
- }
102
+ # This test is only applicable to compiled versions of the reactor.
103
+ # Pure ruby and java versions have no built-in limit on the number of outstanding timers.
104
+ #
105
+ def test_timer_change_max_outstanding
106
+ ten_thousand_timers = proc {
107
+ 10000.times {
108
+ EM.add_timer(5) {}
109
+ }
110
+ }
111
+
112
+ EM.run {
113
+ if EM.library_type == :pure_ruby
114
+ ten_thousand_timers.call
115
+ elsif EM.library_type == :java
116
+ ten_thousand_timers.call
117
+ else
118
+ begin
119
+ assert_raises( RuntimeError ) {
120
+ ten_thousand_timers.call
121
+ }
122
+ rescue Object
123
+ p $!
124
+ assert(false, $!.message)
125
+ end
126
+ end
127
+ EM.stop
128
+ }
135
129
 
136
130
  assert(!EM.reactor_running?, 'Reactor running when it should not be.')
137
131
  assert( EM.get_max_timers != 10001 )
138
132
  EM.set_max_timers( 10001 )
139
133
  assert( EM.get_max_timers == 10001 )
140
134
 
141
- EM.run {
142
- ten_thousand_timers.call
143
- EM.stop
144
- }
145
- end
135
+ EM.run {
136
+ ten_thousand_timers.call
137
+ EM.stop
138
+ }
139
+ end
146
140
 
147
141
  end
148
-
@@ -30,14 +30,7 @@ require 'test/unit'
30
30
 
31
31
  class TestUserDefinedEvents < Test::Unit::TestCase
32
32
 
33
- def setup
34
- end
35
-
36
- def teardown
37
- end
38
-
39
33
  def test_a
40
34
  end
41
35
 
42
36
  end
43
-
@@ -28,4 +28,4 @@ end
28
28
 
29
29
  if __FILE__ == $0
30
30
  EmTestRunner.run
31
- end
31
+ end
metadata CHANGED
@@ -5,11 +5,12 @@ homepage: http://rubyeventmachine.com
5
5
  executables: []
6
6
 
7
7
  version: !ruby/object:Gem::Version
8
- version: 0.12.6
8
+ version: 0.12.8
9
9
  post_install_message:
10
- date: 2009-04-04 07:00:00 +00:00
10
+ date: 2009-05-22 07:00:00 +00:00
11
11
  files:
12
12
  - .gitignore
13
+ - README
13
14
  - Rakefile
14
15
  - docs/COPYING
15
16
  - docs/ChangeLog
@@ -21,12 +22,14 @@ files:
21
22
  - docs/LEGAL
22
23
  - docs/LIGHTWEIGHT_CONCURRENCY
23
24
  - docs/PURE_RUBY
24
- - docs/README
25
25
  - docs/RELEASE_NOTES
26
26
  - docs/SMTP
27
27
  - docs/SPAWNED_PROCESSES
28
28
  - docs/TODO
29
29
  - eventmachine.gemspec
30
+ - examples/ex_channel.rb
31
+ - examples/ex_queue.rb
32
+ - examples/helper.rb
30
33
  - ext/binder.cpp
31
34
  - ext/binder.h
32
35
  - ext/cmain.cpp
@@ -77,15 +80,36 @@ files:
77
80
  - java/src/com/rubyeventmachine/tests/TestDatagrams.java
78
81
  - java/src/com/rubyeventmachine/tests/TestServers.java
79
82
  - java/src/com/rubyeventmachine/tests/TestTimers.java
83
+ - lib/em/buftok.rb
84
+ - lib/em/callback.rb
85
+ - lib/em/channel.rb
86
+ - lib/em/connection.rb
80
87
  - lib/em/deferrable.rb
81
- - lib/em/eventable.rb
88
+ - lib/em/file_watch.rb
82
89
  - lib/em/future.rb
83
90
  - lib/em/messages.rb
91
+ - lib/em/process_watch.rb
84
92
  - lib/em/processes.rb
93
+ - lib/em/protocols.rb
94
+ - lib/em/protocols/header_and_content.rb
95
+ - lib/em/protocols/httpclient.rb
96
+ - lib/em/protocols/httpclient2.rb
97
+ - lib/em/protocols/line_and_text.rb
98
+ - lib/em/protocols/linetext2.rb
99
+ - lib/em/protocols/memcache.rb
100
+ - lib/em/protocols/object_protocol.rb
101
+ - lib/em/protocols/postgres3.rb
102
+ - lib/em/protocols/saslauth.rb
103
+ - lib/em/protocols/smtpclient.rb
104
+ - lib/em/protocols/smtpserver.rb
105
+ - lib/em/protocols/stomp.rb
106
+ - lib/em/protocols/tcptest.rb
107
+ - lib/em/queue.rb
85
108
  - lib/em/spawnable.rb
86
109
  - lib/em/streamer.rb
110
+ - lib/em/timers.rb
111
+ - lib/em/version.rb
87
112
  - lib/eventmachine.rb
88
- - lib/eventmachine_version.rb
89
113
  - lib/evma.rb
90
114
  - lib/evma/callback.rb
91
115
  - lib/evma/container.rb
@@ -94,43 +118,38 @@ files:
94
118
  - lib/evma/reactor.rb
95
119
  - lib/jeventmachine.rb
96
120
  - lib/pr_eventmachine.rb
97
- - lib/protocols/buftok.rb
98
- - lib/protocols/header_and_content.rb
99
- - lib/protocols/httpcli2.rb
100
- - lib/protocols/httpclient.rb
101
- - lib/protocols/line_and_text.rb
102
- - lib/protocols/linetext2.rb
103
- - lib/protocols/memcache.rb
104
- - lib/protocols/postgres.rb
105
- - lib/protocols/saslauth.rb
106
- - lib/protocols/smtpclient.rb
107
- - lib/protocols/smtpserver.rb
108
- - lib/protocols/stomp.rb
109
- - lib/protocols/tcptest.rb
110
121
  - setup.rb
111
122
  - tasks/cpp.rake
112
123
  - tasks/project.rake
113
124
  - tasks/tests.rake
125
+ - tests/client.crt
126
+ - tests/client.key
114
127
  - tests/test_attach.rb
115
128
  - tests/test_basic.rb
129
+ - tests/test_channel.rb
116
130
  - tests/test_connection_count.rb
117
131
  - tests/test_defer.rb
118
132
  - tests/test_epoll.rb
119
133
  - tests/test_error_handler.rb
120
134
  - tests/test_errors.rb
121
- - tests/test_eventables.rb
122
135
  - tests/test_exc.rb
136
+ - tests/test_file_watch.rb
123
137
  - tests/test_futures.rb
124
138
  - tests/test_handler_check.rb
125
139
  - tests/test_hc.rb
126
140
  - tests/test_httpclient.rb
127
141
  - tests/test_httpclient2.rb
142
+ - tests/test_inactivity_timeout.rb
128
143
  - tests/test_kb.rb
129
144
  - tests/test_ltp.rb
130
145
  - tests/test_ltp2.rb
131
146
  - tests/test_next_tick.rb
147
+ - tests/test_object_protocol.rb
148
+ - tests/test_process_watch.rb
132
149
  - tests/test_processes.rb
150
+ - tests/test_proxy_connection.rb
133
151
  - tests/test_pure.rb
152
+ - tests/test_queue.rb
134
153
  - tests/test_running.rb
135
154
  - tests/test_sasl.rb
136
155
  - tests/test_send_file.rb
@@ -140,6 +159,7 @@ files:
140
159
  - tests/test_spawn.rb
141
160
  - tests/test_ssl_args.rb
142
161
  - tests/test_ssl_methods.rb
162
+ - tests/test_ssl_verify.rb
143
163
  - tests/test_timers.rb
144
164
  - tests/test_ud.rb
145
165
  - tests/testem.rb
@@ -150,8 +170,18 @@ rdoc_options:
150
170
  - --title
151
171
  - EventMachine
152
172
  - --main
153
- - docs/README
173
+ - README
154
174
  - --line-numbers
175
+ - -x
176
+ - lib/em/version
177
+ - -x
178
+ - lib/emva
179
+ - -x
180
+ - lib/evma/
181
+ - -x
182
+ - lib/pr_eventmachine
183
+ - -x
184
+ - lib/jeventmachine
155
185
  signing_key:
156
186
  cert_chain: []
157
187
 
@@ -192,22 +222,8 @@ description: EventMachine implements a fast, single-threaded engine for arbitrar
192
222
  email: garbagecat10@gmail.com
193
223
  authors:
194
224
  - Francis Cianfrocca
195
- extra_rdoc_files:
196
- - docs/ChangeLog
197
- - docs/COPYING
198
- - docs/DEFERRABLES
199
- - docs/EPOLL
200
- - docs/GNU
201
- - docs/INSTALL
202
- - docs/KEYBOARD
203
- - docs/LEGAL
204
- - docs/LIGHTWEIGHT_CONCURRENCY
205
- - docs/PURE_RUBY
206
- - docs/README
207
- - docs/RELEASE_NOTES
208
- - docs/SMTP
209
- - docs/SPAWNED_PROCESSES
210
- - docs/TODO
225
+ extra_rdoc_files: []
226
+
211
227
  requirements: []
212
228
 
213
229
  rubyforge_project: eventmachine