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,68 @@
1
+
2
+ //=========================================================================
3
+ // Valuebox of structs
4
+ //=========================================================================
5
+
6
+ // "Fixed" struct
7
+ struct Fixed_Struct1
8
+ { long l;
9
+ struct Bstruct {short s1; short s2; } abstruct;
10
+ };
11
+
12
+ // "Variable" struct
13
+ struct Variable_Struct1
14
+ { long l;
15
+ string str;
16
+ };
17
+
18
+ typedef Variable_Struct1 TDvariable_struct1;
19
+
20
+ interface InterfaceFwd;
21
+
22
+ interface Interface1
23
+ {
24
+ long getval(in short s);
25
+ };
26
+
27
+ enum Pet { dog, cat, fish, rhinoceros };
28
+ typedef short short_array[15];
29
+
30
+ union Union1 switch(long)
31
+ {
32
+ case 1: long m1;
33
+ case 2: Pet m2;
34
+ };
35
+
36
+ typedef sequence<long> LongSeq;
37
+ typedef octet oct_array[10];
38
+ typedef sequence <Pet> PetSeq;
39
+ // Use all possible types inside a struct
40
+ struct Variable_Struct2
41
+ {
42
+ long len; // predefined type
43
+ any whatever; // predefined type
44
+ Pet apet; // enum
45
+ oct_array octet_array; // array
46
+ short_array td_array; // typedefed array
47
+ Interface1 intf1; // interface
48
+ InterfaceFwd intf2; // interface fwd
49
+ string str; // string
50
+ wstring wstr; // string
51
+ LongSeq ls; // typedef sequence
52
+ PetSeq sqq; // sequence
53
+ struct NestedStruct1 { short s; string str2; } ns1; // structure
54
+ Variable_Struct1 NestedStruct2;
55
+ TDvariable_struct1 NestedStruct3;
56
+ Union1 un; // union
57
+ };
58
+
59
+ valuetype VBfixed_struct1 Fixed_Struct1;
60
+
61
+ valuetype VBvariable_struct1 Variable_Struct1;
62
+
63
+ valuetype VBvariable_struct2 Variable_Struct2;
64
+
65
+ interface InterfaceFwd
66
+ {
67
+ long getval(in short s);
68
+ };
@@ -0,0 +1,21 @@
1
+
2
+ //=========================================================================
3
+ // Valuebox of unions
4
+ //=========================================================================
5
+
6
+ union Fixed_Union1 switch(long)
7
+ {
8
+ case 1: long m1;
9
+ case 2: short m2;
10
+ };
11
+
12
+ union Variable_Union1 switch(long)
13
+ {
14
+ case 1: long m1;
15
+ case 2: string m2;
16
+ };
17
+
18
+
19
+ valuetype VBfixed_union1 Fixed_Union1;
20
+
21
+ valuetype VBvariable_union1 Variable_Union1;
@@ -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,112 @@
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://server.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://server.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
+
54
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
55
+
56
+ begin
57
+
58
+ obj = orb.string_to_object(OPTIONS[:iorfile])
59
+
60
+ unless defined?(JRUBY_VERSION) && CORBA::Native::Jacorb::MAJOR_VERSION == 3 &&
61
+ ([4,5].include? CORBA::Native::Jacorb::MINOR_VERSION)
62
+ ## JacORB 3.4 introduced an optimization which *requires* use of the Java endorsed dirs
63
+ ## mechanism to replace standard JDK CORBA stubs with the JacORB version in order to
64
+ ## have JacORB process these base methods correctly with DSI servants
65
+ ## JacORB 3.6 may be released with a fix for this
66
+ id = obj._repository_id # fetches id remotely as obj has not been narrowed
67
+ # yet and thus there is no type known yet
68
+
69
+ assert 'incorrect repository id returned (1)', id == Test::Hello._tc.id
70
+
71
+ STDERR.puts "Got Object reference for [#{id}]"
72
+
73
+ hello_obj = Test::Hello._narrow(obj)
74
+
75
+ id = obj._repository_id # returns locally known id as obj has been narrowed
76
+ # and thus type is known
77
+
78
+ assert 'incorrect repository id returned (2)', id == Test::Hello._tc.id
79
+
80
+ the_string = hello_obj.get_string()
81
+
82
+ puts "string returned <#{the_string}>"
83
+
84
+ obj = hello_obj._get_component
85
+
86
+ id = obj._repository_id # fetches id remotely which is doctored by
87
+ # overridden servant method
88
+
89
+ assert 'original repository id returned', id != Test::Hello._tc.id
90
+
91
+ STDERR.puts "Got Object reference for [#{id}]"
92
+
93
+ # since _is_a? is also overridden we still get a match on the original id
94
+ assert '_is_a? returned FALSE', obj._is_a?(Test::Hello._tc.id)
95
+
96
+ hello2_obj = Test::Hello._narrow(obj)
97
+
98
+ id = obj._repository_id # returns locally known id as obj has been narrowed
99
+ # and thus type is known
100
+
101
+ assert 'incorrect repository id returned (3)', id == Test::Hello._tc.id
102
+ else
103
+ hello2_obj = Test::Hello._narrow(obj)
104
+ end
105
+
106
+ hello2_obj.shutdown()
107
+
108
+ ensure
109
+
110
+ orb.destroy()
111
+
112
+ end
@@ -0,0 +1,69 @@
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
+ OPTIONS = {
14
+ :debug_opt => '',
15
+ :use_implement => '--use-implement'
16
+ }
17
+
18
+ require 'optparse'
19
+
20
+ ARGV.options do |opts|
21
+ script_name = File.basename($0)
22
+ opts.banner = "Usage: ruby #{script_name} [options]"
23
+
24
+ opts.separator ""
25
+
26
+ opts.on("-d",
27
+ "Run with debugging output.",
28
+ "Default: false") { OPTIONS[:debug_opt] = '--d 10' }
29
+ opts.on("--use-stubs",
30
+ "Use stubs generated by RIDL.",
31
+ "Default: false (uses embedded IDL)") { OPTIONS[:use_implement] = '' }
32
+
33
+ opts.separator ""
34
+
35
+ opts.on("-h", "--help",
36
+ "Show this help message.") { puts opts; exit }
37
+
38
+ opts.parse!
39
+ end
40
+
41
+ require 'lib/test.rb'
42
+ include TestUtil
43
+
44
+ ior_file = 'server.ior'
45
+
46
+ TestUtil.remove_file(ior_file)
47
+
48
+ srv = Test.new
49
+
50
+ exit(255) if !srv.run('server.rb', "--o #{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
51
+
52
+ TestUtil.wait_for_file(ior_file, 400)
53
+
54
+ clt = Test.new
55
+
56
+ if !clt.run('client.rb', "--k file://#{ior_file} #{OPTIONS[:debug_opt]} #{OPTIONS[:use_implement]}")
57
+ srv.kill(100)
58
+ exit(255)
59
+ end
60
+
61
+ exrc = clt.wait(400)
62
+
63
+ if exrc ==0
64
+ srv.wait(400)
65
+ else
66
+ srv.wait_term(400)
67
+ end
68
+
69
+ exit(exrc)
@@ -0,0 +1 @@
1
+ IOR:000000000000001349444C3A546573742F48656C6C6F3A312E3000000000000100000000000000EC000102000000000B31302E342E302E3132300000D7A100000000001F363937383438383132352F00153F25153F1F2833100630463814141B484C1B0000000004000000030000002E0000000000000024323030313A3938323A613037323A313A643236373A653566663A666534393A3130333400D7A10000000000030000002E0000000000000023323030313A3938323A613037323A313A333165393A3238393A323764333A343061610000D7A100000000000000000008000000004A4143000000000100000024000000000501000100000002000100010001000F00010109000000020501000100010100
@@ -0,0 +1,126 @@
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
+ }
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("--o IORFILE",
28
+ "Set IOR filename.",
29
+ "Default: 'server.ior'") { |v| OPTIONS[:iorfile]=v }
30
+ opts.on("--d LVL",
31
+ "Set ORBDebugLevel value.",
32
+ "Default: 0") { |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'
47
+ CORBA.implement('Test.idl', OPTIONS, CORBA::IDL::SERVANT_INTF)
48
+ else
49
+ require 'TestS.rb'
50
+ end
51
+
52
+ class MyHello < POA::Test::Hello
53
+ def initialize(orb)
54
+ @orb = orb
55
+ end
56
+
57
+ def get_string()
58
+ "Hello there!"
59
+ end
60
+
61
+ def shutdown()
62
+ @orb.shutdown()
63
+ end
64
+
65
+ ## overrides for standard CORBA::Object methods
66
+ def _get_component
67
+ # misuse this method to
68
+ # create second servant and
69
+ hello_srv = MyHello2.new(@orb)
70
+ # activate and return object ref
71
+ hello_srv._this()
72
+ end
73
+ end #of servant MyHello
74
+
75
+ class MyHello2 < POA::Test::Hello
76
+ def initialize(orb)
77
+ @orb = orb
78
+ end
79
+
80
+ def get_string()
81
+ "Hello2 there!"
82
+ end
83
+
84
+ def shutdown()
85
+ @orb.shutdown()
86
+ end
87
+
88
+ ## overrides for standard CORBA::Object methods
89
+ def _repository_id
90
+ 'IDL:org.omg/custom.Test/Hello2:1.0'
91
+ end
92
+
93
+ def _is_a?(id)
94
+ Intf::Ids.include?(id) or id == 'IDL:org.omg/custom.Test/Hello:1.0'
95
+ end
96
+ end #of servant MyHello
97
+ orb = CORBA.ORB_init(["-ORBDebugLevel", OPTIONS[:orb_debuglevel]], 'myORB')
98
+
99
+ obj = orb.resolve_initial_references('RootPOA')
100
+
101
+ root_poa = PortableServer::POA._narrow(obj)
102
+
103
+ poa_man = root_poa.the_POAManager
104
+
105
+ poa_man.activate
106
+
107
+ hello_srv = MyHello.new(orb)
108
+
109
+ hello_obj = hello_srv._this()
110
+
111
+ hello_ior = orb.object_to_string(hello_obj)
112
+
113
+ open(OPTIONS[:iorfile], 'w') { |io|
114
+ io.write hello_ior
115
+ }
116
+
117
+ Signal.trap('INT') do
118
+ puts "SIGINT - shutting down ORB..."
119
+ orb.shutdown()
120
+ end
121
+
122
+ if Signal.list.has_key?('USR2')
123
+ Signal.trap('USR2', 'EXIT')
124
+ end
125
+
126
+ orb.run
@@ -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
+ };