r2corba 1.5.1-universal-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 (271) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +173 -0
  3. data/LICENSE +59 -0
  4. data/LICENSE.jacorb +660 -0
  5. data/README +62 -0
  6. data/THANKS +54 -0
  7. data/bin/r2corba +8 -0
  8. data/bin/r2corba.bat +20 -0
  9. data/bin/ridlc +11 -0
  10. data/bin/ridlc.bat +23 -0
  11. data/bin/rins +7 -0
  12. data/bin/rins.bat +19 -0
  13. data/jacorb/lib/antlr-2.7.2.jar +0 -0
  14. data/jacorb/lib/jacorb-3.5.jar +0 -0
  15. data/jacorb/lib/jacorb-omgapi-3.5.jar +0 -0
  16. data/jacorb/lib/jacorb-services-3.5.jar +0 -0
  17. data/jacorb/lib/slf4j-api-1.7.6.jar +0 -0
  18. data/jacorb/lib/slf4j-jdk14-1.7.6.jar +0 -0
  19. data/lib/corba.rb +16 -0
  20. data/lib/corba/cbase/IORMap.rb +33 -0
  21. data/lib/corba/cbase/ORB.rb +237 -0
  22. data/lib/corba/cbase/Request.rb +134 -0
  23. data/lib/corba/cbase/Streams.rb +129 -0
  24. data/lib/corba/cbase/Stub.rb +19 -0
  25. data/lib/corba/cbase/Typecode.rb +441 -0
  26. data/lib/corba/cbase/Values.rb +129 -0
  27. data/lib/corba/cbase/exception.rb +66 -0
  28. data/lib/corba/cbase/poa.rb +23 -0
  29. data/lib/corba/cbase/policies.rb +78 -0
  30. data/lib/corba/cbase/post_require.rb +14 -0
  31. data/lib/corba/cbase/require.rb +28 -0
  32. data/lib/corba/cmds/base.rb +85 -0
  33. data/lib/corba/cmds/test.rb +30 -0
  34. data/lib/corba/common/Any.rb +91 -0
  35. data/lib/corba/common/IDL.rb +104 -0
  36. data/lib/corba/common/ORB.rb +368 -0
  37. data/lib/corba/common/Object.rb +208 -0
  38. data/lib/corba/common/Request.rb +20 -0
  39. data/lib/corba/common/Servant.rb +108 -0
  40. data/lib/corba/common/Struct.rb +22 -0
  41. data/lib/corba/common/Stub.rb +79 -0
  42. data/lib/corba/common/Typecode.rb +1121 -0
  43. data/lib/corba/common/Union.rb +56 -0
  44. data/lib/corba/common/Values.rb +92 -0
  45. data/lib/corba/common/const.rb +22 -0
  46. data/lib/corba/common/exception.rb +68 -0
  47. data/lib/corba/common/require.rb +27 -0
  48. data/lib/corba/common/version.rb +22 -0
  49. data/lib/corba/idl/BiDirPolicyC.rb +63 -0
  50. data/lib/corba/idl/CosNamingC.rb +461 -0
  51. data/lib/corba/idl/CosNamingS.rb +309 -0
  52. data/lib/corba/idl/IDL.rb +21 -0
  53. data/lib/corba/idl/IORTable.pidl +62 -0
  54. data/lib/corba/idl/MessagingC.rb +904 -0
  55. data/lib/corba/idl/POAC.rb +930 -0
  56. data/lib/corba/idl/TAO_Ext.pidl +46 -0
  57. data/lib/corba/idl/r2c_orb.rb +572 -0
  58. data/lib/corba/idl/require.rb +20 -0
  59. data/lib/corba/jbase/Any.rb +273 -0
  60. data/lib/corba/jbase/IORMap.rb +36 -0
  61. data/lib/corba/jbase/ORB.rb +112 -0
  62. data/lib/corba/jbase/Object.rb +99 -0
  63. data/lib/corba/jbase/Request.rb +226 -0
  64. data/lib/corba/jbase/Servant.rb +248 -0
  65. data/lib/corba/jbase/ServerRequest.rb +128 -0
  66. data/lib/corba/jbase/Streams.rb +671 -0
  67. data/lib/corba/jbase/Stub.rb +38 -0
  68. data/lib/corba/jbase/Typecode.rb +520 -0
  69. data/lib/corba/jbase/Values.rb +173 -0
  70. data/lib/corba/jbase/exception.rb +106 -0
  71. data/lib/corba/jbase/poa.rb +229 -0
  72. data/lib/corba/jbase/policies.rb +300 -0
  73. data/lib/corba/jbase/post_require.rb +14 -0
  74. data/lib/corba/jbase/require.rb +89 -0
  75. data/lib/corba/naming.rb +14 -0
  76. data/lib/corba/naming_service.rb +15 -0
  77. data/lib/corba/poa.rb +15 -0
  78. data/lib/corba/policies.rb +18 -0
  79. data/lib/corba/require.rb +17 -0
  80. data/lib/corba/svcs/ins/cos_naming.rb +426 -0
  81. data/lib/corba/svcs/ins/ins.rb +526 -0
  82. data/lib/corba/svcs/ins/naming_service.rb +119 -0
  83. data/lib/ridlbe/ruby/config.rb +336 -0
  84. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  85. data/lib/ridlbe/ruby/require.rb +16 -0
  86. data/lib/ridlbe/ruby/walker.rb +1582 -0
  87. data/mkrf_conf_bingem.rb +151 -0
  88. data/rakelib/bin.rake +80 -0
  89. data/rakelib/bin.rb +146 -0
  90. data/rakelib/build.rake +87 -0
  91. data/rakelib/config.rake +52 -0
  92. data/rakelib/config.rb +544 -0
  93. data/rakelib/gem.rake +236 -0
  94. data/rakelib/gem.rb +146 -0
  95. data/rakelib/package.rake +26 -0
  96. data/rakelib/test.rake +23 -0
  97. data/test/BiDirectional/Test.idl +34 -0
  98. data/test/BiDirectional/client.rb +132 -0
  99. data/test/BiDirectional/run_test.rb +68 -0
  100. data/test/BiDirectional/server.ior +1 -0
  101. data/test/BiDirectional/server.rb +169 -0
  102. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -0
  103. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -0
  104. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -0
  105. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -0
  106. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -0
  107. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -0
  108. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -0
  109. data/test/CORBA_Services/Naming/Corbaname/corbaname.ior +1 -0
  110. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -0
  111. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -0
  112. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -0
  113. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -0
  114. data/test/CORBA_Services/Naming/Simple/client.rb +84 -0
  115. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -0
  116. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -0
  117. data/test/CORBA_Services/Naming/Simple/server.rb +109 -0
  118. data/test/Collocation/Diamond.idl +39 -0
  119. data/test/Collocation/run_test.rb +52 -0
  120. data/test/Collocation/test.rb +195 -0
  121. data/test/Connect_Timeout/Test.idl +27 -0
  122. data/test/Connect_Timeout/client.rb +111 -0
  123. data/test/Connect_Timeout/run_test.rb +52 -0
  124. data/test/DII/Test.idl +27 -0
  125. data/test/DII/client.rb +115 -0
  126. data/test/DII/run_test.rb +69 -0
  127. data/test/DII/server.ior +1 -0
  128. data/test/DII/server.rb +95 -0
  129. data/test/DSI/Test.idl +27 -0
  130. data/test/DSI/client.rb +66 -0
  131. data/test/DSI/run_test.rb +69 -0
  132. data/test/DSI/server.ior +1 -0
  133. data/test/DSI/server.rb +106 -0
  134. data/test/Exceptions/Test.idl +48 -0
  135. data/test/Exceptions/client.rb +118 -0
  136. data/test/Exceptions/run_test.rb +69 -0
  137. data/test/Exceptions/server.ior +1 -0
  138. data/test/Exceptions/server.rb +131 -0
  139. data/test/Hello/Test.idl +27 -0
  140. data/test/Hello/client.rb +78 -0
  141. data/test/Hello/gateway.ior +1 -0
  142. data/test/Hello/run_test.rb +71 -0
  143. data/test/Hello/server.rb +95 -0
  144. data/test/IDL_Test/Test.idl +113 -0
  145. data/test/IDL_Test/Test_inc.idl +17 -0
  146. data/test/IDL_Test/client.rb +102 -0
  147. data/test/IDL_Test/run_test.rb +69 -0
  148. data/test/IDL_Test/server.ior +1 -0
  149. data/test/IDL_Test/server.rb +99 -0
  150. data/test/IORMap/Test.idl +27 -0
  151. data/test/IORMap/client.rb +73 -0
  152. data/test/IORMap/run_test.rb +69 -0
  153. data/test/IORMap/server.ior +1 -0
  154. data/test/IORMap/server.rb +114 -0
  155. data/test/IORTable/Test.idl +27 -0
  156. data/test/IORTable/client.rb +75 -0
  157. data/test/IORTable/run_test.rb +69 -0
  158. data/test/IORTable/server.ior +0 -0
  159. data/test/IORTable/server.rb +130 -0
  160. data/test/Implicit_Conversion/Test.idl +31 -0
  161. data/test/Implicit_Conversion/client.rb +110 -0
  162. data/test/Implicit_Conversion/run_test.rb +69 -0
  163. data/test/Implicit_Conversion/server.ior +1 -0
  164. data/test/Implicit_Conversion/server.rb +99 -0
  165. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -0
  166. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -0
  167. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -0
  168. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -0
  169. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -0
  170. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -0
  171. data/test/Multi_Threading/Simple/Test.idl +27 -0
  172. data/test/Multi_Threading/Simple/client.rb +93 -0
  173. data/test/Multi_Threading/Simple/run_test.rb +69 -0
  174. data/test/Multi_Threading/Simple/server.ior +1 -0
  175. data/test/Multi_Threading/Simple/server.rb +118 -0
  176. data/test/Multi_Threading/Threads/Test.idl +31 -0
  177. data/test/Multi_Threading/Threads/client.rb +80 -0
  178. data/test/Multi_Threading/Threads/run_test.rb +76 -0
  179. data/test/Multi_Threading/Threads/server.ior +1 -0
  180. data/test/Multi_Threading/Threads/server.rb +119 -0
  181. data/test/Multi_Threading/Threads/watchdog.ior +1 -0
  182. data/test/Multi_Threading/Threads/watchdog.rb +87 -0
  183. data/test/Multiple_Servant_Interfaces/Test.idl +34 -0
  184. data/test/Multiple_Servant_Interfaces/client.rb +70 -0
  185. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -0
  186. data/test/Multiple_Servant_Interfaces/server.ior +1 -0
  187. data/test/Multiple_Servant_Interfaces/server.rb +102 -0
  188. data/test/Nil/Test.idl +27 -0
  189. data/test/Nil/run_test.rb +52 -0
  190. data/test/Nil/test.rb +78 -0
  191. data/test/OBV/AbstractInterface/client.rb +179 -0
  192. data/test/OBV/AbstractInterface/run_test.rb +69 -0
  193. data/test/OBV/AbstractInterface/server.ior +1 -0
  194. data/test/OBV/AbstractInterface/server.rb +149 -0
  195. data/test/OBV/AbstractInterface/test.idl +53 -0
  196. data/test/OBV/Custom/OBV.idl +18 -0
  197. data/test/OBV/Custom/OBV_impl.rb +40 -0
  198. data/test/OBV/Custom/client.rb +86 -0
  199. data/test/OBV/Custom/run_test.rb +69 -0
  200. data/test/OBV/Custom/server.ior +1 -0
  201. data/test/OBV/Custom/server.rb +100 -0
  202. data/test/OBV/Simple/OBV.idl +15 -0
  203. data/test/OBV/Simple/OBV_impl.rb +26 -0
  204. data/test/OBV/Simple/client.rb +86 -0
  205. data/test/OBV/Simple/run_test.rb +69 -0
  206. data/test/OBV/Simple/server.ior +1 -0
  207. data/test/OBV/Simple/server.rb +100 -0
  208. data/test/OBV/Simple_Event/Event.idl +15 -0
  209. data/test/OBV/Simple_Event/Event_impl.rb +26 -0
  210. data/test/OBV/Simple_Event/client.rb +86 -0
  211. data/test/OBV/Simple_Event/run_test.rb +69 -0
  212. data/test/OBV/Simple_Event/server.ior +1 -0
  213. data/test/OBV/Simple_Event/server.rb +100 -0
  214. data/test/OBV/Supports/client.rb +116 -0
  215. data/test/OBV/Supports/run_test.rb +69 -0
  216. data/test/OBV/Supports/server.ior +1 -0
  217. data/test/OBV/Supports/server.rb +103 -0
  218. data/test/OBV/Supports/supports.idl +33 -0
  219. data/test/OBV/Supports/supports_impl.rb +57 -0
  220. data/test/OBV/Tree/client.rb +116 -0
  221. data/test/OBV/Tree/run_test.rb +69 -0
  222. data/test/OBV/Tree/server.ior +1 -0
  223. data/test/OBV/Tree/server.rb +117 -0
  224. data/test/OBV/Tree/test.idl +32 -0
  225. data/test/OBV/Truncatable/Extra.idl +27 -0
  226. data/test/OBV/Truncatable/Truncatable.idl +105 -0
  227. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -0
  228. data/test/OBV/Truncatable/client.rb +279 -0
  229. data/test/OBV/Truncatable/run_test.rb +69 -0
  230. data/test/OBV/Truncatable/server.ior +1 -0
  231. data/test/OBV/Truncatable/server.rb +89 -0
  232. data/test/OBV/ValueBox/client.rb +497 -0
  233. data/test/OBV/ValueBox/run_test.rb +69 -0
  234. data/test/OBV/ValueBox/server.ior +1 -0
  235. data/test/OBV/ValueBox/server.rb +271 -0
  236. data/test/OBV/ValueBox/valuebox.idl +101 -0
  237. data/test/OBV/ValueBox/vb_basic.idl +75 -0
  238. data/test/OBV/ValueBox/vb_struct.idl +68 -0
  239. data/test/OBV/ValueBox/vb_union.idl +21 -0
  240. data/test/Object/Test.idl +27 -0
  241. data/test/Object/client.rb +112 -0
  242. data/test/Object/run_test.rb +69 -0
  243. data/test/Object/server.ior +1 -0
  244. data/test/Object/server.rb +126 -0
  245. data/test/POA/Test.idl +27 -0
  246. data/test/POA/run_test.rb +52 -0
  247. data/test/POA/test.rb +112 -0
  248. data/test/Param_Test/Test.idl +182 -0
  249. data/test/Param_Test/client.rb +277 -0
  250. data/test/Param_Test/run_test.rb +69 -0
  251. data/test/Param_Test/server.ior +1 -0
  252. data/test/Param_Test/server.rb +296 -0
  253. data/test/Performance/Simple/Test.idl +27 -0
  254. data/test/Performance/Simple/client.rb +90 -0
  255. data/test/Performance/Simple/run_test.rb +69 -0
  256. data/test/Performance/Simple/server.ior +1 -0
  257. data/test/Performance/Simple/server.rb +95 -0
  258. data/test/Policies/Test.idl +27 -0
  259. data/test/Policies/run_test.rb +52 -0
  260. data/test/Policies/test.rb +144 -0
  261. data/test/Timeout/client.rb +207 -0
  262. data/test/Timeout/run_test.rb +69 -0
  263. data/test/Timeout/server.ior +1 -0
  264. data/test/Timeout/server.rb +109 -0
  265. data/test/Timeout/test.idl +19 -0
  266. data/test/lib/assert.rb +43 -0
  267. data/test/lib/test.rb +542 -0
  268. data/test/test.log +20 -0
  269. data/test/test2.log +5000 -0
  270. data/test/test_runner.rb +193 -0
  271. metadata +349 -0
