eventmachine 0.12.6-java → 0.12.8-java

Sign up to get free protection for your applications and to get access to all the features.
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