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,173 @@
1
+ #--------------------------------------------------------------------
2
+ # Values.rb - Java/JacORB CORBA Value and ValueBox support
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ module R2CORBA
15
+ module CORBA
16
+ module AbstractValueBase
17
+ def self.included(mod)
18
+ mod.module_eval do
19
+ def self.===(obj)
20
+ obj.kind_of?(self)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ module ValueBase
26
+ def self.included(mod)
27
+ mod.module_eval do
28
+ include CORBA::Native::Portable::StreamableValue unless self.include?(CORBA::Native::Portable::StreamableValue)
29
+ # this defines the following methods to be implemented
30
+ # String[] _truncatable_ids();
31
+ # TypeCode _type();
32
+ # void _read(org.omg.CORBA.portable.InputStream is);
33
+ # void _write(org.omg.CORBA.portable.OutputStream os);
34
+ include CORBA::AbstractValueBase unless self.include?(CORBA::AbstractValueBase)
35
+
36
+ def _truncatable_ids
37
+ self.class::TRUNCATABLE_IDS.to_java(:string)
38
+ end
39
+
40
+ def _type
41
+ self.class._tc.tc_ # return Java TypeCode here
42
+ end
43
+
44
+ def _read(jis)
45
+ do_unmarshal(CORBA::Portable::InputStream._wrap_native(jis))
46
+ end
47
+
48
+ def _write(jos)
49
+ do_marshal(CORBA::Portable::OutputStream._wrap_native(jos))
50
+ end
51
+
52
+ def kind_of?(mod)
53
+ if mod < CORBA::AbstractValueBase && mod.const_defined?(:Intf)
54
+ super(mod::Intf)
55
+ else
56
+ super
57
+ end
58
+ end
59
+ alias :is_a? :kind_of?
60
+ end
61
+ end
62
+
63
+ def _marshal_with(os, &block)
64
+ self.instance_eval(&block)
65
+ end
66
+
67
+ def _unmarshal_with(is, &block)
68
+ self.instance_eval(&block)
69
+ end
70
+ end # ValueBase
71
+
72
+ module Portable
73
+ class ValueFactoryBase
74
+ include CORBA::Native::Portable::ValueFactory
75
+ ## defines: java.io.Serializable read_value(InputStream is)
76
+
77
+ def self.inherited(value_factory_base)
78
+ # value_factory_base is the <valuetype>Factory base class
79
+ # generated from IDL
80
+ value_factory_base.module_eval do
81
+ def self.value_id
82
+ self::VALUE_ID
83
+ end
84
+
85
+ # overload
86
+ def read_value(jis)
87
+ vt = self._create_default
88
+ vt._read(jis)
89
+ vt
90
+ end
91
+ end
92
+ end
93
+ end # ValueFactoryBase
94
+
95
+ module CustomValueBase
96
+ def self.included(mod)
97
+ mod.module_eval do
98
+ include CORBA::ValueBase unless self.include?(CORBA::ValueBase)
99
+
100
+ def do_marshal(os)
101
+ self.marshal(os)
102
+ end
103
+
104
+ def do_unmarshal(is)
105
+ self.unmarshal(is)
106
+ end
107
+ end
108
+ end
109
+ end # CustomValueBase
110
+
111
+ module BoxedValueBase
112
+ class FactoryBase < CORBA::Portable::ValueFactoryBase
113
+ ## generic factory base
114
+ end
115
+ def self.included(mod)
116
+ mod.module_eval do
117
+ include CORBA::ValueBase unless self.include?(CORBA::ValueBase)
118
+
119
+ def _write(jos)
120
+ CORBA::Portable::OutputStream._wrap_native(jos).write_member(
121
+ self.class._tc.content_type.resolved_tc, self.value)
122
+ end
123
+
124
+ def _read(jis)
125
+ self.value = CORBA::Portable::InputStream._wrap_native(jis).read_member(
126
+ self.class._tc.content_type.resolved_tc)
127
+ end
128
+
129
+ self.const_set(:Factory, Class.new(CORBA::Portable::BoxedValueBase::FactoryBase))
130
+ self::Factory.class_eval(%Q{
131
+ @@_reg = false
132
+ def self._check_factory(jorb)
133
+ return if @@_reg
134
+ self.get_factory(jorb)
135
+ @@_reg = true
136
+ end
137
+
138
+ def self.value_id
139
+ #{self.name}::TRUNCATABLE_IDS.first
140
+ end
141
+
142
+ def _create_default
143
+ #{self.name}.new
144
+ end
145
+ })
146
+
147
+ self.const_set(:Helper, Class.new)
148
+ self::Helper.class_eval(%Q{
149
+ include CORBA::Native::Portable::BoxedValueHelper unless self.include?(CORBA::Native::Portable::BoxedValueHelper)
150
+
151
+ def get_id()
152
+ #{self.name}::TRUNCATABLE_IDS.first
153
+ end
154
+
155
+ def read_value(jis)
156
+ #{self.name}.new._read(jis)
157
+ end
158
+
159
+ def write_value(jos, value)
160
+ value._write(jos)
161
+ end
162
+ })
163
+
164
+ def self.boxedvalue_helper
165
+ @@helper ||= Helper.new
166
+ end
167
+ end
168
+ end
169
+ end
170
+
171
+ end # Portable
172
+ end # CORBA
173
+ end # R2CORBA
@@ -0,0 +1,106 @@
1
+ #--------------------------------------------------------------------
2
+ # exception.rb - Java/JacORB specific CORBA Exception definitions
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ # import all java CORBA exceptions into the R2CORBA::CORBA namespace
15
+ module R2CORBA
16
+ module CORBA
17
+ class Exception
18
+ def self.native2r(jex)
19
+ if ::NativeException === jex
20
+ if jex.cause.is_a? Native::SystemException
21
+ SystemException._raise(jex)
22
+ elsif jex.cause.is_a? Native::UserException
23
+ UserException._raise(jex)
24
+ else
25
+ raise CORBA::InternalError.new(jex)
26
+ end
27
+ else
28
+ raise jex
29
+ end
30
+ end
31
+ end
32
+
33
+ class UserException
34
+ def self._raise(jex)
35
+ STDERR.puts "#{jex}\n#{jex.backtrace.join("\n")}" if $VERBOSE and (NativeException === jex)
36
+ if (NativeException === jex and jex.cause.is_a?(Native::UnknownUserException)) or jex.is_a?(Native::UnknownUserException)
37
+ java_ex = jex.is_a?(Native::UnknownUserException) ? jex : jex.cause
38
+ ex = Any.from_java(java_ex.except)
39
+ ex.set_backtrace(jex.backtrace) if NativeException === jex
40
+ raise ex
41
+ elsif (NativeException === jex and jex.cause.is_a?(Native::UserException)) or jex.is_a?(Native::UserException)
42
+ java_ex = jex.is_a?(Native::UserException) ? jex : jex.cause
43
+ exname = java_ex.class.name.split('::').last
44
+ tcs = CORBA::TypeCode.typecodes_for_name(exname) || []
45
+ extc = tcs.detect {|tc| tc.is_a?(TypeCode::Except) && tc.is_compatible?(java_ex)}
46
+ if extc
47
+ ex = extc.from_java(java_ex)
48
+ ex.set_backtrace(jex.backtrace) if NativeException === jex
49
+ raise ex
50
+ end
51
+ end
52
+ raise CORBA::UNKNOWN.new("#{jex}", 0, CORBA::COMPLETED_MAYBE)
53
+ end
54
+ end
55
+
56
+ class InternalError
57
+ def initialize(jex)
58
+ @ex_ = jex
59
+ super(@ex_.message)
60
+ self.set_backtrace(@ex_.backtrace)
61
+ end
62
+ end
63
+
64
+ class SystemException
65
+ def self._raise(jex)
66
+ raise ArgumentError unless (NativeException === jex and jex.cause.is_a?(Native::SystemException)) or jex.is_a?(Native::SystemException)
67
+ java_ex = jex.is_a?(Native::SystemException) ? jex : jex.cause
68
+ exname = java_ex.class.name.split('::').last
69
+ exklass = CORBA.const_get(exname.to_sym)
70
+ unless exklass
71
+ # define hitherto unknown CORBA system exception
72
+ CORBA.define_system_exception(exname)
73
+ CORBA.const_get(exname.to_sym) || InternalError
74
+ end
75
+ raise exklass.new(jex)
76
+ end
77
+ def initialize(*args)
78
+ if (NativeException === args.first and args.first.cause.is_a? Native::SystemException) or args.first.is_a?(Native::SystemException)
79
+ java_ex = args.first.is_a?(Native::SystemException) ? args.first : args.first.cause
80
+ super(java_ex.getMessage)
81
+ @minor = java_ex.minor
82
+ @completed = java_ex.completed.value
83
+ self.set_backtrace(args.first.backtrace) if NativeException === args.first
84
+ else
85
+ super(args.shift.to_s)
86
+ @minor, @completed = (args + [0,0][args.size..2])
87
+ end
88
+ end
89
+ end
90
+ end # CORBA
91
+ end # R2CORBA
92
+
93
+ # extend Ruby wrapper for Native java exceptions
94
+ class NativeException
95
+ alias method_missing_corba_backup method_missing
96
+ def method_missing(method, *args)
97
+ if self.cause.is_a?(R2CORBA::CORBA::Native::SystemException) and args.empty?
98
+ return self.cause.minor if method == :minor
99
+ return self.cause.completed.value if method == :completed
100
+ return self.cause.getMessage if method == :reason
101
+ elsif self.cause.is_a? R2CORBA::CORBA::Native::UserException
102
+ return self.cause.send(method, *args)
103
+ end
104
+ self.method_missing_corba_backup
105
+ end
106
+ end
@@ -0,0 +1,229 @@
1
+ #--------------------------------------------------------------------
2
+ # poa.rb - Java/JacORB R2CORBA POA loader
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ module R2CORBA
15
+ module PortableServer
16
+ module Native
17
+ include_package 'org.omg.PortableServer'
18
+ end
19
+ end
20
+ end
21
+
22
+ require 'corba/common/Servant.rb'
23
+ require 'corba/idl/POAC.rb'
24
+ require 'corba/jbase/Servant.rb'
25
+ require 'corba/jbase/ServerRequest.rb'
26
+
27
+ module R2CORBA
28
+ module PortableServer
29
+ def self.string_to_ObjectId(s)
30
+ raise CORBA::NO_IMPLEMENT
31
+ end
32
+
33
+ def self.ObjectId_to_string(oid)
34
+ raise CORBA::NO_IMPLEMENT
35
+ end
36
+
37
+ module POA
38
+ def destroy(etherealize_objects, wait_for_completion)
39
+ begin
40
+ self.objref_.destroy(etherealize_objects!=false, wait_for_completion!=false)
41
+ rescue ::NativeException
42
+ CORBA::Exception.native2r($!)
43
+ end
44
+ end #of operation destroy
45
+
46
+ def the_name()
47
+ begin
48
+ self.objref_.the_name()
49
+ rescue ::NativeException
50
+ CORBA::Exception.native2r($!)
51
+ end
52
+ end #of attribute get_the_name
53
+
54
+ def the_POAManager()
55
+ begin
56
+ PortableServer::POAManager._narrow(CORBA::Object._wrap_native(self.objref_.the_POAManager()))
57
+ rescue ::NativeException
58
+ CORBA::Exception.native2r($!)
59
+ end
60
+ end #of attribute get_the_POAManager
61
+
62
+ def the_parent()
63
+ begin
64
+ PortableServer::POA._narrow(CORBA::Object._wrap_native(self.objref_.the_parent()))
65
+ rescue ::NativeException
66
+ CORBA::Exception.native2r($!)
67
+ end
68
+ end #of attribute get_the_parent
69
+
70
+ def the_children()
71
+ begin
72
+ self.objref_.the_children().collect {|c| PortableServer::POA._narrow(CORBA::Object._wrap_native(c)) }
73
+ rescue ::NativeException
74
+ CORBA::Exception.native2r($!)
75
+ end
76
+ end #of attribute get_the_children
77
+
78
+ def activate_object(p_servant)
79
+ begin
80
+ String.from_java_bytes(self.objref_.activate_object(p_servant.srvref_))
81
+ rescue ::NativeException
82
+ CORBA::Exception.native2r($!)
83
+ end
84
+ end #of operation activate_object
85
+
86
+ def activate_object_with_id(r_id, p_servant)
87
+ begin
88
+ self.objref_.activate_object_with_id(r_id.to_s.to_java_bytes, p_servant.srvref_)
89
+ rescue ::NativeException
90
+ CORBA::Exception.native2r($!)
91
+ end
92
+ end #of operation activate_object_with_id
93
+
94
+ def deactivate_object(oid)
95
+ begin
96
+ self.objref_.deactivate_object(oid.to_s.to_java_bytes)
97
+ rescue ::NativeException
98
+ CORBA::Exception.native2r($!)
99
+ end
100
+ end #of operation deactivate_object
101
+
102
+ def create_reference(intf)
103
+ begin
104
+ CORBA::Object._wrap_native(self.objref_.create_reference(intf.to_s))
105
+ rescue ::NativeException
106
+ CORBA::Exception.native2r($!)
107
+ end
108
+ end #of operation create_reference
109
+
110
+ def create_reference_with_id(oid, intf)
111
+ begin
112
+ CORBA::Object._wrap_native(self.objref_.create_reference_with_id(oid.to_s.to_java_bytes, intf.to_s))
113
+ rescue ::NativeException
114
+ CORBA::Exception.native2r($!)
115
+ end
116
+ end #of operation create_reference_with_id
117
+
118
+ def servant_to_id(p_servant)
119
+ begin
120
+ String.from_java_bytes(self.objref_.servant_to_id(p_servant.srvref_))
121
+ rescue ::NativeException
122
+ CORBA::Exception.native2r($!)
123
+ end
124
+ end #of operation servant_to_id
125
+
126
+ def servant_to_reference(p_servant)
127
+ begin
128
+ CORBA::Object._wrap_native(self.objref_.servant_to_reference(p_servant.srvref_))
129
+ rescue ::NativeException
130
+ CORBA::Exception.native2r($!)
131
+ end
132
+ end #of operation servant_to_reference
133
+
134
+ def reference_to_servant(reference)
135
+ begin
136
+ self.objref_.reference_to_servant(reference.objref_).rbServant
137
+ rescue ::NativeException
138
+ CORBA::Exception.native2r($!)
139
+ end
140
+ end #of operation reference_to_servant
141
+
142
+ def reference_to_id(reference)
143
+ begin
144
+ String.from_java_bytes(self.objref_.reference_to_id(reference.objref_))
145
+ rescue ::NativeException
146
+ CORBA::Exception.native2r($!)
147
+ end
148
+ end #of operation reference_to_id
149
+
150
+ def id_to_servant(oid)
151
+ begin
152
+ self.objref_.id_to_servant(oid.to_s.to_java_bytes).rbServant
153
+ rescue ::NativeException
154
+ CORBA::Exception.native2r($!)
155
+ end
156
+ end #of operation id_to_servant
157
+
158
+ def id_to_reference(oid)
159
+ begin
160
+ CORBA::Object._wrap_native(self.objref_.id_to_reference(oid.to_s.to_java_bytes))
161
+ rescue ::NativeException
162
+ CORBA::Exception.native2r($!)
163
+ end
164
+ end #of operation id_to_reference
165
+
166
+ def create_POA(adapter_name, a_POAManager, policies)
167
+ raise CORBA::BAD_PARAM.new('expected POAManager', 0, CORBA::COMPLETED_NO) unless a_POAManager.is_a?(PortableServer::POAManager)
168
+ CORBA::PolicyList._tc.validate(policies) unless policies.nil? || policies.empty?
169
+ jpolicies = CORBA::Native::Reflect::Array.newInstance(CORBA::Native::Policy.java_class, policies.nil? ? 0 : policies.size)
170
+ policies.each_with_index {|p,i| jpolicies[i] = p.objref_ } unless policies.nil?
171
+ begin
172
+ PortableServer::POA._narrow(CORBA::Object._wrap_native(self.objref_.create_POA(adapter_name, a_POAManager.objref_, jpolicies)))
173
+ rescue ::NativeException
174
+ CORBA::Exception.native2r($!)
175
+ end
176
+ end #of operation create_POA
177
+
178
+ def find_POA(adapter_name, activate_it)
179
+ begin
180
+ PortableServer::POA._narrow(CORBA::Object._wrap_native(self.objref_.find_POA(adapter_name, activate_it)))
181
+ rescue ::NativeException
182
+ CORBA::Exception.native2r($!)
183
+ end
184
+ end #of operation find_POA
185
+ end # POA
186
+
187
+ module POAManager
188
+ def activate()
189
+ begin
190
+ self.objref_.activate()
191
+ rescue ::NativeException
192
+ CORBA::Exception.native2r($!)
193
+ end
194
+ end # activate
195
+
196
+ def hold_requests(wait_for_completion)
197
+ begin
198
+ self.objref_.hold_requests(wait_for_completion)
199
+ rescue ::NativeException
200
+ CORBA::Exception.native2r($!)
201
+ end
202
+ end # hold_requests
203
+
204
+ def discard_requests(wait_for_completion)
205
+ begin
206
+ self.objref_.discard_requests(wait_for_completion)
207
+ rescue ::NativeException
208
+ CORBA::Exception.native2r($!)
209
+ end
210
+ end # discard_requests
211
+
212
+ def deactivate(etherealize_objects, wait_for_completion)
213
+ begin
214
+ self.objref_.deactivate(etherealize_objects, wait_for_completion)
215
+ rescue ::NativeException
216
+ CORBA::Exception.native2r($!)
217
+ end
218
+ end # deactivate
219
+
220
+ def get_state()
221
+ begin
222
+ self.objref_.get_state().value()
223
+ rescue ::NativeException
224
+ CORBA::Exception.native2r($!)
225
+ end
226
+ end # get_state
227
+ end # POAManager
228
+ end
229
+ end