@@ -0,0 +1,132 @@
1
+ #--------------------------------------------------------------------
2
+ # Author: Martin Corino
3
+ #
4
+ # This program is free software; you can redistribute it and/or
5
+ # modify it under the terms of the R2CORBA LICENSE which is
6
+ # included with this program.
7
+ #
8
+ # Copyright (c) Remedy IT Expertise BV
9
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
10
+ #--------------------------------------------------------------------
11
+ require 'optparse'
12
+ require 'lib/assert.rb'
13
+ include TestUtil::Assertions
14
+
15
+ OPTIONS = {
16
+ :use_implement => false,
17
+ :orb_debuglevel => 0,
18
+ :iorfile => 'file://server.ior'
19
+ }
20
+
21
+ ARGV.options do |opts|
22
+ script_name = File.basename($0)
23
+ opts.banner = "Usage: ruby #{script_name} [options]"
24
+
25
+ opts.separator ""
26
+
27
+ opts.on("--k IORFILE",
28
+ "Set IOR.",
29
+ "Default: 'file://server.ior'") { |v| OPTIONS[:iorfile]=v }
30
+ opts.on("--d LVL",
31
+ "Set ORBDebugLevel value.",
32
+ "Default: 0", Integer) { |v| OPTIONS[:orb_debuglevel]=v }
33
+ opts.on("--use-implement",
34
+ "Load IDL through CORBA.implement() instead of precompiled code.",
35
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
36
+
37
+ opts.separator ""
38
+
39
+ opts.on("-h", "--help",
40
+ "Show this help message.") { puts opts; exit }
41
+
42
+ opts.parse!
43
+ end
44
+
45
+ if OPTIONS[:use_implement]
46
+ require 'corba/poa.rb'
47
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
48
+ else
49
+ require 'TestS.rb'
50
+ end
51
+ require 'corba/policies.rb'
52
+
53
+ class MyCallback < POA::Callback
54
+ def initialize(orb)
55
+ @orb = orb
56
+ end
57
+
58
+ def shutdown() # oneway
59
+ @orb.shutdown(false)
60
+ end
61
+
62
+ def callback_method()
63
+ if OPTIONS[:orb_debuglevel] > 0
64
+ puts 'Callback method called.'
65
+ end
66
+ end
67
+
68
+ end #of servant Callback
69
+
70
+ if defined?(JRUBY_VERSION)
71
+ ## JacORB needs explicit activation of this option
72
+ props = {
73
+ "org.omg.PortableInterceptor.ORBInitializerClass.bidir_init" =>
74
+ "org.jacorb.orb.giop.BiDirConnectionInitializer"
75
+ }
76
+ else
77
+ props = {}
78
+ end
79
+
80
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB', props)
81
+
82
+ begin
83
+
84
+ obj = orb.resolve_initial_references('RootPOA')
85
+
86
+ root_poa = PortableServer::POA._narrow(obj)
87
+
88
+ poa_man = root_poa.the_POAManager
89
+
90
+ policies = []
91
+ policies << orb.create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE,
92
+ CORBA::Any.to_any(BiDirPolicy::BOTH, BiDirPolicy::BidirectionalPolicyValue._tc))
93
+
94
+ puts 'policies created'
95
+
96
+ child_poa = root_poa.create_POA('childPOA', poa_man, policies)
97
+
98
+ puts 'child_poa created'
99
+
100
+ policies.each { |pol| pol.destroy() }
101
+
102
+ puts 'policies destroyed'
103
+
104
+ poa_man.activate
105
+
106
+ obj = orb.string_to_object(OPTIONS[:iorfile])
107
+
108
+ assert_not 'Object reference is nil.', CORBA::is_nil(obj)
109
+
110
+ simple_srv = Simple_Server._narrow(obj)
111
+
112
+ callback_i = MyCallback.new(orb)
113
+
114
+ callback_ref = callback_i._this()
115
+
116
+ # Send the calback object to the server
117
+ simple_srv.callback_object(callback_ref)
118
+
119
+ # A method to kickstart callbacks from the server
120
+ r = simple_srv.test_method(true)
121
+
122
+ assert "unexpected result = #{r}", r == 0
123
+
124
+ orb.run()
125
+
126
+ root_poa.destroy(1, 1)
127
+
128
+ ensure
129
+
130
+ orb.destroy()
131
+
132
+ end
@@ -0,0 +1,68 @@
1
+ #--------------------------------------------------------------------
2
+ # Author: Martin Corino
3
+ #
4
+ # This program is free software; you can redistribute it and/or
5
+ # modify it under the terms of the R2CORBA LICENSE which is
6
+ # included with this program.
7
+ #
8
+ # Copyright (c) Remedy IT Expertise BV
9
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
10
+ #--------------------------------------------------------------------
11
+
12
+ OPTIONS = {
13
+ :debug_opt => '',
14
+ :use_implement => '--use-implement'
15
+ }
16
+
17
+ require 'optparse'
18
+
19
+ ARGV.options do |opts|
20
+ script_name = File.basename($0)
21
+ opts.banner = "Usage: ruby #{script_name} [options]"
22
+
23
+ opts.separator ""
24
+
25
+ opts.on("-d",
26
+ "Run with debugging output.",
27
+ "Default: false") { OPTIONS[:debug_opt] = '--d 10' }
28
+ opts.on("--use-stubs",
29
+ "Use stubs generated by RIDL.",
30
+ "Default: false (uses embedded IDL)") { OPTIONS[:use_implement] = '' }
31
+
32
+ opts.separator ""
33
+
34
+ opts.on("-h", "--help",
35
+ "Show this help message.") { puts opts; exit }
36
+
37
+ opts.parse!
38
+ end
39
+
40
+ require 'lib/test.rb'
41
+ include TestUtil
42
+
43
+ ior_file = 'server.ior'
44
+
45
+ TestUtil.remove_file(ior_file)
46
+
47
+ srv = Test.new
48
+
49
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
50
+
51
+ TestUtil.wait_for_file(ior_file, 400)
52
+
53
+ clt = Test.new
54
+
55
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
56
+ srv.kill(100)
57
+ exit(255)
58
+ end
59
+
60
+ exrc = clt.wait(400)
61
+
62
+ if exrc ==0
63
+ srv.wait(400)
64
+ else
65
+ srv.wait_term(400)
66
+ end
67
+
68
+ exit(exrc)
@@ -0,0 +1 @@
1
+ IOR:000000000000001649444C3A53696D706C655F5365727665723A312E300000000000000100000000000000F4000102000000000B31302E342E302E3132300000DD72000000000027393333343738303132332F6368696C64504F412F00153C344D40243918243D071F1F2A4624281F0000000004000000030000002E0000000000000024323030313A3938323A613037323A313A643236373A653566663A666534393A3130333400DD720000000000030000002E0000000000000023323030313A3938323A613037323A313A333165393A3238393A323764333A343061610000DD7200000000000000000008000000004A4143000000000100000024000000000501000100000002000100010001000F00010109000000020501000100010100
@@ -0,0 +1,169 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # This program is free software; you can redistribute it and/or
6
+ # modify it under the terms of the R2CORBA LICENSE which is
7
+ # included with this program.
8
+ #
9
+ # Copyright (c) Remedy IT Expertise BV
10
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
11
+ #--------------------------------------------------------------------
12
+
13
+ require 'optparse'
14
+
15
+ OPTIONS = {
16
+ :use_implement => false,
17
+ :orb_debuglevel => 0,
18
+ :iorfile => 'server.ior',
19
+ :iter_num => 10
20
+ }
21
+
22
+ ARGV.options do |opts|
23
+ script_name = File.basename($0)
24
+ opts.banner = "Usage: ruby #{script_name} [options]"
25
+
26
+ opts.separator ""
27
+
28
+ opts.on("--o IORFILE",
29
+ "Set IOR filename.",
30
+ "Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
31
+ opts.on("--d LVL",
32
+ "Set ORBDebugLevel value.",
33
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
34
+ opts.on("--use-implement",
35
+ "Load IDL through CORBA.implement() instead of precompiled code.",
36
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
37
+ opts.on("--i ITERATIONS",
38
+ "Set number of iterations.",
39
+ "Default: 10", Integer) { |v| OPTIONS[:iter_num]=v }
40
+
41
+ opts.separator ""
42
+
43
+ opts.on("-h", "--help",
44
+ "Show this help message.") { puts opts; exit }
45
+
46
+ opts.parse!
47
+ end
48
+
49
+ if OPTIONS[:use_implement]
50
+ require 'corba/poa.rb'
51
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
52
+ else
53
+ require 'TestS.rb'
54
+ end
55
+ require 'corba/policies.rb'
56
+
57
+ class Simple_Server_i < POA::Simple_Server
58
+ def initialize(orb, iter_num)
59
+ @orb = orb
60
+ @iter_num = iter_num
61
+ @flag = false
62
+ @callback = nil
63
+ end
64
+
65
+ def test_method(do_callback)
66
+ if do_callback == true
67
+ @flag = true
68
+ end
69
+ 0
70
+ end
71
+
72
+ def callback_object(cb)
73
+ @callback = cb
74
+ end
75
+
76
+ def shutdown()
77
+ @orb.shutdown()
78
+ end
79
+
80
+ def call_client()
81
+ if @flag
82
+ @iter_num.times do
83
+ @callback.callback_method()
84
+ end
85
+
86
+ @callback.shutdown()
87
+ @flag = false
88
+
89
+ return 1
90
+ else
91
+ sleep(0.05) # don't hog the CPU
92
+ end
93
+ return 0
94
+ end
95
+
96
+ end #of servant Simple_Server_i
97
+
98
+ if defined?(JRUBY_VERSION)
99
+ ## JacORB needs explicit activation of this option
100
+ props = {
101
+ "org.omg.PortableInterceptor.ORBInitializerClass.bidir_init" =>
102
+ "org.jacorb.orb.giop.BiDirConnectionInitializer"
103
+ }
104
+ else
105
+ props = {}
106
+ end
107
+
108
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB', props)
109
+
110
+ obj = orb.resolve_initial_references('RootPOA')
111
+
112
+ root_poa = PortableServer::POA._narrow(obj)
113
+
114
+ poa_man = root_poa.the_POAManager
115
+
116
+ policies = []
117
+ policies << orb.create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE,
118
+ CORBA::Any.to_any(BiDirPolicy::BOTH, BiDirPolicy::BidirectionalPolicyValue._tc))
119
+
120
+ puts 'policies created'
121
+
122
+ child_poa = root_poa.create_POA('childPOA', poa_man, policies)
123
+
124
+ puts 'child_poa created'
125
+
126
+ policies.each { |pol| pol.destroy() }
127
+
128
+ puts 'policies destroyed'
129
+
130
+ poa_man.activate
131
+
132
+ simple_srv = Simple_Server_i.new(orb, OPTIONS[:iter_num])
133
+
134
+ id = child_poa.activate_object(simple_srv)
135
+
136
+ obj = child_poa.id_to_reference(id)
137
+
138
+ ior = orb.object_to_string(obj)
139
+
140
+ puts "Activated as <#{ior}>"
141
+
142
+ open(OPTIONS[:iorfile], 'w') { |io|
143
+ io.write ior
144
+ }
145
+
146
+ Signal.trap('INT') do
147
+ puts "SIGINT - shutting down ORB..."
148
+ orb.shutdown()
149
+ end
150
+
151
+ if Signal.list.has_key?('USR2')
152
+ Signal.trap('USR2', 'EXIT')
153
+ end
154
+
155
+ retval = 0
156
+ while retval == 0
157
+ pending = orb.work_pending()
158
+
159
+ if pending
160
+ orb.perform_work()
161
+ end
162
+
163
+ retval = simple_srv.call_client()
164
+ end
165
+
166
+ puts 'event loop finished'
167
+
168
+ root_poa.destroy(true, true)
169
+
@@ -0,0 +1,27 @@
1
+ /*--------------------------------------------------------------------
2
+ * Author: Martin Corino
3
+ *
4
+ * This program is free software; you can redistribute it and/or
5
+ * modify it under the terms of the R2CORBA LICENSE which is
6
+ * included with this program.
7
+ *
8
+ * Copyright (c) Remedy IT Expertise BV
9
+ * Chamber of commerce Rotterdam nr.276339, The Netherlands
10
+ *--------------------------------------------------------------------*/
11
+
12
+ /// Put the interfaces in a module, to avoid global namespace pollution
13
+ module Test
14
+ {
15
+ /// A very simple interface
16
+ interface Hello
17
+ {
18
+ /// Return a simple string
19
+ string get_string ();
20
+
21
+ /// A method to shutdown the ORB
22
+ /**
23
+ * This method is used to simplify the test shutdown process
24
+ */
25
+ oneway void shutdown ();
26
+ };
27
+ };
@@ -0,0 +1,121 @@
1
+ #--------------------------------------------------------------------
2
+ #
3
+ # Author: Martin Corino
4
+ #
5
+ # This program is free software; you can redistribute it and/or
6
+ # modify it under the terms of the R2CORBA LICENSE which is
7
+ # included with this program.
8
+ #
9
+ # Copyright (c) Remedy IT Expertise BV
10
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
11
+ #--------------------------------------------------------------------
12
+
13
+ require 'optparse'
14
+ require 'lib/assert.rb'
15
+ include TestUtil::Assertions
16
+
17
+ OPTIONS = {
18
+ :use_implement => false,
19
+ :orb_debuglevel => 0,
20
+ :iorfile => 'file://ins.ior'
21
+ }
22
+
23
+ ARGV.options do |opts|
24
+ script_name = File.basename($0)
25
+ opts.banner = "Usage: ruby #{script_name} [options]"
26
+
27
+ opts.separator ""
28
+
29
+ opts.on("--k IORFILE",
30
+ "Set IOR.",
31
+ "Default: 'file://ins.ior'") { |v| OPTIONS[:iorfile]=v }
32
+ opts.on("--d LVL",
33
+ "Set ORBDebugLevel value.",
34
+ "Default: 0") { |v| OPTIONS[:orb_debuglevel]=v }
35
+ opts.on("--use-implement",
36
+ "Load IDL through CORBA.implement() instead of precompiled code.",
37
+ "Default: off") { |v| OPTIONS[:use_implement]=v }
38
+
39
+ opts.separator ""
40
+
41
+ opts.on("-h", "--help",
42
+ "Show this help message.") { puts opts; exit }
43
+
44
+ opts.parse!
45
+ end
46
+
47
+ if OPTIONS[:use_implement]
48
+ require 'corba'
49
+ CORBA.implement('Test.idl', OPTIONS)
50
+ else
51
+ require 'TestC.rb'
52
+ end
53
+ require 'corba/naming'
54
+
55
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
56
+
57
+ begin
58
+
59
+ # resolve NamingContext
60
+ obj = orb.string_to_object(OPTIONS[:iorfile])
61
+
62
+ nc = CosNaming::NamingContextExt._narrow(obj)
63
+
64
+ assert_not "ERROR: INS IOR resolved to nil object!", CORBA::is_nil(nc)
65
+
66
+ # list registered items in context
67
+ binding_list, binding_iterator = nc.list(1)
68
+
69
+ assert 'ERROR: INS list() does not function', (!CORBA::is_nil(binding_iterator) && binding_list.size==1) &&
70
+ binding_list.first.binding_type == CosNaming::Nobject
71
+
72
+ n = binding_list.first.binding_name.first
73
+ puts "first binding: id=#{n.r_id}, kind=#{n.kind}"
74
+
75
+ has_one, binding = binding_iterator.next_one()
76
+
77
+ assert 'ERROR: INS BindingIterator#next_one() does not function',
78
+ (has_one && binding) &&
79
+ binding.binding_type == CosNaming::Nobject
80
+
81
+ n = binding.binding_name.first
82
+ puts "second binding: id=#{n.r_id}, kind=#{n.kind}"
83
+
84
+ has_list, binding_list = binding_iterator.next_n(3)
85
+
86
+ assert 'ERROR: INS BindingIterator#next_n() does not function',
87
+ (has_list && binding_list.size==3) &&
88
+ binding_list.first.binding_type == CosNaming::Nobject &&
89
+ binding_list.last.binding_type == CosNaming::Nobject
90
+
91
+ counts = ['third', 'fourth', 'fifth']
92
+ binding_list.each do |binding|
93
+ n = binding.binding_name.first
94
+ puts "#{counts.shift} binding: id=#{n.r_id}, kind=#{n.kind}"
95
+ end
96
+
97
+ has_one, binding = binding_iterator.next_one()
98
+
99
+ assert_not 'ERROR: INS BindingIterator#next_one() does not function (2)', has_one
100
+
101
+ binding_iterator.destroy()
102
+
103
+ # retrieve object reference for servant from Naming service
104
+ name = binding_list.last.binding_name
105
+
106
+ obj = nc.resolve(name)
107
+
108
+ # narrow object ref and call
109
+ hello_obj = Test::Hello._narrow(obj)
110
+
111
+ the_string = hello_obj.get_string()
112
+
113
+ puts "string returned <#{the_string}>"
114
+
115
+ hello_obj.shutdown()
116
+
117
+ ensure
118
+
119
+ orb.destroy()
120
+
121
+ end